/* Tidehaven only: planning and the residents' charter. Shared game styles remain untouched. */
.city-game {--town-ink:#244e48;--town-gold:#b48a43}
.town-life-strip{display:flex;align-items:center;gap:9px;padding:10px 2px;color:#35574d;font-size:12px;line-height:1.5}.town-life-strip p{margin:0;flex:1}.life-dot{width:7px;height:7px;border-radius:50%;background:#6b935e;flex:none}.town-life-strip #crossing-state{font-size:10px;text-align:right;max-width:155px;color:#687763}
.plot-inspector.planning{display:block!important;border:1px solid #b99a51;background:#fffbea;padding:18px;margin:12px 0;border-radius:12px;box-shadow:0 8px 24px #304d3210}.planning h3{font:24px Georgia,serif;margin:0 0 8px;color:#244e48}.planning p{font-size:13px;line-height:1.6}.planning button{margin:5px 7px 0 0;min-height:44px}.placement-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.placement-facts span{font-size:9px;letter-spacing:1.1px;color:#7d704d}.placement-facts strong{display:block;font-size:13px;letter-spacing:0;line-height:1.7;color:#244e48;margin-top:5px}.placement-synergy{padding:9px 12px;background:#e8edda;border-radius:6px}.city-grid .plot.preview-plot{background:#fce7a080!important;border:3px solid #ffe59b!important;box-shadow:0 0 0 4px #21493b80;z-index:4}
.town-charter{margin-top:22px;padding:25px;border:1px solid #bdcbb2;border-radius:15px;background:linear-gradient(135deg,#faf7e9,#efefdf);color:#244e48}.town-charter>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.town-charter h2{font:30px Georgia,serif;margin:5px 0 0}.town-charter .eyebrow{font-size:9px;color:#7f754e;letter-spacing:2px;margin:0}.town-charter #charter-count{white-space:nowrap;font-size:11px;border:1px solid #bbc6a9;padding:9px 12px;border-radius:30px;background:#fffaf0}.charter-intro{font-size:13px;line-height:1.6;margin:12px 0 20px;color:#5c6d5c}#charter-tabs{display:flex;gap:6px;border-bottom:1px solid #c4ccb5;padding-bottom:10px}#charter-tabs button{flex:1;min-height:46px;font-size:11px;line-height:1.5;padding:8px;background:#f7f4e9;color:#5b705b;border:1px solid transparent;border-radius:7px}#charter-tabs button[aria-pressed=true]{background:#264f46;color:#fff8df;border-color:#264f46}#charter-chapter-note{font-size:11px;line-height:1.6;color:#68765f;margin:13px 0 18px}#charter-cards{display:grid;grid-template-columns:1fr 1fr;gap:13px}.charter-card{display:flex;flex-direction:column;padding:19px;background:#fffcf3;border:1px solid #d6d7bd;border-radius:10px;box-shadow:0 3px 7px #3d512305}.request-person{font-size:10px;letter-spacing:.3px;color:#7c7354;display:flex;align-items:center;gap:8px;margin:0 0 14px}.request-person>span{display:inline-grid;place-items:center;width:28px;height:28px;background:#e7d6ad;color:#605437;border:2px solid #fff8e8;outline:1px solid #d4c59d;border-radius:50%;font:17px Georgia}.charter-card h3{font:21px/1.25 Georgia,serif;margin:0 0 10px}.charter-card blockquote{font:italic 13px/1.55 Georgia,serif;color:#72806a;margin:0 0 14px}.request-need{font-size:12px;line-height:1.6;margin:auto 0 13px;padding-top:2px}.request-progress{height:4px;border-radius:4px;background:#e1e5d5;overflow:hidden}.request-progress>span{height:100%;display:block;background:#65927a}.request-meta{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#7d795b;line-height:1.5;margin:9px 0 14px}.charter-card button{font-size:12px;min-height:41px;border-radius:7px;border:1px solid #b6c5a6;background:#e7eddc;color:#244e48}.charter-card button:not(:disabled){background:linear-gradient(#f9e4a4,#dfbf70);border-color:#b49a54;box-shadow:0 2px 0 #af914c}.charter-card button:disabled{opacity:.72;cursor:default}.charter-card.fulfilled{background:#eef2e4}.charter-card.fulfilled button{color:#356b4c;background:transparent;border-color:transparent}.charter-card.future{background:#f4f1e5}#charter-complete{padding:24px;margin-top:18px;text-align:center;border-radius:10px;background:#264f46;color:#fff6d6}#charter-complete strong{font:27px Georgia}#charter-complete p{font-size:13px;line-height:1.7}
@media(min-width:701px){.city-panel .plot-inspector.planning{margin-top:0}.city-columns{align-items:start}.city-grid .can-build{cursor:crosshair}}
@media(max-width:700px){.town-charter{padding:17px 13px;margin:18px 0 10px}.town-charter h2{font-size:26px}.town-charter #charter-count{font-size:10px;padding:7px 9px}.town-charter .eyebrow{font-size:8px;letter-spacing:1.3px}#charter-tabs{gap:3px}#charter-tabs button{font-size:10px;padding:7px 4px}#charter-cards{grid-template-columns:1fr;gap:12px}.charter-card{padding:18px}.charter-card h3{font-size:22px}.town-life-strip{flex-wrap:wrap;padding:10px 3px;gap:7px}.town-life-strip p{font-size:11px}.town-life-strip #crossing-state{width:100%;max-width:none;text-align:left;margin-left:14px;font-size:10px}.plot-inspector.planning{padding:15px}.planning h3{font-size:23px}.placement-facts{gap:9px}.planning .gold{width:100%}.planning button{min-height:44px}.map-caption{font-size:0!important}.map-caption button{font-size:10px!important}}
@media(prefers-reduced-motion:reduce){.preview-plot{animation:none!important}}

#open-charter{font-size:11px;padding:8px 10px;min-height:36px;border:1px solid #bcc8ac;background:#faf8e9;color:#335d4e;border-radius:7px;white-space:nowrap}.town-charter{scroll-margin-top:90px}@media(max-width:700px){#open-charter{margin-left:14px;min-height:40px}.town-life-strip #crossing-state{width:auto;flex:1;min-width:170px}}

.city-game .map-caption{position:static;display:flex;align-items:center;justify-content:flex-end;gap:7px;color:#77816b;font-size:9px;letter-spacing:1px;padding:8px 0 0;background:none;text-shadow:none}.city-game .map-caption button{min-height:40px;font-size:11px;padding:8px 13px;letter-spacing:0;background:#f9f7e9;border:1px solid #bac8aa;color:#315c4e;border-radius:8px}.city-game .map-caption span{display:none}.town-life-strip{padding-top:8px}.close-view .city-grid,.close-view .town-roads{transform-origin:50% 95%!important}@media(max-width:700px){.city-game .map-caption{justify-content:space-between;padding-top:8px;gap:8px}.city-game .map-caption button{flex:1;min-height:44px!important;font-size:12px!important}.town-life-strip p{flex:1 1 calc(100% - 18px)}.town-life-strip #crossing-state{min-width:0;flex:1;font-size:9px}#open-charter{margin-left:0;font-size:10px;min-height:40px}.life-dot{align-self:center}}

@media(max-width:700px){.city-game .island-wrap{order:0}.city-game .plot-inspector{order:1}.city-game .map-caption{order:2}.city-game .town-life-strip{order:3}.city-game .city-message{order:4}.city-game .city-panel{order:5}.city-game .objective{order:6}.city-game .town-charter{order:7}.city-game .plot-inspector.planning{scroll-margin-top:92px;scroll-margin-bottom:100px}.city-game:has(.plot-inspector.planning) .day-action{display:none}.city-game .plot-inspector.planning h3{font-size:22px!important}.city-game .plot-inspector.planning button{font-size:12px!important}}
