/* Shared finish: opaque, readable panels preserve the scene and existing mobile geometry. */
body{background:#0b1412}.scene.camp{background-image:url('assets/camp-release.webp');background-position:center 58%}.scene.workshop,.scene.dealer{background-image:url('assets/camp-release.webp')}.camp-view #camp-miner{background:linear-gradient(135deg,#13221fed,#0d1716e8);border:1px solid #a3b69a40;box-shadow:0 14px 36px #02080740}.camp-view .claim-info{background:#0e1b16d9;padding:18px;border:1px solid #a4b69b40;border-radius:5px}.camp-utilities,.supply-outpost{border-color:#a7b49640}.camp-utilities{background:#101d19ed;box-shadow:0 12px 34px #0003}.miner-card{border-radius:5px}.miner-card:hover{border-color:#b4caa0}.miner-card.selected{box-shadow:inset 0 -3px #c8dfb5}.gem-stage{background:radial-gradient(ellipse at 50% 43%,#34423f 0%,#17221f 40%,#080f0e 80%);box-shadow:inset 0 0 70px #0004}.gem-caption{padding:6px 10px;background:#0c1814c9;border-left:2px solid #a9c492;border-radius:3px}.rotation-hint{color:#fff;text-shadow:0 1px 4px #000}.cut-panel{background:linear-gradient(155deg,#172721,#0f1c17)}.cut-track{border-radius:4px;overflow:hidden}.cut-track>div{background:linear-gradient(90deg,#719981,#d8e9b8)}.stone-item.active{background:#b5d3b51a;border-color:#adcca36e}.fps-viewport,.journey-stage{border-color:#9aaf905c}.field-map-dialog,.prize-dialog,.contest-dialog{box-shadow:0 22px 80px #0009}.primary{border-radius:4px}.secondary{border-radius:4px}
@media(max-width:900px),(pointer:coarse) and (max-height:600px){.camp-view .claim-info{padding:14px}.gem-caption{padding:3px 6px}.gem-caption h2{font-size:17px}.gem-caption span{font-size:11px}.camp-utilities{box-shadow:none}}

/* Keep secondary labels small; controls remain in their dedicated mobile rows. */
@media(max-width:900px),(pointer:coarse) and (max-height:600px){
 body:not(.tutorial-demo) .gem-caption{max-width:calc(100% - 20px);pointer-events:none}
 body:not(.tutorial-demo) .gem-caption h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 body:not(.tutorial-demo) .rotation-hint{font-size:11px;padding:3px 6px;pointer-events:none}
 body:not(.tutorial-demo) #fps-viewport .fps-top{pointer-events:none;gap:4px;line-height:1.2}
 body:not(.tutorial-demo) #fps-viewport .excavation{font-size:11px;line-height:1.2;padding:3px 6px;pointer-events:none}
}

/* Consistent tactile controls and restrained selection feedback across the game. */
button{transition:background-color .14s,border-color .14s,box-shadow .14s}
button:not(:disabled):active{filter:brightness(.86)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f0d392;outline-offset:2px}
button:disabled{cursor:not-allowed;filter:saturate(.35);opacity:.55}
.has-mine-3d .face-cell.selected{outline:2px solid #dfd2a0;outline-offset:-5px;border-radius:3px}
.has-mine-3d .face-cell.selected .tile-pips{background:#0b1714e6;color:#fff4da;border-radius:3px}
.operating .excavation progress{accent-color:#e3c582}
#gem{cursor:grab}#gem:active{cursor:grabbing}
.camp-utilities button,.supply-outpost button{border-color:#a2b79b66}
@media(prefers-reduced-motion:reduce){button{transition:none}.operating .headlamp,.operating .viewmodel img{animation:none}}

.opal-cut-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.opal-cut-options button{min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid #536664;border-radius:9px;background:#142b2d;color:#d7e5dd;font-size:11px;line-height:1.25}.opal-cut-options svg{width:43px;height:49px;fill:#548c84}.opal-cut-options button[aria-pressed=true]{border-color:#e4b36d;background:#28443f;color:#fff2d6;box-shadow:inset 0 0 0 1px #e4b36d}.opal-cut-options button[aria-pressed=true] svg{fill:#d7b879}.opal-cut-options button:disabled{opacity:.65}.opal-cut-options button[aria-pressed=true]:disabled{opacity:1}

.camp-mine-shed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;max-width:440px}.camp-buttons .camp-mine-shed button{width:100%;max-width:none;min-width:0;padding:13px 10px}

.companion-dialog{width:min(680px,calc(100vw - 24px));max-height:85dvh;padding:22px!important}.companion-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.companion-heading h2{margin:0}.companion-note{font-size:13px;opacity:.8;line-height:1.5}.companion-tabs{display:flex;gap:6px;margin:18px 0;border-bottom:1px solid #60756b;padding-bottom:10px}.companion-tabs button{flex:1;padding:10px 6px;font-size:12px}.companion-tabs .selected{background:#b9d3bd;color:#172c29;border-color:#b9d3bd}.companion-card{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #ffffff18}.companion-card svg,.companion-card img{width:76px;height:76px;border-radius:12px;object-fit:cover;flex-shrink:0}.companion-card-info{flex:1;min-width:0;display:grid;gap:5px}.companion-card-info strong{font-size:15px;overflow-wrap:anywhere}.companion-card-info small{font-size:12px;opacity:.7}.companion-card>button{font-size:12px;padding:10px;max-width:120px;white-space:normal}.companion-animal-icon{font-size:42px;width:76px;text-align:center}.dog-name-form{padding:15px;background:#ffffff08;border-radius:10px;display:grid;gap:12px}.dog-name-form label{display:grid;gap:8px}.dog-name-form p:empty{display:none}.companion-accessory-select{display:grid;gap:10px;margin:18px 0}.companion-accessory-select select{width:100%;padding:12px;background:#233632;color:#f2f0e6;border:1px solid #60756b;border-radius:8px}@media(max-width:450px){.companion-dialog{padding:14px!important}.companion-card{gap:9px}.companion-card svg,.companion-card img,.companion-animal-icon{width:60px;height:60px}.companion-card-info strong{font-size:13px}.companion-tabs button{font-size:11px}.companion-card>button{max-width:92px}}
.community-dialog.companion-dialog .companion-tabs button[aria-selected="true"]{background:#b9d3bd!important;color:#172c29!important;border-color:#b9d3bd!important}.community-dialog.companion-dialog .companion-tabs button[aria-selected="false"]{background:transparent!important;color:#eeeade!important;border-color:#60756b!important}
