:root{
  --sky:#86c7ee;--sky2:#d8eef9;--sea:#65bfe8;--ink:#183852;--ink2:#567189;
  --nav:#275f90;--nav2:#1e4a73;--panel:#fffdf6;--panel2:#f2f7f8;--border:#9cbfd1;
  --gold:#ffc94d;--red:#e86572;--green:#4dbd84;--cyan:#4ec4e8;--shadow:0 10px 28px rgba(28,72,103,.18);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-rounded,"SF Pro Rounded","Segoe UI",system-ui,sans-serif;background:linear-gradient(180deg,var(--sky2),#c5e2ef);color:var(--ink)}
body{overscroll-behavior:none}
button,input,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.boot-screen{min-height:100vh;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 50% 35%,#eaf8ff 0 14%,#8bc9ee 45%,#579dcc 100%);color:#17436a}
.boot-emblem{width:92px;height:92px;border-radius:28px;display:grid;place-items:center;margin:0 auto 16px;background:linear-gradient(145deg,#fff8d6,#ffd35c);border:5px solid #fff;box-shadow:0 18px 40px rgba(22,76,116,.24);font-size:58px;font-weight:900}
.boot-title{font-size:clamp(34px,8vw,72px);font-weight:1000;letter-spacing:.09em;text-shadow:0 3px 0 #fff8}
.boot-sub{margin-top:8px;font-size:16px;font-weight:800;color:#345f7f}
.app{min-height:100vh;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px max(12px,env(safe-area-inset-left));background:linear-gradient(180deg,#3779ac,#275d8b);color:white;border-bottom:3px solid #183e62;box-shadow:0 5px 16px #163f6638}
.brand{display:flex;align-items:center;gap:9px;font-weight:1000;letter-spacing:.05em}.brand-logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--gold);color:#214766;border:2px solid #fff9;box-shadow:inset 0 -3px 0 #d89a18;font-size:24px}
.datebox{text-align:center}.datebox strong{display:block;font-size:15px}.datebox small{display:block;color:#d8efff}
.top-actions{display:flex;gap:7px}.icon-btn,.primary-btn,.soft-btn,.danger-btn{border:0;border-radius:12px;font-weight:900;padding:10px 13px;box-shadow:inset 0 -3px 0 #0002,0 3px 8px #163a5b28;transition:.12s transform,.12s filter}
.icon-btn:active,.primary-btn:active,.soft-btn:active,.danger-btn:active{transform:translateY(2px);box-shadow:inset 0 -1px 0 #0002}
.icon-btn{background:#ffffff22;color:#fff;border:1px solid #ffffff4f;padding:9px 11px}.primary-btn{background:linear-gradient(#ffd96d,#f5b82b);color:#324d60}.soft-btn{background:#e7f4fb;color:#235a82;border:1px solid #a9cede}.danger-btn{background:#ef7f86;color:white}
.hud{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:10px 12px;max-width:1400px;margin:auto}.hud-card{background:#ffffffd8;border:1px solid #a8c7d6;border-radius:14px;padding:8px 10px;box-shadow:0 4px 10px #32617a13}.hud-card span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#6b8496}.hud-card strong{font-size:17px}.hud-card .good{color:#25895a}.hud-card .bad{color:#c84d5e}
.main{max-width:1400px;margin:0 auto;padding:4px 12px 24px}.page{animation:pop .16s ease-out}@keyframes pop{from{opacity:.25;transform:scale(.992)}to{opacity:1;transform:none}}
.game-grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(310px,.58fr);gap:12px}.panel{background:linear-gradient(180deg,#fffefa,#f5f8f6);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:linear-gradient(180deg,#fafdff,#e8f3f7);border-bottom:1px solid #b7d0db}.panel-head h2,.panel-head h3{margin:0;font-size:16px}.panel-body{padding:14px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:1000;color:#5c7e94}.muted{color:var(--ink2)}
.map-wrap{position:relative;min-height:575px;background:radial-gradient(circle at 40% 34%,#9bdaf4,#5cb9e4 72%);overflow:hidden}.map-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,#ffffff22,transparent 45%)}.italy-map{width:100%;height:575px;display:block}.region{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;transition:.15s;filter:drop-shadow(0 1px 0 #325e7a55)}.region:hover,.region:focus{stroke:#163f60;stroke-width:4;filter:brightness(1.08) drop-shadow(0 4px 6px #17456055);outline:none}.region-label{font-size:14px;font-weight:1000;fill:#173f5f;paint-order:stroke;stroke:#fff;stroke-width:4;stroke-linejoin:round;pointer-events:none}.map-legend{position:absolute;left:12px;bottom:12px;display:flex;flex-wrap:wrap;gap:6px;max-width:70%;background:#ffffffd8;padding:8px;border-radius:12px;border:1px solid #a3c1d0;backdrop-filter:blur(8px)}.legend-chip{display:flex;align-items:center;gap:5px;background:white;border:1px solid #c5d9e2;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.dot{width:10px;height:10px;border-radius:50%}
.region-card{position:absolute;right:12px;bottom:12px;width:min(270px,44%);background:#fffdf4ee;border:1px solid #8cb0c3;border-radius:15px;padding:11px;box-shadow:0 7px 20px #244e6d3b;backdrop-filter:blur(8px)}.region-card h3{margin:0 0 3px;font-size:15px}.top3{display:grid;gap:5px;margin-top:7px}.top3-row{display:grid;grid-template-columns:25px 1fr auto;gap:7px;align-items:center;font-size:12px;font-weight:800}.mini-bar{height:7px;border-radius:99px;background:#dce9ee;overflow:hidden}.mini-bar i{display:block;height:100%;border-radius:inherit}
.stack{display:grid;gap:12px}.event-card{background:linear-gradient(135deg,#fff5c9,#ffe9a5);border:1px solid #e2bd48;border-radius:16px;padding:13px;box-shadow:0 5px 12px #9b71141f}.event-icon{font-size:28px}.event-card h3{margin:4px 0}.event-card p{margin:0;color:#5f5e58;font-size:13px}.gov-ribbon{padding:11px 13px;border-radius:15px;background:linear-gradient(135deg,#dff5ff,#e8fbf0);border:1px solid #9dc8d7}.gov-ribbon strong{display:block}.party-row{display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center;padding:9px;border-bottom:1px solid #dce8ed}.party-row:last-child{border:0}.party-logo{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;color:white;font-size:20px;font-weight:900;text-shadow:0 1px 2px #0005;box-shadow:inset 0 -3px 0 #0002}.party-info strong{display:block}.party-info small{color:#698194}.party-score{text-align:right}.party-score strong{display:block;font-size:18px}.trend-up{color:#258b5a}.trend-down{color:#c95361}
.bottom-nav{position:fixed;z-index:40;left:50%;transform:translateX(-50%);bottom:max(8px,env(safe-area-inset-bottom));display:flex;gap:5px;padding:7px;background:#255b87e8;border:1px solid #ffffff52;border-radius:18px;box-shadow:0 8px 24px #173e5f55;backdrop-filter:blur(10px);max-width:calc(100vw - 16px);overflow:auto}.nav-btn{flex:0 0 auto;border:0;border-radius:12px;padding:9px 11px;background:transparent;color:#d9effc;font-weight:900;font-size:12px}.nav-btn.active{background:#fff;color:#245b86;box-shadow:inset 0 -2px 0 #acd1e4}.nav-emoji{display:block;font-size:20px;margin-bottom:2px}
.section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:8px 2px 12px}.section-title h1{margin:0;font-size:24px}.section-title p{margin:3px 0 0;color:#607b8f}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-card{background:#fffdf6;border:1px solid #abc7d4;border-radius:16px;padding:12px;box-shadow:0 5px 12px #234d6917}.stat-card span{display:block;color:#6c8493;font-size:11px;font-weight:900;text-transform:uppercase}.stat-card strong{font-size:25px}
.chart-box{position:relative;background:linear-gradient(180deg,#214e70,#173b59);border:2px solid #6697b4;border-radius:18px;padding:10px;box-shadow:inset 0 0 0 2px #ffffff12,0 9px 18px #173e5f28}.chart-svg{display:block;width:100%;height:auto;min-height:360px}.chart-gridline{stroke:#537a94;stroke-width:1}.chart-axis{fill:#d6ebf7;font-size:11px;font-weight:800}.chart-line{fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}.chart-dot{stroke:#fff;stroke-width:2}.chart-legend{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.chart-legend .legend-chip{background:#ffffffef}.legislature-band{opacity:.08}.separator{stroke:#ffd260;stroke-width:2;stroke-dasharray:7 7}.election-point{cursor:pointer}
.archive-grid{display:grid;grid-template-columns:260px 1fr;gap:12px}.archive-list{display:grid;gap:7px;align-content:start}.archive-btn{border:1px solid #a9c8d6;background:#fff;border-radius:13px;padding:10px;text-align:left;color:#274e6b;font-weight:900}.archive-btn.active{background:#dff1fa;border-color:#4f9ac5}.archive-btn small{display:block;color:#718798;font-weight:700;margin-top:3px}
.timeline{position:relative;display:grid;gap:14px;padding-left:24px}.timeline:before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:4px;background:linear-gradient(#70bfe7,#f1bd41);border-radius:99px}.gov-item{position:relative;background:#fffdf7;border:1px solid #abc8d4;border-radius:16px;padding:13px 13px 13px 16px;box-shadow:0 5px 12px #264e6617}.gov-item:before{content:"";position:absolute;left:-23px;top:20px;width:14px;height:14px;background:#ffd05b;border:3px solid white;border-radius:50%;box-shadow:0 0 0 2px #4a89ad}.gov-item h3{margin:0 0 4px}.gov-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pill{border-radius:999px;padding:4px 8px;background:#e5f1f6;border:1px solid #bdd3dd;font-size:11px;font-weight:900}.coalition-logos{display:flex;gap:4px}.tiny-logo{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:900}
.chamber{min-height:420px;display:grid;place-items:center;background:radial-gradient(circle at 50% 88%,#f7e6b2 0 18%,#d9edf4 19% 65%,#c8e4ef);border-radius:18px;border:1px solid #a9c7d5;overflow:hidden}.chamber svg{width:100%;max-height:500px}.seat{stroke:#fff;stroke-width:1}.law-list{display:grid;gap:10px}.law{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;background:#fffdf7;border:1px solid #adc8d4;border-radius:15px;padding:12px}.law h3{margin:0 0 3px}.law p{margin:0;color:#667e8f;font-size:13px}
.sandbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:grid;gap:4px}.field label{font-size:11px;text-transform:uppercase;font-weight:900;color:#668095}.field input,.field select{width:100%;border:1px solid #9cbccd;border-radius:11px;padding:10px;background:white;color:#21465f}.logo-picker{display:flex;flex-wrap:wrap;gap:6px}.logo-choice{width:38px;height:38px;border-radius:10px;border:1px solid #9ebbc9;background:white;font-size:21px}.logo-choice.active{outline:3px solid #f3bf37;background:#fff3ba}
.menu-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 24%,#ecfbff 0 12%,#9fd9f3 42%,#5fa5d0 100%)}.menu-card{width:min(760px,100%);background:#ffffffdd;border:2px solid #ffffff;border-radius:28px;padding:22px;box-shadow:0 25px 70px #19496944;backdrop-filter:blur(8px)}.menu-logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:18px}.menu-logo .crest{width:68px;height:68px;border-radius:22px;display:grid;place-items:center;background:#ffd059;border:4px solid white;color:#285475;font-size:42px;font-weight:1000;box-shadow:0 8px 18px #234e6b30}.menu-logo h1{margin:0;font-size:38px;letter-spacing:.05em}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode-card{border:2px solid #9ec7dc;background:linear-gradient(145deg,#fff,#e8f6fb);border-radius:20px;padding:18px;text-align:left;color:#244c68;box-shadow:0 8px 16px #315c7318}.mode-card:hover{border-color:#3f91be;transform:translateY(-1px)}.mode-icon{font-size:42px}.mode-card h2{margin:4px 0}.mode-card p{margin:0;color:#607e92}.menu-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.toast{position:fixed;z-index:99;left:50%;top:78px;transform:translateX(-50%);max-width:min(520px,calc(100vw - 24px));padding:11px 14px;border-radius:13px;background:#173e5f;color:white;box-shadow:0 8px 30px #0004;font-weight:800}.modal-backdrop{position:fixed;z-index:80;inset:0;background:#16354b78;display:grid;place-items:center;padding:18px}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fffdf8;border:2px solid white;border-radius:22px;box-shadow:0 25px 70px #16354b66}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;background:#e5f3fa;border-bottom:1px solid #aecbd8}.modal-head h2{margin:0}.modal-body{padding:15px}.close-btn{border:0;background:#fff;border-radius:10px;width:36px;height:36px;color:#41657d;font-size:20px;font-weight:900}
.install-tip{background:#fff1bd;border:1px solid #d6b248;border-radius:13px;padding:10px;color:#5c532e;font-size:12px;font-weight:800}
@media(max-width:980px){.game-grid{grid-template-columns:1fr}.map-wrap,.italy-map{min-height:520px;height:520px}.hud{grid-template-columns:repeat(3,1fr)}.archive-grid{grid-template-columns:1fr}.archive-list{grid-template-columns:repeat(2,1fr)}.sandbox-grid{grid-template-columns:1fr}}
@media(max-width:650px){.topbar{grid-template-columns:auto 1fr auto}.brand span:last-child{display:none}.top-actions .label{display:none}.hud{grid-template-columns:repeat(3,1fr);padding:7px 8px;gap:5px}.hud-card{padding:6px 7px}.hud-card strong{font-size:15px}.main{padding:2px 8px 18px}.map-wrap,.italy-map{min-height:470px;height:470px}.map-legend{max-width:94%;right:8px;left:8px}.region-card{right:8px;bottom:75px;width:62%}.cards{grid-template-columns:1fr 1fr}.mode-grid{grid-template-columns:1fr}.menu-card{padding:16px}.menu-logo h1{font-size:29px}.bottom-nav{left:8px;right:8px;transform:none}.form-grid{grid-template-columns:1fr}.chart-svg{min-height:300px}.section-title{align-items:start;flex-direction:column}.law{grid-template-columns:1fr}.archive-list{grid-template-columns:1fr 1fr}.region-label{font-size:12px}}

/* v1.2 — creazione sistema politico e replay sondaggi */
button:disabled{cursor:not-allowed;filter:grayscale(.55);opacity:.48;box-shadow:none}
.setup-screen{min-height:100vh;padding:20px max(12px,env(safe-area-inset-left)) 34px;background:radial-gradient(circle at 45% 10%,#ecfbff,#9fd9f3 48%,#5fa5d0 100%)}
.setup-shell{width:min(1160px,100%);margin:0 auto;background:#ffffffdf;border:2px solid #fff;border-radius:26px;padding:18px;box-shadow:0 24px 68px #19496944;backdrop-filter:blur(10px)}
.setup-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:14px}.empty-state{padding:34px 18px;text-align:center;color:#648196;font-weight:800;background:#f5fbfd;border:1px dashed #9fc2d2;border-radius:15px;margin:12px}
.region-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:250px;overflow:auto;padding:8px;background:#eef7fb;border:1px solid #b3ceda;border-radius:13px}
.region-check{display:flex;align-items:center;gap:7px;padding:8px 9px;border:1px solid #bdd3dd;border-radius:10px;background:#fff;color:#315b76;font-size:12px;font-weight:800;text-transform:none;transition:.12s}.region-check input{width:auto;margin:0;accent-color:#347fae}.region-check.active{background:#fff1b8;border-color:#d8ac30;box-shadow:inset 0 -2px 0 #e3b63a}
.video-stage{display:grid;gap:12px}.video-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;background:linear-gradient(135deg,#e8f7fd,#fff4c8);border:1px solid #a9cad8}.video-head strong{font-size:19px}.video-leader{display:flex;align-items:center;gap:8px;font-size:18px}.video-ranking{display:grid;gap:5px}.video-rank-row{display:grid;grid-template-columns:24px 48px 1fr 62px;align-items:center;gap:8px;padding:6px 8px;background:#f6fbfd;border:1px solid #d3e3e9;border-radius:10px;font-size:12px}.video-rank-row strong{text-align:right}
@media(max-width:800px){.setup-grid{grid-template-columns:1fr}.region-picker{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.setup-screen{padding:8px}.setup-shell{padding:12px;border-radius:20px}.region-picker{grid-template-columns:1fr}.video-rank-row{grid-template-columns:20px 42px 1fr 58px}.video-head{align-items:flex-start;flex-direction:column}}

/* v1.3 — dinamica elettorale non convergente e coalizioni asimmetriche */


/* v1.4 — velocità temporali, maggioranza assoluta e strumenti sandbox */
.short-label{display:none}
.time-btn{white-space:nowrap;padding:9px 10px}
.time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
@media(max-width:760px){.top-actions{gap:4px}.top-actions .time-btn{padding:8px 8px}.top-actions .time-btn .label{display:none}.top-actions .time-btn .short-label{display:inline}.datebox strong{font-size:13px}.datebox small{font-size:10px}}
@media(max-width:430px){.topbar{gap:6px;padding-left:7px;padding-right:7px}.brand-logo{width:34px;height:34px}.top-actions .icon-btn{padding:8px}.time-grid{grid-template-columns:1fr}.datebox small{max-width:130px;white-space:normal;line-height:1.1}}

/* v1.6 — leader, correnti, grandi eventi e trattative di governo */
.party-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.party-detail-card{display:grid;gap:10px;background:linear-gradient(160deg,#fffef9 0%,#f4fbff 100%)}
.party-card-head{display:flex;align-items:center;gap:10px}.party-card-head strong{font-size:17px}.party-card-head span{font-size:10px}
.leader-strip{display:flex;align-items:center;gap:9px;padding:9px;border-radius:13px;background:linear-gradient(135deg,#e7f5fb,#fff3c8);border:1px solid #b9d3de}.leader-strip small{display:block;color:#698294;font-size:11px;font-weight:800;margin-top:2px}
.leader-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#2d668e;color:white;border:3px solid #fff;box-shadow:0 3px 9px #234b6630;font-weight:1000}
.party-score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.party-score-grid>div{background:#edf7fb;border:1px solid #c5dce5;border-radius:10px;padding:7px}.party-score-grid span{font-size:9px}.party-score-grid b{display:block;font-size:16px;color:#254e69;margin-top:2px}
.faction-list{display:grid;gap:5px}.faction-row{display:grid;grid-template-columns:minmax(90px,1fr) 1.7fr 36px;align-items:center;gap:7px;font-size:10px;color:#557185;font-weight:850}.faction-row b{text-align:right}.faction-track{height:7px;background:#dbe8ee;border-radius:99px;overflow:hidden}.faction-track i{display:block;height:100%;border-radius:99px;opacity:.82}
.major-event{border:2px solid #efbc3e;background:linear-gradient(145deg,#fff7d7,#fffdf6);box-shadow:0 9px 22px #9d741929}.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.decision-btn{border:1px solid #b7cad2;background:#fff;border-radius:12px;padding:9px;text-align:left;color:#28516c;box-shadow:0 3px 8px #234c6614}.decision-btn strong{display:block;font-size:12px}.decision-btn small{display:block;margin-top:3px;color:#6d8291;line-height:1.25}.decision-btn:hover{border-color:#e4b330;background:#fff7cf}
.government-game-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:12px;margin-bottom:16px}.agreement-list{display:grid;gap:6px;margin-top:10px}.agreement-list>div{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;padding:8px;background:#f1f8fb;border:1px solid #ccdee6;border-radius:10px}.agreement-list b{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:#2d6e99;color:#fff}.agreement-list span{font-size:12px;font-weight:800;color:#41647a}
.rivalry-box{display:grid;gap:4px;padding:11px;border-radius:13px;background:linear-gradient(135deg,#e8f4fa,#fef4d5);border:1px solid #b8d0db}.rivalry-box span{font-size:10px;text-transform:uppercase;font-weight:950;color:#6a8190}.rivalry-box strong{font-size:20px;color:#274f69}.rivalry-box small{color:#6a8090;font-weight:750;line-height:1.3}.rivalry-box.outsider{background:linear-gradient(135deg,#fff0e8,#fff8d8);border-color:#e0ba8a}
.compact-agreement{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.compact-agreement span{padding:4px 7px;border-radius:999px;background:#eef6fa;border:1px solid #c9dce5;font-size:10px;font-weight:800;color:#557285}
.negotiation-log{display:grid;gap:7px}.negotiation-row{display:grid;grid-template-columns:150px 1fr auto;gap:10px;align-items:center;padding:9px 11px;background:#fffdf7;border:1px solid #b8d0dc;border-radius:12px}.negotiation-row span{font-size:10px;color:#6d8494;font-weight:900}.negotiation-row b{color:#28506a}.negotiation-row small{color:#708493;text-align:right}
@media(max-width:900px){.government-game-grid{grid-template-columns:1fr}.party-cards{grid-template-columns:1fr}.negotiation-row{grid-template-columns:1fr}.negotiation-row small{text-align:left}}
@media(max-width:520px){.decision-grid{grid-template-columns:1fr}.party-score-grid{grid-template-columns:repeat(3,1fr)}.faction-row{grid-template-columns:95px 1fr 34px}}

/* v1.7 — Game UI overhaul: plancia politica luminosa */
:root{
  --game-blue:#2d75ad;--game-blue-deep:#164a73;--game-blue-dark:#123753;
  --game-sky:#dff4ff;--game-cream:#fffaf0;--game-gold:#ffd75c;--game-gold-deep:#d79a22;
  --game-ink:#173b56;--game-muted:#647f91;--game-line:#a8c9d8;--game-soft:#edf8fc;
  --game-shadow:0 14px 34px rgba(35,83,112,.17),0 2px 0 rgba(255,255,255,.7) inset;
}
html,body{background:
  radial-gradient(circle at 14% 4%,#fff 0 4%,transparent 22%),
  linear-gradient(180deg,#e9f8ff 0,#d6edf7 38%,#c9e4ef 100%);color:var(--game-ink)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,#000 0,transparent 55%)}
.app{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
.game-topbar{min-height:68px;padding:8px max(12px,env(safe-area-inset-left));background:linear-gradient(180deg,#3d88bd 0%,#2b6f9f 55%,#245f8c 100%);border-bottom:4px solid #164466;box-shadow:0 6px 18px rgba(22,64,94,.28),inset 0 1px 0 #ffffff55}
.game-topbar:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:linear-gradient(90deg,transparent,#ffd65c 25%,#fff2ac 50%,#ffd65c 75%,transparent);opacity:.82}
.brand-logo{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,#fff3aa,#ffc93d);border:3px solid #fff;box-shadow:inset 0 -4px 0 #cf911d,0 4px 10px #173d5b55;font-family:Georgia,serif;font-size:27px}
.brand-copy{display:grid;line-height:1}.brand-copy b{font-size:15px;letter-spacing:.1em}.brand-copy small{font-size:8px;color:#cfeaff;letter-spacing:.13em;margin-top:4px}
.datebox{display:grid;justify-items:center;line-height:1.1}.datebox .turn-kicker{font-size:9px;letter-spacing:.13em;font-weight:1000;color:#ffe88c}.datebox strong{font-size:17px;margin:2px 0}.datebox small{font-size:10px;color:#d8f0ff;font-weight:800}
.top-actions{align-items:center}.time-console{display:flex;gap:4px;padding:4px;border-radius:15px;background:#133d5d55;border:1px solid #ffffff33;box-shadow:inset 0 2px 8px #10344f55}.time-console .time-btn{min-height:38px;border-radius:10px;box-shadow:inset 0 -2px 0 #0002}.time-console .primary-btn{background:linear-gradient(#ffe47c,#ffc541);color:#264d66;border:1px solid #fff3b2}
.status-strip{max-width:1400px;margin:8px auto 0;padding:0 12px;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#46677d}.status-government,.status-election{display:flex;align-items:center;gap:7px;background:#ffffffbb;border:1px solid #b9d3df;border-radius:999px;padding:6px 10px;box-shadow:0 3px 10px #2b5c7512}.status-government small{font-size:9px;color:#718797;text-transform:none;letter-spacing:0}.status-dot{width:8px;height:8px;border-radius:50%;background:#48bd82;box-shadow:0 0 0 3px #48bd8230}
.game-hud{gap:7px;padding-top:8px}.game-hud .hud-card{display:flex;align-items:center;gap:8px;min-height:53px;background:linear-gradient(180deg,#fffefb,#f2f9fb);border:1px solid #abc8d5;border-radius:14px;padding:7px 9px;box-shadow:0 4px 11px #2d607516,inset 0 1px 0 #fff}.game-hud .hud-card>i{font-style:normal;width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#dff2fa;border:1px solid #bed9e4;font-size:16px}.game-hud .hud-card span{font-size:8px;letter-spacing:.08em}.game-hud .hud-card strong{font-size:15px;line-height:1.1}
.main{max-width:1400px;padding-top:7px}.page{animation:gameIn .2s ease-out}@keyframes gameIn{from{opacity:.2;transform:translateY(5px) scale(.997)}to{opacity:1;transform:none}}
.panel,.game-panel{background:linear-gradient(180deg,#fffef9 0,#f3fafc 100%);border:1px solid #9fc2d2;border-radius:18px;box-shadow:var(--game-shadow)}
.panel-head{background:linear-gradient(180deg,#ffffff,#e8f4f9);border-bottom:1px solid #b8d2dc;padding:11px 14px}.panel-head h2,.panel-head h3{color:#214d6a}
.eyebrow,.command-label{font-size:9px;font-weight:1000;letter-spacing:.13em;text-transform:uppercase;color:#6e8999}
.primary-btn,.soft-btn,.icon-btn,.danger-btn{border-radius:11px;font-size:12px;letter-spacing:.01em}.primary-btn{background:linear-gradient(180deg,#ffe887,#ffc94d);color:#244d67;border:1px solid #e1ad34;box-shadow:inset 0 1px 0 #fff6c5,inset 0 -3px 0 #d99d29,0 4px 10px #21496822}.soft-btn{background:linear-gradient(#f8fdff,#e4f2f8);color:#276184;border:1px solid #a8c9d8}.icon-btn{background:#ffffff1d;border:1px solid #ffffff55}.danger-btn{background:linear-gradient(#f58c94,#df5c68)}
/* menu */
.game-menu{background:radial-gradient(circle at 50% 18%,#f9feff 0 9%,#b8e4f6 39%,#62a9d3 100%);padding:18px}.game-menu:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,transparent 20%,#ffffff22 20% 21%,transparent 21% 78%,#ffffff14 78% 79%,transparent 79%)}
.game-menu-card{position:relative;overflow:hidden;width:min(900px,100%);border-radius:28px;border:2px solid #fff;background:linear-gradient(160deg,#ffffffed,#eaf7fcf2);box-shadow:0 28px 90px #1645654d,inset 0 1px 0 #fff;padding:24px}.game-menu-card:after{content:"";position:absolute;right:-90px;top:-100px;width:280px;height:280px;border-radius:50%;border:45px solid #2f7fb118;pointer-events:none}.menu-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:4px 3px 20px;border-bottom:1px solid #b8d3df}.menu-logo{display:flex;align-items:center;gap:15px}.menu-logo .crest{width:76px;height:76px;border-radius:23px;background:linear-gradient(145deg,#fff6bc,#ffc743);border:4px solid white;color:#275474;font-family:Georgia,serif;box-shadow:inset 0 -5px 0 #d59520,0 8px 20px #28536f2d;font-size:45px}.menu-logo h1{font-size:38px;letter-spacing:.09em;color:#214f6e;text-shadow:0 2px 0 white}.menu-logo p{margin:5px 0 0;color:#5c7a8f;font-weight:750}.menu-seal{width:88px;height:88px;border-radius:50%;display:grid;place-content:center;text-align:center;border:2px dashed #6ea5c2;color:#4a7892;background:#e9f7fc;font-size:9px;letter-spacing:.15em}.menu-seal b{font-size:18px;letter-spacing:.05em;color:#2d6f98}.game-menu .mode-grid{margin-top:18px}.game-menu .mode-card{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;min-height:140px;border:1px solid #9fc5d8;background:linear-gradient(145deg,#fff,#e9f7fc);box-shadow:0 8px 20px #2456721b,inset 0 1px 0 #fff;padding:18px}.game-menu .mode-card:hover{border-color:#3e8eb8;box-shadow:0 12px 28px #24567228}.mode-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(#fdf6cd,#ffda69);border:1px solid #d9b440;box-shadow:inset 0 -3px 0 #d7a832;font-size:30px}.mode-copy h2{margin:3px 0;font-size:20px}.mode-copy p{font-size:12px}.mode-kicker{font-size:9px;font-weight:1000;letter-spacing:.14em;color:#4881a1}.mode-arrow{font-size:40px;color:#6aa5c5}.big-action{padding:12px 18px}.menu-foot{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:16px}.menu-foot span{font-size:10px;font-weight:900;color:#55778b;background:#fff;border:1px solid #bfd5df;border-radius:999px;padding:6px 9px}
/* overview game board */
.country-deck{display:grid;grid-template-columns:210px minmax(430px,1fr) 320px;gap:10px;align-items:start}.left-command,.right-command{display:grid;gap:10px}.leader-command{position:relative;overflow:hidden;min-height:360px;padding:14px;border-radius:20px;background:linear-gradient(165deg,color-mix(in srgb,var(--party) 18%,#fff) 0%,#fffdf7 55%,#edf7fb 100%);border:1px solid color-mix(in srgb,var(--party) 45%,#9fc5d5);box-shadow:var(--game-shadow);text-align:center}.leader-command:before{content:"";position:absolute;inset:0 0 auto 0;height:8px;background:var(--party)}.leader-command-top{display:flex;justify-content:space-between;align-items:center;text-align:left}.leader-portrait{width:112px;height:128px;margin:18px auto 10px;border-radius:56px 56px 28px 28px;display:grid;place-items:center;background:linear-gradient(160deg,color-mix(in srgb,var(--party) 70%,#fff),var(--party));border:5px solid white;box-shadow:0 10px 24px #204f6e31,inset 0 -16px 0 #00000012;position:relative}.leader-portrait:after{content:"";position:absolute;bottom:12px;width:70px;height:34px;border-radius:50% 50% 15px 15px;background:#ffffff2b}.leader-portrait span{font-size:38px;font-weight:1000;color:#fff;text-shadow:0 2px 4px #0005;z-index:1}.leader-portrait.small{width:72px;height:82px;margin:0;border-width:4px}.leader-portrait.small span{font-size:24px}.leader-command h2{font-size:18px;margin:7px 0 2px}.leader-command>p{font-size:11px;margin:0;color:#648092;font-weight:800}.leader-meters{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:15px 0}.leader-meters>div{border-radius:11px;background:#ffffffc7;border:1px solid #c4d9e2;padding:8px}.leader-meters span{display:block;font-size:8px;font-weight:1000;color:#6e8695}.leader-meters b{font-size:20px;color:#2b5974}.command-btn{width:100%;border:1px solid #9fbfce;border-radius:11px;background:#e7f5fb;color:#276181;padding:9px;font-weight:950}.mini-intel{display:grid;gap:2px;padding:12px;border-radius:15px;background:linear-gradient(145deg,#204f73,#173c5a);color:white;box-shadow:0 8px 18px #1a496733}.mini-intel .intel-title{font-size:8px;letter-spacing:.14em;color:#9fd3ee;font-weight:1000}.mini-intel b{font-size:14px}.mini-intel small{color:#c6e4f2}.map-console{overflow:hidden;border-radius:21px;border:1px solid #91b9cc;background:#f8fdff;box-shadow:var(--game-shadow)}.map-console-head{min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(180deg,#fff,#e5f4fa);border-bottom:1px solid #aed0de}.map-console-head h1{font-size:20px;margin:1px 0;color:#24516e}.map-head-actions{display:flex;align-items:center;gap:7px}.election-chip{padding:7px 9px;border-radius:999px;background:#fff4c3;border:1px solid #dfbb4a;font-size:10px;font-weight:950;color:#6a5b2b}.game-map{min-height:590px;background:radial-gradient(ellipse at 45% 44%,#9ee2f5 0,#73c9e8 48%,#52add5 100%)}.game-map:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,#ffffff38,transparent 30%),linear-gradient(135deg,#ffffff10,transparent 35%);pointer-events:none}.game-map .italy-map{height:590px;filter:drop-shadow(0 8px 5px #1f6b8d35)}.game-map .region{stroke:#f9fdff;stroke-width:2.5;filter:drop-shadow(0 1px 0 #1d617f66)}.game-map .region:hover,.game-map .region:focus{stroke:#163f5c;stroke-width:4.5;filter:brightness(1.08) drop-shadow(0 6px 8px #18486355)}.game-map .region-label{font-size:13px;stroke-width:4.5}.map-watermark{position:absolute;left:14px;top:12px;color:#ffffff75;font-weight:1000;letter-spacing:.2em;font-size:10px;z-index:1}.map-compass{position:absolute;right:15px;top:14px;width:42px;height:42px;border:1px solid #ffffff8f;border-radius:50%;display:grid;place-content:center;text-align:center;color:#fff;font-size:9px;font-weight:1000;line-height:1.1;background:#1d69904a;backdrop-filter:blur(5px)}.game-region-card{right:12px;bottom:12px;width:min(285px,47%);border:1px solid #84adc1;background:#fffef4ee;box-shadow:0 9px 26px #164c6a45}.region-card-head{display:flex;justify-content:space-between;align-items:center}.region-card-head h3{display:flex;align-items:center;gap:5px}.region-card-head>strong{font-size:25px;color:#275b78}.right-command .game-event{min-height:188px}.game-event{display:grid;grid-template-columns:66px 1fr;gap:11px;padding:0;overflow:hidden;background:linear-gradient(145deg,#fff8d9,#fffdf6);border:1px solid #dfbc55}.game-event .event-visual{display:grid;align-content:center;justify-items:center;background:linear-gradient(180deg,#ffd95d,#f0b93b);border-right:1px solid #d3a638;color:#6a5023}.game-event .event-visual span{font-size:31px}.game-event .event-visual small{font-size:7px;font-weight:1000;letter-spacing:.12em;margin-top:4px}.game-event .event-content{padding:12px 12px 12px 0}.game-event h3{font-size:16px}.poll-tower{overflow:hidden;border-radius:18px;background:linear-gradient(180deg,#fffefa,#f2f9fc);border:1px solid #a7c7d5;box-shadow:var(--game-shadow)}.tower-head{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;background:#e8f5fa;border-bottom:1px solid #bdd4de}.tower-head h3{margin:2px 0 0;font-size:15px}.mini-link{border:0;background:transparent;color:#2c729b;font-weight:1000;font-size:9px}.poll-rank{padding:4px 8px}.poll-rank-row{display:grid;grid-template-columns:22px 26px 1fr auto auto;gap:6px;align-items:center;padding:8px 3px;border-bottom:1px dashed #ccdde5}.poll-rank-row:last-child{border:0}.poll-rank-row.front-runner{background:linear-gradient(90deg,#fff8d5,transparent);border-radius:9px}.rank-number{font-weight:1000;color:#7691a1;text-align:center}.poll-rank-name{display:grid}.poll-rank-name b{font-size:12px}.poll-rank-name small{font-size:8px;color:#7a8f9d;max-width:98px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poll-rank-row>strong{font-size:15px}.poll-rank-row .tiny-logo{width:25px;height:25px}.poll-rank-row .trend-up,.poll-rank-row .trend-down{font-size:8px}.news-ticker{display:grid;grid-template-columns:auto auto auto 1fr;gap:8px;align-items:center;margin-top:9px;padding:8px 11px;border-radius:13px;background:linear-gradient(90deg,#183f5d,#245e84);color:#d8edf7;box-shadow:0 6px 18px #17415e33;font-size:10px}.news-ticker b{color:#8fc8e5}.news-ticker strong{color:#fff}.ticker-live{color:#ffd85e;font-weight:1000;letter-spacing:.1em}
/* bottom nav */
.game-nav{bottom:max(8px,env(safe-area-inset-bottom));padding:6px;background:linear-gradient(180deg,#2a6d9cdd,#1e537ddd);border:1px solid #ffffff59;border-radius:19px;box-shadow:0 12px 32px #123d5c5a,inset 0 1px 0 #ffffff33}.game-nav .nav-btn{display:grid;grid-template-columns:auto auto;align-items:center;gap:5px;padding:8px 10px;border-radius:12px;color:#d9eff9;font-size:10px}.game-nav .nav-emoji{font-size:16px;margin:0}.game-nav .nav-btn.active{background:linear-gradient(#fff,#e7f5fb);color:#235e84;box-shadow:inset 0 -2px 0 #a7d1e4,0 3px 8px #143d592c}
/* section titles and generic screens */
.game-title{padding:10px 2px 3px}.game-title h1{font-size:27px;letter-spacing:-.02em;color:#204d69}.game-title .eyebrow{color:#3f83a9}.section-title p{font-weight:650;font-size:12px}.party-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.party-game-card{--party:#4c82a4;position:relative;overflow:hidden;background:linear-gradient(150deg,#fffef9,#f0f8fb);border:1px solid color-mix(in srgb,var(--party) 36%,#aac9d7);border-radius:19px;padding:13px 13px 13px 17px;box-shadow:var(--game-shadow)}.party-color-rail{position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--party)}.party-game-head{display:grid;grid-template-columns:34px 44px 1fr auto;gap:9px;align-items:center}.party-position{font-size:17px;font-weight:1000;color:#7892a0}.party-game-name h2{margin:0;font-size:23px;color:#244e68}.party-game-name span{display:block;font-size:8px;font-weight:950;letter-spacing:.09em;color:#718b99;text-transform:uppercase}.party-game-name p{margin:1px 0;font-size:10px;color:#607a8c;font-weight:750}.party-big-score{text-align:right}.party-big-score strong{font-size:24px;color:#214d68}.party-big-score small{font-size:9px}.leader-game-strip{display:grid;grid-template-columns:48px 1fr repeat(3,50px);gap:7px;align-items:center;margin-top:12px;padding:8px;border-radius:13px;background:linear-gradient(90deg,color-mix(in srgb,var(--party) 9%,#fff),#f7fbfd);border:1px solid #c7dce5}.game-avatar{width:44px;height:44px;border:3px solid white;background:var(--party);box-shadow:0 3px 9px #234b6630}.leader-name{display:grid}.leader-name span,.leader-stat span{font-size:7px;letter-spacing:.1em;font-weight:1000;color:#78909e}.leader-name b{font-size:12px}.leader-name small{font-size:9px;color:#78909e}.leader-stat{text-align:center;border-left:1px solid #d3e2e8}.leader-stat b{display:block;font-size:15px;color:#2c5d78}.party-game-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}.party-game-metrics>div{background:#eef7fa;border:1px solid #d0e0e7;border-radius:9px;padding:6px;text-align:center}.party-game-metrics span{display:block;font-size:7px;font-weight:1000;color:#79909e}.party-game-metrics b{font-size:12px;color:#315e77}.faction-title{display:flex;justify-content:space-between;align-items:end;margin:10px 0 4px}.faction-title span{font-size:8px;letter-spacing:.1em;font-weight:1000;color:#6e8897}.faction-title small{font-size:8px;color:#7e929e}.game-factions .faction-row{font-size:9px}.outsider-tag{margin-top:9px;padding:6px 8px;border-radius:8px;background:#fff0e5;border:1px solid #e5b793;color:#9a5a38;font-size:8px;font-weight:1000;letter-spacing:.07em;text-align:center}
/* polls */
.poll-hero{--party:#4c82a4;display:grid;grid-template-columns:270px 1fr;gap:10px;align-items:center;margin-bottom:10px;border-radius:18px;overflow:hidden;background:linear-gradient(100deg,color-mix(in srgb,var(--party) 18%,#fff),#ffffff 55%,#edf8fc);border:1px solid color-mix(in srgb,var(--party) 38%,#a6c7d6);box-shadow:var(--game-shadow)}.poll-hero>div:first-child{padding:15px 18px;border-left:8px solid var(--party)}.poll-hero span{display:block;font-size:8px;letter-spacing:.12em;font-weight:1000;color:#6e8797}.poll-hero strong{display:block;font-size:27px;color:#254e69}.poll-hero small{color:#6a8291;font-weight:700}.poll-hero-battle{display:flex;justify-content:flex-end;gap:6px;padding:10px}.battle-party{display:grid;justify-items:center;min-width:88px;padding:8px;border-radius:12px;background:#ffffffc4;border:1px solid #c5dbe4}.battle-party>b{font-size:9px;color:#7b929f}.battle-party span{font-size:10px;color:#355c73;margin-top:2px}.battle-party strong{font-size:15px}.game-archive{grid-template-columns:205px 1fr}.archive-label{font-size:8px;letter-spacing:.13em;font-weight:1000;color:#6c8798;padding:3px 5px}.game-archive .archive-btn{display:grid;grid-template-columns:42px 1fr;align-items:center;column-gap:7px;border-radius:12px;padding:9px;background:linear-gradient(#fff,#f1f8fb);box-shadow:0 3px 9px #29556d12}.game-archive .archive-btn>b{grid-row:1/3;font-size:19px;color:#31749a}.game-archive .archive-btn>span{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.game-archive .archive-btn small{margin:0}.game-archive .archive-btn.active{background:linear-gradient(135deg,#fff7c8,#eaf7fb);border-color:#d9b845;box-shadow:inset 5px 0 0 #f0bd39,0 5px 14px #2c5b7315}.chart-console{overflow:hidden;border-radius:18px;background:#173e5c;border:1px solid #4c88aa;box-shadow:0 12px 26px #173f5f2b}.chart-console-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:linear-gradient(180deg,#2c688f,#1f5377);color:#dff4ff;border-bottom:1px solid #4f84a0;font-size:9px;font-weight:1000;letter-spacing:.09em}.chart-console-head b{color:#ffdb66}.game-chart{border:0;border-radius:0;background:radial-gradient(circle at 50% 40%,#245b7a,#153b59 78%);box-shadow:inset 0 0 42px #102e4555;padding:8px 10px 10px}.game-chart .chart-gridline{stroke:#4f7992;stroke-dasharray:2 5;opacity:.65}.game-chart .chart-axis{fill:#b9d9e8;font-size:10px}.game-chart .chart-line{stroke-width:3.1;filter:drop-shadow(0 0 2px #ffffff1f)}.game-chart .chart-dot{stroke-width:2.5}.chart-end-label text{font-size:10px;font-weight:1000;paint-order:stroke;stroke:#173b56;stroke-width:3px}.game-chart .chart-legend{padding:4px 4px 0}.game-chart .legend-chip{background:#ffffffed;border-color:#8eb3c4}.all-polls-console{margin-top:14px}
/* elections */
.election-night{--winner:#4b83a7;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:12px;align-items:stretch;margin-bottom:10px;border-radius:21px;overflow:hidden;background:linear-gradient(110deg,color-mix(in srgb,var(--winner) 24%,#fff),#fffdf6 48%,#e8f6fb);border:1px solid color-mix(in srgb,var(--winner) 42%,#9bc1d2);box-shadow:var(--game-shadow);position:relative}.election-night:before{content:"ELEZIONI";position:absolute;right:22px;top:-11px;font-size:65px;font-weight:1000;color:#ffffff4a;letter-spacing:.08em;pointer-events:none}.election-night-copy{padding:20px 20px 18px;border-left:9px solid var(--winner);z-index:1}.election-night-copy>span{font-size:9px;font-weight:1000;letter-spacing:.14em;color:#6a8494}.election-night-copy h1{display:flex;align-items:center;gap:9px;margin:8px 0 4px;font-size:30px;color:#214e68}.election-night-copy p{margin:0;color:#577486}.majority-banner{display:inline-block;margin-top:10px;padding:6px 9px;border-radius:9px;background:#fff1aa;border:1px solid #d9b23a;color:#765c19;font-size:9px;font-weight:1000;letter-spacing:.07em}.election-podium{display:flex;align-items:end;justify-content:center;gap:5px;padding:16px 14px 0;z-index:1}.podium{min-width:92px;display:grid;justify-items:center;gap:2px;padding:8px 7px 12px;background:#ffffffbd;border:1px solid #bad2dc;border-radius:14px 14px 0 0}.podium.p1{min-height:165px;background:linear-gradient(#fff7c7,#fffef8);border-color:#d8b84d}.podium.p2{min-height:140px}.podium.p3{min-height:120px}.podium>span{font-size:19px;font-weight:1000;color:#6d8795}.podium>b{font-size:13px}.podium>strong{font-size:18px;color:#285673}.podium>small{font-size:9px;color:#6d8795}.election-console{margin-top:0}.election-history-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.election-ticket{display:grid;grid-template-columns:1fr 25px auto;gap:4px;align-items:center;padding:8px 9px;border-radius:11px;background:linear-gradient(#fff,#eef7fb);border:1px solid #b8d0db;box-shadow:0 3px 9px #234c6614}.election-ticket>span{grid-column:1/-1;font-size:8px;font-weight:1000;color:#718a98}.election-ticket>b{font-size:12px}.election-ticket>strong{text-align:right;color:#285d7b}.election-ticket>small{grid-column:1/-1;font-size:8px;color:#78909e}.election-dot{filter:drop-shadow(0 1px 2px #0004)}
/* government */
.government-hero{display:grid;grid-template-columns:1.1fr 1.4fr 150px;gap:8px;margin-bottom:10px}.government-seat,.coalition-board,.government-score{border-radius:17px;border:1px solid #a5c5d4;box-shadow:var(--game-shadow);background:linear-gradient(150deg,#fffef8,#edf8fb)}.government-seat{--party:#4b83a7;display:flex;align-items:center;gap:12px;padding:12px;border-left:8px solid var(--party)}.government-seat>div:last-child>span,.coalition-board>span,.government-score>span{font-size:8px;letter-spacing:.12em;font-weight:1000;color:#6f8795}.government-seat h2{margin:2px 0;font-size:17px}.government-seat p{margin:0;font-size:10px;color:#6a8291}.coalition-board{padding:11px}.coalition-big{display:flex;gap:8px;align-items:center;margin:7px 0}.coalition-big>div{display:flex;align-items:center;gap:3px}.coalition-big .party-logo{width:32px;height:32px;font-size:16px}.coalition-board>strong{font-size:13px}.coalition-meter{height:10px;background:#dbe8ee;border-radius:99px;overflow:hidden;position:relative;margin-top:7px}.coalition-meter i{display:block;height:100%;background:linear-gradient(90deg,#57b985,#78cf9f);border-radius:99px}.coalition-meter em{position:absolute;top:-2px;bottom:-2px;width:2px;background:#244d67}.government-score{display:grid;place-content:center;text-align:center;padding:10px}.government-score strong{font-size:40px;color:#2c6484;line-height:.9}.government-score small{font-size:9px;color:#748d9b}.game-timeline:before{width:5px;background:linear-gradient(#2f82b1,#ffd15d,#52b883)}.game-timeline .gov-item{background:linear-gradient(150deg,#fffefa,#eef8fb)}.gov-date{display:flex;gap:7px;align-items:center;font-size:9px;font-weight:1000;color:#708897;letter-spacing:.05em}.gov-date span{color:#d7a72c}.gov-title-row{display:flex;align-items:center;gap:8px;margin:5px 0}.gov-title-row h3{margin:0;flex:1}.negotiation-row{background:linear-gradient(#fffef9,#f1f8fb)}
/* laws */
.law-game-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.law-game{display:grid;grid-template-columns:62px 1fr auto;gap:11px;align-items:center;border-radius:17px;background:linear-gradient(145deg,#fffef9,#eef8fb);border:1px solid #aac7d5;box-shadow:var(--game-shadow);padding:0 12px 0 0;overflow:hidden}.law-folder{align-self:stretch;min-height:126px;display:grid;align-content:center;justify-items:center;background:linear-gradient(#2d74a4,#1f5379);color:#dff3fc;border-right:1px solid #174562}.law-folder span{font-size:7px;letter-spacing:.08em;writing-mode:vertical-rl;transform:rotate(180deg);max-height:70px;overflow:hidden}.law-folder b{color:#ffd75e;font-size:14px;margin-top:6px}.law-copy{padding:12px 0}.law-copy h3{margin:3px 0;font-size:15px}.law-copy p{margin:0;color:#617c8e;font-size:11px}.law-costs{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.law-costs span{font-size:8px;font-weight:900;color:#587587;background:#e8f3f7;border:1px solid #c3d9e2;border-radius:999px;padding:4px 6px}
/* modals */
.modal-backdrop{background:#102f477f;backdrop-filter:blur(4px)}.modal{border-radius:22px;border:2px solid #fff;box-shadow:0 30px 90px #123c5c72}.modal-head{background:linear-gradient(#f8fdff,#e1f1f7);border-bottom:1px solid #aac9d8}.toast{top:82px;background:linear-gradient(#255f87,#183f5e);border:1px solid #ffffff40;color:#fff;border-radius:12px;box-shadow:0 10px 28px #113a5855}
/* responsive game board */
@media(max-width:1180px){.country-deck{grid-template-columns:180px minmax(430px,1fr) 285px}.leader-command{min-height:340px}.game-map,.game-map .italy-map{min-height:540px;height:540px}.poll-rank-name small{max-width:70px}.government-hero{grid-template-columns:1fr 1.2fr 130px}}
@media(max-width:980px){.country-deck{grid-template-columns:1fr 1.55fr}.right-command{grid-column:1/-1;grid-template-columns:1fr 1fr}.left-command{grid-row:1}.map-console{grid-column:2}.leader-command{min-height:320px}.party-gallery{grid-template-columns:1fr}.election-night{grid-template-columns:1fr}.election-podium{padding-top:0}.government-hero{grid-template-columns:1fr 1fr}.government-score{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:6px}.law-game-grid{grid-template-columns:1fr}}
@media(max-width:720px){.game-topbar{grid-template-columns:auto 1fr;gap:7px}.game-topbar .top-actions{grid-column:1/-1;justify-content:space-between}.game-topbar .icon-btn{order:2}.time-console{flex:1}.time-console .time-btn{flex:1}.status-strip{overflow:auto;white-space:nowrap}.game-hud{grid-template-columns:repeat(3,1fr)}.country-deck{grid-template-columns:1fr}.left-command{grid-template-columns:1fr 1fr;grid-row:auto}.leader-command{min-height:auto}.leader-portrait{width:90px;height:100px;margin:10px auto}.map-console{grid-column:auto}.game-map,.game-map .italy-map{min-height:505px;height:505px}.right-command{grid-column:auto;grid-template-columns:1fr}.news-ticker{grid-template-columns:auto auto 1fr}.news-ticker>span:last-child{grid-column:1/-1}.party-game-head{grid-template-columns:28px 40px 1fr auto}.leader-game-strip{grid-template-columns:44px 1fr repeat(3,42px)}.poll-hero{grid-template-columns:1fr}.poll-hero-battle{justify-content:center;padding-top:0}.game-archive{grid-template-columns:1fr}.archive-list{display:grid;grid-template-columns:repeat(2,1fr)}.archive-label{grid-column:1/-1}.election-history-strip{grid-template-columns:repeat(2,1fr)}.government-hero{grid-template-columns:1fr}.government-score{grid-column:auto}.game-nav .nav-btn{grid-template-columns:1fr;gap:1px;padding:7px 9px}.game-nav .nav-emoji{font-size:18px}.game-nav .nav-btn>span:last-child{font-size:8px}.game-menu-card{padding:16px}.menu-seal{display:none}.game-menu .mode-card{grid-template-columns:50px 1fr auto;min-height:120px}.mode-icon{width:48px;height:48px}.menu-logo .crest{width:63px;height:63px;font-size:38px}.menu-logo h1{font-size:29px}}
@media(max-width:500px){.status-government small{display:none}.game-hud{gap:4px}.game-hud .hud-card{gap:5px;padding:6px}.game-hud .hud-card>i{width:25px;height:25px;font-size:13px}.game-hud .hud-card strong{font-size:12px}.left-command{grid-template-columns:1fr}.mini-intel{display:none}.game-map,.game-map .italy-map{min-height:470px;height:470px}.game-region-card{width:68%;bottom:10px}.map-head-actions .election-chip{display:none}.leader-command{display:grid;grid-template-columns:88px 1fr;align-items:center;text-align:left;gap:8px;padding:12px}.leader-command-top{grid-column:1/-1}.leader-command .leader-portrait{grid-row:2/6;margin:0;width:80px;height:92px}.leader-command h2{margin:0}.leader-command>p{font-size:10px}.leader-meters{margin:6px 0}.command-btn{grid-column:2}.game-event{grid-template-columns:54px 1fr}.party-game-card{padding-right:9px}.party-game-head{grid-template-columns:26px 36px 1fr auto;gap:6px}.party-game-card .party-logo{width:35px;height:35px}.party-big-score strong{font-size:20px}.leader-game-strip{grid-template-columns:40px 1fr repeat(3,34px);gap:4px}.leader-stat b{font-size:12px}.party-game-metrics{grid-template-columns:repeat(2,1fr)}.faction-title{align-items:start;flex-direction:column}.poll-hero-battle{gap:3px}.battle-party{min-width:0;flex:1;padding:6px}.battle-party .tiny-logo{width:23px;height:23px}.archive-list{grid-template-columns:1fr}.election-podium{gap:3px}.podium{min-width:0;flex:1;padding-left:4px;padding-right:4px}.election-night-copy h1{font-size:24px}.election-history-strip{grid-template-columns:1fr 1fr}.government-seat{padding:9px}.coalition-big{flex-wrap:wrap}.law-game{grid-template-columns:48px 1fr}.law-game>button{grid-column:2;margin-bottom:10px}.law-folder{grid-row:1/3}.game-menu{padding:8px}.game-menu-card{border-radius:20px}.game-menu .mode-card{grid-template-columns:45px 1fr;gap:10px}.mode-arrow{display:none}.mode-icon{width:43px;height:43px;font-size:24px}.mode-copy h2{font-size:17px}.menu-foot span{font-size:8px}.brand-copy small{display:none}}


/* v1.8 — elettori, promesse, riallineamenti e diagnostica */
.voter-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:10px}.voter-summary-card{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:15px;background:linear-gradient(#fffef9,#eef8fb);border:1px solid #aac8d6;box-shadow:0 5px 14px #224f6815}.voter-summary-card .party-logo{width:35px;height:35px}.voter-summary-card div{display:grid}.voter-summary-card span{font-size:9px;font-weight:1000;color:#698493}.voter-summary-card strong{font-size:18px;color:#275b78}.voter-summary-card small{font-size:8px;color:#78909d}.voter-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.voter-card{border-radius:18px;background:linear-gradient(150deg,#fffefa,#eef8fb);border:1px solid #a8c8d7;box-shadow:var(--game-shadow);padding:12px}.voter-card-head{display:grid;grid-template-columns:48px 1fr auto;gap:9px;align-items:center;border-bottom:1px solid #c7dce5;padding-bottom:9px}.voter-icon{width:46px;height:46px;display:grid;place-items:center;font-size:25px;border-radius:14px;background:linear-gradient(#fff5b8,#ffe176);border:1px solid #d8b63b}.voter-card-head span,.turnout span{font-size:8px;font-weight:1000;letter-spacing:.09em;color:#6f8795}.voter-card-head h2{font-size:15px;margin:1px 0}.voter-card-head p{font-size:9px;color:#6a8291;margin:0}.turnout{text-align:right}.turnout b{display:block;font-size:15px;color:#2b627f}.voter-top{display:grid;gap:5px;padding-top:9px}.voter-party-row{display:grid;grid-template-columns:18px 24px 38px 1fr 45px;gap:6px;align-items:center;font-size:10px}.voter-party-row .party-logo{width:23px;height:23px;font-size:11px}.voter-rank{font-weight:1000;color:#78909d}.voter-track,.promise-track,.diag-track{height:8px;border-radius:99px;background:#dceaf0;overflow:hidden}.voter-track i,.promise-track i{display:block;height:100%;border-radius:99px}.voter-party-row strong{text-align:right;color:#2c607d}.voter-traits{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.voter-traits span{font-size:8px;font-weight:900;border-radius:999px;background:#e8f4f8;border:1px solid #c5dce5;padding:4px 6px;color:#5f7d8f}
.promise-board{margin-bottom:10px;padding:12px;border-radius:18px;background:linear-gradient(145deg,#173f60,#225f88);color:#fff;border:1px solid #ffffff38;box-shadow:0 10px 25px #173d5c35}.promise-board-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.promise-board-head span{font-size:8px;letter-spacing:.12em;color:#a9dcf4;font-weight:1000}.promise-board-head h2{margin:2px 0;font-size:18px}.promise-board-head>strong{font-size:29px;color:#ffe37d}.promise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.promise-card{background:#ffffff14;border:1px solid #ffffff2e;border-radius:13px;padding:9px}.promise-card.done{background:#48b98625;border-color:#7ed7aa66}.promise-card>div:first-child{display:grid;grid-template-columns:20px 1fr auto;gap:5px;align-items:center}.promise-card b{color:#ffe170}.promise-card span{font-weight:900;font-size:11px}.promise-card strong{font-size:11px}.promise-card p{font-size:8px;color:#cce9f6;margin:5px 0 7px}.promise-track{background:#ffffff24}.promise-track i{background:linear-gradient(90deg,#ffd34e,#71d49c)}
.diagnostic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:10px}.diagnostic-card{border-left:6px solid var(--party);border-radius:16px;background:linear-gradient(#fffef9,#edf8fb);border-top:1px solid #abc9d7;border-right:1px solid #abc9d7;border-bottom:1px solid #abc9d7;padding:11px;box-shadow:var(--game-shadow)}.diagnostic-head{display:grid;grid-template-columns:38px 1fr auto;gap:7px;align-items:center}.diagnostic-head .party-logo{width:36px;height:36px}.diagnostic-head>div{display:grid}.diagnostic-head span{font-size:9px;color:#6b8291}.diagnostic-head strong{font-size:17px}.diagnostic-head>b{font-size:14px}.diagnostic-bars{display:grid;gap:5px;margin:10px 0}.diagnostic-bars>div{display:grid;grid-template-columns:125px 1fr 48px;gap:6px;align-items:center;font-size:9px}.diagnostic-bars>div>b{text-align:right}.diag-track{position:relative}.diag-track i{display:block;height:100%;border-radius:99px}.diag-track i.pos{background:#55bd85}.diag-track i.neg{background:#e56d73}.diagnostic-card>small{font-size:8px;color:#748b99}
@media(max-width:900px){.voter-summary{grid-template-columns:repeat(3,1fr)}.voter-grid,.diagnostic-grid{grid-template-columns:1fr}.promise-grid{grid-template-columns:1fr}}
@media(max-width:560px){.voter-summary{grid-template-columns:repeat(2,1fr)}.voter-card-head{grid-template-columns:42px 1fr}.turnout{grid-column:2;text-align:left}.voter-party-row{grid-template-columns:16px 22px 32px 1fr 42px}.diagnostic-bars>div{grid-template-columns:100px 1fr 42px}.promise-board-head h2{font-size:15px}}

/* ===== v1.9 political world ===== */
.game-nav{overflow-x:auto;justify-content:flex-start;scrollbar-width:none;padding-inline:12px}.game-nav::-webkit-scrollbar{display:none}.game-nav .nav-btn{flex:0 0 auto;min-width:82px}
.campaign-dashboard,.institution-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.campaign-score,.electorate-banner{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.campaign-score>*,.electorate-banner>div{background:rgba(255,255,255,.78);border:1px solid rgba(64,125,164,.18);border-radius:16px;padding:12px}.campaign-score span,.electorate-banner span{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:#52738b}.campaign-score strong,.electorate-banner strong{font-size:21px;color:#183f5b}.campaign-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.media-hero{padding:16px;border-radius:18px;background:linear-gradient(135deg,#143e5e,#256d9e);color:white;margin-bottom:12px}.media-hero b{font-size:22px;text-transform:uppercase}.media-hero span{display:block;opacity:.75;margin-top:4px}
.regional-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.regional-card{background:rgba(255,255,255,.88);border:1px solid rgba(55,112,148,.22);border-radius:18px;padding:14px;box-shadow:0 8px 20px rgba(29,80,113,.08)}.regional-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.regional-card-head span{font-size:11px;font-weight:900;letter-spacing:.08em;color:#55758a}.regional-card-head h3{margin:4px 0;font-size:18px}.regional-card-head>b{font-size:12px;max-width:45%;text-align:right}.regional-card p,.regional-card small{color:#5a7485}.regional-mini{display:grid;gap:4px;margin:9px 0;font-size:12px;color:#385c73}
.president-card{display:flex;gap:18px;align-items:center;padding:18px;border-radius:22px;background:linear-gradient(135deg,#fef4c3,#ffffff);border:1px solid #e8c75c}.president-card>div:last-child span{font-size:11px;letter-spacing:.1em;font-weight:900;color:#997514}.president-card h2{margin:4px 0}.ministry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ministry-card{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;background:white;border:1px solid rgba(55,112,148,.18);border-radius:16px;padding:12px}.ministry-card>span{font-size:24px;grid-row:1/3}.ministry-card div{min-width:0}.ministry-card b,.ministry-card small{display:block}.ministry-card small{color:#60798a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ministry-card>strong{grid-column:2;font-size:11px;color:#315c77}.referendum-live{padding:14px;border-radius:16px;background:#eef8ff;border:1px solid #bad9ec;display:grid;gap:5px}.referendum-live strong{font-size:24px;color:#23658d}
.hof-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.hof-grid .metric-card{min-height:120px}.history-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.history-feed article{background:rgba(255,255,255,.9);border:1px solid rgba(49,111,148,.16);border-radius:16px;padding:13px}.history-feed span{font-size:11px;color:#607d90}.history-feed b{display:block;margin:3px 0}.history-feed p{margin:0;color:#5e7180}.replay-shell{display:grid;gap:14px}.replay-stage{min-height:300px;padding:22px;border-radius:22px;background:linear-gradient(160deg,#103752,#1f668f);color:white}.replay-date{font-size:12px;font-weight:900;letter-spacing:.1em;color:#9ed7f3}.replay-stage h2{font-size:28px;margin:8px 0}.replay-ranking{display:grid;gap:7px;margin:18px 0}.replay-ranking>div{display:grid;grid-template-columns:28px 32px 1fr auto;gap:8px;align-items:center;background:rgba(255,255,255,.1);padding:8px 10px;border-radius:12px}.replay-shell input[type=range]{width:100%}
.memory-grid,.policy-grid,.flow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.memory-card,.policy-card,.flow-card{background:white;border:1px solid rgba(51,106,143,.18);border-radius:16px;padding:12px}.memory-card>div{display:flex;align-items:center;gap:8px}.memory-card p,.memory-card small{color:#5a7384}.policy-card{display:grid;gap:8px}.policy-card strong{color:#2b668e}.flow-card{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;text-align:center}.flow-card b{color:#2475a6}.flow-card strong{font-size:18px}
@media(max-width:980px){.regional-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ministry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.memory-grid,.policy-grid,.flow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.campaign-dashboard,.institution-grid{grid-template-columns:1fr}.regional-grid,.ministry-grid,.memory-grid,.policy-grid,.flow-grid,.history-feed{grid-template-columns:1fr}.campaign-score,.electorate-banner{grid-template-columns:1fr 1fr}.campaign-actions{grid-template-columns:1fr}.hof-grid{grid-template-columns:1fr 1fr}.president-card{align-items:flex-start}.game-nav .nav-btn{min-width:72px}}
