/* GRIMTERMS — system projektowy. Ciemny, ciepły, czytelny; kolor = znaczenie (zielony dobrze → czerwony źle). */
:root{
  --bg:#0b0a09;--bg-2:#100f0c;--surface:#15130f;--surface-2:#1b1812;--surface-3:#231f16;
  --line:#2b261d;--line-2:#3d3627;
  --text:#e9e3d4;--text-2:#c3bba8;--muted:#928b7a;--dim:#6c6659;
  --accent:#d9a93b;--accent-2:#e2813f;--accent-soft:rgba(217,169,59,.12);
  --good:#82c64d;--warn:#e5b63a;--bad:#ea6b40;--crit:#ff4d4d;--info:#62a0e0;--violet:#a577dc;--rad:#93d653;
  --r:12px;--r-sm:8px;--shadow:0 6px 24px rgba(0,0,0,.35);
  --ui:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --serif:"Source Serif 4","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --fs:19px;--bar-h:60px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100dvh;color:var(--text);font:15px/1.55 var(--ui);
  background:radial-gradient(1100px 560px at 78% -8%,rgba(217,169,59,.075),transparent 60%),radial-gradient(900px 520px at -5% 105%,rgba(226,129,63,.055),transparent 60%),var(--bg);
  background-attachment:fixed}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45) 100%)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#111;padding:6px 12px;border-radius:6px;z-index:100}.skip:focus{left:8px}
#fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;opacity:.55}
@media (prefers-reduced-motion:reduce){#fx{display:none}*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- górny pasek ---------- */
.bar{position:sticky;top:0;z-index:50;height:var(--bar-h);display:flex;align-items:center;gap:18px;padding:0 20px;background:rgba(11,10,9,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.logo{font-size:22px;filter:drop-shadow(0 0 8px rgba(147,214,83,.45))}
.brand b{font:700 17px var(--ui);letter-spacing:.28em}
.brand small{color:var(--dim);font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.tabs{display:flex;gap:4px;margin:0 auto}
.tab{position:relative;display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid transparent;border-radius:999px;background:none;color:var(--muted);cursor:pointer;font-weight:550;font-size:14px;transition:.15s}
.tab:hover{color:var(--text);background:var(--surface)}
.tab[aria-selected=true]{color:var(--text);background:var(--surface-2);border-color:var(--line-2);box-shadow:inset 0 -2px 0 var(--accent)}
.tab i{font-style:normal;font-size:16px}
.badge{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 6px;border-radius:10px;background:var(--accent);color:#16120a;font:700 11px var(--mono)}
.badge.bad{background:var(--crit);color:#fff}
.bar-r{display:flex;align-items:center;gap:10px;white-space:nowrap}
.live{display:inline-flex;align-items:center;gap:7px;font:600 12px var(--mono);color:var(--muted)}
.live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dim)}
.live.on{color:var(--good)}.live.on::before{background:var(--good);box-shadow:0 0 0 0 rgba(130,198,77,.6);animation:pulse 2s infinite}
.live.off{color:var(--bad)}.live.off::before{background:var(--bad)}
@keyframes pulse{70%{box-shadow:0 0 0 7px rgba(130,198,77,0)}100%{box-shadow:0 0 0 0 rgba(130,198,77,0)}}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid var(--line);background:var(--surface);border-radius:999px;font:500 12.5px var(--ui);color:var(--text-2);white-space:nowrap}
.chip.good{color:var(--good);border-color:rgba(130,198,77,.35)}.chip.warn{color:var(--warn);border-color:rgba(229,182,58,.35)}.chip.bad{color:var(--bad);border-color:rgba(234,107,64,.4)}.chip.crit{color:var(--crit);border-color:rgba(255,77,77,.45)}.chip.dim{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px}

/* ---------- układ ---------- */
.shell{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:26px;max-width:1360px;margin:0 auto;padding:22px 22px 80px}
main{min-width:0}
.hud{position:sticky;top:calc(var(--bar-h) + 16px);align-self:start;display:flex;flex-direction:column;gap:14px;max-height:calc(100dvh - var(--bar-h) - 32px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;padding-bottom:4px}
.card{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow)}
.card-h{margin:0 0 12px;font:600 11.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}
.card-h .badge{margin-left:auto}
.dim{color:var(--muted)}.sm{font-size:13px}
h1,h2,h3{margin:0}

/* ---------- mierniki ---------- */
.grp{font:600 10.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:14px 0 4px}.grp:first-child{margin-top:0}
.m{--c:var(--good);margin:7px 0 9px}.m.warn{--c:var(--warn)}.m.bad{--c:var(--bad)}.m.crit{--c:var(--crit)}
.m-top{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:5px}
.m-label{display:flex;align-items:center;gap:8px;font-weight:550;font-size:14px}.m-label i{font-style:normal;width:1.4em;text-align:center}
.m-val{font:600 16px var(--mono);color:var(--text);display:flex;align-items:baseline;gap:5px}.m-val small{font:500 11.5px var(--mono);color:var(--dim)}
.m-val .dl{font:600 11px var(--mono)}.dl.up{color:var(--good)}.dl.dn{color:var(--bad)}
.m-bar{position:relative;height:10px;background:#0a0908;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.m.big .m-bar{height:15px}.m.big .m-val{font-size:21px}
.m-fill{height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 78%,#000),var(--c));border-radius:5px;transition:width .7s cubic-bezier(.2,.8,.2,1),background .3s}
.m-bar u{position:absolute;top:0;bottom:0;width:1px;background:rgba(255,255,255,.14)}
.m-left{display:flex;flex-direction:column;min-width:0}.m-word{margin:1px 0 0 1.9em;font:500 12px/1.25 var(--ui);color:var(--c)}
.m.crit .m-fill{animation:crit 1.2s infinite}@keyframes crit{50%{opacity:.5}}
.cond{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}

/* ---------- przyciski ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line-2);background:var(--surface-2);border-radius:var(--r-sm);cursor:pointer;font-weight:550;font-size:14px;transition:.15s}
.btn:hover{border-color:var(--accent);background:var(--surface-3)}.btn.sm{padding:5px 10px;font-size:13px}
.btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
input,select,textarea{background:#0b0a09;color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:9px 12px;font:inherit;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}

/* ---------- AKTUALNY ---------- */
.hero{--mc:#6f9b78;position:relative;overflow:hidden;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px 26px;margin-bottom:16px;border:1px solid var(--line-2);border-radius:var(--r);background:linear-gradient(115deg,color-mix(in srgb,var(--mc) 20%,var(--surface)) 0%,var(--surface) 62%);box-shadow:var(--shadow)}
.hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--mc);box-shadow:0 0 24px var(--mc)}
.hero-l{flex:1 1 380px;min-width:0}.hero-k{font:600 11.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.hero h2{margin:6px 0 4px;font:700 clamp(26px,3.6vw,38px)/1.12 var(--serif);letter-spacing:-.01em}
.hero-p{color:var(--text-2);font:italic 17px var(--serif);margin-bottom:14px}
.hero-r{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:150px}
.mood{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:var(--mc);color:#12100b;font:700 13px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.threat{display:flex;gap:6px}.skl{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:#12100c;border:1px solid var(--line);color:#2c271e;font-size:15px}.skl.on{color:#fff;background:var(--mc);border-color:var(--mc);box-shadow:0 0 14px color-mix(in srgb,var(--mc) 55%,transparent)}
.hero-s{font:500 12px var(--mono);color:var(--muted)}
.ngrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.ngrid .wide{grid-column:1/-1}
.lead{font:400 clamp(18px,2vw,21px)/1.7 var(--serif);margin:0 0 12px}
.goal{display:flex;gap:10px;padding:12px 14px;border-radius:var(--r-sm);background:var(--accent-soft);border:1px solid rgba(217,169,59,.28);font-size:15px}
.hooks{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:6px}.hooks li{padding-left:22px;position:relative;color:var(--text-2)}.hooks li::before{content:"◆";position:absolute;left:0;color:var(--accent);font-size:10px;top:5px}
.card.alert{border-color:rgba(234,107,64,.55);box-shadow:0 0 0 1px rgba(234,107,64,.18) inset,var(--shadow);background:linear-gradient(180deg,#241410,var(--surface))}
.enemy{padding:12px 0;border-top:1px solid var(--line)}.enemy:first-of-type{border-top:0;padding-top:0}
.enemy-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.enemy-h b{font:600 17px var(--serif)}
.npc{display:flex;gap:12px;align-items:center;padding:8px 0}.av{flex:0 0 36px;height:36px;border-radius:50%;display:grid;place-items:center;font:700 15px var(--ui);color:#15120c;background:var(--c,#928b7a)}
.npc b{font-weight:600}
.aroundg{display:grid;grid-template-columns:minmax(260px,5fr) 6fr;gap:18px;align-items:start}
#mini{width:100%;display:block;border:1px solid var(--line);border-radius:var(--r-sm);background:#080706}
.exits{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.exit{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}
.exit .arr{flex:0 0 34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:19px}
.exit .ex-m{flex:1;min-width:0}.exit b{font-weight:600}.eta{font:500 12px var(--mono);color:var(--muted);white-space:nowrap}
.la{padding:9px 0;border-top:1px solid var(--line)}.la:first-of-type{border-top:0;padding-top:0}.la b{font-weight:650}
.typing{display:inline-flex;gap:4px;align-items:center;color:var(--accent);font:600 13px var(--mono)}
.typing span{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:bounce 1.2s infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}
@keyframes bounce{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}
.thinkbar{display:flex;align-items:center;gap:12px;padding:10px 16px;margin-bottom:14px;border:1px solid rgba(217,169,59,.3);background:var(--accent-soft);border-radius:var(--r-sm);color:var(--accent);font-weight:600}

/* ---------- KRONIKA ---------- */
.reader-tools{position:sticky;top:calc(var(--bar-h) + 10px);z-index:20;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;width:fit-content;max-width:100%;margin:0 auto 24px;padding:6px 8px;border:1px solid var(--line-2);border-radius:999px;background:rgba(21,19,15,.97);box-shadow:var(--shadow)}
.reader-tools .sep{width:1px;height:18px;background:var(--line-2)}
.reader{max-width:800px;margin:0 auto}
.more{display:block;margin:0 auto 24px}
.scene{margin:0 0 44px;animation:rise .5s ease both}.scene.old{animation:none}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.scene-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;align-items:baseline;padding:0 0 10px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.sh-loc{font:600 15px var(--ui);color:var(--text)}.sh-time{font:500 12px var(--mono);color:var(--muted)}
.inputs{display:flex;flex-direction:column;gap:6px;margin:0 0 16px}
.in{display:flex;gap:10px;align-items:baseline;padding:8px 12px;border-radius:var(--r-sm);background:rgba(255,255,255,.025);border-left:3px solid var(--c,var(--dim));font-size:14.5px}
.in .who{font:700 12.5px var(--ui);color:var(--c);white-space:nowrap}.in .tx{color:var(--text-2)}
.hide-actions .inputs{display:none}.hide-rolls .rolls{display:none}
.rolls{display:grid;gap:10px;margin:0 0 18px}
.die-card{--c:var(--warn);display:flex;align-items:center;gap:16px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--c) 40%,var(--line));border-radius:var(--r);background:linear-gradient(100deg,color-mix(in srgb,var(--c) 11%,var(--surface)),var(--surface))}
.die-x{font-size:.78em;opacity:.75;margin-top:2px}.die-card.good{--c:var(--good)}.die-card.fail{--c:var(--bad)}.die-card.crit_success{--c:#ffd24a}.die-card.crit_fail{--c:var(--crit)}
.die{flex:0 0 58px;height:62px;display:grid;place-items:center;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--c);color:#14110a;font:800 22px var(--mono);animation:tumble .7s ease both}
@keyframes tumble{from{transform:rotate(-140deg) scale(.5);opacity:0}to{transform:none;opacity:1}}
.die-b{flex:1;min-width:0}.die-t{font:650 16px var(--ui)}.die-f{font:500 12.5px var(--mono);color:var(--muted);margin-top:2px}.die-f b{color:var(--text)}
.die-o{font:800 12px var(--mono);letter-spacing:.14em;color:var(--c);text-transform:uppercase;text-align:right}
.prose{font:400 var(--fs)/1.78 var(--serif);color:#e6dfce}
.prose>p{margin:0 0 1.05em}.prose>p:first-child:first-letter{font-size:2.7em;line-height:.9;float:left;padding:.08em .1em 0 0;color:var(--accent);font-weight:600}
.prose b,.prose strong{color:#fff3d6;font-weight:600}.prose em{color:#d9d1bd}
.npcq{margin:1.3em 0;padding:14px 18px 14px 18px;border-radius:var(--r);background:linear-gradient(100deg,rgba(217,169,59,.1),transparent 70%);border-left:3px solid var(--accent)}
.npcq .who{display:flex;align-items:center;gap:10px;font:700 12px var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.npcq .who .av{flex-basis:26px;height:26px;font-size:12px}
.npcq .q{font-style:italic;font-size:calc(var(--fs) - 1px);line-height:1.7}
.callout{display:flex;gap:14px;margin:1.3em 0;padding:14px 18px;border-radius:var(--r);border:1px solid color-mix(in srgb,var(--c) 45%,var(--line));background:linear-gradient(100deg,color-mix(in srgb,var(--c) 14%,transparent),transparent 80%)}
.callout.danger{--c:var(--bad)}.callout.radiation{--c:var(--rad)}
.callout .ic{font-size:22px;line-height:1.5}.callout .ct{font:700 11.5px var(--mono);letter-spacing:.18em;color:var(--c);margin-bottom:4px}.callout .cb{font-size:calc(var(--fs) - 1px)}
.sysnote{display:inline-flex;align-items:center;gap:8px;margin:2px 0 14px;padding:4px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font:500 13px var(--ui);color:var(--text-2)}
.poll-card{border-color:rgba(165,119,220,.5);background:linear-gradient(180deg,rgba(165,119,220,.12),var(--surface))}
.poll-card ol{margin:10px 0 0;padding-left:22px}
.result-card{margin:0 0 36px;padding:12px 16px;border:1px dashed rgba(98,160,224,.5);border-radius:var(--r);color:var(--text-2);background:rgba(98,160,224,.06)}
.divider{display:flex;align-items:center;gap:16px;margin:48px 0;color:var(--accent);font:700 12px var(--mono);letter-spacing:.24em;text-transform:uppercase}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.end-typing{margin:0 0 30px}
#jump{position:fixed;z-index:60;right:24px;bottom:28px;box-shadow:var(--shadow);border-color:var(--accent);background:var(--surface-3)}
.empty{padding:40px 20px;text-align:center;color:var(--muted)}

/* koniec gry */
.gameover{border:1px solid rgba(255,77,77,.4);border-radius:var(--r);background:linear-gradient(115deg,#2c0f0d,var(--surface) 70%);padding:26px 28px;margin:0 0 24px;box-shadow:var(--shadow)}
.go-h{font:700 12px var(--mono);letter-spacing:.34em;color:var(--crit)}.go-n{margin:6px 0 10px;font:700 clamp(26px,3.5vw,36px) var(--serif)}
.go-e{font:italic 18px/1.7 var(--serif);color:var(--text-2);margin:0}
.go-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:18px 0}
.go-grid div{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(0,0,0,.25)}.go-grid b{font:700 24px var(--mono)}.go-grid span{display:block;font-size:12.5px;color:var(--muted)}
.go-t{font:600 11.5px var(--mono);letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin:18px 0 8px}.go-a{margin:0;padding-left:20px}.go-a li{margin:5px 0}
.go-ask{margin-top:18px;padding:12px 16px;border:1px dashed var(--accent);border-radius:var(--r-sm);color:var(--accent);font-weight:550}

/* ---------- MAPA ---------- */
.mapwrap{position:relative;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:#050504;box-shadow:var(--shadow)}
.mapwrap canvas{width:100%;display:block;touch-action:none;cursor:grab}.mapwrap canvas:active{cursor:grabbing}
.maptools{position:absolute;left:12px;right:12px;top:12px;display:flex;gap:8px;justify-content:space-between;pointer-events:none}.maptools>*{pointer-events:auto}
.mapsearch{position:relative;width:min(280px,55%)}.mapsearch input{background:rgba(11,10,9,.88);backdrop-filter:blur(8px)}
.sugg{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;z-index:5}
.sugg button{display:flex;justify-content:space-between;width:100%;padding:8px 12px;background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left}.sugg button:hover{background:var(--surface-3)}
.mapctl{display:flex;flex-direction:column;gap:6px}.mapctl .btn{padding:7px 12px;background:rgba(11,10,9,.88);backdrop-filter:blur(8px)}
.maplayers{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.tip{position:absolute;z-index:6;max-width:260px;padding:10px 12px;border:1px solid var(--accent);border-radius:var(--r-sm);background:rgba(12,18,34,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;font-size:13px;box-shadow:var(--shadow)}
.tip b{font:600 14px var(--serif)}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px;font-size:13px;color:var(--text-2)}.legend .it{display:flex;align-items:center;gap:6px}.legend i{width:11px;height:11px;border-radius:50%;display:inline-block;background:var(--c)}

/* ---------- POSTAĆ ---------- */
.sheet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px;align-items:start}
.sheet .wide2{grid-column:span 2}
.cname{font:700 26px/1.2 var(--serif);margin:0 0 4px}.cbio{color:var(--text-2);font:italic 16px/1.6 var(--serif);margin:0 0 14px}
.xp{margin:10px 0 4px}
.radar{width:100%;max-width:300px;display:block;margin:0 auto}
.attrs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.attrs div{padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);display:flex;justify-content:space-between;align-items:baseline}.attrs b{font:700 17px var(--mono)}
.slots{display:grid;gap:8px}.slot{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}.slot span:first-child{color:var(--muted)}
.rep{display:grid;gap:10px}.rep-row{display:grid;gap:4px}.rep-top{display:flex;justify-content:space-between;font-size:13.5px}.rep-bar{position:relative;height:9px;border-radius:5px;background:#0a0908;border:1px solid var(--line)}.rep-bar::after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--line-2)}.rep-f{position:absolute;top:0;bottom:0;border-radius:5px}
.tree{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}
.branch{--bc:var(--accent)}.branch .card-h{color:var(--bc)}
.skill{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:9px 0;border-top:1px solid var(--line);align-items:center}.skill:first-of-type{border-top:0}
.skill.locked{opacity:.5}.skill b{font-weight:600}.skill .req{grid-column:1/-1;font-size:12px;color:var(--dim)}
.pips{display:flex;gap:4px}.pip{width:12px;height:12px;border-radius:3px;background:#0a0908;border:1px solid var(--line-2)}.pip.on{background:var(--bc);border-color:var(--bc);box-shadow:0 0 8px color-mix(in srgb,var(--bc) 50%,transparent)}
.sxp{grid-column:1/-1;height:3px;border-radius:2px;background:#0a0908;overflow:hidden}.sxp i{display:block;height:100%;background:var(--bc);opacity:.7}

/* ---------- EKWIPUNEK ---------- */
.invhead{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;margin-bottom:16px}
.invgrp{margin-bottom:22px}.invgrp h3{margin:0 0 10px;font:650 14px var(--ui);color:var(--text-2);display:flex;align-items:center;gap:8px}.invgrp h3 span{color:var(--dim);font:500 12px var(--mono)}
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.item{position:relative;display:flex;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.item.eq{border-color:rgba(217,169,59,.6);box-shadow:0 0 0 1px rgba(217,169,59,.18) inset}
.item .ico{flex:0 0 42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--surface-3);font-size:22px}
.item .nm{font-weight:600}.item .qty{margin-left:6px;font:600 12px var(--mono);color:var(--accent)}.item .ds{font-size:13px;color:var(--muted);margin:2px 0 6px}
.eqtag{position:absolute;top:10px;right:10px;font:700 10px var(--mono);letter-spacing:.12em;color:var(--accent);border:1px solid rgba(217,169,59,.5);border-radius:999px;padding:1px 8px}
.hint{margin-top:18px;padding:12px 16px;border-radius:var(--r-sm);border:1px dashed var(--line-2);color:var(--muted)}

/* ---------- HISTORIA ---------- */
.board{display:grid;gap:8px;margin-bottom:18px}.brow{display:grid;grid-template-columns:130px 1fr 44px;gap:10px;align-items:center;font-size:14px}.bbar{height:10px;border-radius:5px;background:#0a0908;border:1px solid var(--line);overflow:hidden}.bbar i{display:block;height:100%;background:var(--c)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.fchip{padding:5px 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);cursor:pointer;font-size:13.5px;font-weight:550}.fchip[aria-pressed=true]{background:var(--surface-3);border-color:var(--c,var(--accent));color:var(--c,var(--accent))}
.hrow{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--line)}
.ht{font:500 12px var(--mono);color:var(--muted)}.hb b{font-weight:700;margin-right:8px}.hb .at{font:500 12px var(--mono);color:var(--dim)}

/* ---------- panel mobilny ---------- */
.ribbon{display:none}
.sheetbg{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.6)}
.sheetp{position:fixed;left:0;right:0;bottom:0;z-index:81;max-height:84dvh;overflow:auto;padding:16px 18px 28px;background:var(--surface);border-top:1px solid var(--line-2);border-radius:20px 20px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.6)}
.sheetp::before{content:"";display:block;width:44px;height:4px;border-radius:2px;background:var(--line-2);margin:0 auto 14px}
.tip2{display:none}
@media (max-width:1060px){
  .shell{grid-template-columns:1fr;padding:16px 14px 150px}
  .hud{display:none}
  .bar{padding:0 14px;gap:10px;backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(11,10,9,.97)}.brand small{display:none}
  .tabs{position:fixed;left:0;right:0;bottom:0;z-index:70;margin:0;gap:0;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:rgba(11,10,9,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line-2);justify-content:space-around}
  .tab{flex-direction:column;gap:2px;padding:6px 8px;border-radius:12px;font-size:11px;min-width:0;flex:1}.tab[aria-selected=true]{box-shadow:none;background:var(--surface-2)}.tab i{font-size:20px}.tab .badge{position:absolute;top:0;right:12%}
  .ribbon{display:flex;position:fixed;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));z-index:65;gap:2px;padding:6px 8px;background:rgba(21,19,15,.96);border-top:1px solid var(--line);overflow-x:auto;scrollbar-width:none;cursor:pointer}
  .ribbon::-webkit-scrollbar{display:none}
  .rb{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;min-width:46px;padding:2px 4px;font:600 12px var(--mono);color:var(--c,var(--good))}
  .rb.warn{--c:var(--warn)}.rb.bad{--c:var(--bad)}.rb.crit{--c:var(--crit)}.rb span{font-size:15px}
  .rb i{display:block;width:100%;height:3px;border-radius:2px;background:#0a0908;margin-top:3px;overflow:hidden}.rb i b{display:block;height:100%;background:var(--c)}
  .sheet{grid-template-columns:1fr}.sheet .wide2{grid-column:auto}
  #jump{bottom:150px;right:14px}
  .reader-tools{border-radius:var(--r)}
}
@media (max-width:760px){
  .ngrid{grid-template-columns:1fr}.aroundg{grid-template-columns:1fr}
  .hero{padding:18px}.hero-r{align-items:flex-start}
  .hrow{grid-template-columns:1fr;gap:4px}.brow{grid-template-columns:90px 1fr 36px}
  .prose{--fs:18px}.items{grid-template-columns:1fr}
  .live .lt{display:none}
}
@media (max-width:1060px){.reader-tools{position:static}}
@media (max-width:640px){#clock{display:none}.brand b{letter-spacing:.2em;font-size:15px}}

/* ---------- panel admina ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;align-items:start}
.prow{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}.prow>input{flex:1 1 140px;width:auto}.prow>select{flex:0 1 140px;width:auto}.prow>input[type=number]{flex:0 0 90px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;font-family:var(--mono);font-size:13.5px;text-align:right}
.loginbox{max-width:420px;margin:12vh auto 0}
.pwrap{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:22px 22px 80px}
.pollbox{padding:12px 14px;border:1px solid rgba(165,119,220,.45);border-radius:var(--r-sm);margin:8px 0}.pollbox ol{margin:6px 0 0;padding-left:20px}
.err{color:var(--bad);margin-top:8px;min-height:1.2em}

/* karta otwarcia gry */
.introcard{margin:0 0 40px;padding:26px 28px;border:1px solid rgba(217,169,59,.45);border-radius:var(--r);background:linear-gradient(115deg,rgba(217,169,59,.12),var(--surface) 62%);box-shadow:var(--shadow)}
.in-h{font:700 11.5px var(--mono);letter-spacing:.2em;color:var(--accent)}.in-n{margin:6px 0 14px;font:700 clamp(26px,3.4vw,34px) var(--serif)}
.in-t{font:700 11px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.in-b{margin:0 0 16px;font:italic 19px/1.75 var(--serif);color:#e6dfce}

/* ---------- punkty rozwoju ---------- */
.badge.gold{background:linear-gradient(135deg,#ffd24a,#d9a93b);color:#1a1405;animation:glow 1.8s infinite}@keyframes glow{50%{box-shadow:0 0 12px rgba(255,210,74,.7)}}
.sp-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 18px;padding:18px 22px;border:1px solid rgba(255,210,74,.6);border-radius:var(--r);background:linear-gradient(110deg,rgba(255,210,74,.16),var(--surface) 70%);box-shadow:0 0 0 1px rgba(255,210,74,.12) inset,0 0 26px rgba(255,210,74,.12);animation:glowb 2.4s infinite}
@keyframes glowb{50%{box-shadow:0 0 0 1px rgba(255,210,74,.25) inset,0 0 34px rgba(255,210,74,.28)}}
.sp-t{font:800 15px var(--mono);letter-spacing:.14em;color:#ffd24a}.sp-d{margin-top:6px;color:var(--text-2);max-width:62ch}.sp-d code{font-family:var(--mono);background:#0b0a09;padding:1px 6px;border-radius:4px;color:var(--accent)}
.sp-n{flex:0 0 auto;min-width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#ffd24a;color:#1a1405;font:800 30px var(--mono)}
.sk-r{display:flex;align-items:center;gap:10px}.skill.buyable{background:linear-gradient(90deg,rgba(255,210,74,.06),transparent)}
.cost{font:600 11px var(--mono);color:var(--dim)}.cost.ok{color:#ffd24a}
.buy{display:inline-flex;align-items:baseline;gap:3px;min-width:34px;height:30px;padding:0 10px;justify-content:center;border-radius:8px;border:1px solid #ffd24a;background:rgba(255,210,74,.14);color:#ffd24a;font:800 16px var(--mono);cursor:pointer;transition:.15s}.buy small{font:600 10px var(--mono);opacity:.8}.buy:hover{background:#ffd24a;color:#1a1405}
.attrbuy{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}.attrbuy .buy{height:auto;padding:6px 10px;font:600 13px var(--ui)}.attrbuy .buy small{font-size:11px}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:14px;padding:12px 18px;border-radius:12px;background:var(--surface-3);border:1px solid var(--good);box-shadow:var(--shadow);animation:rise .3s ease}
.toast.err{border-color:var(--bad)}@media (min-width:1061px){.toast{bottom:32px}}
@media (max-width:760px){.sp-banner{flex-direction:column;align-items:flex-start}}

/* ---------- Biblioteka i Słownik ---------- */
.lhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}.lhead h2{font:700 26px var(--serif)}.lact{display:flex;gap:8px}
.lcard{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:12px}
details.lcard>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:8px;align-items:center;list-style:none}details.lcard>summary::-webkit-details-marker{display:none}
details.lcard>summary::before{content:"▸";color:var(--accent);transition:.15s}details.lcard[open]>summary::before{transform:rotate(90deg)}
.gn{font:700 19px var(--serif)}.lbody{margin-top:14px}.lbody h4{margin:16px 0 6px;font:600 11.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.lq{margin:10px 0;padding:10px 16px;border-left:3px solid var(--accent);background:rgba(217,169,59,.07);font:italic 16px/1.7 var(--serif);color:var(--text-2)}
.lres ul{margin:8px 0 0;padding-left:20px}.lchap{margin:0;padding-left:22px}.lchap li{margin:8px 0;font:16px/1.65 var(--serif);color:var(--text-2)}.dimrow{opacity:.35}
.ltl{margin-top:12px}.ltl summary{cursor:pointer;color:var(--muted);font-size:13px}.ltl ul{margin:8px 0 0;padding-left:18px;font-size:14px;color:var(--text-2)}.ltl li{margin:4px 0}.mono{font-family:var(--mono);font-size:12px}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.lgrid .lcard{margin:0}
.person{display:flex;gap:12px;align-items:center}.person.dead{opacity:.6}.person.dead b{text-decoration:line-through}
.ltr{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}.ltr li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;color:var(--text-2)}.tg{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;background:var(--surface-3)}
.gentry .gh{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}.gentry b{font:700 18px var(--serif)}.gentry p{margin:0;color:var(--text-2)}.gentry.heard{border-style:dashed;opacity:.8}
.gl{border-bottom:1px dotted var(--accent);cursor:help;color:#fff3d6}.gltip{position:fixed;z-index:95;max-width:320px;padding:10px 12px;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--surface-3);box-shadow:var(--shadow);font:14px/1.5 var(--ui);pointer-events:none}
@media (max-width:1060px){.tab span{font-size:10px}.tab{padding:6px 2px}}
@media (min-width:1061px){.tabs{gap:2px}.tab{padding:8px 11px}}
@media (min-width:1061px) and (max-width:1560px){#clock{display:none}.brand small{display:none}}

.item .drop{position:absolute;right:10px;bottom:10px;font:600 11px var(--mono);color:var(--bad);background:transparent;border:1px solid currentColor;border-radius:999px;padding:3px 10px;cursor:pointer;opacity:.75}
.item .drop:hover,.item .drop:focus-visible{opacity:1;background:rgba(200,60,50,.12)}
.item{padding-bottom:40px}

