/* R4 public-data scene only. The island map and its artwork are unchanged. */
.city-sky{--sky-ink:#f6e9ca;--sky-paper:#f8e9cc;font:15px/1.4 Georgia,serif;color:var(--sky-ink);background:#0b162c;border-radius:14px;overflow:hidden;position:relative;isolation:isolate;width:100%}
.city-sky *{box-sizing:border-box}.city-sky [hidden]{display:none!important}
.city-sky-top{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 18px;background:#122231;position:relative;z-index:2}
.city-sky-name{font-weight:500;margin-right:auto}.city-sky label{display:flex;align-items:center;gap:7px;font:13px/1.3 system-ui,sans-serif}
.city-sky select,.city-sky button{font:14px/1.2 system-ui,sans-serif;min-height:44px;border:1px solid #c7ad7c;border-radius:8px;background:var(--sky-paper);color:#3d3428;padding:9px 12px;max-width:100%;margin:0;width:auto}
.city-sky button{box-shadow:0 2px 0 #86673f}.city-sky button:disabled{opacity:.6}
.city-sky-stage{position:relative;height:455px;touch-action:pan-y;overflow:hidden}.city-sky canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.city-sky-labels{position:absolute;inset:0;pointer-events:none;z-index:2}.city-sky-number{position:absolute;display:flex;align-items:center;justify-content:center;font:500 11px/1 system-ui,sans-serif;border-radius:4px;background:#f5e6c9;color:#493b29;border:1px solid #b99a66;box-shadow:0 1px 3px #15223155}
.city-sky-number.is-current{background:#245b60;color:#fff2cf;border-color:#e3c889}.city-sky-number.is-unpublished{background:#e0ded6;color:#60646b;border-style:dashed}
.city-sky-actions{position:absolute;bottom:18px;right:18px;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 36px);z-index:3}
.city-sky-foot{padding:11px 18px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;background:#122231;font:12px/1.5 system-ui,sans-serif}.city-sky-foot p{margin:0}.city-sky-building-total{color:#f6d68c}
.city-sky.is-unavailable .city-sky-stage{display:none}
/* The exhibition owns this selector; the renderer has no route or API controls. */
#exhibition-page .exhibition-view{margin-left:auto;display:flex;align-items:center;gap:8px;color:#f3dfb7;font-size:12px;flex:none}
#exhibition-page #toggle-night-sky{min-width:150px;max-width:none;width:auto;min-height:44px;margin:0;padding:9px 12px;font-size:13px;background:#f6e5bb;color:#263340;border:1px solid #bfa775;border-radius:6px}
#knowledge-sky{inset:88px 0 0;padding:24px 28px 100px;background:#111f30}
#knowledge-sky .knowledge-shell{max-width:1400px}.knowledge-shell .city-sky{margin:20px 0}.knowledge-shell .city-sky-stage{height:clamp(440px,55vw,580px)}
#city-budget-dialog:has(.city-sky){width:min(1300px,calc(100vw - 24px))}
#city-budget-dialog .city-sky{margin:18px 0}
@media(max-width:650px){#knowledge-sky{padding:16px 12px 100px}#exhibition-page .exhibition-view{display:block;font-size:10px}#exhibition-page #toggle-night-sky{display:block;min-width:128px;margin-top:4px;font-size:12px;padding:8px}.knowledge-shell .city-sky-stage{height:440px}}
@media(max-width:600px){#knowledge-sky{top:84px}#exhibition-page .interior-title h1{font-size:17px}#exhibition-page .interior-title .eyebrow{letter-spacing:.04em}}
@media(max-width:480px){.city-sky-stage{height:440px}.city-sky-top{padding:12px;gap:9px}.city-sky-name{width:100%}.city-sky label{flex-wrap:wrap}.city-sky-foot{padding:11px 12px}.city-sky-actions{right:12px;bottom:14px;max-width:calc(100% - 24px)}}
@media(max-width:380px){#exhibition-page .interior-title .eyebrow{display:none}}

/* Project Quarter owns a viewport scene and an optional records sheet. Hall and
   standalone sky views keep their original layout and public-data renderer. */
#project-quarter-content .district-experience,#project-quarter-content #project-district-scene,#project-quarter-content .city-sky{position:absolute;inset:0;width:100%;height:100%;margin:0;border:0;border-radius:0;overflow:hidden}
#project-quarter-content .city-sky-stage{position:absolute;inset:0;height:100%}
#project-quarter-content .city-sky-top{position:absolute;top:16px;right:18px;padding:0;background:none;display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:calc(100% - 90px);pointer-events:none}
#project-quarter-content .city-sky-top label{pointer-events:auto;text-shadow:0 2px 4px #0a172c}
#project-quarter-content .city-sky-name{display:none}
#project-quarter-content .city-sky-foot{position:absolute;left:18px;bottom:78px;max-width:min(560px,calc(100% - 36px));padding:0;background:none;display:block;color:#fff3d8;text-shadow:0 1px 4px #07172d,0 0 8px #07172d;pointer-events:none}
#project-quarter-content .city-sky-foot p+p{margin-top:4px}
#project-quarter-content .city-sky-actions{bottom:18px}
#project-quarter-content .district-records-toggle{position:absolute;z-index:3;left:18px;bottom:18px;min-height:44px;padding:11px 16px;border:1px solid #c7ad7c;border-radius:7px;background:#f8e9cc;color:#3d3428;box-shadow:0 3px 0 #86673f;font:600 14px/1.3 system-ui,sans-serif;cursor:pointer}
.district-record-sheet{width:min(960px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:6px double #92754a;border-radius:8px;outline:0;color:#344b42;background:linear-gradient(120deg,#fcf1d6,#ead7ac);box-shadow:0 20px 65px #09182399}
.district-record-sheet::backdrop{background:#081b2b77;backdrop-filter:blur(3px)}
.district-sheet-heading{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid #b59c72;background:#f6e7c4}
.district-sheet-heading h2{font:700 26px/1.2 Georgia,serif;margin:0}
.district-sheet-heading button,.district-sheet-content button{min-height:44px;flex:none;padding:10px 14px;border:1px solid #93764d;border-radius:6px;background:#34584f;color:#fff1cd;font:600 13px/1.3 system-ui,sans-serif;cursor:pointer}
.district-sheet-content{padding:20px 24px;font:14px/1.6 system-ui,sans-serif;overflow-wrap:anywhere}
.district-sheet-content h3{font:700 24px/1.2 Georgia,serif;margin:22px 0 12px}
.district-sheet-content>section+section{margin-top:26px;padding-top:8px;border-top:1px solid #b59c72}
.district-sheet-content label{display:block;font-weight:600;margin:14px 0 6px}
.district-sheet-content select{display:block;width:100%;max-width:100%;min-height:44px;padding:10px 12px;border:1px solid #93764d;border-radius:5px;background:#fff8e6;color:#344b42;font:14px/1.3 system-ui,sans-serif}
.district-sheet-content .assignment-table-wrap{max-height:360px}
.district-access-message{position:absolute;top:100px;left:24px;right:24px;max-width:560px;padding:18px;color:#fff1cd;background:#122b3ce8;border:1px solid #c7ad7c;border-radius:7px}
@media(max-width:650px){#project-quarter-content .city-sky-top{top:12px;right:12px}#project-quarter-content .city-sky-top label{font-size:12px}#project-quarter-content .city-sky-top select{font-size:13px;padding:8px}#project-quarter-content .city-sky-foot{left:12px;bottom:70px;max-width:calc(100% - 24px);font-size:11px}#project-quarter-content .city-sky:not(.is-unavailable):not([data-buildings="unavailable"]):not([data-harbour="unavailable"]) .city-sky-foot{width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#project-quarter-content .city-sky-actions{bottom:12px;right:12px;flex-wrap:nowrap;gap:8px;max-width:calc(100% - 150px)}#project-quarter-content .city-sky-actions button{font-size:12px;padding:8px 9px;white-space:nowrap}#project-quarter-content .district-records-toggle{left:12px;bottom:12px;font-size:12px;padding:9px}.district-sheet-heading{padding:12px 14px}.district-sheet-heading h2{font-size:23px}.district-sheet-content{padding:14px;font-size:13px}.district-sheet-content h3{font-size:22px}}
