/*
 * Guide styles taken from daevaguides.com (class pages), so the imported
 * markup renders as intended. App shell and mobile tweaks live in app.css.
 */
/* Fonty lokalne (Google Fonts, licencja SIL OFL 1.1), podzbiory latin + latin-ext + cyrillic (ru, 2026-10-10). ../../fonty = ścieżka do katalogu fonty/
   Cinzel nie ma cyrylicy → cyrylicę nagłówków rysuje Spectral SC (Production Type, OFL 1.1; drugi w --f-display), tylko w zakresie cyrylicy. */
@font-face{font-family:'Cinzel';font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/cinzel-500-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/cinzel-500-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/ibm-plex-sans-400-500-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/ibm-plex-sans-400-500-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Układ: wąska kolumna lektury + przyklejone zakładki; ciemny „pancerz” dark fantasy — złoto jako jedyny akcent, kolory pól jak na tablicy Daevanion.
   Ta część (do „zakładki”) jest wspólna dla WSZYSTKICH stron: strona główna, artykuły i „Sprawdź postać” biorą ją stąd. */
:root{
  --bg:#0a0d12; --panel:#121821; --panel2:#19212c; --line:#232c39; --line-gold:rgba(212,171,95,.24);
  --fg:#d9dee6; --muted:#8d97a6; --faint:#5f6878;
  --gold:#d4ab5f; --gold-dim:#8a7140; --gold-hi:#f0d391;
  --blue:#4f8fd8; --green:#4fa97a; --orange:#d58a3c; --grey:#5c6573; --red:#d06a5f;
  --f-display:"Cinzel", "Spectral SC", "Times New Roman", serif;
  --f-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;
  --hh:60px; /* wysokość nagłówka serwisu (przyklejone zakładki stoją pod nim) */
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-padding-top:calc(var(--hh) + 12px)}
section.tab [id]{scroll-margin-top:50px} /* pod przyklejonymi zakładkami (link #ptcard) */
body{background:var(--bg) radial-gradient(ellipse 80% 420px at 50% -60px,rgba(212,171,95,.07),transparent 70%) no-repeat;
  color:var(--fg);font:15px/1.6 var(--f-body);margin:0;overflow-x:clip}
.wrap{max-width:980px;margin:0 auto;padding-inline:16px;padding-block:24px 80px}
h1,h2,h3{font-family:var(--f-display);font-weight:700;letter-spacing:.02em;text-wrap:balance;margin:0}
h1{font-size:clamp(28px,5vw,40px);line-height:1.18;color:var(--gold);overflow-wrap:break-word;hyphens:auto;text-shadow:0 2px 18px rgba(0,0,0,.5)}
h2{font-size:22px;color:var(--fg);margin-bottom:6px}
h3{font-size:16px;font-family:var(--f-body);font-weight:600;letter-spacing:0}
p{margin:0}
a{color:var(--gold)}
a:hover{color:var(--gold-hi)}
.lead{color:var(--muted);max-width:68ch;margin-top:8px}
.muted{color:var(--muted)}
.small{font-size:13px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
header.top{display:flex;flex-direction:column;gap:6px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dim);font-weight:600}
/* baner nagłówka podstrony: grafika (--baner) na całą szerokość, przyciemniona, złoty tytuł */
header.top.baner{position:relative;isolation:isolate;border-bottom:0;padding:30px 0 30px}
header.top.baner::before{content:"";position:absolute;z-index:-1;top:-24px;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);
  border-bottom:1px solid var(--line-gold);
  background:linear-gradient(90deg,rgba(10,13,18,.97) 0%,rgba(10,13,18,.84) 42%,rgba(10,13,18,.4) 100%),
    linear-gradient(0deg,rgba(10,13,18,.9) 0%,rgba(10,13,18,0) 60%),var(--baner,none) 70% 40%/cover no-repeat,var(--bg)}
