/* Village UI stays separate from arena HUD. Every station has a keyboard/touch shortcut. */
#villageHUD{display:none;position:fixed;inset:0;pointer-events:none;z-index:3}
body.in-village #villageHUD:not([hidden]){display:block}
body.in-village #hud,body.in-village footer,body.in-village #dashButton{display:none}
body.in-village header{z-index:4}
body.in-village #stats{font-size:11px;letter-spacing:1px;color:#a9c5b2}
body.village-panel #villageHUD{visibility:hidden}
body.village-panel #touchControls{display:none}
/* O inventário completo pertence às interfaces de estoque/produção. Durante a
   exploração ele escondia as instalações e duplicava informações contextuais. */
body.in-village:not(.village-panel) .village-top{display:none}
.village-tutorial{position:fixed;z-index:9;left:var(--guide-x);top:var(--guide-y);transform:translate(-50%,-100%);width:min(330px,86vw);padding:14px 17px;background:#101f20ee;border:1px solid #e0be79;box-shadow:0 12px 35px #0009;pointer-events:none}
.village-tutorial[hidden]{display:none}.village-tutorial i{position:absolute;left:50%;bottom:-31px;color:#f2c879;font:30px monospace;animation:guideBounce .8s ease-in-out infinite alternate}.village-tutorial small{display:block;color:#7ed8ca;font:9px monospace;letter-spacing:1.7px}.village-tutorial strong{display:block;color:#f1dfbc;font-size:17px;margin:5px 0}.village-tutorial p{margin:0;color:#c2cec4;font-size:12px;line-height:1.5}@keyframes guideBounce{to{transform:translateY(7px)}}
.village-top{position:absolute;top:84px;left:28px;width:min(580px,calc(100vw - 56px));padding:15px 17px 12px;background:linear-gradient(110deg,#14231fed,#14231fce);border:1px solid #63796165;border-radius:8px;box-shadow:0 10px 25px #0002}
.village-heading{display:flex;gap:8px;align-items:center;font:10px monospace;letter-spacing:1.5px;color:#c0d3bd}
.village-heading b{margin-left:auto;font-size:9px;color:#8d9f8c;letter-spacing:0}
.village-dot{width:6px;height:6px;border-radius:50%;background:#a4d6a8;box-shadow:0 0 10px #a4d6a866}
.village-resources{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:13px}
.v-resource{display:grid;grid-template-columns:17px 1fr;gap:3px 4px;align-items:center}
.v-resource i{font-style:normal;color:#a6bd9e;font-size:17px}
.v-resource strong{font:700 19px monospace;color:#e7efd9}
.v-resource small{grid-column:1/3;color:#95ab98;font-size:10px;white-space:nowrap}
.v-resource.v-coins i,.v-resource.v-coins strong{color:#f2c179}
.village-objective{border-top:1px solid #65755b55;margin-top:12px;padding-top:10px}
.village-objective>span{font:700 11px "Segoe UI",sans-serif;color:#ffd399}
.village-objective p{font-size:11px;line-height:1.5;color:#bfd0b9;margin:4px 0 0;max-width:none}
.village-navigation{position:absolute;bottom:18px;left:28px;right:28px;padding:13px 15px 10px;background:#12221fe8;border:1px solid #61726066;border-radius:8px;max-width:930px;margin:auto;pointer-events:auto}
.village-navigation-label{font:9px monospace;letter-spacing:1.5px;color:#d4c9a8;margin-bottom:8px}.village-navigation-label span{color:#7c9486;letter-spacing:0;margin-left:10px}
.village-stations{display:flex;gap:6px;overflow:auto;padding:2px 1px 4px;scrollbar-width:thin}
.village-stations button{display:flex;align-items:center;gap:7px;flex:1;white-space:nowrap;font-size:11px;padding:9px 10px;background:#263d32;border:1px solid #66846c78;border-radius:4px}
.village-stations button span{font-size:17px;color:#d1b981}
.village-stations button.v-unbuilt{color:#a2b3a2;border-style:dashed;background:#202f29}
.village-stations button:hover{border-color:#ffc87a;background:#384b37}
.village-bottom{display:flex;align-items:center;gap:12px;justify-content:space-between;padding-top:6px;color:#8fa28d;font-size:10px}
.village-bottom button{font:700 10px monospace;letter-spacing:.5px;padding:8px 15px;color:#ffce90;background:#473d28;border-color:#b99a5c80}
.village-interact{position:absolute;left:50%;bottom:164px;transform:translateX(-50%);white-space:nowrap;background:#172c24e8;border-color:#d8be87;color:#eddfb7;padding:10px 16px;font:11px monospace;box-shadow:0 6px 20px #0003}
.village-interact:disabled{opacity:.65;border-color:#56705e;color:#a3b49f;cursor:default}
.v-panel{max-width:850px}
body.in-village #panel{max-height:86vh;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;width:min(930px,94vw);border-color:#697359}
.v-panel h2{font-size:clamp(23px,3vw,34px);margin-bottom:14px}
.v-panel h3{font-size:18px;margin:0 0 10px;color:#e3e8d4}
.v-panel p{max-width:none}
.v-panel .primary:disabled{background:#48533c;color:#9dab93;cursor:not-allowed}
.v-panel button:disabled:hover{border-color:#526461;background:#48533c}
.v-back{display:block;margin-top:25px;font:11px monospace;color:#cfdbc4}
.v-warning{border:1px solid #dca963;padding:12px;color:#ffd49d!important;background:#60412940;border-radius:5px}
.v-note{border-left:3px solid #97bc8e;background:#2944385c;padding:15px 18px;margin:20px 0;border-radius:0 6px 6px 0}
.v-note>strong{display:block;color:#d5e4c9;font-size:15px}
.v-note p{margin:7px 0 0;font-size:13px}.v-note small{display:block;color:#a0b99f;line-height:1.5;margin-top:8px}
.v-recipe{border:1px solid #607257;background:#20342c;padding:20px;border-radius:7px;margin:20px 0}
.v-costs{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}
.v-cost{display:inline-block;border:1px solid #6f846262;background:#43543a;color:#d7dfbf;padding:6px 9px;font:11px monospace;border-radius:4px}
.v-cost.v-short{color:#ffbc96;border-color:#b9876a;background:#593f30}
.v-requirement,.v-caption{font-size:12px!important;color:#93a88e!important;line-height:1.6}
.v-requirement{color:#dfc393!important}
.v-ready{color:#b6d79f;font:11px monospace;letter-spacing:.5px}
.v-inventory{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:23px 0}
.v-inventory>div{padding:18px 10px;text-align:center;background:#24392e;border:1px solid #576b4e;border-radius:5px}
.v-inventory i{font-size:24px;color:#bac694;font-style:normal;display:block}.v-inventory b{font:700 25px monospace;display:block;color:#e4e8cf;margin:8px 0}.v-inventory span{color:#adbc9f;font-size:11px}
.v-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.v-status-grid>div{background:#22382e;padding:16px;border:1px solid #4d6550;border-radius:5px}.v-status-grid small{display:block;color:#8da283;font:10px monospace}.v-status-grid b{display:block;margin-top:9px;font:700 22px monospace;color:#d9deb3}
.v-production-meter{margin-top:14px;height:7px;background:#13291e}.v-production-meter i{display:block;height:100%;background:#a0c579}
.v-character-quote{color:#bdc99d;font-style:italic;border-top:1px solid #4b6048;padding-top:18px}.v-character-quote span{font:10px monospace;color:#899e7e}
.v-expedition{border:1px solid #b49552;background:linear-gradient(135deg,#4c452c55,#20372e);padding:22px;border-radius:7px;margin:19px 0}.v-expedition h3{font-size:26px;margin:10px 0}.v-expedition small{font-size:11px;color:#b7c5a5}.v-expedition p{font-size:13px}
.v-records{margin:24px 0;border-top:1px solid #4d654c;border-bottom:1px solid #4d654c;padding:15px 0}.v-records summary{cursor:pointer;color:#c2d3b4;font-size:13px;min-height:22px}.v-records article{margin-top:16px;padding-left:15px;border-left:2px solid #687957}.v-records small{font:10px monospace;letter-spacing:1px;color:#d2bc82}.v-records p{font-size:12px;margin:6px 0}
.v-route{margin-top:23px}.v-route>strong{font-size:13px;color:#b3c4a7}.v-route ol{list-style:none;padding:0;margin:12px 0}.v-route li{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid #42543d70;color:#81977e;font-size:12px}.v-route li b{font:9px monospace;color:#839b7f}.v-route li.v-current,.v-route li.v-current b{color:#c6d8a9}.v-route p{font-size:12px}
.v-intro{max-width:730px}.v-transmission{height:66px;font-size:66px;line-height:1;color:#d8b777;margin:10px 0;text-shadow:0 0 40px #b7bb6655}.v-intro h1{font-size:clamp(29px,4.3vw,48px);letter-spacing:-1px;max-width:650px}.v-speaker{display:block;font:10px monospace;letter-spacing:2px;color:#d4bb81;margin-top:25px}.v-intro-voice{font-size:19px;color:#d4ddc7;line-height:1.6;max-width:620px}.v-intro-actions{display:flex;align-items:center;gap:12px;border-top:1px solid #4e6249;padding-top:18px;margin-top:24px}.v-intro-actions>span{margin-right:auto;color:#879d80;font:11px monospace}.v-intro-actions .primary{margin:0}.v-intro-actions>button:not(.primary){font:10px monospace;padding:12px 10px;background:transparent;border-color:transparent;color:#9caf93}
@media(max-width:700px){
 body.in-village header{padding:10px 12px;gap:7px}body.in-village .brand{font-size:10px;letter-spacing:1px}body.in-village .brand .mark{font-size:24px}body.in-village #stats{display:none}
 .village-top{top:60px;left:12px;width:calc(100vw - 24px);padding:11px 12px 10px}.village-heading{font-size:8px;letter-spacing:1px}.village-heading b{font-size:8px}.village-resources{gap:5px;margin-top:10px}.v-resource{grid-template-columns:12px 1fr;gap:3px}.v-resource i{font-size:13px}.v-resource strong{font-size:17px}.v-resource small{font-size:8px;white-space:normal}.village-objective{margin-top:9px;padding-top:8px}.village-objective>span{font-size:10px}.village-objective p{font-size:10px}
 .village-navigation{bottom:10px;left:10px;right:10px;padding:9px 9px 7px}.village-navigation-label{font-size:8px;margin-bottom:5px}.village-navigation-label span{display:none}.village-stations{gap:5px}.village-stations button{font-size:10px;padding:8px 10px}.village-stations button span{font-size:15px}.village-bottom>span{display:none}.village-bottom{justify-content:flex-end}.village-bottom button{font-size:10px;padding:7px 10px}.village-interact{bottom:140px;max-width:90vw;font-size:10px;padding:10px 13px}
 body.in-village #panel{padding:21px;max-height:90vh}.v-intro-voice{font-size:16px}.v-intro-actions{flex-wrap:wrap;gap:7px}.v-intro-actions>span{width:100%;margin:0 0 4px}.v-intro-actions .primary{padding:12px 15px;font-size:12px}.v-recipe{padding:16px}.v-inventory{grid-template-columns:repeat(2,1fr)}.v-status-grid{grid-template-columns:1fr}.v-route li{font-size:11px}.v-route li b{font-size:8px}.v-transmission{height:48px;font-size:48px}
}
@media(pointer:coarse){
 body.in-village #stick{bottom:142px;left:20px;width:108px;height:108px}body.in-village #knob{left:31px;top:31px}
 .village-interact{left:auto;right:17px;bottom:167px;transform:none;max-width:calc(100vw - 157px);white-space:normal;text-align:center;line-height:1.5;padding:11px 12px}
}
@media(max-height:560px) and (min-width:650px){.village-top{top:56px;width:450px;padding:10px}.village-navigation{bottom:10px;max-width:780px;padding:9px}.village-resources{margin-top:8px}.village-interact{bottom:142px}.village-objective{margin-top:7px;padding-top:7px}body.in-village #panel{max-height:91vh}.v-intro h1{font-size:31px}.v-intro-voice{font-size:15px}.v-transmission{display:none}}
/* Short touch screens need the centre free for the robot and the lower left for movement. */
@media(pointer:coarse) and (max-height:560px) and (min-width:650px){
 .village-top{top:55px;left:12px;width:calc(100vw - 24px);display:grid;grid-template-columns:minmax(390px,1.8fr) minmax(150px,1fr);align-items:center;gap:14px;padding:10px 13px}
 .village-heading{display:none}.village-resources{margin:0;gap:9px}.v-resource{grid-template-columns:17px 1fr}.v-resource strong{font-size:17px}.v-resource small{font-size:9px}
 .village-objective{margin:0;padding:3px 0 3px 14px;border-top:0;border-left:1px solid #65755b55}.village-objective>span{font-size:11px;line-height:1.4;display:block}.village-objective p{display:none}
 .village-navigation{bottom:9px;left:12px;right:12px;max-width:none;display:flex;align-items:center;gap:8px;padding:7px 9px}
 .village-navigation-label{display:none}.village-stations{flex:1;min-width:0;gap:5px;padding:2px 1px}.village-stations button{flex:0 0 auto;font-size:10px;padding:8px}.village-stations button span{font-size:14px}
 .village-bottom{padding:0;flex-shrink:0}.village-bottom>span{display:none}.village-bottom button{font-size:9px;padding:9px}
 body.in-village #stick{bottom:80px;left:20px;width:108px;height:108px}body.in-village #knob{left:31px;top:31px}
 .village-interact{bottom:88px;right:18px;max-width:230px;padding:10px 12px;font-size:10px}
}

/* Salvage field terminal: compact metal instruments above an illustrated world.
   Keep the original layout fallbacks above; this skin never changes action availability. */
body.in-village{
 --v-ink:#e8e5db;--v-muted:#a3aaa5;--v-line:#69716b;--v-brass:#d5b071;
 --v-copper:#b37a4b;--v-teal:#89b9b0;--v-panel:#202829;--v-dark:#131a1c;
}
body.in-village header{padding:18px 25px;background:linear-gradient(#101719ed,#10171980 65%,transparent)}
body.in-village .brand{font-size:13px;letter-spacing:2.5px;color:#e9e7dc}
body.in-village .brand .mark{color:#d6ad70;font-size:29px;filter:drop-shadow(0 2px 2px #0009)}
body.in-village .brand small{font-size:8px;letter-spacing:2px;color:#a3aba3}
body.in-village #stats{font-size:10px;letter-spacing:1.5px;color:#b7c1ba;text-shadow:0 1px 3px #000}
body.in-village #pause{background:#1e292be8;border-color:#74807669;color:#d9dace;padding:9px 13px;font:10px monospace;letter-spacing:.8px;border-radius:2px;box-shadow:inset 0 1px #ffffff0a,0 2px 5px #0003}
.village-top,.village-navigation{
 border:1px solid #a3a28b60;border-radius:3px;
 background:linear-gradient(135deg,#303735f2,#161f22f5 70%);
 box-shadow:inset 0 1px #d7ddca15,0 5px 0 #080d0e45,0 14px 35px #0004;
}
.village-top{
 top:76px;left:25px;width:min(455px,calc(100vw - 50px));padding:13px 15px 12px;
 border-top:2px solid #b69663;
}
.village-top::before,.village-navigation::before{
 content:'';position:absolute;inset:5px;pointer-events:none;
 background:radial-gradient(circle at 2px 2px,#a3a596 0 1px,#101818 1.4px 2px,transparent 2.5px) top left/7px 7px no-repeat,
 radial-gradient(circle at 5px 2px,#a3a596 0 1px,#101818 1.4px 2px,transparent 2.5px) top right/7px 7px no-repeat,
 radial-gradient(circle at 2px 5px,#a3a596 0 1px,#101818 1.4px 2px,transparent 2.5px) bottom left/7px 7px no-repeat,
 radial-gradient(circle at 5px 5px,#a3a596 0 1px,#101818 1.4px 2px,transparent 2.5px) bottom right/7px 7px no-repeat;
}
.village-heading{font-size:9px;letter-spacing:1.6px;color:#d8d5bc;gap:7px}
.village-heading b{color:#b3b7a9;font-size:8px}
.village-dot{background:#97c6b3;width:5px;height:5px;box-shadow:0 0 0 3px #97c6b314,0 0 9px #97c6b352}
.village-resources{margin-top:12px;gap:0;grid-template-columns:repeat(5,minmax(0,1fr))}
.v-resource{padding:0 8px;border-left:1px solid #97a08d25;grid-template-columns:14px minmax(0,1fr);gap:2px 4px}
.v-resource:first-child{padding-left:0;border-left:0}.v-resource:last-child{padding-right:0}
.v-resource i{font-size:15px;color:#92b2a8;text-shadow:0 1px #000}
.v-resource strong{font-size:18px;letter-spacing:-.5px;color:#ebe7d8;font-variant-numeric:tabular-nums}
.v-resource small{font-size:9px;line-height:1.25;color:#a6b0a8;white-space:normal;min-height:23px}
.v-resource.v-coins i,.v-resource.v-coins strong{color:#e4bd74}
.village-objective{border-top:1px solid #a9a27e33;margin-top:8px;padding-top:9px}
.village-objective>span{color:#e3bd80;font-size:11px;letter-spacing:.1px}
.village-objective p{font-size:10px;line-height:1.5;color:#b8c1b7;margin-top:4px}
.village-navigation{left:25px;right:25px;bottom:18px;max-width:900px;padding:12px 14px 9px}
.village-navigation-label{color:#cbb792;font-size:8px;letter-spacing:2px;margin-bottom:7px}
.village-navigation-label span{color:#a0aaa2;font-size:9px;letter-spacing:.25px}
.village-stations{gap:6px;padding:2px 1px 4px;scrollbar-color:#8f8267 #202b2b}
.village-stations button{
 position:relative;justify-content:center;gap:7px;min-height:39px;padding:9px 10px;font-size:10px;
 color:#e2e4d9;border:1px solid #a1a49062;border-bottom-color:#394543;border-radius:2px;
 background:linear-gradient(#424c45,#283334);box-shadow:inset 0 1px #d8dec018,0 2px 2px #0004;
 transition:background .15s,border-color .15s,color .15s;
}
.village-stations button span{font-size:17px;color:#d7b77f;filter:drop-shadow(0 1px 1px #000)}
.village-stations button.v-unbuilt{color:#b0b7aa;background:linear-gradient(#262f2f,#1d2729);border-style:dashed;border-color:#6f776569;box-shadow:inset 0 1px #ffffff04,0 2px 2px #0003}
.village-stations button.v-unbuilt span{color:#929c87}
.village-stations button:hover{color:#fff0d2;border-color:#d4ad69;background:linear-gradient(#505347,#344143)}
.village-stations button:active{box-shadow:inset 0 2px 5px #0008;transform:translateY(1px)}
.village-bottom{padding-top:6px;color:#a0aba3;font-size:9px;gap:10px}
.village-bottom button{
 color:#f3d3a1;font-size:9px;letter-spacing:1px;padding:9px 13px;border-color:#c0955d80;border-radius:2px;
 background:linear-gradient(#60513a,#3e392e);box-shadow:inset 0 1px #ffe5b21a,0 2px 3px #0004;
}
.village-bottom button:hover{color:#fff0d5;border-color:#e1bf80;background:#65553b}
.village-interact{
 bottom:154px;border-radius:2px;border:1px solid #c7b486a3;border-bottom:2px solid #c5a466;
 background:linear-gradient(#303c38f2,#152329f5);color:#f4dfb5;box-shadow:inset 0 1px #ffecc216,0 7px 20px #0005;
 font-size:10px;letter-spacing:.8px;padding:11px 15px;
}
.village-interact:disabled{opacity:.65;color:#c4c9ba;border-color:#81918465;box-shadow:0 3px 10px #0004}
body.in-village #stick{background:radial-gradient(circle,#16262a88,#18272e66 55%,#172225a8);border-color:#adb4986b;box-shadow:inset 0 0 0 7px #101b223f,0 3px 12px #0004}
body.in-village #knob{background:linear-gradient(135deg,#b9bda7c2,#788f89bf);border-color:#e8dfba;box-shadow:0 3px 6px #0005}

/* Panels use a brass-edged service folio. Functional colors are deliberately
   reserved: warm brass = an action, mint = available, rust = insufficient. */
body.in-village .overlay{z-index:6;background:#091115bd;backdrop-filter:blur(4px)}
body.in-village #panel{
 position:relative;padding:31px 35px;width:min(930px,94vw);max-height:86vh;border:1px solid #aaa88a80;border-top:3px solid #b69a67;border-radius:3px;
 background:linear-gradient(140deg,#303637f7,#20292dfb 45%,#182429fb);color:var(--v-ink);
 box-shadow:inset 0 0 0 5px #0b141820,0 7px 0 #0b121870,0 28px 100px #0009;
 scrollbar-color:#a29876 #182429;scrollbar-width:thin;
}
body.in-village #panel .eyebrow{color:#d5b47c;font-size:9px;letter-spacing:2.4px;border-bottom:1px solid #b4aa8138;padding-bottom:12px;margin-bottom:16px}
body.in-village #panel h2{font-size:clamp(23px,3vw,33px);line-height:1.18;letter-spacing:-.65px;margin:9px 0 15px;color:#f0eadb}
body.in-village #panel p{color:#b9c1b9;font-size:13px;line-height:1.75}
body.in-village #panel .wallet{color:#e9c88a;font:700 14px monospace;border-left:2px solid #b79e69;padding:9px 12px;background:#b99f6710}
body.in-village #panel button:not(.card){border-radius:2px;font-size:11px;letter-spacing:.5px;background:#303e3e;border-color:#99a48a70;box-shadow:inset 0 1px #fff6db0a,0 2px 2px #0003}
body.in-village #panel button:not(.card):hover{border-color:#ddbd83;background:#3b4846}
body.in-village #panel button.primary{
 min-height:44px;background:linear-gradient(#d5b67d,#b3935f);border:1px solid #e9ce9680;border-bottom-color:#726444;
 color:#1b272a;font-weight:800;padding:13px 22px;box-shadow:inset 0 1px #fff0c64d,0 3px 0 #10181970;
}
body.in-village #panel button.primary:hover{background:linear-gradient(#ead09a,#cead73);color:#142025}
body.in-village #panel button.primary:disabled{background:#424c49;border-color:#75806d4d;color:#98a18e;box-shadow:none;cursor:not-allowed}
body.in-village #panel button:focus-visible,.village-stations button:focus-visible,.village-bottom button:focus-visible,.village-interact:focus-visible{outline:3px solid #edce8c;outline-offset:4px}
.v-panel h3{font-size:18px;letter-spacing:-.15px;color:#e5decb}
.v-back,body.in-village #workshopBack{margin-top:22px;min-height:42px;color:#c7d0c4;background:#253436!important;border-color:#6d83777d!important}
.v-warning,.v-notice{border:1px solid #b783557f;border-left:3px solid #d8a36d;padding:12px 14px;background:#6a492b2b;border-radius:2px;color:#ecc493!important}
.v-note{border-left:2px solid #84a89b;border-radius:0 2px 2px 0;background:linear-gradient(90deg,#8ba49116,#8ba49107);padding:15px 18px;margin:21px 0}
.v-note>strong{font-size:14px;color:#d7decb}.v-note p{font-size:12px!important}.v-note small{color:#a8b9aa;font-size:11px;line-height:1.7}
.v-recipe{padding:21px;border:1px solid #87917b50;border-top:2px solid #9a9065;border-radius:2px;background:linear-gradient(140deg,#333d39a1,#14222766);box-shadow:inset 0 1px #f2e8b909}
.v-costs{gap:7px;margin:15px 0}
.v-cost{border-color:#989b786b;border-radius:2px;background:#48504060;color:#dedfc5;padding:7px 10px;font-size:11px}
.v-cost.v-short{color:#e8b397;border-color:#bb845e75;background:#72503a40}
.v-requirement,.v-caption{color:#a2b0a3!important;font-size:11px!important;line-height:1.8!important}.v-requirement{color:#d4bd91!important}
.v-ready{color:#b5d3b4;font-size:10px;letter-spacing:1px}
.v-inventory{gap:10px}
.v-inventory>div{border:1px solid #838b714d;border-top:2px solid #aa9b6b;border-radius:2px;background:linear-gradient(#3d48404d,#12232866);padding:19px 11px}
.v-inventory i{color:#c6ba8b;font-size:24px}.v-inventory b{color:#eee6cd;font-size:28px;font-variant-numeric:tabular-nums}.v-inventory span{color:#abb7a7;font-size:11px}
.v-status-grid>div{border:1px solid #818e7552;border-radius:2px;background:#8c9d7b0b;padding:18px}
.v-status-grid small{color:#aab7a3;font-size:9px;letter-spacing:.8px}.v-status-grid b{color:#e5d8b3;font-size:22px}
.v-production-meter{height:8px;background:#111f23;border:1px solid #79917d55;box-shadow:inset 0 1px 3px #0004}
.v-production-meter i{background:repeating-linear-gradient(120deg,#a6bf8e 0 8px,#8ba67c 8px 16px);box-shadow:0 0 11px #bed29625}
.v-character-quote{border-top:1px solid #9ba28033;color:#bac4a9!important}.v-character-quote span{color:#9eac95;font-size:9px;letter-spacing:.5px}
.v-expedition{border:1px solid #ac986580;border-left:3px solid #c6ac71;border-radius:2px;background:linear-gradient(110deg,#79644128,#253a3c20);padding:23px}
.v-expedition h3{font-size:27px;letter-spacing:-.6px;color:#f0e5cd}.v-expedition small{color:#c3c6a7;font-size:10px;line-height:1.7;display:block}
.v-records{border-color:#969e7f44;padding:16px 0}.v-records summary{color:#c4d1bc;font-size:12px;min-height:28px;padding:5px 0}.v-records article{border-color:#a9966d;padding-left:16px}.v-records small{color:#ddc28c;font-size:9px;letter-spacing:1.4px}
.v-route>strong{font-size:12px;color:#d0d4bb}.v-route li{border-color:#93a08725;color:#a2ada0;padding:11px 0;font-size:12px}.v-route li b{color:#abb599;font-size:8px;letter-spacing:.4px;align-self:center}.v-route li.v-current,.v-route li.v-current b{color:#e3ca90}
.v-transmission{color:#d3b47a;text-shadow:0 0 35px #acb8a524;font-size:64px}
.v-intro h1{color:#f0e5ce;letter-spacing:-1px;line-height:1.1}.v-speaker{font-size:9px;letter-spacing:2.4px;color:#dab985}
body.in-village #panel .v-intro-voice{font-size:19px;line-height:1.7;color:#d4ddd0}
.v-intro-actions{border-top-color:#a89a743d;padding-top:20px}.v-intro-actions>span{color:#b0baaa}
body.in-village #panel .v-intro-actions>button:not(.primary){background:transparent;color:#b2bca9;border-color:transparent;box-shadow:none;font-size:9px}
body.in-village .workshop-grid{gap:13px;margin-top:22px}
body.in-village .workshop-grid .card{border-radius:2px;background:linear-gradient(130deg,#3d4740a1,#16272c91);border:1px solid #939b7f52;border-top:2px solid #a9976e;box-shadow:inset 0 1px #cfcba808}
body.in-village .workshop-grid .card:hover:not(:disabled){border-color:#d9b981;background:linear-gradient(130deg,#4b5448,#213236)}
body.in-village .workshop-grid .card:disabled{opacity:.65;background:linear-gradient(130deg,#35403961,#19292d91)}
body.in-village .workshop-grid .card strong{color:#e5decb;font-size:17px}body.in-village .workshop-grid .card em{color:#ceb780;font-size:10px}
body.in-village .workshop-grid .card small{color:#b3c0ae;font-size:11px}body.in-village .workshop-grid .card b{color:#dcca98;font:10px monospace;line-height:1.6}
body.in-village .workshop-grid .upgrade-art{border:1px solid #a99b702f;border-radius:3px;box-shadow:inset 0 0 12px #0005}

@media(max-width:700px){
 body.in-village header{padding:10px 12px}body.in-village .brand{font-size:10px;letter-spacing:1px}body.in-village .brand .mark{font-size:24px}
 body.in-village #pause{font-size:9px;padding:9px 10px}
 .village-top{top:58px;left:12px;width:calc(100vw - 24px);padding:11px 12px 10px}
 .village-heading{font-size:8px;letter-spacing:1px}.village-heading b{font-size:8px}
 .village-resources{margin-top:10px}.v-resource{padding:0 6px;gap:3px;grid-template-columns:12px minmax(0,1fr)}.v-resource strong{font-size:17px}.v-resource i{font-size:13px}.v-resource small{font-size:8px;min-height:20px}
 .village-objective{margin-top:7px;padding-top:8px}.village-objective>span{font-size:10px}.village-objective p{font-size:10px}
 .village-navigation{bottom:10px;left:10px;right:10px;padding:9px 10px 7px}.village-navigation-label{font-size:7px;letter-spacing:1.4px;margin-bottom:5px}
 .village-stations button{font-size:10px;padding:8px 10px;min-height:38px}.village-stations button span{font-size:16px}
 .village-bottom button{font-size:9px;padding:9px 11px}.village-interact{bottom:149px;font-size:9px;padding:11px 12px}
 body.in-village #panel{padding:22px;max-height:90vh;border-top-width:2px}body.in-village #panel .eyebrow{font-size:8px;letter-spacing:1.7px;padding-bottom:10px;margin-bottom:13px}
 body.in-village #panel p{font-size:12px}body.in-village #panel .v-intro-voice{font-size:16px}
 body.in-village #panel button.primary{font-size:10px;padding:12px 17px}.v-recipe,.v-expedition{padding:17px}.v-note{padding:13px 15px}
 .v-intro-actions{gap:8px}.v-intro-actions>span{width:100%}.v-transmission{height:46px;font-size:46px}.v-route li{font-size:11px}.v-route li b{font-size:7px;max-width:115px;text-align:right;line-height:1.5}
}
@media(pointer:coarse){
 .village-stations button{min-height:44px}.village-bottom button{min-height:40px}
 body.in-village #stick{bottom:158px;left:18px}
 .village-interact{left:auto;right:16px;bottom:177px;transform:none;max-width:calc(100vw - 158px);white-space:normal;line-height:1.5;min-height:44px}
 body.in-village #panel button:not(.card){min-height:44px}
}
@media(max-height:560px) and (min-width:650px){
 body.in-village header{padding:10px 18px}body.in-village .brand{font-size:11px}body.in-village .brand small{display:none}
 .village-top{top:56px;left:18px;width:430px;padding:10px 12px}.village-navigation{bottom:10px;max-width:780px;padding:9px 12px}
 .village-resources{margin-top:8px}.village-interact{bottom:147px}
 body.in-village #panel{max-height:91vh;padding:25px 30px}body.in-village #panel .v-intro-voice{font-size:15px}
}
@media(pointer:coarse) and (max-height:560px) and (min-width:650px){
 .village-top{top:54px;left:12px;width:calc(100vw - 24px);padding:9px 13px;grid-template-columns:minmax(390px,1.8fr) minmax(150px,1fr);gap:14px}
 .village-resources{margin:0;gap:0}.v-resource{padding:0 12px;grid-template-columns:17px minmax(0,1fr)}.v-resource:first-child{padding-left:0}.v-resource strong{font-size:17px}.v-resource small{min-height:0;font-size:8px}
 .village-objective{margin:0;padding:3px 0 3px 14px;border-top:0;border-left:1px solid #a9a27e33}.village-objective>span{font-size:10px}.village-objective p{display:none}
 .village-navigation{bottom:9px;left:12px;right:12px;max-width:none;padding:6px 9px;gap:8px}
 .village-stations{gap:5px}.village-stations button{min-height:44px;padding:7px 9px;font-size:9px}.village-stations button span{font-size:15px}
 .village-bottom{padding:0}.village-bottom button{min-height:40px;padding:8px 10px;font-size:8px}
 body.in-village #stick{bottom:82px;left:20px}.village-interact{bottom:88px;right:18px;max-width:230px;padding:10px 12px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){.village-stations button{transition:none}}

/* Resource instruments double as an accessible field guide: hover or focus on
   desktop; tap once to pin an explanation and tap again/outside to dismiss. */
.village-resources .v-resource{
 min-width:0;min-height:44px;margin:0;text-align:left;font:inherit;cursor:help;pointer-events:auto;
 border-top:0;border-right:0;border-bottom:0;border-left:1px solid #97a08d25;border-radius:0;
 background:transparent;color:inherit;box-shadow:none;
}
.village-resources .v-resource:first-child{border-left:0}
.village-resources .v-resource small{text-decoration:underline;text-decoration-style:dotted;text-decoration-color:#acb7a763;text-underline-offset:3px}
.village-resources .v-resource:hover,.village-resources .v-resource[aria-expanded="true"]{background:#c4b68112;border-left-color:#97a08d25}
.village-resources .v-resource:focus-visible{outline:2px solid #e1c18a;outline-offset:3px;background:#c4b68119}
.v-resource-tooltip{
 position:fixed;z-index:8;pointer-events:auto;touch-action:pan-y;overscroll-behavior:contain;
 width:min(320px,calc(100vw - 16px));padding:15px 17px;border:1px solid #b29e6daf;border-top:2px solid #dbbc7f;border-radius:3px;
 background:linear-gradient(130deg,#303a38fc,#17252afd);box-shadow:0 4px 0 #0a121980,0 12px 35px #0009;
 color:#d9dfd0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a29876 #182429;
}
.v-resource-tooltip[hidden]{display:none!important}
.v-resource-tooltip>strong{display:block;margin:0 0 12px;font:700 14px "Segoe UI",sans-serif;color:#e9cf9b;letter-spacing:.1px}
.v-resource-tooltip p{max-width:none;margin:10px 0 0;font:12px/1.6 "Segoe UI",sans-serif;color:#d0d8cb}
.v-resource-tooltip p>span{display:block;margin-bottom:4px;font:9px monospace;letter-spacing:1.2px;color:#a6c4b7}
.v-resource-tooltip small{display:block;margin-top:12px;padding-top:10px;border-top:1px solid #b3b08a33;font:11px/1.55 "Segoe UI",sans-serif;color:#abb9aa}
@media(pointer:coarse){.village-stations button{min-height:44px}.v-resource-tooltip{padding:13px 15px}}
.v-generator-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:17px 0 26px}
.v-generator-actions button{min-height:44px;padding:12px 15px;font:10px monospace;letter-spacing:.5px}
.v-generator-actions .primary{margin:0;padding:13px 16px}
.v-generator-guide-title{margin-top:27px!important}
.v-generator-steps{list-style:none;counter-reset:generator-step;padding:0;margin:16px 0 24px}
.v-generator-steps>li{counter-increment:generator-step;position:relative;margin:0;padding:4px 0 19px 43px;border-left:1px solid #82977c50;margin-left:13px}
.v-generator-steps>li:last-child{border-left-color:transparent;padding-bottom:0}
.v-generator-steps>li:before{content:counter(generator-step);position:absolute;top:0;left:-14px;display:grid;place-items:center;width:27px;height:27px;border:1px solid #a9a077;background:#283b30;color:#efd29b;border-radius:50%;font:700 12px monospace}
.v-generator-steps strong{font-size:14px;color:#dbe4cc}
.v-generator-steps p{margin:6px 0 0;font-size:12px;line-height:1.65}
.v-generator-steps .v-costs{margin:9px 0 6px}
@media(max-width:650px){.v-generator-actions{flex-direction:column;align-items:stretch}.v-generator-actions button{text-align:left}.v-generator-steps>li{padding-left:29px}.v-generator-steps strong{font-size:13px}}
.v-refinery-stats{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:17px 0 11px}
.v-refinery-stats span{display:block;font:9px monospace;letter-spacing:.7px;color:#9fbaaa}
.v-refinery-stats b{display:block;margin-top:6px;font:700 24px monospace;color:#dfc595;overflow-wrap:anywhere}
.v-refinery-legacy{border-top:1px solid #9b956854;padding-top:11px!important}
.v-refinery-order label{display:block;margin:16px 0 8px;color:#d7dfca;font-size:13px;font-weight:600}
.v-refinery-order input{display:block;min-height:46px;width:190px;max-width:100%;padding:10px 13px;border:1px solid #af9f6d;border-radius:4px;background:#142725;color:#e8e3c9;font:700 20px monospace;touch-action:manipulation;user-select:text}
.v-refinery-order input:focus-visible{outline:3px solid #d6c184;outline-offset:3px}
.v-refinery-cost-label{display:block;flex-basis:100%;font:10px monospace;letter-spacing:.6px;color:#adbca3;margin-bottom:2px}
.v-refinery-order .primary{min-height:44px}
.v-boss-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;padding:0;margin:17px 0;gap:8px}
.v-boss-guide li{padding:12px;border:1px solid #7c8d7559;background:#1b302e;border-radius:4px}
.v-boss-guide span{display:block;font:10px monospace;color:#acc2b0;letter-spacing:.5px}
.v-boss-guide strong{display:block;margin:6px 0 3px;font-size:14px;color:#dfdfc6}
.v-boss-guide small{display:block;font-size:10px!important;line-height:1.5}
.v-boss-guide .v-boss-final{border-color:#d3b176;background:#57482a42}.v-boss-guide .v-boss-final span,.v-boss-guide .v-boss-final strong{color:#ebc58b}
@media(max-width:650px){.v-refinery-stats{gap:9px}.v-refinery-stats span{font-size:8px}.v-refinery-stats b{font-size:21px}.v-refinery-order input{width:100%}.v-refinery-order .primary{width:100%}}
