/* S.T.A.L.K.E.R. 98 — WebGL view, HUD canvas and X-Ray-style DOM windows */
.st98 { position: relative; width: 100%; height: 100%; min-height: 0; background: #000; overflow: hidden; outline: none; user-select: none; -webkit-user-select: none; font: 13px "Arial Narrow", Tahoma, Arial, sans-serif; color: #d8d2b8; }
.st98-gl, .st98-hud { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.st98-gl { cursor: crosshair; }
.st98-hud { pointer-events: none; }
.st98-err { display: none; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); max-width: 80%; padding: 12px 16px; background: #c0c0c0; color: #000; border: 2px outset #fff; font: 12px Tahoma, Arial, sans-serif; text-align: center; }
.st98-win { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; z-index: 2; }
.st98-panel { position: relative; max-width: 96%; max-height: 94%; overflow: auto; padding: 14px 18px; background: linear-gradient(180deg, rgba(38,36,26,0.96), rgba(22,22,16,0.97)); border: 2px solid #6a6448; box-shadow: 0 0 0 1px #000, inset 0 0 0 1px #2a2818, 0 8px 30px rgba(0,0,0,0.7); }
.st98-panel h2 { margin: 2px 0 12px; font: bold 20px "Arial Narrow", Arial; letter-spacing: 1px; color: #e0c870; text-align: center; text-transform: uppercase; text-shadow: 0 2px 0 #000; }
.st98-panel h3 { margin: 10px 0 6px; font: bold 14px "Arial Narrow", Arial; color: #c8b060; border-bottom: 1px solid #4a4632; text-transform: uppercase; }
.st98 .dim { color: #8a8468; }
.st98 .red { color: #ff6a50; }
.st98 .green { color: #80e060; }
.st98-center { text-align: center; }
.st98-btn { display: block; min-width: 220px; margin: 5px auto; padding: 7px 16px; font: bold 15px "Arial Narrow", Arial; color: #e8e0c0; text-transform: uppercase; letter-spacing: 1px; background: linear-gradient(180deg, #4a4630, #2a281c); border: 1px solid #7a7250; box-shadow: inset 0 1px 0 #6a6448, 0 1px 0 #000; cursor: pointer; }
.st98-btn:hover { color: #fff; background: linear-gradient(180deg, #6a6036, #3a361e); border-color: #c8b060; }
.st98-btn.sm { display: inline-block; min-width: 0; margin: 3px; padding: 4px 10px; font-size: 12px; }
.st98-btn.off { opacity: 0.45; }
.st98-menu.row { display: flex; justify-content: center; gap: 8px; }
.st98-menu.row .st98-btn { min-width: 140px; margin: 5px 0; }
.st98-mainmenu { position: absolute; left: 5%; top: 50%; transform: translateY(-50%); background: rgba(12,12,8,0.72); border-color: #4a4632; min-width: 300px; }
.st98-logo { text-align: center; margin-bottom: 14px; }
.st98-logo-t { font: bold 38px "Arial Black", Impact, Arial; letter-spacing: 4px; color: #c8b060; text-shadow: 0 0 12px rgba(200,170,60,0.4), 0 3px 0 #000; }
.st98-logo-s { font: bold 17px "Arial Narrow", Arial; letter-spacing: 6px; color: #d8d0b0; margin-top: -2px; }
.st98-logo-e { font: italic 12px Georgia, serif; color: #8a8468; margin-top: 2px; }
.st98-foot { margin-top: 12px; text-align: center; font-size: 11px; color: #6a6450; }
.st98-pausemenu { min-width: 320px; }
.st98-pausemenu.wide { min-width: 520px; }
.st98-slots { display: flex; flex-direction: column; gap: 4px; }
.st98-slot { display: flex; gap: 12px; align-items: baseline; padding: 7px 10px; background: rgba(0,0,0,0.35); border: 1px solid #4a4632; cursor: pointer; }
.st98-slot:hover { border-color: #c8b060; background: rgba(60,54,30,0.5); }
.st98-slot.off { opacity: 0.5; cursor: default; }
.st98-slot b { min-width: 150px; color: #e0c870; }
.st98-opts { display: flex; flex-direction: column; gap: 4px; }
.st98-opt { display: grid; grid-template-columns: 1fr auto 130px auto; align-items: center; gap: 6px; padding: 3px 6px; background: rgba(0,0,0,0.3); }
.st98-opt b { text-align: center; color: #f0e8c0; }
.st98-help { margin: 0; padding-left: 18px; line-height: 1.8; }
.st98-credits p { text-align: center; margin: 8px 0; }
/* dialogue */
.st98-dialog { position: absolute; left: 50%; bottom: 3%; transform: translateX(-50%); width: min(820px, 94%); max-height: 62%; display: flex; flex-direction: column; }
.st98-dlg-head { display: flex; gap: 12px; align-items: center; margin-bottom: 8px; }
.st98-portrait { width: 72px; height: 72px; border: 1px solid #8a8060; image-rendering: pixelated; }
.st98-dlg-name { font: bold 18px "Arial Narrow", Arial; color: #e0c870; }
.st98-dlg-log { flex: 1; min-height: 60px; max-height: 210px; overflow: auto; padding: 6px 10px; background: rgba(0,0,0,0.35); border: 1px solid #3a3828; }
.st98-dlg-log p { margin: 5px 0; line-height: 1.35; }
.st98-dlg-log p.npc b { color: #e0c870; }
.st98-dlg-log p.me { color: #a8c8e8; }
.st98-dlg-log p.me b { color: #80b0e0; }
.st98-dlg-opts { margin-top: 8px; }
.st98-dlg-opt { padding: 5px 10px; margin: 2px 0; cursor: pointer; color: #e8e0c0; border: 1px solid transparent; }
.st98-dlg-opt:hover { border-color: #c8b060; background: rgba(90,80,40,0.45); color: #fff; }
/* inventory / trade / loot */
.st98-invwin { width: min(1020px, 97%); height: min(620px, 94%); display: flex; flex-direction: column; padding: 8px 10px; }
.st98-head { display: flex; justify-content: space-between; align-items: center; padding: 2px 4px 6px; font: bold 16px "Arial Narrow", Arial; color: #e0c870; text-transform: uppercase; border-bottom: 1px solid #4a4632; margin-bottom: 6px; }
.st98-x { background: #3a3622; color: #e0d8b0; border: 1px solid #6a6448; cursor: pointer; font-weight: bold; padding: 1px 8px; }
.st98-x:hover { background: #7a3020; }
.st98-inv { flex: 1; display: grid; grid-template-columns: 300px 1fr 250px; gap: 8px; min-height: 0; }
.st98-inv-left, .st98-inv-mid, .st98-inv-right, .st98-trcol, .st98-trmid { min-height: 0; overflow: auto; background: rgba(0,0,0,0.3); border: 1px solid #3a3828; padding: 6px; }
.st98-slots-row { display: flex; gap: 6px; margin-bottom: 6px; }
.st98-slotbox { flex: 0 0 auto; }
.st98-slotbox .lbl, .st98 .lbl { font-size: 11px; color: #a09870; text-transform: uppercase; margin-bottom: 2px; }
.st98-empty { width: 64px; height: 64px; background: rgba(0,0,0,0.4); border: 1px dashed #4a4632; }
.st98-slotbox.wide .st98-empty, .st98-slotbox.suit .st98-empty { width: 128px; }
.st98-belt { display: flex; gap: 3px; margin-bottom: 8px; }
.st98-belt .st98-empty, .st98-belt .st98-item { width: 48px; height: 48px; }
.st98-belt .st98-item img { width: 48px; height: 48px; }
.st98-grid { display: flex; flex-wrap: wrap; gap: 3px; align-content: flex-start; }
.st98-item { position: relative; width: 64px; height: 64px; background: rgba(40,38,26,0.8); border: 1px solid #4a4632; cursor: pointer; }
.st98-item.wide { width: 131px; }
.st98-item img { width: 100%; height: 100%; display: block; image-rendering: auto; }
.st98-item:hover { border-color: #a89850; }
.st98-item.sel { border-color: #ffd040; box-shadow: 0 0 6px rgba(255,208,64,0.6); }
.st98-item em { position: absolute; right: 2px; bottom: 1px; font: bold 11px Arial; font-style: normal; color: #fff; text-shadow: 1px 1px 0 #000; }
.st98-item u { position: absolute; left: 2px; top: 1px; font: bold 10px Arial; text-decoration: none; color: #ffe070; text-shadow: 1px 1px 0 #000; }
.st98-item i.cond { position: absolute; left: 2px; bottom: 2px; height: 3px; max-width: calc(100% - 4px); }
.st98-status { margin-top: 6px; }
.st98-sbar { display: grid; grid-template-columns: 90px 1fr; align-items: center; gap: 6px; margin: 3px 0; font-size: 12px; }
.st98-sbar i { height: 8px; background: rgba(0,0,0,0.6); border: 1px solid #4a4632; }
.st98-sbar i b { display: block; height: 100%; }
.st98-prot { margin-top: 6px; font-size: 11px; color: #a8a080; line-height: 1.4; }
.st98-details { font-size: 12px; line-height: 1.4; }
.st98-det-name { font: bold 15px "Arial Narrow", Arial; color: #e0c870; margin-bottom: 4px; }
.st98-det-img { display: block; width: 128px; height: 64px; margin: 4px auto; background: rgba(0,0,0,0.35); border: 1px solid #3a3828; }
.st98-det-desc { color: #c8c2a8; margin: 6px 0; }
.st98-det-rows div { margin: 2px 0; color: #b8b298; }
.st98-actions { margin-top: 8px; display: flex; flex-wrap: wrap; justify-content: center; }
.st98-foot2 { display: flex; gap: 24px; justify-content: space-between; padding: 6px 4px 0; border-top: 1px solid #4a4632; margin-top: 6px; }
.st98-trade { flex: 1; display: grid; grid-template-columns: 1fr 250px 1fr; gap: 8px; min-height: 0; }
.st98-money { margin-top: 10px; text-align: center; color: #ffe070; }
/* PDA */
.st98-pda { width: min(980px, 97%); height: min(620px, 94%); display: flex; flex-direction: column; padding: 8px 12px; background: linear-gradient(180deg, rgba(26,32,22,0.97), rgba(14,18,12,0.98)); border-color: #5a6a48; }
.st98-tabs { display: flex; gap: 4px; margin-bottom: 6px; }
.st98-tab { flex: 1; padding: 5px; font: bold 13px "Arial Narrow", Arial; text-transform: uppercase; color: #a8b890; background: #1e2618; border: 1px solid #4a5a3a; cursor: pointer; }
.st98-tab.on, .st98-tab:hover { color: #f0ffd0; background: #3a4a2a; border-color: #9ab070; }
.st98-pdabody { flex: 1; min-height: 0; overflow: auto; background: rgba(0,0,0,0.35); border: 1px solid #3a4a2a; padding: 8px; }
.st98-tasks { max-width: 820px; }
.st98-task { padding: 6px 10px; margin: 5px 0; background: rgba(40,50,30,0.45); border-left: 3px solid #6a7a50; }
.st98-task.main { border-left-color: #e0c060; }
.st98-task.done { opacity: 0.6; }
.st98-task.failed { opacity: 0.6; border-left-color: #b04030; }
.st98-task p { margin: 4px 0; line-height: 1.35; }
.st98-task ul { margin: 2px 0 0; padding-left: 18px; font-size: 12px; }
.st98-task .tag { float: right; font-size: 11px; color: #a0b080; }
.st98-news { margin: 3px 0; font-size: 12px; line-height: 1.35; }
.st98-mapwrap { display: flex; gap: 10px; height: 100%; }
.st98-map { border: 1px solid #5a6a48; image-rendering: auto; align-self: flex-start; }
.st98-maplegend { font-size: 12px; line-height: 1.6; color: #b8c8a0; }
.st98-contact { display: flex; gap: 10px; align-items: center; padding: 4px; border-bottom: 1px solid #2a3420; }
.st98-contact canvas { width: 40px; height: 40px; }
.st98-contact.big canvas { width: 96px; height: 96px; }
.st98-stats table { width: 100%; max-width: 560px; border-collapse: collapse; margin-top: 10px; }
.st98-stats td { padding: 4px 8px; border-bottom: 1px solid #2a3420; }
.st98-stats td:last-child { text-align: right; color: #f0e8c0; }