header.top.baner h1{font-size:clamp(25px,4.2vw,46px);max-width:26ch;text-shadow:none;
  background:linear-gradient(180deg,#f6dd9f,#c99a4b);-webkit-background-clip:text;background-clip:text;color:transparent}
header.top.baner .lead{color:#c3cad5}
@media (max-width:700px){
  header.top.baner{padding:22px 0 24px}
  header.top.baner h1{font-size:min(25px,6.4vw)}
  header.top.baner::before{background:linear-gradient(90deg,rgba(10,13,18,.95),rgba(10,13,18,.75)),var(--baner,none) 65% 40%/cover no-repeat,var(--bg)}
}
footer.foot{position:relative;margin-top:56px;padding-top:22px;border-top:1px solid var(--line-gold);color:var(--faint);font-size:12px}
footer.foot::before{content:"";position:absolute;z-index:-1;top:0;bottom:-80px;left:calc(50% - 50vw);right:calc(50% - 50vw);background:linear-gradient(180deg,#0c1016,#07090c)}
footer.foot nav.legal{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 8px}
@media (prefers-reduced-motion:no-preference){
  a,.btn,.hbtn,.mainnav a{transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s,transform .15s}
}

/* zakładki */
/* strona klasy: szerzej; portret klasy po prawej w banerze (na telefonie przygaszony w tle) */
.wrap{max-width:1120px}
header.top.klasa{min-height:240px;padding-right:min(36%,260px)}
header.top.klasa .portret{position:absolute;right:0;bottom:0;width:min(34%,230px);height:auto;aspect-ratio:3/4;object-fit:cover;z-index:-1;
  border-radius:14px 14px 0 0;-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent);mask-image:linear-gradient(to bottom,#000 60%,transparent);
  filter:drop-shadow(0 0 30px rgba(0,0,0,.6))}
@media (max-width:700px){
  header.top.klasa{padding-right:0;min-height:0}
  header.top.klasa .portret{width:150px;right:-10px;opacity:.3}
}

nav.tabs{position:sticky;top:var(--hh);z-index:5;background:rgba(10,13,18,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}
nav.tabs::-webkit-scrollbar{display:none}
nav.tabs button{flex:0 0 auto;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font:600 14px var(--f-body);padding:12px 12px 10px;cursor:pointer;white-space:nowrap}
nav.tabs button:hover{color:var(--fg)}
nav.tabs button[aria-selected="true"]{color:var(--gold);border-bottom-color:var(--gold)}
nav.tabs button:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
section.tab{display:flex;flex-direction:column;gap:18px;padding-top:22px}
section.tab > h2,section.tab > div > h2{color:var(--gold);text-transform:uppercase;letter-spacing:.05em}

/* poziom */
.lvlbox{background:linear-gradient(120deg,rgba(212,171,95,.1),rgba(18,24,33,.96) 40%),var(--panel);border:1px solid rgba(212,171,95,.45);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.lvlrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lvlrow label{font-weight:600}
.lvlnum{font:700 30px var(--f-display);color:var(--gold);min-width:2.2ch;text-align:center}
input[type=range]{flex:1 1 220px;accent-color:var(--gold)}
.stepbtn{background:var(--panel2);border:1px solid var(--line);color:var(--fg);border-radius:8px;width:36px;height:36px;font:600 18px var(--f-body);cursor:pointer}
.stepbtn:focus-visible,.chip:focus-visible,.btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.now{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.nowcard{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.nowcard h3{color:var(--gold)}
.nowcard ul{margin:0;padding-left:18px}
.nowcard li{margin:2px 0}

/* plan */
.plan{display:flex;flex-direction:column}
.pstep{display:grid;grid-template-columns:28px 76px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:start}
.pstep input{width:18px;height:18px;margin-top:3px;accent-color:var(--gold)}
.pstep.nc{grid-template-columns:76px 1fr}
.pstep .plv{font:600 13px var(--f-mono);color:var(--gold);padding-top:2px}
.pstep .ptxt{min-width:0}
.pstep .ptag{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--muted);margin-right:6px}
.pstep.done .ptxt{color:var(--faint);text-decoration:line-through;text-decoration-color:var(--faint)}
.pstep.current{background:linear-gradient(90deg,rgba(207,167,90,.10),transparent 70%)}
b.sk{color:#e9d3a3;font-weight:600}
img.ski{width:22px;height:22px;border-radius:4px;vertical-align:-6px;margin-right:6px}
.skw{white-space:nowrap}

/* filtry i karty umiejętności */
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 12px;font:600 13px var(--f-body);cursor:pointer}
.chip:hover{border-color:var(--gold-dim);color:var(--fg)}
.chip[aria-pressed="true"]{color:#1b1407;background:linear-gradient(180deg,#e9c77d,#c4964a);border-color:transparent}
.skills{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.skill{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.skill .hd{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.skill .nm{font:600 16px var(--f-body);color:#ecdcb8}
.skill .nm .en{font-size:12px;font-weight:400;color:var(--muted)}
.badge{font:600 11px var(--f-body);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:2px 7px;white-space:nowrap}
.b-core{background:rgba(207,167,90,.18);color:var(--gold)}
.b-imp{background:rgba(79,143,216,.16);color:#8db8ea}
.b-opt{background:rgba(138,148,163,.14);color:var(--muted)}
.b-skip{background:rgba(208,106,95,.14);color:#e39a91}
.meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.meta .mono{color:var(--fg)}
.specs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13px}
.specs li{display:grid;grid-template-columns:26px 1fr;gap:6px;color:var(--faint)}
.specs li .sl{font-family:var(--f-mono);color:var(--faint)}
.specs li.pick{color:var(--fg)}
.specs li.pick .sl{color:var(--gold)}
.specs li.alt{color:var(--muted)}
.specs li.auto{color:var(--fg)}
.specs li .why{display:block;color:var(--muted);font-size:12px}
details.game{font-size:12px;color:var(--muted)}
details.game summary{cursor:pointer;color:var(--faint)}
details.game p{white-space:pre-line;margin-top:4px}

/* blok wyjaśnień */
.note{background:linear-gradient(90deg,rgba(212,171,95,.09),rgba(18,24,33,.6) 60%);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:0 10px 10px 0;padding:12px 16px;display:flex;flex-direction:column;gap:6px}
.note.warn{border-left-color:var(--red);background:linear-gradient(90deg,rgba(208,106,95,.10),rgba(18,24,33,.6) 60%)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.card{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.line{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}
.line li{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;background:var(--panel2);border-radius:6px;padding:6px 8px;font-size:14px}
.line li .pr{font:600 12px var(--f-mono);color:var(--gold);text-align:center}
.key{display:inline-block;font:600 12px var(--f-mono);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 6px;background:var(--panel2);color:var(--fg)}
ol.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--gold);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:rgba(212,171,95,.07)}
tbody tr:nth-child(even) td{background:rgba(255,255,255,.015)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.tablewrap tr:last-child td{border-bottom:0}

/* tablica Daevanion */
.boardtabs{display:flex;gap:8px;flex-wrap:wrap}
.boardlayout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:760px){.boardlayout{grid-template-columns:1fr}}
.boardwrap{background:radial-gradient(ellipse at 50% 40%,#111823,#080a0e 75%);border:1px solid var(--line);border-radius:12px;padding:10px}
svg.board{width:100%;height:auto;display:block;touch-action:manipulation}
svg.board .edge{stroke:#2a3240;stroke-width:.07}
svg.board .edge.on{stroke:var(--gold);stroke-width:.12;opacity:.85}
svg.board .node rect{stroke-width:.05;cursor:pointer}
svg.board .node text{font-family:var(--f-mono);font-size:.32px;font-weight:600;pointer-events:none;text-anchor:middle;dominant-baseline:central}
svg.board .node.sel rect{stroke:#fff;stroke-width:.09}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.bctrl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn{background:var(--panel2);border:1px solid var(--line);color:var(--fg);border-radius:8px;padding:7px 12px;font:600 13px var(--f-body);cursor:pointer}
.btn.primary{background:var(--gold);border-color:var(--gold);color:#1a1408}
.info{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.info .ttl{font:600 16px var(--f-body);color:#ecdcb8}
.route{display:flex;flex-direction:column;gap:8px;font-size:14px}
.route .seg{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.route .seg .arrows{font-family:var(--f-mono);letter-spacing:.12em;color:var(--gold);word-break:break-all}
.route .seg h3{font-size:14px}
.src{font-size:12px;color:var(--faint)}
.barhost{display:flex;flex-direction:column;gap:8px}
.ptin{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.ptin label{display:flex;align-items:center;gap:6px;background:var(--panel2);border-radius:6px;padding:4px 6px;font-size:12.5px;min-width:0}
.ptin label span{flex:1;min-width:0;line-height:1.25}
.ptin img,.ptin .ph{width:22px;height:22px;border-radius:4px;flex:0 0 auto}
.ptin .ph{background:var(--bg);border:1px dashed var(--line)}
.ptin input{width:36px;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:5px;padding:3px 4px;font:600 14px var(--f-mono);text-align:center}
.ptin input:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
@media (max-width:600px){.ptin{grid-template-columns:1fr}.ptin label{font-size:14px;padding:6px 8px}}
.ptnext{background:rgba(207,167,90,.10);border:1px solid var(--gold-dim);border-radius:8px;padding:10px 12px;margin-top:10px;display:flex;flex-direction:column;gap:4px}
.ptnext .big{font:600 17px var(--f-body);color:#ecdcb8}
#ptout ol{margin:8px 0 0;padding-left:20px;font-size:14px}
details#ptcard summary{cursor:pointer;list-style:none;display:flex;flex-direction:column;gap:2px}
details#ptcard summary::-webkit-details-marker{display:none}
details#ptcard summary h3::before{content:"▸ ";color:var(--gold-dim)}
details#ptcard[open] summary h3::before{content:"▾ "}
.stlist{display:flex;flex-direction:column}
.strow{display:grid;grid-template-columns:minmax(0,1.2fr) 40px minmax(0,1fr);align-items:center;gap:4px 12px;padding:6px 0;border-bottom:1px solid var(--line)}
.strow:last-child{border-bottom:0}
.strow.later{opacity:.38}
.stlv{font-size:20px;font-weight:600;color:#ecdcb8;text-align:center}
.stsp{color:var(--muted);line-height:1.35}
.storder{margin-top:8px;font-size:14px}
.storder summary{cursor:pointer;color:var(--muted)}
.storder ol{margin:6px 0 0;padding-left:22px}
@media (max-width:600px){.strow{grid-template-columns:minmax(0,1fr) 36px}.stsp{grid-column:1/-1;padding-left:42px}.stsp:empty{display:none}}
.bar td{vertical-align:middle}
@media (max-width:640px){
  table.bar thead{display:none}
  table.bar,table.bar tbody{display:block}
  table.bar tr{display:grid;grid-template-columns:auto 1fr 1fr;gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
  table.bar td{display:flex;align-items:center;gap:6px;border:0;padding:0;min-width:0}
  table.bar td:first-child{grid-row:span 3;align-items:flex-start;padding-top:6px}
  table.bar td:empty{display:none}
  table.bar td[data-r]::before{content:attr(data-r);font:600 10px var(--f-mono);color:var(--gold-dim)}
  table.bar td.bnote{grid-column:2/-1}
}
.bsk{display:flex;align-items:center;gap:8px;min-width:0}
.bsk img{width:34px;height:34px;border-radius:5px;flex:0 0 auto}
.bsk .ph{width:34px;height:34px;border-radius:5px;flex:0 0 auto;background:var(--panel2);border:1px dashed var(--line)}
.bsk.later{opacity:.38}
.bnew{font:600 10px var(--f-body);letter-spacing:.06em;text-transform:uppercase;background:var(--gold);color:#1a1408;border-radius:3px;padding:1px 5px;margin-left:4px}
.bnote{font-size:12px;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){svg.board .node rect{transition:opacity .2s}}
/* tabele na telefonie: ciaśniej; tabele od 4 kolumn (klasa „stos”, buduj.tabele_na_telefon) jako karty */
@media (max-width:600px){
  th,td{padding:7px 8px;font-size:13px}
  .tablewrap:has(> table.stos){border:0;border-radius:0;overflow:visible}
  table.stos,table.stos tbody,table.stos tr,table.stos td,table.stos th{display:block;width:auto}
  table.stos thead,table.stos .stos-hd{display:none}
  table.stos tr{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:10px;padding:8px 12px 6px;margin:0 0 10px}
  table.stos td,table.stos tbody th{position:relative;border:0;padding:4px 0 4px calc(36% + 10px);background:none!important;font-size:14px;min-height:26px;
    text-transform:none;letter-spacing:0;color:var(--fg);font-weight:400;overflow-wrap:break-word}
  table.stos td::before,table.stos tbody th::before{content:attr(data-label);position:absolute;left:0;top:5px;width:36%;
    font:600 11px/1.6 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dim);overflow-wrap:break-word}
  table.stos tr > :first-child{display:block;padding:2px 0 7px;font-weight:600;font-size:15px;color:var(--gold);margin-bottom:4px;border-bottom:1px solid var(--line)}
  table.stos tr > :first-child::before{position:static;display:block;width:auto;margin-bottom:1px}
  table.stos td:empty{display:none}
}
