/* Zasoby - every unit with crew and condition. Page ground (no scene); only --rl-* tokens (docs/rescue-locator/ui-design.md). */
*{box-sizing:border-box}
html,body{margin:0;background:var(--rl-bg);color:var(--rl-ink);font:var(--rl-fs)/1.4 var(--rl-font);-webkit-font-smoothing:antialiased}
.mono{font-family:var(--rl-mono);font-variant-numeric:tabular-nums}
.mute{color:var(--rl-mute)}
.help{color:var(--rl-mute);font-size:var(--rl-fs-s);margin:6px 0}
#bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 16px;background:var(--rl-panel);border-bottom:1px solid var(--rl-line);backdrop-filter:blur(var(--rl-blur));-webkit-backdrop-filter:blur(var(--rl-blur))}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:var(--rl-fs-l);color:var(--rl-ink);text-decoration:none;white-space:nowrap}
.brand .logo{width:36px;height:25px;fill:var(--rl-ink)}.brand .logo circle{fill:var(--rl-danger)}
#bar h1{font-size:var(--rl-fs-l);font-weight:600;margin:0;color:var(--rl-ink-2);white-space:nowrap}
#bar a{color:var(--rl-accent)}
#bar select,#bar input,#bar button{font:inherit;font-size:var(--rl-fs-s);background:var(--rl-card);border:1px solid var(--rl-line-strong);border-radius:var(--rl-radius-s);color:var(--rl-ink);padding:3px 7px}
#bar button{cursor:pointer}
main{padding:12px 16px 40px;max-width:1500px;margin:0 auto}
.banner{font-size:var(--rl-fs-s);color:var(--rl-ink-2);background:var(--rl-panel-2);border:1px solid var(--rl-line);border-radius:var(--rl-radius);padding:8px 12px;margin:4px 0 12px}
.banner #src{font-size:var(--rl-fs-xs);color:var(--rl-mute)}
h2{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rl-mute);margin:16px 0 8px;display:flex;gap:8px;align-items:baseline}
h2 .mute{text-transform:none;letter-spacing:0;font-weight:400}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
/* unit card (.unit, .u-top, .st, .bar, .feeds, .dot, .warn, .acts) lives in unitcard.css */
#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--rl-chrome);color:var(--rl-on-chrome);padding:8px 14px;border-radius:var(--rl-radius);display:none;z-index:70;font-size:var(--rl-fs-s)}
@media (max-width:600px){#bar h1{display:none}.grid{grid-template-columns:1fr}}
/* QA mobile: 40+ px controls in the bar on touch screens, AA muted text */
@media (max-width:600px),(pointer:coarse){#bar select,#bar input,#bar button{min-height:40px;padding:6px 10px}#bar a{min-height:40px;display:inline-flex;align-items:center}}
/* sens-funkcji #15: a lock in the bar instead of the key field (open = may change, colour = role), the key box pops under it */
#keyLock{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:28px;padding:2px 6px;background:none;border:1px solid var(--rl-line);border-radius:var(--rl-radius-s);color:var(--rl-mute);cursor:pointer}
#keyLock[hidden]{display:none}
#keyLock .kl-o{display:none}
body.key-operator #keyLock .kl-o,body.key-field #keyLock .kl-o{display:inline}
body.key-operator #keyLock .kl-c,body.key-field #keyLock .kl-c{display:none}
body.key-operator #keyLock{color:var(--rl-ok)}body.key-field #keyLock{color:var(--rl-warn)}body.key-wrong #keyLock{color:var(--rl-danger)}
#pinbox.keypop{position:absolute;top:calc(100% + 6px);right:12px;z-index:30;display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:min(340px,calc(100vw - 24px));box-sizing:border-box;padding:10px 12px;background:var(--rl-panel-solid,var(--rl-panel));border:1px solid var(--rl-line);border-radius:var(--rl-radius);box-shadow:var(--rl-shadow);color:var(--rl-ink);font-size:var(--rl-fs-s)}
#pinbox.keypop[hidden]{display:none}
#pinbox .kstate{flex-basis:100%;color:var(--rl-mute)}
body.key-operator #pin{box-shadow:inset 0 -2px 0 var(--rl-ok)}body.key-field #pin{box-shadow:inset 0 -2px 0 var(--rl-warn)}body.key-wrong #pin{box-shadow:inset 0 0 0 2px var(--rl-danger)}
