/* ==========================================================================
   TESTER PANEL — js/tester.js (v=535400), prefix ts-
   Podle thelyon_tester_logging_reference.png: tmavé panely v bronzovém
   rámu, fialový akcent role TESTER, vpravo historie levelů + časové úseky.
   Stejný dashboard kreslí i Správa → Testeři (#admPanel), proto žádná
   závislost na rodiči; staré skiny `.parchment button…` (0,4,1) a
   `#centerContent p/h2/td` přebíjí předpona :is(#centerContent,body).
   Rozvržení podle šířky .ts (@container ts): ≥ 980 px dva sloupce,
   jinak pod sebou; < 560 px dlaždice po dvou a skrolovatelné tabulky.
   ========================================================================== */

.ts{
  container:ts / inline-size;
  --ts-fialova:#8f5cf0;
  --ts-fialova-svetla:#c9b5f7;
  --ts-fialova-tma:#2a1a4a;
  --ts-bronz:rgba(196,150,72,.55);
  --ts-text:#ece3cf;
  --ts-tlumeny:#b8ab8f;
  --ts-zlato:#f3dc9c;
  --ts-zelena:#5fd37f;
  --ts-cervena:#e5675c;
  position:relative;
  padding:12px;
  color:var(--ts-text);font:400 15px/1.4 'EB Garamond',Georgia,serif;
  background:
    radial-gradient(ellipse at 20% 0%,rgba(143,92,240,.13),transparent 50%),
    linear-gradient(180deg,#0f0b08 0%,#0a0807 60%,#08070a 100%);
  border:1px solid var(--ts-bronz);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.7),0 6px 18px rgba(0,0,0,.55);
}
.ts [hidden]{display:none!important}
:is(#centerContent,#admPanel,body) .ts :is(p,li,td,th,dt,dd){color:inherit;text-shadow:none}
:is(#centerContent,#admPanel,body) .ts p{margin:0}
:is(#centerContent,#admPanel,body) .ts :is(h2,h3){margin:0;padding:0;border:0;background:none;text-align:left;text-shadow:none}
:is(#centerContent,#admPanel,body) .ts :is(h2,h3)::before,
:is(#centerContent,#admPanel,body) .ts :is(h2,h3)::after{content:none}
.ts-nacitani,.ts-prazdno{padding:14px;color:var(--ts-tlumeny);text-align:center;font-style:italic}

/* --- hlavička: úroveň + jméno + odznak TESTER + XP pruh --- */
.ts-hlava{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:10px}
.ts-kdo{display:flex;align-items:center;gap:12px;min-width:0}
.ts-lvl{
  display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:50%;
  font:700 22px/1 Cinzel,Georgia,serif;color:var(--ts-zlato);
  background:radial-gradient(circle at 50% 35%,#2a2016,#0c0907);
  border:2px solid #b8893a;box-shadow:0 0 0 2px rgba(0,0,0,.7),0 0 12px rgba(212,160,70,.25);
}
.ts-kdo-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.ts-jmeno-rada{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ts-jmeno{font:600 20px/1.1 Cinzel,Georgia,serif;color:#f7e7bd;overflow-wrap:anywhere}
.ts-kdo-txt small{color:var(--ts-tlumeny);font-size:13px}
.ts-odznak{
  padding:2px 10px;border-radius:999px;font:600 12px/1.4 Cinzel,Georgia,serif;letter-spacing:.08em;text-transform:uppercase;
  color:#efe6ff;background:linear-gradient(180deg,#6b3fc4,#3d2275);border:1px solid #a582f2;
  box-shadow:0 0 10px rgba(143,92,240,.45);
}
.ts-hraje{padding:1px 8px;border-radius:999px;font-size:12px;color:#c9f5d4;background:rgba(71,201,107,.15);border:1px solid rgba(71,201,107,.5)}
.ts-xpbar{position:relative;display:block;width:min(260px,60vw);height:12px;border-radius:6px;background:#140f0a;border:1px solid rgba(196,150,72,.45);overflow:hidden}
.ts-xpbar i{position:absolute;inset:0 auto 0 0;width:var(--w,0%);background:linear-gradient(90deg,#2f6fe0,#5aa2ff)}
.ts-xpbar em{position:relative;display:block;font:600 10px/12px system-ui,sans-serif;font-style:normal;text-align:center;color:#fff;text-shadow:0 1px 1px #000}
.ts-upozorneni{flex-basis:100%;padding:6px 10px;color:#ffd9a0;background:rgba(224,140,40,.12);border:1px solid rgba(224,140,40,.45)}

/* --- záložky --- */
.ts-taby{display:flex;gap:4px;margin-bottom:12px;overflow-x:auto;scrollbar-width:thin}
:is(#centerContent,#admPanel,body) .ts .ts-tab{
  flex:1 0 auto;min-width:96px;margin:0;padding:8px 14px;border-radius:0;
  font:500 15px/1.2 'EB Garamond',Georgia,serif;color:var(--ts-text);text-transform:none;letter-spacing:0;
  background:linear-gradient(180deg,#1d1610,#0f0b08);border:1px solid rgba(196,150,72,.4);box-shadow:none;cursor:pointer;
}
:is(#centerContent,#admPanel,body) .ts .ts-tab:hover{border-color:#d6a847;color:#fff3cf;filter:none}
:is(#centerContent,#admPanel,body) .ts .ts-tab.akt{
  color:#fff1c2;font-weight:600;
  background:linear-gradient(180deg,#5a4120,#2b1e0f);border-color:#e0b25c;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.5),0 0 10px rgba(224,178,92,.3);
}

/* --- rozvržení --- */
.ts-mrizka{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
@container ts (min-width:980px){
  .ts-mrizka{grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr)}
}
.ts-hlavni,.ts-bok{display:flex;flex-direction:column;gap:12px;min-width:0}

/* --- panel s bronzovým rámem --- */
.ts-panel{
  position:relative;padding:12px 14px 14px;min-width:0;
  background:linear-gradient(180deg,rgba(26,20,14,.92),rgba(12,9,7,.95));
  border:1px solid var(--ts-bronz);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.6),inset 0 0 22px rgba(0,0,0,.45);
}
.ts-panel::before,.ts-panel::after{
  content:'';position:absolute;width:10px;height:10px;border:2px solid #c9974a;pointer-events:none;
}
.ts-panel::before{top:-2px;left:-2px;border-right:0;border-bottom:0}
.ts-panel::after{right:-2px;bottom:-2px;border-left:0;border-top:0}
:is(#centerContent,#admPanel,body) .ts .ts-panel-h{
  margin:0 0 10px;padding-bottom:6px;
  font:600 15px/1.2 Cinzel,Georgia,serif;letter-spacing:.06em;text-transform:uppercase;color:#e9c77a;
  border-bottom:1px solid rgba(196,150,72,.3);
}

/* --- banner TESTER --- */
.ts-banner{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 16px;align-items:center;margin-bottom:12px;padding:12px 14px;
  background:linear-gradient(90deg,rgba(64,36,120,.55),rgba(26,18,40,.6) 45%,rgba(12,9,7,.9));
  border:1px solid rgba(165,130,242,.55);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.6),0 0 14px rgba(143,92,240,.18);
}
.ts-prapor{
  width:56px;height:76px;
  background:
    radial-gradient(circle at 50% 40%,#f0cf7c 0 9px,transparent 10px),
    linear-gradient(180deg,#6b3fc4,#3a1f72);
  clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);
  box-shadow:inset 0 0 0 2px #d6a847;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.8));
}
:is(#centerContent,#admPanel,body) .ts .ts-banner h2{
  font:700 24px/1 Cinzel,Georgia,serif;letter-spacing:.12em;text-transform:uppercase;color:#efe6ff;margin-bottom:6px;
}
.ts-banner-txt p{color:#ddd0f5}
.ts-checklist{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;padding:8px 10px;list-style:none;
  background:rgba(0,0,0,.35);border:1px solid rgba(165,130,242,.3);font-size:13px}
.ts-checklist li{display:flex;align-items:center;gap:6px;color:var(--ts-tlumeny)}
.ts-checklist li::before{content:'';width:8px;height:8px;border-radius:50%;background:#6d6255}
.ts-checklist li.ok{color:#d9f3df}
.ts-checklist li.ok::before{background:var(--ts-zelena);box-shadow:0 0 6px rgba(95,211,127,.7)}
@container ts (min-width:980px){
  .ts-banner{grid-template-columns:auto minmax(0,1fr) auto}
  .ts-checklist{grid-column:auto;flex-direction:column;flex-wrap:nowrap}
}

/* --- základní informace --- */
.ts-dva{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 24px}
@container ts (min-width:640px){ .ts-dva{grid-template-columns:repeat(2,minmax(0,1fr))} }
.ts-info{margin:0;display:flex;flex-direction:column}
.ts-info > div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px dashed rgba(196,150,72,.16)}
.ts-info dt{color:var(--ts-tlumeny)}
.ts-info dd{margin:0;font-weight:600;color:#f7e7bd;text-align:right;font-variant-numeric:tabular-nums}

/* --- dlaždice --- */
.ts-dlazdice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
.ts-panel .ts-dlazdice{margin-bottom:0}
@container ts (min-width:560px){ .ts-dlazdice{grid-template-columns:repeat(4,minmax(0,1fr))} }
.ts-bok .ts-dlazdice{grid-template-columns:repeat(2,minmax(0,1fr))}
.ts-dl{
  display:flex;flex-direction:column;gap:2px;padding:8px 10px;min-width:0;
  background:linear-gradient(180deg,#1b140e,#0e0a07);border:1px solid rgba(196,150,72,.32);
}
.ts-dl span{font-size:13px;color:var(--ts-tlumeny)}
.ts-dl b{font:700 22px/1.15 Cinzel,Georgia,serif;color:#f7e7bd;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ts-dl small{font-size:12px;color:var(--ts-tlumeny)}

/* --- graf --- */
.ts-graf-obal{overflow-x:auto}
.ts-graf{display:block;width:100%;min-width:420px;height:auto}
.ts-g-mrizka{stroke:rgba(196,150,72,.16);stroke-width:1}
.ts-g-popis{fill:#a99c80;font:12px system-ui,sans-serif}
.ts-g-plocha{fill:rgba(143,92,240,.16)}
.ts-g-cara{fill:none;stroke:#a582f2;stroke-width:2.5;stroke-linejoin:round}
.ts-g-bod{fill:#d9c9ff;stroke:#5b34a8;stroke-width:2}
.ts-g-bod:hover{fill:#fff;r:6}
.ts-graf-osy{display:flex;justify-content:space-between;font-size:12px;color:var(--ts-tlumeny)}

/* --- tabulky --- */
.ts-tab-obal{overflow:auto;max-height:520px}
.ts-bok .ts-tab-obal{max-height:420px}
.ts-tabulka{width:100%;border-collapse:collapse;font-size:14px}
:is(#centerContent,#admPanel,body) .ts .ts-tabulka th{
  position:sticky;top:0;padding:6px 8px;font-weight:600;font-size:13px;color:#e9c77a;text-align:left;
  background:#140f0a;border-bottom:1px solid rgba(196,150,72,.4);
}
:is(#centerContent,#admPanel,body) .ts .ts-tabulka td{padding:5px 8px;border-bottom:1px solid rgba(196,150,72,.12);background:none}
.ts-tabulka tr.akt td{background:rgba(143,92,240,.2)}
.ts-tabulka tr.akt td:first-child{box-shadow:inset 3px 0 0 #a582f2}
.ts-cislo,.ts-mono{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ts-lvl-k{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 4px;border-radius:50%;
  font-weight:700;color:#f7e7bd;border:1px solid #b8893a;background:#120d09}
.ts-pruh{display:inline-block;vertical-align:middle;width:70px;height:8px;background:#140f0a;border:1px solid rgba(196,150,72,.35)}
.ts-pruh i{display:block;height:100%;width:var(--w,0%);background:linear-gradient(90deg,#6b3fc4,#a582f2)}

/* --- časové úseky --- */
.ts-useky{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.ts-useky li{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;background:#120d09;border:1px solid rgba(196,150,72,.25)}
.ts-useky b{color:var(--ts-zelena);font-variant-numeric:tabular-nums;white-space:nowrap}
.ts-useky li.celkem{border-color:rgba(196,150,72,.6);background:linear-gradient(180deg,#1f170f,#120d09)}
.ts-useky li.celkem span{font-weight:600;color:#f7e7bd}
.ts-useky li.celkem b{font-size:18px}

/* --- záznamy událostí --- */
.ts-u-seznam{margin:0;padding:0;list-style:none}
.ts-u{
  display:grid;grid-template-columns:96px 70px 52px minmax(0,1fr);gap:2px 10px;align-items:baseline;
  padding:6px 4px;border-bottom:1px solid rgba(196,150,72,.12);font-size:14px;
}
.ts-u time,.ts-u-akt,.ts-u-lvl{color:var(--ts-tlumeny);font-size:13px;font-variant-numeric:tabular-nums}
.ts-u-co{color:#f7e7bd;font-weight:600}
.ts-u-det{grid-column:4;color:var(--ts-tlumeny);font-size:13px;overflow-wrap:anywhere}
.ts-u.vyhra .ts-u-co{color:var(--ts-zelena)}
.ts-u.prohra .ts-u-co{color:var(--ts-cervena)}
.ts-u-co.r-green{color:#6fd472}.ts-u-co.r-blue{color:#6fa6ff}.ts-u-co.r-orange{color:#ffa54d}
.ts-u-co.r-red{color:#ff6a62}.ts-u-co.r-black{color:#c9b5f7}
@container ts (max-width:559px){
  .ts-u{grid-template-columns:auto auto minmax(0,1fr)}
  .ts-u-co,.ts-u-det{grid-column:1 / -1}
  .ts-u-lvl{text-align:right}
}
:is(#centerContent,#admPanel,body) .ts .ts-vic{
  display:block;margin:10px auto 0;padding:7px 18px;border-radius:0;
  font:500 14px/1.2 'EB Garamond',Georgia,serif;color:#f3dc9c;text-transform:none;letter-spacing:0;
  background:linear-gradient(180deg,#2a2016,#130e09);border:1px solid rgba(196,150,72,.6);box-shadow:none;cursor:pointer;
}
:is(#centerContent,#admPanel,body) .ts .ts-vic:hover:not(:disabled){border-color:#e0b25c;filter:brightness(1.15)}

/* --- ve Správě: bez vnějšího rámu, ať nesedí rám v rámu --- */
.ts.ts-admin{padding:0;background:none;border:0;box-shadow:none}

/* --- položka menu Tester (fialový akcent) --- */
#menu-tester .tn-txt{color:#d9c9ff}
#menu-tester .tn-ik{background-color:#b394f5}
