/* The colony is painted inside the viewport; world size is mathematical. */
#map .viewport-world{inset:0;top:0;left:0;width:100%;height:100%;aspect-ratio:auto;translate:none;transform:none!important;will-change:auto;background:none;filter:none;overflow:hidden;contain:layout paint}
#map .viewport-world:before,#map .viewport-world:after{display:none}
.colony-ground{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#world-overlays{position:absolute;inset:0;pointer-events:none}
#world-overlays>div{pointer-events:none}
#map .viewport-world #plots{position:absolute;inset:0;pointer-events:none}
#map .viewport-world .plot:not(.empty),#map .viewport-world .plot.district,#map .viewport-world .placement-preview{width:var(--screen-width)!important;height:var(--screen-height)!important;transform:translate(-50%,-90%);filter:none;pointer-events:none}
#map .viewport-world .plot.empty{width:var(--screen-width);height:var(--screen-height);transform:translate(-50%,-50%);pointer-events:auto;filter:none}
#map .viewport-world .plot .building-sprite{width:100%;height:100%;aspect-ratio:auto;transform:none;filter:none;overflow:visible}
#map .viewport-world .plot .sprite-hit{pointer-events:all}
#map .viewport-world .plot .plot-label{top:calc(100% + 2px);bottom:auto;width:var(--label-width,100px);max-width:none!important;min-height:24px;padding:3px 4px;font:600 10px/1.15 Manrope,Arial,sans-serif;white-space:normal;overflow-wrap:normal;border-radius:5px;background:#112b32f5;box-shadow:none;opacity:0;pointer-events:none}
#map .viewport-world .plot .plot-label em{font-size:8px;line-height:1.1;margin:2px 0 0}
#map .viewport-world .plot.name-readable .plot-label,#map .viewport-world .plot.selected .plot-label,#map .viewport-world .plot:focus-visible .plot-label{opacity:1;pointer-events:auto}
#map .viewport-world .plot .workers-tag{top:8%;right:0;font-size:9px;padding:2px 4px;box-shadow:none;opacity:.9}
#map .viewport-world .plot:not(.name-readable):not(.selected) .workers-tag{display:none}
#map .viewport-world .plot .building-job{font-size:9px;padding:3px;bottom:auto;top:100%;left:0;width:100%;white-space:nowrap}
#map .viewport-world .plot.selected:after{left:10%;bottom:0;width:80%;height:15%;border:1px solid #f3d68c;box-shadow:none}
#map .viewport-world .hunter-agent{filter:none}
#map .viewport-world .landmark-sites button{pointer-events:auto;filter:none}
#map .viewport-world .landmark-sites button>b{font-size:9px}
#map .viewport-world .landmark-sites button>span{font-size:22px}
#map .viewport-world .plot.empty .empty-plus{font-size:16px}
#map .viewport-world .plot.empty .plot-label{display:none}
#map .viewport-world .plot.hunting-tile .plot-label{display:block;width:90px;font-size:9px}
.dock-toolbar #colony-queues{min-width:0;scrollbar-width:none}.dock-toolbar #colony-queues::-webkit-scrollbar{display:none}.dock-toolbar #colony-queues button{flex:0 0 auto;white-space:nowrap;min-height:28px;font-size:10px;padding:4px 9px}.dock-toolbar{min-height:36px;flex-basis:36px}.dock-toolbar #toggle-dock{flex-shrink:0;white-space:nowrap}
#map .viewport-world .plot .plot-label .building-job{position:static;display:inline;background:none;border:0;color:#e5ce8e;font-size:8px;padding:0;width:auto;white-space:nowrap}
#map .viewport-world .plot.empty:has(.building-job) .plot-label{display:block;opacity:1;width:110px}
#map .viewport-world .plot.tiny-sprite{pointer-events:auto}
#map .viewport-world .plot.tiny-sprite .building-sprite{display:none}
#map .viewport-world .plot.tiny-sprite:before{content:'';position:absolute;inset:25% 6%;background:#bcdcca;border:1px solid #e8ddb9;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
#map .viewport-world .plot.tiny-sprite[data-building-type=farm]:before{background:#91cb6d}
#map .viewport-world .plot.tiny-sprite[data-building-type=mine]:before{background:#f0ce73}
#map .viewport-world .plot.tiny-sprite[data-building-type=barracks]:before,#map .viewport-world .plot.tiny-sprite[data-building-type=archery]:before,#map .viewport-world .plot.tiny-sprite[data-building-type=stable]:before{background:#b9a0e1}
#map .viewport-world .plot.tiny-sprite.selected:before{background:#a3ffff}
#map .viewport-world .plot:hover{filter:none}

#map .viewport-world .plot .plot-label{font-size:var(--name-font,10px);white-space:nowrap}
.building-group{margin:10px 0;border:1px solid #a6c0a555;border-radius:8px;background:#15313b;overflow:hidden}.building-group>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;cursor:pointer;list-style:none;font-size:12px}.building-group>summary:before{content:'▸';color:#ddc480}.building-group[open]>summary:before{content:'▾'}.building-group>summary>span{flex:1}.building-group summary small{display:block;margin-top:5px;color:#abc4b9;font-size:10px}.building-group summary strong{font-size:11px;color:#9cddc9;white-space:nowrap}.building-group-content{padding:0 12px 10px}.building-group .worker-row{gap:8px}.building-group .worker-row>div:first-child{flex:1}.building-group .training-row{margin:0;padding:12px 0}.speed-up-card{margin-top:12px;padding:12px;border:1px solid #bca66b66;border-radius:8px;background:#183b40}.speed-up-card>b{font-size:12px}.speed-up-card p{font-size:10px}.panel:has(.building-group){padding:16px 20px;max-height:55dvh}.army-card .building-group summary>span>b{font-size:11px}
#map .viewport-world .plot .plot-label{margin-left:var(--label-offset,0px)}
.hospital-section>.army-grid{display:block}

.building-group>summary{touch-action:manipulation;user-select:none}
.bulk-group{margin:12px 0;padding:12px;border:1px solid #a6c0a555;border-radius:9px;background:#15313b}.bulk-group h3{font:600 17px Georgia,serif;color:#ead9ab;margin:0 0 5px}.bulk-group>small,.bulk-group .section-heading small{display:block;font-size:10px;color:#b2cbc2;margin-top:5px}.bulk-group .section-heading>b{font-size:11px;white-space:nowrap;color:#b2ebce}.bulk-tools{padding:10px 0}.bulk-options{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;font-size:11px;color:#c7ddce}.bulk-options label{display:flex;align-items:center;gap:6px;min-height:28px}.bulk-options input{accent-color:#65d6ba;width:17px;height:17px}.bulk-mode{display:flex;gap:3px}.bulk-mode .text-button{font-size:10px;padding:6px}.bulk-mode .active{color:#e9d49c;border-bottom:1px solid #e9d49c}.bulk-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:7px 0}.bulk-presets .secondary{padding:7px 3px;min-height:37px;font-size:11px}.bulk-note{display:block;font-size:10px;line-height:1.5;color:#abc5b9}.manual-building{padding:12px 0;border-top:1px solid #a6c0a533}.manual-building .section-heading>b{font-size:11px}.manual-building>.bulk-tools{padding-bottom:0}.manual-building .worker-control{max-width:none}.bulk-warning{color:#f1cc82!important;padding:8px 0}.bulk-warning:empty{display:none}#bulk-plan{max-height:30vh;overflow:auto;margin-top:12px}.bulk-plan-row{padding:9px 0;border-bottom:1px solid #a6c0a533;font-size:12px}.bulk-plan-row span{display:block;color:#a8c4b6;font-size:11px;margin-top:5px}#bulk-confirm,#speed-confirm{width:100%;margin-top:16px}.study-queue{display:block}.study-queue .speed-up-card{width:100%}.panel .speed-up-card .mode-actions{flex-wrap:wrap}.panel .speed-up-card p{overflow-wrap:anywhere}.building-group .building-group{background:#102a34}
#map .viewport-world .plot .plot-label{margin-top:var(--label-y,0px)}
