/* Civic Atlas campaign ledgers: paper, ink, vermilion, and slate. */
.deck-link{background:none;border:0;text-align:left;cursor:pointer;color:var(--ink);padding:0}
.deck-link:hover{text-decoration:underline;text-underline-offset:3px}
.city-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}
.city-tabs .btn{gap:12px;font-size:11px;min-height:38px}
.city-tabs small{font-size:8px;opacity:.7}
.city-heading{border-block:1px solid var(--line);padding:20px 0;display:flex;gap:15px;align-items:center;justify-content:space-between}
.city-heading h3{font-size:27px;margin:7px 0}
.city-heading p,.construction-panel p,.ledger-note{font-size:11px;color:var(--muted);line-height:1.8}
.city-heading>.btn{flex-shrink:0;font-size:10px}
.ledger-notice{background:#e9e4d8;padding:13px 16px;font-size:12px;line-height:1.7;margin:18px 0;display:flex;align-items:center;gap:12px}
.ledger-note{margin:12px 0 20px}
.construction-panel{padding:20px;margin-top:18px;background:#fffcf5;border:1px solid var(--line)}
.construction-panel>div:first-child{display:flex;align-items:center;gap:15px;margin-bottom:15px}
.construction-panel>div:first-child>svg{width:33px;height:33px;color:var(--blue)}
.construction-panel h3{font-size:25px;margin:6px 0}
.construction-panel>.meter{margin:15px 0}
.construction-panel .modal-actions{margin-top:16px}
.project-grid,.market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}
.project-card,.market-card{border:1px solid var(--line);background:#fffdf8;padding:18px;text-align:left;display:flex;flex-direction:column;min-width:0}
.project-card:not(:disabled):hover{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}
.project-card>svg,.market-card>svg{color:var(--blue);height:26px;width:26px;margin-bottom:17px}
.project-card>.eyebrow,.market-card>.eyebrow{font-size:8px;letter-spacing:.6px;line-height:1.5}
.project-card h3,.market-card h3{font-size:22px;line-height:1.15;margin:10px 0}
.project-card p,.market-card p{font-size:11px;line-height:1.75;flex:1;color:#686b66}
.project-card>small{font-size:9px;color:var(--accent);margin-top:16px;line-height:1.5}
.project-card.complete:disabled{opacity:.75;background:#eae8e0}
.market-card>.btn{margin-top:18px;padding:10px 8px;font-size:10px;min-height:36px}
.ledger-subheading{font-size:25px;margin-top:30px}
.retire-list{display:flex;flex-wrap:wrap;gap:8px}
.retire-list>.btn{font-size:11px}
.victory-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}
.victory-routes p{display:grid;grid-template-columns:25px 1fr;background:#eae5d9;padding:14px;gap:8px;font-size:12px;align-items:center}
.victory-routes span{grid-column:1/-1;font-size:10px;color:var(--muted);line-height:1.6}
.victory-routes svg{color:var(--accent)}
.standings-wrap{overflow-x:auto}
.standings{border-collapse:collapse;width:100%;font-size:11px;text-align:left}
.standings caption{text-align:left;font-size:10px;color:var(--muted);padding:10px 0}
.standings th,.standings td{padding:13px 10px;border-bottom:1px solid var(--line)}
.standings thead th{text-transform:uppercase;font-size:8px;letter-spacing:.6px;font-weight:500}
.standings tbody th{font-weight:500}
.standings small{display:block;font-size:7px;letter-spacing:.7px;color:var(--muted);margin-top:5px}
.standings .your-empire{background:#e9e4d8;color:var(--accent)}
.embassy-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.embassy{padding:20px;border:1px solid var(--line);background:#fffdf8}
.embassy h3{font-size:26px;margin:10px 0 14px}
.embassy p{font-size:12px;line-height:1.8;color:var(--muted)}
.embassy-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.embassy-actions>.btn{font-size:10px;padding:10px 13px;min-height:36px}
.ledger-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.ledger-toolbar .btn{font-size:11px;padding:10px 13px;min-height:36px}
.save-error{font-size:12px;line-height:1.8;border-left:3px solid var(--accent);background:#f1e1d7;padding:14px;margin:20px 0}
.campaign-name{display:flex;align-items:center;gap:10px;border-block:1px solid var(--line);padding:18px 0;margin:22px 0}
.campaign-name label{font-size:8px;letter-spacing:1px;color:var(--muted)}
.campaign-name input{min-width:0;flex:1;width:100%;padding:10px;border:1px solid var(--line);background:#fffdf8;color:var(--ink)}
.campaign-name .btn{font-size:11px;min-height:37px}
.archive-list{display:grid;gap:14px;margin-top:24px}
.archive-entry{display:flex;gap:18px;justify-content:space-between;border:1px solid var(--line);padding:22px;background:#fffdf8;min-width:0}
.archive-entry>div:first-child{min-width:0}
.archive-entry h3{font-size:26px;margin:10px 0;overflow-wrap:anywhere}
.archive-entry p{font-size:12px;line-height:1.8;color:var(--muted)}
.archive-entry small{font-size:10px;color:var(--muted);display:block;margin-top:9px}
.archive-actions{display:flex;flex-direction:column;gap:7px;align-items:stretch;flex-shrink:0}
.archive-actions .btn{font-size:10px;padding:9px 14px;min-height:34px}
.agenda-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 28px}
.agenda-card{display:flex;align-items:flex-start;gap:12px;padding:17px;background:#fffdf8;border:1px solid var(--line);text-align:left}
.agenda-card:hover{border-color:var(--accent)}
.agenda-card>svg{color:var(--accent);width:19px;height:19px}
.agenda-card>svg:last-child{margin-left:auto;width:15px}
.agenda-card strong{font-size:12px;font-weight:500;line-height:1.5;display:block}
.agenda-card small{font-size:10px;line-height:1.8;color:var(--muted);display:block;margin-top:8px}
.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:25px}
.roster-heading .ledger-subheading{margin:0}
.roster-heading .btn{font-size:10px;min-height:36px;padding:10px}
.roster-heading kbd{font-size:10px;padding:2px 5px;border:1px solid var(--line)}
.unit-roster{display:grid;margin-top:16px}
.roster-row{display:flex;align-items:center;gap:15px;width:100%;border:0;border-bottom:1px solid var(--line);padding:17px 10px;text-align:left;background:transparent}
.roster-row:hover{background:#eae5d9}
.roster-row>svg{color:var(--blue)}
.roster-row>span{min-width:0;flex:1}
.roster-row strong{font-size:12px;font-weight:500}
.roster-row small{display:block;font-size:10px;color:var(--muted);margin-top:6px;line-height:1.5}
@media(max-width:1000px){.map-topline .secondary{display:none}}
@media(max-width:650px){
  .game-nav{overflow-x:auto;justify-content:flex-start;scrollbar-width:none;max-width:calc(100% - 24px)}
  .game-nav .nav-item{flex-shrink:0;padding:10px 9px;gap:4px}
  .game-nav .nav-spacer{flex-shrink:0}
  .project-grid,.market-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .project-card,.market-card{padding:13px}
  .project-card h3,.market-card h3{font-size:20px}
  .project-card p,.market-card p{font-size:10px}
  .city-heading{align-items:flex-start;flex-direction:column}
  .construction-panel{padding:14px}
  .construction-panel .modal-actions{flex-wrap:wrap;gap:8px}
  .victory-routes{grid-template-columns:1fr}
  .victory-routes p{grid-template-columns:25px 75px 1fr;padding:12px}
  .victory-routes span{grid-column:auto}
  .embassy-grid{grid-template-columns:1fr}
  .standings{min-width:0;font-size:10px}
  .standings th,.standings td{padding:12px 7px}
  .standings th:nth-child(2),.standings td:nth-child(2),.standings th:nth-child(3),.standings td:nth-child(3){display:none}
  .agenda-grid{grid-template-columns:1fr}
  .archive-entry{flex-direction:column;padding:17px}
  .archive-actions{flex-direction:row;flex-wrap:wrap;gap:6px}
  .archive-actions .btn{padding:8px 10px;font-size:9px}
  .campaign-name{flex-wrap:wrap}
  .campaign-name label{width:100%}
  .roster-heading{align-items:flex-start;flex-direction:column}
  .roster-row{gap:9px;padding-inline:0}
  .roster-row>svg{width:15px}
  .roster-row strong{font-size:11px}
  .roster-row small{font-size:9px}
}
@media(max-width:380px){.project-grid,.market-grid{grid-template-columns:1fr}.city-tabs .btn{width:100%;justify-content:space-between}}
.battle-forces{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:26px 0}
.battle-forces>section{padding:24px;background:#fffdf8;border:1px solid var(--line);min-width:0}
.battle-forces>section>svg{display:block;width:32px;height:32px;color:var(--blue);margin:20px 0 12px}
.battle-forces h3{font:28px Georgia,serif;margin:12px 0;overflow-wrap:anywhere}
.battle-forces p{font-size:11px;line-height:1.8;color:var(--muted)}
.battle-forces .battle-health{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0 12px}
.battle-health strong{font:36px Georgia,serif;color:var(--ink)}
.battle-health strong.danger{color:var(--accent)}
.battle-health small{flex-basis:100%;font-size:7px;letter-spacing:1px}
.war-notice,.battle-outcome{display:flex;align-items:flex-start;gap:14px;background:#f0e3d9;border-left:3px solid var(--accent);padding:17px 20px;margin:22px 0}
.war-notice>svg,.battle-outcome>svg{width:23px;height:23px;flex-shrink:0;color:var(--accent)}
.war-notice p{margin:0;font-size:12px;line-height:1.8}
.war-notice strong,.battle-outcome strong{font-size:13px;font-weight:500;line-height:1.7}
.war-notice span,.battle-outcome small{display:block;font-size:11px;line-height:1.8;color:var(--muted);margin-top:5px}
.battle-outcome{background:#e9e7df;border-left-color:var(--blue)}
.battle-outcome>svg{color:var(--blue)}
.move-grid button.attack-destination{border-color:#bd6c5870;color:var(--accent);background:#f5e7dd}
@media(max-width:650px){.battle-forces{gap:9px}.battle-forces>section{padding:15px 12px}.battle-forces h3{font-size:23px}.battle-forces .eyebrow{font-size:7px;letter-spacing:1px}.battle-health strong{font-size:30px}.battle-forces .battle-health{gap:8px}.war-notice,.battle-outcome{padding:14px}.war-notice strong,.battle-outcome strong{font-size:12px}}
@media(max-width:350px){.battle-forces{grid-template-columns:1fr}}
/* Keep battle decisions visible on a standard laptop viewport. */
.battle-modal{width:min(860px,100%);padding:26px 32px}
.battle-modal .modal-intro{font-size:11px;line-height:1.7}
.battle-modal .war-notice{margin:16px 0;padding:12px 16px}
.battle-modal .war-notice p{line-height:1.6}
.battle-modal .war-notice span{margin-top:3px;line-height:1.6}
.battle-modal .battle-forces{margin:16px 0;gap:12px}
.battle-modal .battle-forces>section{padding:17px 20px}
.battle-modal .battle-forces>section>svg{float:right;width:24px;height:24px;margin:6px 0 0 10px}
.battle-modal .battle-forces h3{font-size:26px;margin:12px 0}
.battle-modal .battle-health{margin:12px 0 8px}
.battle-modal .battle-forces p:last-child{margin:0}
.battle-modal .battle-outcome{margin:16px 0;padding:12px 16px}
.battle-modal .modal-actions{margin-top:16px;flex-wrap:wrap}
@media(max-width:650px){.battle-modal{padding:27px 20px}.battle-modal .battle-forces>section{padding:15px 12px}.battle-modal .battle-forces h3{font-size:22px}.battle-modal .battle-forces>section>svg{float:none;display:block;width:21px;height:21px;margin:12px 0 0}.battle-modal .modal-actions>.btn{flex:1;font-size:11px;justify-content:center;padding:12px}}
@media(max-width:650px){.battle-modal .modal-actions>.btn:last-child{flex:2}.battle-modal .war-notice strong{font-size:12px}.battle-modal .battle-forces{margin:12px 0}.battle-modal .battle-outcome{margin:12px 0}}
