/* The game workspace: map first, one task at a time. */
html{font-size:15px;scroll-behavior:smooth}body{background:#f3f0e8}button,input,select{font:inherit}button{transition:background .16s,box-shadow .16s;touch-action:manipulation}button:hover:not(:disabled){filter:brightness(.95)}button:active:not(:disabled){transform:translateY(1px)}:focus-visible{outline:3px solid var(--gilt);outline-offset:3px}[hidden]{display:none!important}
.skip{position:fixed;left:12px;top:-60px;z-index:30;background:var(--sheet);padding:12px}.skip:focus{top:12px}
.top{gap:18px;padding:13px 24px;box-shadow:none;flex-wrap:nowrap;position:relative;min-height:68px}.top h1{font-size:25px}.top .tag{margin:0}.top .country{display:none}.top .stat{font-size:10px}.top .stat b{font-size:17px}.top button{padding:9px 12px;white-space:nowrap;font-size:13px}.top button.pulse{animation:none}.top .badge{display:none}
.workspace-nav{display:flex;gap:26px;padding:0 26px;border-bottom:1px solid var(--line);background:var(--sheet)}.workspace-nav button{border:0;border-bottom:3px solid transparent;background:none;padding:15px 2px 12px;color:var(--slate);font-weight:500;font-size:14px}.workspace-nav button[aria-pressed=true]{border-color:var(--moss);color:var(--ink)}.workspace-nav .nav-note{margin-left:auto;align-self:center;font-size:12px;color:var(--slate)}
.layout2{grid-template-columns:minmax(0,1fr) 340px;gap:22px;max-width:1800px;padding:22px 26px 32px;align-items:start}.layout2 main{grid-column:1;grid-row:1;min-width:0}.side{grid-column:2;grid-row:1;min-width:0;gap:16px}.workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.workspace-heading h2{font-size:28px;letter-spacing:-.7px}.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--slate);margin-bottom:7px}.phase{font-size:12px;color:var(--moss);background:#e4ebe1;border:1px solid #ccd9c9;border-radius:4px;padding:6px 10px;white-space:nowrap}.satis{font-size:12px;margin-bottom:14px}.sbar{height:12px;overflow:visible;border:0;margin-right:50px}.sbar i{border-radius:10px}.sbar b{right:-53px;top:-4px;font-size:11px}.satis .tick,.satis .mix{display:none}
.island-frame{border:1px solid #b4c7c3;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #183e4610}.map-toolbar{display:flex;gap:12px;align-items:center;padding:11px 14px;background:#fafbf5;border-bottom:1px solid #ccd6c8}.map-toolbar label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--slate)}.map-toolbar select{min-width:0;max-width:170px;padding:6px 22px 6px 8px;border:1px solid #d3d9cb;border-radius:4px;background:#fffdf8;color:var(--ink);font-size:12px}.map-toolbar label:last-child{margin-left:auto}.mapwrap{overflow:hidden}#map{aspect-ratio:auto;width:100%;height:clamp(390px,60vh,740px);border:0;border-radius:0;touch-action:none}.mapctl{top:auto;bottom:16px;right:16px;gap:5px}.mapctl button{height:36px;min-width:36px;font-size:14px;background:#173c49;border-color:#6e939c}.mapkey{padding:10px 14px;margin:0;background:#fafbf5;font-size:11px;gap:8px 18px;color:#536e62}.mapkey .map-instruction{margin-left:auto}.outstrip{margin:12px 0 0;border:0;border-radius:6px;padding:12px 16px;gap:8px 20px;line-height:1.5}.outstrip div{white-space:normal}.outstrip small{display:inline-block}.outstrip .lbl{font-size:12px}.outstrip b{font-size:15px}
.side .thisyear{border:1px solid var(--line);padding:0;border-radius:8px;overflow:hidden;background:var(--sheet)}.tyhead{padding:18px 18px 8px;gap:6px;display:block}.tyhead h2{font-size:22px;margin-bottom:8px}.tyhead .hint{font-size:12px;line-height:1.5;display:block}.year-tabs{display:flex;padding:4px 12px 0;gap:4px;border-bottom:1px solid var(--line)}.year-tabs button{flex:1;border:0;border-bottom:2px solid transparent;background:transparent;padding:11px 3px;font-size:12px;color:var(--slate)}.year-tabs button[aria-pressed=true]{border-color:var(--gilt);color:var(--ink);font-weight:600}.side #brief,.side #decide,.side #ref{margin:0;padding:16px 18px;border:0;border-radius:0;background:none;max-height:calc(100dvh - 325px);min-height:150px;overflow:auto;scrollbar-width:thin}.side .ref h2,.decide h2{font-size:17px;margin-bottom:9px}.hint{font-size:12px;line-height:1.5}.cards{gap:14px}.card{padding:12px;background:#f4f1e9;border:0;border-radius:6px}.card h3{font-size:17px;line-height:1.3}.card .why,.card .opts button,.ref .res{font-size:13px;line-height:1.55}.card .opts button{padding:10px}.card .expect{font-size:12px;line-height:1.55}.card .opts button.on{background:#e0e9dc;color:#254b39;border-color:#6e8a68}.side .brief{margin:0;border:0}.side .brief .bl{padding:12px 0;line-height:1.6}.year-footer{padding:14px 18px;border-top:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--slate)}.year-footer strong{color:var(--ink);font-weight:500}.year-guide{padding:0 3px}.year-guide h3{font-family:'IBM Plex Sans',sans-serif;font-size:12px;font-weight:500;margin:0 0 10px}.year-guide ol{padding:0;margin:0;list-style:none;counter-reset:steps}.year-guide li{counter-increment:steps;display:flex;align-items:baseline;gap:12px;margin:7px 0;font-size:12px;color:var(--slate)}.year-guide li:before{content:'0' counter(steps);font-family:'IBM Plex Mono';font-size:11px;color:var(--gilt)}
.detail{position:static;width:auto;border-radius:8px;padding:18px;background:#234b53;box-shadow:none;max-height:none;line-height:1.65}.detail h3{font-size:23px;margin-bottom:12px}.detail button{padding:9px 11px}.detail .district-actions{display:flex;flex-wrap:wrap;gap:8px}.detail .district-actions button:last-child{background:transparent;border:1px solid #91aaa8;color:#fff}.district-kicker{font-size:10px;letter-spacing:1px;color:#bed0ca;margin-bottom:6px;text-transform:uppercase}.tip{font-size:12px;max-width:230px}
.under{display:block;margin:0}.under>.panel{padding:24px;border:0;border-radius:8px;min-width:0}.under>.panel>h2{font-size:25px;margin-bottom:10px}.under>.panel h2.sec{font-size:13px}.under .ctl{max-width:660px;padding:8px 0}.ctl label{font-size:14px}.ctl input[type=range]{min-height:24px}.under .kv{gap:10px 24px;font-size:14px}.under .head b{font-size:28px}.under .heads{grid-template-columns:repeat(4,1fr);margin:20px 0}.under .heads .head{padding:14px}.under .head canvas{height:40px}.under .toggles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.under .toggles button{font-size:13px;padding:12px}.under .toggles small{font-size:12px;margin-top:4px}.under .alloc{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.under .log{font-size:14px;max-height:65vh;line-height:1.7}.under .log p{padding:8px 12px}.under .ref{margin-top:22px}.spectrum{display:none}.model-note{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);color:var(--slate);font-size:13px;line-height:1.65;max-width:70ch}.model-note strong{color:var(--ink)}.ledger .ok,.ledger .no{color:var(--slate)}
.modal .box{max-width:650px;padding:30px;max-height:88dvh}.modal p,.modal li{line-height:1.6}.intro-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.intro-steps b{display:block;font-family:Fraunces,serif;font-size:19px;margin:5px 0}.intro-steps p{font-size:12px;margin:0;color:var(--slate)}.intro-steps span{font-family:'IBM Plex Mono';color:var(--gilt);font-size:11px}.modal details{border-top:1px solid var(--line);padding-top:8px}.modal details summary{font-size:13px}.modal details p{font-size:13px}.modal .box>h2{font-size:36px;letter-spacing:-1px}.modal .hint{line-height:1.6}.modal .modal-dismiss{background:transparent;border:1px solid var(--line)}
@media(min-width:1450px){.layout2{grid-template-columns:minmax(0,1fr) 370px;gap:26px}.side #brief,.side #decide,.side #ref{max-height:calc(100dvh - 350px)}}
@media(max-width:1100px){.top{gap:12px;padding:12px 18px}.top .tag{display:none}.layout2{grid-template-columns:minmax(0,1fr) 310px;gap:16px;padding:18px}.workspace-heading h2{font-size:24px}.phase{display:none}.workspace-nav{padding:0 18px}.workspace-nav .nav-note{display:none}.map-toolbar{flex-wrap:wrap;gap:6px}.map-toolbar label:last-child{margin-left:0}.under .heads{grid-template-columns:1fr 1fr}.under .kv{grid-template-columns:1fr}}
@media(max-width:800px){.top{flex-wrap:wrap;gap:12px}.top h1{margin-right:auto}.top .stat{order:2;flex:1}.top .spacer{display:none}.top #b_auto{display:none}.top #b_help{font-size:12px;padding:8px}.layout2{grid-template-columns:1fr;padding:16px;gap:20px}.layout2 main{grid-column:1;grid-row:1}.side{grid-column:1;grid-row:2}.side #brief,.side #decide,.side #ref{max-height:none}.workspace-nav{gap:22px;overflow:auto;padding:0 16px}.workspace-nav button{white-space:nowrap;padding-top:12px}.workspace-heading{margin-bottom:14px}.workspace-heading h2{font-size:26px}.eyebrow{font-size:9px}#map{height:440px}.map-instruction{display:none}.map-toolbar{justify-content:space-between}.map-toolbar label{gap:5px;font-size:11px}.map-toolbar select{max-width:135px;font-size:11px}.mapkey{font-size:10px;gap:8px}.under>.panel{padding:18px}.under .alloc,.under .toggles{grid-template-columns:1fr}.intro-steps{gap:12px}.modal .box{padding:24px}.top .stat b{font-size:15px}.top .stat{font-size:9px}}
.rename-country{padding:0;margin-top:7px;border:0;background:none;font-size:11px;color:var(--slate);text-decoration:underline;text-underline-offset:3px}.workspace-heading h2{overflow-wrap:anywhere}.top .stat,.head b,.kv i{font-variant-numeric:tabular-nums}
.budget-readout{margin:20px 0;padding:16px;background:var(--paper);border-radius:6px}.budget-readout p{margin-bottom:0}.budget-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.budget-facts span{font-size:11px;color:var(--slate);display:block}.budget-facts b{font-family:'IBM Plex Mono';font-weight:500;font-size:23px}.control-group{border-top:1px solid var(--line);padding:8px 0;margin-top:16px}.control-group summary{font-size:14px}.under .ctl{padding:4px 0}.under .alloc{margin:12px 0 20px}
@media(max-width:1000px){.budget-facts{grid-template-columns:1fr 1fr}}
@media(max-width:800px){#map{height:340px}.workspace-nav{gap:14px;scrollbar-width:thin}.workspace-nav button{font-size:12px}.detail{scroll-margin-top:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.trade-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.trade-heading h2{font-size:27px}.trade-heading button,.port-actions button{border:1px solid var(--line);border-radius:5px;padding:10px 13px;background:var(--paper);color:var(--ink);font-size:13px}.trade-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;background:var(--sea);color:var(--sheet);padding:20px;border-radius:7px;margin:22px 0}.trade-facts span{display:block;font-size:12px;color:#cbdcd7}.trade-facts b{font:500 25px 'IBM Plex Mono';display:block;margin-top:5px}.trade-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.trade-columns h3{font-size:13px!important;text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important}.account-row{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.account-row b{font:500 13px 'IBM Plex Mono';white-space:nowrap}.port-plan{margin:26px 0;padding:22px;background:var(--paper);border:1px solid var(--line);border-radius:8px}.port-plan>h3{font:600 23px Fraunces,serif!important;text-transform:none!important;letter-spacing:-.3px!important;color:var(--ink)!important}.port-plan p{font-size:13px;line-height:1.7}.port-plan h4{font-size:13px;margin:10px 0 0}.port-plan progress{width:100%;accent-color:var(--moss);height:18px}.vote-preview{border-top:1px solid var(--line);padding-top:16px}.port-actions{display:flex;gap:8px;flex-wrap:wrap}.port-actions button{background:var(--sheet)}.port-actions button[aria-pressed=true]{background:var(--moss);color:white;border-color:var(--moss)}.port-last{font-size:12px;border-top:1px solid var(--line);margin-top:14px;padding-top:12px;color:var(--slate)}.trade-empty{padding:22px;margin:18px 0;background:var(--paper);font-size:14px}.trade-history{width:100%;font-size:13px;border-collapse:collapse}.trade-history caption{text-align:left;font-weight:600;margin:0 0 12px}.trade-history td,.trade-history th{padding:10px 8px;border-bottom:1px solid var(--line);text-align:right}.trade-history td:first-child,.trade-history th:first-child{text-align:left}.trade-history td{font-family:'IBM Plex Mono';font-size:12px}.account-warning{border-left:3px solid var(--gilt);padding:10px 12px;background:#f6efdb;font-size:13px;line-height:1.6}#annual-accounts{margin-bottom:20px}
@media(max-width:800px){.trade-facts{grid-template-columns:1fr 1fr}.trade-columns{grid-template-columns:1fr;gap:14px}.port-plan{padding:16px}.trade-heading{align-items:start;flex-direction:column}.workspace-nav{gap:12px}.workspace-nav button{font-size:11px}}
/* Civic assembly: compact manifestos with visible trade-offs. */
.political-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:22px 0;border-block:1px solid #d8d7c9;margin:22px 0}
.political-summary span{display:block;font-size:12px;color:#657268;margin-bottom:7px}.political-summary b{font-family:Fraunces,serif;font-size:20px;font-weight:500}
.party-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.party-card{border:1px solid #d7d8cb;border-top:4px solid var(--party);padding:22px;background:#fffdf5}.party-top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--party)}.party-top span{font-size:10px;letter-spacing:.1em}.party-top b{font-size:26px;font-family:Fraunces,serif}.party-card h3{font-size:23px;margin:8px 0}.party-card p{line-height:1.55}.party-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px}.party-card dd{margin:0;text-align:right}.party-card dt{color:#687269}.party-card button{width:100%;padding:10px;white-space:normal}.party-card button:disabled{opacity:.45;cursor:default}.poll-track{height:5px;background:#e9e8db;margin:16px 0}.poll-track span{display:block;background:var(--party);height:100%;transition:width .3s}.election-result{background:#e8eedf;border-left:4px solid #587645;padding:18px 22px;margin:20px 0}.political-rules{padding:14px 0;border-block:1px solid #d8d7c9}.campaign-trail{padding-left:20px;line-height:1.8}
@media(max-width:650px){.political-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.party-grid{grid-template-columns:1fr}.party-card{padding:18px}.political-summary b{font-size:17px}}
@media(prefers-reduced-motion:reduce){.poll-track span{transition:none}}

.workspace-nav .chancellor-link{margin-left:auto;align-self:center;padding:12px 8px;font-size:12px;white-space:nowrap;color:#74512f;text-underline-offset:4px}.workspace-nav .chancellor-link:focus-visible{outline:2px solid #b8912a;outline-offset:3px}

.workspace-nav .observatory-link{align-self:center;padding:12px 8px;font-size:12px;white-space:nowrap;color:#74512f;text-underline-offset:4px}
