/* The same cover plane carries the painting, real crew and whole-building input. */
body[data-camp=true] #scene{visibility:hidden}body[data-camp=true] #panel{inset:0;padding:0;pointer-events:none}body[data-camp=true] #controls{display:none}body[data-camp=true] #hud{background:none;border:0;box-shadow:none;pointer-events:none}body[data-camp=true] #hud button{pointer-events:auto}body[data-camp=true] #hint{display:none}body[data-camp=true] #game-frame::before,body[data-camp=true] #game-frame::after{display:none}
.painted-camp{position:absolute;inset:0;pointer-events:auto;color:#ffefcb}.camp-art-viewport{position:absolute;inset:0;overflow:hidden;background:#243b29}.camp-art-plane{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,calc(100dvh * 1672 / 941));aspect-ratio:1672 / 941}.camp-backdrop{position:absolute;width:100%;height:100%;display:block;object-fit:contain}.camp-building{position:absolute;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;cursor:pointer}.camp-building:hover,.camp-building:focus-visible{background:#ffe6a522!important;outline:3px solid #ffe5a4;outline-offset:-3px}.camp-building:disabled,.camp-marker:disabled{pointer-events:none;opacity:1}.camp-marker{position:absolute;transform:translate(-50%,-50%);height:44px;min-width:44px;padding:7px!important;background:#23251cc7!important;border:1px solid #d1ad68!important;border-radius:50%!important;box-shadow:0 2px 8px #0009}.camp-marker .icon{width:26px;height:26px}.camp-marker span:not(.icon){display:none;position:absolute;top:46px;left:50%;transform:translateX(-50%);font-size:12px;white-space:nowrap;background:#172620e8;padding:4px 6px;pointer-events:none}.camp-marker:hover span:not(.icon),.camp-marker:focus-visible span:not(.icon){display:block}.camp-soldier{position:absolute;transform:translate(-50%,-100%);height:auto;width:3.3%;pointer-events:none;filter:drop-shadow(0 2px 3px #1a110e) drop-shadow(1px 0 1px #ffbc5c55)}.camp-caption{position:absolute;top:66px;left:12px;display:flex;flex-direction:column;max-width:30%;gap:3px;pointer-events:none;text-shadow:0 1px 3px #000,0 0 8px #000}.camp-caption b{font-size:13px}.camp-caption span{font-size:11px;line-height:1.2}.painted-camp[data-facility]:not([data-facility=""]) .camp-caption{display:none}.camp-night{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));right:max(10px,env(safe-area-inset-right));left:max(10px,env(safe-area-inset-left));display:flex;gap:6px;align-items:center;justify-content:flex-end;pointer-events:none}.camp-night>span{margin-right:auto;font-size:12px;line-height:1.2;text-shadow:0 1px 3px #000;background:#17261fda;padding:4px 8px;border-radius:4px;max-width:45%}.camp-night small{display:block;font-size:10px}.camp-night .icon{width:19px;height:19px;vertical-align:middle}.camp-night button{min-height:44px;padding:4px 8px;gap:3px;font-size:12px;pointer-events:auto}.camp-night button .icon{width:25px;height:25px}
.camp-facility{position:absolute;inset:66px max(10px,env(safe-area-inset-right)) 61px auto;width:min(790px,calc(100% - 20px));display:flex;flex-direction:column;gap:5px;padding:7px;background:linear-gradient(#222e25ed,#19271def),var(--hero-wood);border:1px solid #ceac6e;border-radius:5px;box-shadow:0 3px 14px #0007;overflow:hidden}.camp-facility header{display:flex;align-items:center;gap:5px;flex:none;min-height:44px}.camp-facility h2{margin:0;font-size:16px;line-height:1.1;flex:1}.camp-facility header button{width:44px;height:44px;min-width:44px;padding:8px}.camp-facility .icon{width:22px;height:22px}.camp-service-note{font-size:11px;line-height:1.2;flex:none}.camp-service-note .icon{width:17px;height:17px;vertical-align:middle}.camp-service-list{overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1;display:flex;flex-direction:column;gap:3px;scrollbar-width:thin}.camp-service-list>button{display:flex;align-items:center;gap:6px;min-height:44px;flex-shrink:0;text-align:left;padding:3px 6px;border-color:#6d8061}.camp-service-list button>img{width:28px;height:34px;object-fit:contain}.camp-service-list button>span{min-width:0;flex:1}.camp-service-list b{display:block;font-size:12px;line-height:1.15;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.camp-service-list small{display:block;font-size:10px;line-height:1.15;white-space:normal}.camp-service-list .camp-price{flex:none;display:flex;align-items:center;gap:4px;font-size:12px}.camp-service-list p{font-size:12px;margin:5px}.camp-bulk{flex:none;min-height:44px;font-size:12px;padding:3px 7px;gap:5px}.camp-repairs{display:grid;grid-template-columns:minmax(160px,.85fr) minmax(210px,1fr);gap:9px;min-height:0;flex:1}.camp-plan{min-height:0;display:flex;flex-direction:column;gap:4px}.camp-plan svg{flex:1;min-height:0;width:100%;overflow:visible;max-height:250px}.camp-plan select{height:44px;min-height:44px;width:100%;font-size:11px;background:#233c30;color:#ffedbd;border:1px solid #9d8c5e}.camp-diagram-part{cursor:pointer}.camp-diagram-part:focus-visible{outline:3px solid #fff}.camp-assignments{display:flex;flex-direction:column;min-height:0;gap:4px}.camp-assignments .selected{border-color:#efd899;background:#545439}.camp-assignments .camp-service-note{min-height:24px}
@media(max-height:360px){.camp-facility{top:60px;bottom:57px;padding:5px;gap:3px}.camp-facility h2{font-size:14px}.camp-caption{top:61px}.camp-caption span{font-size:10px}.camp-night{bottom:6px}.camp-night>span{font-size:11px}.camp-night button{font-size:11px}.camp-repairs{gap:6px}.camp-service-note{font-size:10px}.camp-soldier{width:3.8%}}
body[data-camp=true] #panel{z-index:3}body[data-camp=true] #hud{z-index:8}.camp-building::before,.camp-building::after{display:none!important}.camp-building:focus-visible{outline:0;background:#ffe8b433!important}.camp-building:hover{outline:0}
/* The damage drawing gets the full body height; its44px selector lives beside it. */
.camp-repairs{grid-template-rows:44px minmax(0,1fr)}.camp-plan{display:contents}.camp-plan svg{grid-column:1;grid-row:1/3;align-self:stretch;max-height:none;height:100%}.camp-plan select{grid-column:2;grid-row:1}.camp-assignments{grid-column:2;grid-row:2}.camp-assignments .camp-service-note{display:none}
/* Field camp uses the same thin viewport molding as world/battle, not menu rails. */
body[data-camp=true] #game-frame{position:fixed;inset:0;border:4px ridge #90764b;border-image:none;border-radius:0;box-shadow:inset 0 0 0 1px #352b23,inset 0 0 8px 1px #201b16a8}body[data-camp=true] :is(.frame-top-rail,.frame-bottom-rail){left:-4px;right:-4px;height:4px;border:0;background:linear-gradient(#b7a16c,#7b6642 48%,#433c2d);box-shadow:none}body[data-camp=true] .frame-top-rail{top:-4px}body[data-camp=true] .frame-bottom-rail{bottom:-4px}body[data-camp=true] :is(.frame-side-cabinet,.frame-inner-rule){display:none}.camp-soldier{width:5.2%}
.wheel-camp-heading{display:flex;gap:6px;align-items:center;justify-content:space-between;flex:none}.wheel-camp-heading h2{flex:1}.wheel-camp-heading button{min-height:44px;font-size:11px;padding:3px 7px;gap:3px}
.wheel-repair-panel[data-encounter=roadside-trader] .encounter-actions{grid-template-columns:repeat(5,minmax(0,1fr))}

/* Bulk service belongs to the workshop header; its price stays visible. */
.camp-facility header .camp-bulk{position:relative;flex:none;padding:5px;gap:0}.camp-bulk small{position:absolute;right:2px;bottom:1px;background:#17281e;color:#ffdf92;border-radius:3px;padding:0 3px;font-size:10px}

.camp-repair-worker{pointer-events:none}
