:root {
  --ink: #17211d;
  --muted: #69736e;
  --paper: #f4f1e9;
  --card: #fffdf8;
  --line: #d8d2c5;
  --green: #163f34;
  --green-2: #225c49;
  --gold: #bd8f42;
  --red: #8d3d35;
  --blue: #365f83;
  --shadow: 0 14px 40px rgba(27,38,33,.08);
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.muted { color: var(--muted); }
.eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: .17em; font-size: .68rem; font-weight: 800; }

.topbar { height: 78px; display: grid; grid-template-columns: 220px minmax(150px,1fr) auto auto; align-items: center; gap: 20px; padding: 0 24px; color: white; background: linear-gradient(100deg,#0d2d25,#17483a); border-bottom: 3px solid var(--gold); position: sticky; top: 0; z-index: 20; box-shadow:0 5px 24px rgba(0,0,0,.18); }
.brand { display: flex; align-items: center; gap: 12px; }
.brand h1 { font: 700 1.35rem Georgia, serif; margin: 0; letter-spacing: .02em; }
.seal { width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid #dcb66f; outline: 1px solid #dcb66f; outline-offset: -5px; border-radius: 50%; color: #efd59f; font: 700 1.3rem Georgia, serif; }
.turn-info { text-align: center; display: flex; flex-direction: column; font-weight: 650; }
.turn-info .muted { color: #b5c8c0; font-size: .78rem; margin-top: 2px; }
.top-actions { display: flex; gap: 9px; }
.resource-strip { display:flex;gap:6px;align-items:center; }
.resource-pill { padding:7px 10px;border:1px solid rgba(255,255,255,.13);background:rgba(0,0,0,.13);border-radius:7px;min-width:75px; }
.resource-pill small { display:block;color:#a8c5b9;font-size:.57rem;text-transform:uppercase;letter-spacing:.1em; }
.resource-pill strong { font-size:.77rem;color:#fff; }
button { border: 0; border-radius: 8px; padding: 10px 14px; font-weight: 700; color: var(--ink); background: #e8e4db; transition: .16s ease; }
button:hover { transform: translateY(-1px); filter: brightness(.98); }
button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
button.primary { background: var(--gold); color: #17140e; }
button.ghost { color: white; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); }
button.danger { background: #f3dfdc; color: var(--red); }
button.secondary { background: transparent; border: 1px solid var(--line); }
.icon-button { padding: 2px 8px; background: transparent; font-size: 1.8rem; color: var(--muted); }

.app-shell { display: grid; grid-template-columns: 236px minmax(0,1fr); min-height: calc(100vh - 78px); }
.sidebar { border-right: 1px solid var(--line); background: #ece8de; padding: 20px 14px; display: flex; flex-direction: column; justify-content: space-between; position: sticky; top: 78px; height: calc(100vh - 78px); }
nav { display: grid; gap: 4px; }
.nav-item { text-align: left; background: transparent; color: #47514c; padding: 11px 13px; display: flex; gap: 12px; align-items: center; }
.nav-item span { color: #7d8982; width: 16px; text-align: center; }
.nav-item.active { color: white; background: var(--green); box-shadow: 0 5px 16px rgba(22,63,52,.18); }
.government-card { border-top: 1px solid var(--line); padding: 15px 9px 3px; font-size: .78rem; line-height: 1.45; }
.government-card strong { display:block; font-family: Georgia, serif; font-size: .93rem; margin: 3px 0; }

main { padding: 30px clamp(22px,4vw,56px) 70px; max-width: 1600px; width: 100%; margin: 0 auto; }
.page-head { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom: 24px; }
.page-head h2 { font: 700 clamp(1.8rem,3vw,2.6rem) Georgia, serif; margin: 4px 0 0; }
.page-head p { margin: 6px 0 0; color: var(--muted); max-width: 700px; }
.grid { display: grid; gap: 18px; }
.grid.stats { grid-template-columns: repeat(4, 1fr); }
.grid.two { grid-template-columns: 1.45fr 1fr; }
.grid.three { grid-template-columns: repeat(3, 1fr); }
.game-layout { display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.8fr);gap:18px;align-items:start; }
.map-panel { padding:0;overflow:hidden;background:#112f29;color:white;border-color:#1d4e42;position:relative;min-height:560px; }
.map-toolbar { position:absolute;z-index:3;left:20px;right:20px;top:18px;display:flex;justify-content:space-between;align-items:center;pointer-events:none; }
.map-toolbar > * { pointer-events:auto; }
.map-toolbar h3 { margin:0;color:white;font-size:1.18rem; }.map-toolbar small{color:#aec5bc;display:block;margin-top:3px}
.map-stage { position:relative;min-height:560px;background:radial-gradient(circle at 47% 40%,#1b5549 0,#123a32 45%,#0b2924 100%);overflow:hidden; }
.map-stage::after { content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:28px 28px; }
.country-map { width:100%;height:545px;display:block;filter:drop-shadow(0 18px 20px rgba(0,0,0,.28)); }
.country-map .region { stroke:#d7c28d;stroke-width:2;transition:.18s;cursor:pointer;vector-effect:non-scaling-stroke; }
.country-map .region:hover,.country-map .region.selected { filter:brightness(1.2);stroke:#fff2c4;stroke-width:4;transform:translateY(-2px); }
.country-map text { pointer-events:none;fill:#fff;font-size:12px;font-weight:800;text-anchor:middle;text-shadow:0 1px 3px #000; }
.country-map .seat-label { font-size:9px;fill:#d6e1dc; }
.map-legend { position:absolute;left:18px;bottom:17px;right:18px;display:flex;gap:12px;flex-wrap:wrap;padding:10px 12px;background:rgba(4,20,16,.76);border:1px solid rgba(255,255,255,.12);border-radius:9px;z-index:2;backdrop-filter:blur(5px); }
.map-legend span { font-size:.67rem;display:flex;align-items:center;gap:5px;color:#e3eee9; }
.region-inspector { display:grid;gap:14px; }
.region-head { padding:20px;background:linear-gradient(135deg,#173f35,#225d4c);color:#fff;border-radius:10px; }
.region-head h3{font-size:1.55rem;color:#fff;margin:2px 0 4px}.region-head p{margin:0;color:#bcd2c9;font-size:.8rem}
.regional-result { display:grid;grid-template-columns:1fr 48px;gap:8px;align-items:center;padding:7px 0; }
.regional-result .bar { grid-column:1;margin:2px 0;height:5px; }.regional-result b{text-align:right}
.action-grid { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.action-button { text-align:left;padding:11px;background:#efebe2;border:1px solid transparent; }
.action-button:hover{border-color:var(--gold)}.action-button small{display:block;color:var(--muted);font-weight:500;margin-top:3px}
.turn-docket { padding:14px 16px;background:#e9e3d6;border:1px solid var(--line);border-radius:10px;display:flex;gap:12px;align-items:center; }
.turn-docket .week-number { width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font:700 1.1rem Georgia,serif;flex:none; }
.portrait { width:48px;height:48px;border-radius:10px;display:grid;place-items:center;color:#fff;font:700 1rem Georgia,serif;border:2px solid rgba(255,255,255,.35);box-shadow:0 5px 13px rgba(0,0,0,.16);flex:none; }
.person-card { display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:9px;background:#faf7f0; }
.person-card h4{margin:0 0 2px;font-family:Georgia,serif}.person-card p{font-size:.72rem;color:var(--muted);margin:0}.person-card .meters{margin-left:auto;text-align:right;font-size:.67rem;color:var(--muted)}
.character-builder{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:start}.character-preview{background:linear-gradient(155deg,#153d33,#0a241e);border-radius:14px;padding:20px;color:#fff;text-align:center;position:sticky;top:0}.character-preview h3{margin:10px 0 2px;color:#fff}.character-preview p{margin:0;color:#b7cec4;font-size:.78rem}.character-svg{width:180px;height:210px;display:block;margin:auto;filter:drop-shadow(0 12px 15px rgba(0,0,0,.28))}.creator-section{padding:16px 0;border-bottom:1px solid var(--line)}.creator-section:first-child{padding-top:0}.creator-section h3{margin:0 0 12px}.color-pick{height:42px;padding:4px;width:100%}.party-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.party-choice{border:2px solid transparent;background:#f0ece3;text-align:left}.party-choice.selected{border-color:var(--gold);background:#fff8e9}.party-choice small{display:block;color:var(--muted);margin-top:3px}.ideology-axis{display:grid;grid-template-columns:90px 1fr 42px;gap:10px;align-items:center;margin:10px 0}.ideology-axis input{padding:0}.ideology-axis output{text-align:right;font-weight:800}.party-banner{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:24px;background:linear-gradient(120deg,#173f35,#0c2821);color:#fff;border-radius:12px;box-shadow:var(--shadow)}.party-mark{width:76px;height:76px;border-radius:18px;display:grid;place-items:center;font:800 1.4rem Georgia,serif;color:#fff;border:2px solid rgba(255,255,255,.45);box-shadow:inset 0 0 0 5px rgba(255,255,255,.1)}.party-banner h2{margin:0;color:#fff;font:700 1.7rem Georgia,serif}.party-banner p{margin:4px 0 0;color:#c1d2cb}.faction-row{display:grid;grid-template-columns:1fr 70px 80px;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.faction-row .bar{margin:3px 0}.constitution-process{display:flex;gap:5px;align-items:stretch;overflow-x:auto;padding:5px 0 15px}.process-step{min-width:118px;flex:1;padding:11px 9px;border-radius:8px;background:#e8e4dc;border:1px solid var(--line);font-size:.69rem;color:var(--muted);position:relative}.process-step strong{display:block;color:var(--ink);font-size:.71rem;margin-bottom:4px}.process-step.done{background:#dceadf;border-color:#9fc0aa}.process-step.active{background:#fff1cb;border-color:var(--gold);box-shadow:0 4px 16px rgba(189,143,66,.18)}.process-step.failed{background:#f2ddda;border-color:#c9877f}.draft-paper{background:#fffdf7;border:1px solid #cbbfA8;box-shadow:0 9px 30px rgba(44,37,24,.11);padding:24px;font-family:Georgia,serif;line-height:1.6}.draft-paper h3{text-align:center;text-transform:uppercase;letter-spacing:.08em}.leadership-ballot{border:1px solid var(--line);padding:14px;border-radius:10px;background:#faf7f0}.candidate-choice{display:flex;align-items:center;gap:12px;padding:11px;border:2px solid transparent;border-radius:9px;background:#eee9df;margin:8px 0}.candidate-choice.selected{border-color:var(--gold);background:#fff8e7}.custom-party-fields{padding:14px;background:#ebe6dc;border-radius:9px;margin-top:10px}.hidden{display:none!important}
.cabinet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.trait{font-size:.61rem;padding:3px 6px;border-radius:20px;background:#e5dfd3;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.chamber-svg { width:100%;height:350px;overflow:visible; }.chamber-svg circle{stroke:rgba(0,0,0,.25);stroke-width:.5}.chamber-dais{fill:#d3c7ad;stroke:#9f8f71;stroke-width:2}
.campaign-header{display:grid;grid-template-columns:1.4fr repeat(3,.55fr);gap:12px;margin-bottom:18px}.campaign-resource{background:#173f35;color:#fff;border-radius:10px;padding:15px}.campaign-resource small{display:block;color:#adc5bb;text-transform:uppercase;font-size:.61rem;letter-spacing:.1em}.campaign-resource strong{display:block;font:700 1.35rem Georgia,serif;margin-top:3px}
.standing-card{background:linear-gradient(145deg,#fffdf8,#eee8db)}
.leaderboard-row{display:grid;grid-template-columns:34px 1fr 55px;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.screen-title{display:flex;gap:14px;align-items:center}.live-dot{width:8px;height:8px;background:#db5b4f;border-radius:50%;box-shadow:0 0 0 5px rgba(219,91,79,.15);animation:pulse 1.8s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(219,91,79,0)}}
.card { background: var(--card); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); padding: 20px; }
.card h3 { margin: 0 0 14px; font: 700 1.1rem Georgia, serif; }
.stat-card .label { color: var(--muted); text-transform: uppercase; font-size: .68rem; letter-spacing: .12em; font-weight: 800; }
.stat-card .value { font: 700 1.8rem Georgia, serif; margin: 7px 0 2px; }
.delta { font-size: .76rem; font-weight: 700; }
.positive { color: #27704e; }.negative { color: var(--red); }.neutral { color: var(--muted); }
.bar { height: 7px; border-radius: 10px; background: #dfddd5; overflow: hidden; margin-top: 10px; }
.bar > i { display:block; height:100%; border-radius:inherit; background: var(--green-2); }

.event-card { border-left: 4px solid var(--gold); }
.event-card h3 { font-size: 1.25rem; }
.event-options { display: grid; gap: 9px; margin-top: 16px; }
.event-options button { text-align:left; background:#f0ede5; border:1px solid transparent; }
.event-options button:hover { border-color: var(--gold); }
.agenda-item, .list-row { display:flex; justify-content:space-between; align-items:center; gap:14px; padding: 12px 0; border-bottom:1px solid #e7e2d8; }
.agenda-item:last-child, .list-row:last-child { border-bottom: 0; }
.agenda-item strong, .list-row strong { display:block; }
.agenda-item small, .list-row small { color:var(--muted); }
.tag { display:inline-block; padding:4px 8px; border-radius:20px; background:#e7e4db; font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
.tag.green { background:#dbe9df; color:#1f6241; }.tag.red{background:#f2ddda;color:#843a32}.tag.gold{background:#f1e6ca;color:#775819}.tag.blue{background:#dce7f0;color:#315b7d}

.hemicycle { display: flex; flex-wrap: wrap; gap: 4px; justify-content:center; max-width:600px; margin: 18px auto; }
.seat { width: 10px; height: 10px; border-radius:50% 50% 35% 35%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
.party-row { display:grid; grid-template-columns: 18px 1fr 45px 50px; gap:9px; align-items:center; padding:9px 0; border-bottom:1px solid #e7e2d8; }
.swatch { width:12px;height:12px;border-radius:50%; }
.party-row .seats { font-weight:800;text-align:right; }

.catalog-controls { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.catalog-controls input { flex:1; min-width:210px; }
input, select, textarea { background:#fff; border:1px solid var(--line); border-radius:8px; padding:10px 12px; color:var(--ink); }
.bill-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.bill-card { display:flex; flex-direction:column; min-height:230px; }
.bill-card .bill-icon { font: 700 1.4rem Georgia,serif; color:var(--gold); }
.bill-card p { color:var(--muted); font-size:.85rem; line-height:1.45; flex:1; }
.bill-card footer { display:flex; justify-content:space-between; align-items:center; }
.bill-card button { padding:8px 11px; }

.constitution-list { display:grid; gap:12px; }
.article { display:grid; grid-template-columns:70px 1fr auto; gap:16px; align-items:center; padding:14px 0; border-bottom:1px solid #e7e2d8; }
.article .roman { color:var(--gold);font:700 1.1rem Georgia,serif; }
.article p { margin:4px 0 0;color:var(--muted);font-size:.82rem; }
.article select { min-width:220px; }
.locked { color:var(--red);font-size:.74rem;font-weight:800; }

.chart { display:flex; align-items:flex-end; gap:4px; height:150px; padding-top:15px; border-bottom:1px solid var(--line); }
.chart i { display:block; flex:1; min-width:4px; background:var(--green-2); opacity:.75; border-radius:3px 3px 0 0; }
.metric-row { display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid #e7e2d8; }
.ledger { font-variant-numeric:tabular-nums; }
.timeline { position:relative;padding-left:24px; }
.timeline::before { content:"";position:absolute;left:6px;top:9px;bottom:9px;width:1px;background:var(--line); }
.timeline-item { position:relative;padding:0 0 20px 12px; }
.timeline-item::before { content:"";position:absolute;left:-22px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--gold);border:2px solid var(--paper); }
.timeline-item time { color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em; }
.timeline-item p { margin:4px 0 0;line-height:1.45; }

dialog { width:min(760px,calc(100vw - 30px)); max-height:88vh; border:1px solid var(--line); border-radius:14px; padding:0; box-shadow:0 25px 80px rgba(0,0,0,.3); background:var(--card); color:var(--ink); }
dialog::backdrop { background:rgba(12,22,18,.66);backdrop-filter:blur(3px); }
.modal-head { display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line); }
.modal-head h2 { margin:3px 0 0;font:700 1.55rem Georgia,serif; }
.modal-body { padding:24px;overflow:auto;max-height:calc(88vh - 84px); }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px; }
.field label { display:block;font-size:.76rem;font-weight:800;margin-bottom:6px; }
.field input,.field select,.field textarea { width:100%; }
.prediction { background:#ece9e1;padding:14px;border-radius:9px;margin:16px 0; }
.vote-total { display:flex;gap:8px;margin:10px 0; }
.vote-total span { flex:1;text-align:center;padding:12px;border-radius:7px;font-weight:800; }
.vote-total .yes{background:#dbe9df;color:#1f6241}.vote-total .no{background:#f2ddda;color:#843a32}.vote-total .abstain{background:#e7e4db;color:#626963}
textarea.save-code { min-height:170px;font: .72rem ui-monospace,monospace;resize:vertical; }
.toast { position:fixed;right:24px;bottom:24px;z-index:100;background:#17211d;color:#fff;padding:13px 18px;border-radius:9px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;max-width:390px; }
.toast.show { opacity:1;transform:none; }
.empty { text-align:center;color:var(--muted);padding:36px 15px; }
.portrait-player{width:48px;height:48px;overflow:hidden;border-radius:10px;flex:none;box-shadow:0 5px 13px rgba(0,0,0,.16)}.portrait-player .character-svg{width:48px;height:56px;margin-top:-4px;filter:none}
.candidate-choice{text-align:left;width:100%}.candidate-choice span:nth-child(2){min-width:0}.candidate-choice strong,.candidate-choice small{display:block}.candidate-choice small{color:var(--muted);margin-top:3px;line-height:1.3}
.head-actions,.whip-buttons{display:flex;gap:8px;flex-wrap:wrap}.coalition-total{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:#fff;border-radius:10px;padding:16px;margin:14px 0}.coalition-total strong{font:700 1.7rem Georgia,serif}.article-editor{display:grid;grid-template-columns:82px 1fr;gap:10px;align-items:start;margin:9px 0}.article-editor strong{padding-top:10px;color:var(--gold)}.article-editor textarea{min-height:74px;resize:vertical}.agenda-bill{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.agenda-bill small{display:block;color:var(--muted);margin-top:4px}.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:620px;overflow:auto;margin-top:14px}.member-row{display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;text-align:left;background:#f4f1e9;border-color:transparent;padding:9px}.member-row strong,.member-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-row small{font-size:.68rem;color:var(--muted);margin-top:2px}.mini-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:.68rem;font-weight:900;flex:none}.member-profile{display:flex;gap:14px;align-items:center;margin-bottom:18px}.member-profile .mini-avatar{width:58px;height:58px;font-size:1rem}.office-hero{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px}.institution-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow)}.institution-card.guardian{background:linear-gradient(145deg,#173f35,#245e4e);color:#fff}.institution-card.guardian .eyebrow,.institution-card.guardian p{color:#d6e3dc}.institution-card h3{margin:7px 0}.institution-card>strong{font:700 1.3rem Georgia,serif}.institution-card p{font-size:.82rem;line-height:1.5;color:var(--muted)}.institution-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.institution-stats span{background:#eeebe3;border-radius:8px;padding:12px;font-size:.75rem}.institution-stats strong{display:block;font-size:1.3rem}.roster-strip{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px}.roster-strip span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:.57rem;font-weight:800}.roster-strip b{align-self:center;margin-left:5px}.court-seat{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #e7e2d8}.court-seat strong,.court-seat small{display:block}.court-seat small{color:var(--muted);font-size:.68rem}.council-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.council-grid>div{background:#f1eee6;border-radius:8px;padding:13px}.council-grid strong,.council-grid small{display:block}.council-grid small{color:var(--muted);font-size:.7rem;margin-top:6px}.roll-call{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;max-height:260px;overflow:auto;margin-top:10px}.roll-call span{padding:6px;border-radius:5px;background:#eeebe3;font-size:.7rem}.roll-call .yes{border-left:3px solid #388057}.roll-call .no{border-left:3px solid #a34d43}.roll-call .abstain{border-left:3px solid #8a887e}
.simulation-toolbar{display:flex;align-items:center;gap:8px;background:linear-gradient(#71808a,#55636c);border:1px solid #47535b;color:#fff;padding:8px 10px;margin:-8px -8px 16px;border-radius:8px;box-shadow:inset 0 1px rgba(255,255,255,.28),0 2px 5px rgba(0,0,0,.18)}.simulation-toolbar>div{display:grid;grid-template-columns:34px 1fr;column-gap:8px;margin-right:auto}.simulation-toolbar strong{font-size:.86rem}.simulation-toolbar small{grid-column:2;color:#dbe0e3;font-size:.66rem}.toolbar-icon{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:5px;background:#3a474f;font-size:1.2rem}.simulation-toolbar button{background:#e7ebed;color:#344048;border-color:#c2c9cd;box-shadow:inset 0 1px #fff}.simulation-toolbar button.primary{background:#eaa52c;color:#fff;border-color:#cc8c20}.parliament-dock{position:sticky;bottom:8px;z-index:4;display:flex;align-items:center;gap:3px;width:max-content;max-width:100%;margin:18px auto 0;padding:5px;background:#56636c;border:1px solid #3e484e;border-radius:8px;box-shadow:0 5px 18px rgba(0,0,0,.25)}.parliament-dock span{width:30px;height:27px;display:grid;place-items:center;background:#e9ecee;color:#5a656c;font-size:.65rem;border-radius:3px}.parliament-dock b{padding:0 12px;color:white}.parliament-dock button{background:#e9ecee;color:#4a565d}.party-directory-row{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.party-directory-row small{display:block;color:var(--muted);margin-top:3px}.party-logo{width:42px;height:42px;border-radius:7px;display:grid;place-items:center;color:white;font-style:normal;font-size:.7rem;font-weight:900}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin:8px 0 14px}.player-vote-docket{margin-bottom:18px;border-top:4px solid var(--gold)}.player-vote-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--line)}.player-vote-card strong,.player-vote-card small{display:block}.player-vote-card small{color:var(--muted);margin-top:4px}.personal-ballot{display:flex;gap:5px}.personal-ballot button.selected{outline:3px solid rgba(211,155,56,.32)}.personal-ballot .yes{background:#327657;color:#fff}.personal-ballot .no{background:#9b463f;color:#fff}.personal-ballot .abstain{background:#77786f;color:#fff}.union-banner{display:flex;flex-direction:column;gap:4px;background:#edf0ee;border-left:5px solid #708078;padding:14px;margin-bottom:12px}.union-banner.active{background:#f2e7cd;border-color:var(--gold)}.cabinet-appoint-row{display:grid;grid-template-columns:1fr minmax(210px,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.cabinet-appoint-row strong,.cabinet-appoint-row small{display:block}.cabinet-appoint-row small{color:var(--muted);margin-top:3px}.prefecture-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.prefecture-grid>div{background:#f1eee6;border-radius:8px;padding:12px}.prefecture-grid strong,.prefecture-grid small{display:block}.prefecture-grid small{color:var(--muted);margin-top:4px}.guardian-race{display:grid;grid-template-columns:76px 1fr auto;gap:18px;align-items:center;padding:20px;margin-bottom:18px;border-radius:12px;color:#fff;background:radial-gradient(circle at 15% 20%,#365f79,#1b3447 60%,#122633);box-shadow:var(--shadow)}.guardian-race h2,.guardian-race p{margin:4px 0}.guardian-race .eyebrow,.guardian-race p,.guardian-race small{color:#d7e3e9}.guardian-seal{width:70px;height:70px;border:3px double #e1b85e;border-radius:50%;display:grid;place-items:center;font:700 2.4rem Georgia,serif;color:#e1b85e}.guardian-actions{display:flex;flex-direction:column;gap:7px;align-items:flex-end}

@media(max-width:1180px){.resource-strip{display:none}.topbar{grid-template-columns:220px 1fr auto}}
@media(max-width:1050px){.grid.stats{grid-template-columns:repeat(2,1fr)}.bill-grid{grid-template-columns:repeat(2,1fr)}.grid.two,.game-layout{grid-template-columns:1fr}.topbar{grid-template-columns:auto 1fr}.turn-info{display:none}.top-actions .ghost{display:none}.map-panel,.map-stage{min-height:500px}.country-map{height:500px}}
@media(max-width:1050px){.office-hero{grid-template-columns:1fr}.member-grid{grid-template-columns:repeat(2,1fr)}.council-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1050px){.prefecture-grid{grid-template-columns:repeat(2,1fr)}.guardian-race{grid-template-columns:60px 1fr}.guardian-actions{grid-column:1/-1;align-items:stretch}}
@media(max-width:720px){.topbar{height:auto;padding:10px 14px}.brand .eyebrow{display:none}.app-shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:63px;z-index:30;border:0;border-top:1px solid var(--line);padding:5px;background:#ece8de}.sidebar nav{display:flex;overflow-x:auto}.nav-item{font-size:0;min-width:48px;justify-content:center;padding:10px}.nav-item span{font-size:1.1rem}.government-card{display:none}main{padding:22px 15px 86px}.top-actions .next-turn{font-size:.78rem;padding:9px}.grid.stats,.grid.three,.bill-grid{grid-template-columns:1fr}.page-head{align-items:start;flex-direction:column}.article{grid-template-columns:48px 1fr}.article select,.article .locked{grid-column:2;min-width:100%}.form-row{grid-template-columns:1fr}.map-panel,.map-stage{min-height:430px}.country-map{height:430px}.map-toolbar{left:12px;right:12px}.map-legend{display:none}.campaign-header{grid-template-columns:1fr 1fr}.campaign-header .campaign-resource:first-child{grid-column:1/-1}.cabinet-grid{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr 1fr}.character-builder{grid-template-columns:1fr}.character-preview{position:relative}.party-choice-grid{grid-template-columns:1fr}.constitution-process{padding-bottom:10px}.party-banner{grid-template-columns:auto 1fr}.party-banner>.character-svg{grid-column:1/-1;width:120px;height:140px}.faction-row{grid-template-columns:1fr 58px}.faction-row .tag{grid-column:1/-1}.candidate-choice{padding:8px}}
@media(max-width:720px){.member-grid,.council-grid,.roll-call{grid-template-columns:1fr}.agenda-bill{align-items:flex-start;flex-direction:column}.article-editor{grid-template-columns:1fr}.article-editor strong{padding:0}.mp-register .screen-title{align-items:flex-start;flex-direction:column}.mp-register input{width:100%}}
@media(max-width:720px){.simulation-toolbar{overflow-x:auto}.simulation-toolbar small{display:none}.player-vote-card,.cabinet-appoint-row{display:flex;flex-direction:column;align-items:stretch}.prefecture-grid{grid-template-columns:1fr}.personal-ballot button{flex:1}.guardian-race{grid-template-columns:1fr;text-align:center}.guardian-seal{margin:auto}.parliament-dock span:nth-child(n+6){display:none}}
