/* ============================================================================
   Komponenta "Zive vysledky" (results-table.js) - UNIVERZALNI STYLY
   Verze 1.0 (13. 10. 2026)

   Barvy se NEPISI natvrdo - vse se odvozuje z jedne zakladni barvy webu:
     1) --rt-color          (lze nastavit rucne, ma prednost)
     2) --main-dark-color   (EDUnino weby - settings.css kazdeho predmetu:
                             matematika modra, cestina zelena, anglictina cervena...)
     3) --green-btn         (web Brainmondo)
     4) #7AB82E             (zaloha)
   Svetla barva:  --main-light-color (EDUnino), jinak se dopocita.

   Pouziti na jinem predmetu: zkopirovat tento soubor + results-table.js,
   do stranky <link> na tento soubor, <div data-bm-results ...> a <script>.
   Nic dalsiho se nemeni - barvu si komponenta vezme ze settings.css.

   Odvozene odstiny pocita prohlizec (color-mix) - Chrome/Edge 111+,
   Safari 16.2+, Firefox 113+.
   ========================================================================== */
:root{
  --rt-c: var(--rt-color, var(--main-dark-color, var(--green-btn, #7AB82E)));
  --rt-light: var(--main-light-color, color-mix(in srgb, var(--rt-c) 30%, #fff));
  --rt-card:  color-mix(in srgb, var(--rt-c) 8%, #fff);    /* lista, hlavicka tabulky */
  --rt-hover: color-mix(in srgb, var(--rt-c) 12%, #fff);   /* najeti na radek */
  --rt-zebra: color-mix(in srgb, var(--rt-c) 3%, #fff);    /* sude radky */
  --rt-line:  color-mix(in srgb, var(--rt-c) 24%, #fff);   /* ramecky */
  --rt-mid:   color-mix(in srgb, var(--rt-c) 80%, #000);   /* ikony */
  --rt-dark:  color-mix(in srgb, var(--rt-c) 50%, #000);   /* tmavy text v barve webu */
  --rt-btn-d: color-mix(in srgb, var(--rt-c) 85%, #000);   /* tlacitko - najeti */
  --rt-ink:   #1f2328;
  --rt-muted: #5c6670;
  --rt-radius: 18px;
  /* pro vlozene styly v results-table.js (prouzek nacitani, kruh odpoctu) */
  --rt-accent: var(--rt-c);
  --rt-accent-card: var(--rt-card);
}

.bm-rt{text-align:left;margin:0 0 26px;color:var(--rt-ink);font-size:16px;line-height:1.6}
.bm-rt *{box-sizing:border-box}

/* --- horni lista --- */
.bm-rt-bar{display:flex;align-items:stretch;gap:8px;background:var(--rt-card);
  border:1px solid var(--rt-line);border-radius:var(--rt-radius);padding:6px;transition:border-radius .2s ease}
.bm-rt.is-open .bm-rt-bar{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}
.bm-rt-toggle{flex:1 1 auto;display:flex;align-items:center;gap:12px;min-width:0;
  background:none;border:0;cursor:pointer;font:inherit;color:var(--rt-dark);
  padding:12px 14px;border-radius:calc(var(--rt-radius) - 6px);text-align:left;transition:background .18s ease}
.bm-rt-toggle:hover{background:rgba(255,255,255,.65)}
.bm-rt-toggle:focus{outline:none}
.bm-rt-toggle:focus-visible{outline:2px solid var(--rt-c);outline-offset:1px}
.bm-rt-ico{display:grid;place-items:center;flex:0 0 auto;color:var(--rt-mid)}
.bm-rt-sum{flex:1 1 auto;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm-rt-chev{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:12px;
  background:#fff;border:1px solid var(--rt-line);color:var(--rt-dark);transition:transform .22s ease}
.bm-rt.is-open .bm-rt-chev{transform:rotate(180deg)}
.bm-rt-reload{flex:0 0 auto;width:44px;border:0;background:none;cursor:pointer;color:var(--rt-mid);
  border-radius:calc(var(--rt-radius) - 6px);display:grid;place-items:center;opacity:.55;transition:opacity .18s ease,background .18s ease}
.bm-rt-reload:hover{opacity:1;background:rgba(255,255,255,.65)}
.bm-rt-reload:focus{outline:none}
.bm-rt-reload svg{transition:transform .3s}
.bm-rt-reload:hover svg{transform:rotate(180deg)}

/* --- bublina s napovedou (vklada se do <body>) --- */
.bm-rt-tip{position:fixed;z-index:1000;max-width:min(360px,calc(100vw - 16px));padding:8px 12px;border-radius:10px;
  background:var(--rt-dark);color:#fff;font-size:.86rem;line-height:1.45;white-space:pre-line;text-align:left;
  box-shadow:0 6px 20px rgba(0,0,0,.18);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease}
.bm-rt-tip.on{opacity:1;visibility:visible}
.bm-rt-tip::first-line{font-weight:700}
.bm-rt.is-loading .bm-rt-reload{animation:bmRtSpin .9s linear infinite}
@keyframes bmRtSpin{to{transform:rotate(360deg)}}

/* --- rozbaleny panel filtru --- */
.bm-rt-panel{background:var(--rt-card);border:1px solid var(--rt-line);border-top:0;
  border-radius:0 0 var(--rt-radius) var(--rt-radius);padding:4px 20px 18px}
.bm-rt-row{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:start;padding:16px 0}
.bm-rt-lbl{font-weight:700;color:var(--rt-dark);padding-top:11px;font-size:.98rem}
.bm-rt-fields{display:flex;flex-direction:column;gap:12px;min-width:0}
.bm-rt-sep{height:1px;background:var(--rt-line)}
.bm-rt-dates{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.bm-rt-date{display:inline-flex;align-items:center;gap:10px;color:var(--rt-muted);font-size:.95rem;margin:0}
.bm-rt-in{font:inherit;font-size:.98rem;color:var(--rt-ink);background:#fff;
  border:1px solid var(--rt-line);border-radius:12px;padding:.6em .9em;min-width:0;height:auto}
.bm-rt-in:focus{outline:none;border-color:var(--rt-c)}
.bm-rt-in:focus-visible{outline:2px solid var(--rt-c);outline-offset:1px}
.bm-rt-q{width:100%;max-width:760px}
.bm-rt-sel{min-width:150px;cursor:pointer}
.bm-rt-quick{display:flex;flex-wrap:wrap;gap:7px}
.bm-rt-chipb{font:inherit;font-size:.82rem;font-weight:600;line-height:1.5;cursor:pointer;
  background:#fff;color:var(--rt-dark);border:1px solid var(--rt-line);
  border-radius:999px;padding:.34em .85em;transition:background .16s ease,color .16s ease,border-color .16s ease}
.bm-rt-chipb:hover{border-color:var(--rt-c)}
.bm-rt-chipb:focus{outline:none}
.bm-rt-chipb.on{background:var(--rt-c);border-color:var(--rt-c);color:#fff}

/* tlacitka Pouzit / Zrusit - nezavisle na tlacitkach webu (Bootstrap .btn apod.) */
.bm-rt-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:16px 0 6px;
  border-top:1px solid var(--rt-line);margin-top:8px}
.bm-rt .bm-rt-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font:inherit;font-weight:700;font-size:.9rem;line-height:1.5;padding:.5em 1.4em;min-height:0;
  border-radius:999px;cursor:pointer;box-shadow:none;transition:background .16s ease,border-color .16s ease,color .16s ease}
.bm-rt .bm-rt-actions .btn:focus{outline:none;box-shadow:none}
.bm-rt .bm-rt-actions .btn:focus-visible{outline:2px solid var(--rt-c);outline-offset:2px}
.bm-rt .bm-rt-apply{background:var(--rt-c);border:1px solid var(--rt-c);color:#fff}
.bm-rt .bm-rt-apply:hover{background:var(--rt-btn-d);border-color:var(--rt-btn-d);color:#fff}
.bm-rt .bm-rt-resetb{background:#fff;border:1px solid var(--rt-line);color:var(--rt-dark)}
.bm-rt .bm-rt-resetb:hover{border-color:var(--rt-c);background:#fff;color:var(--rt-dark)}

/* --- tabulka --- */
.bm-rt-tablewrap{margin-top:14px;border:1px solid var(--rt-line);border-radius:var(--rt-radius);overflow:auto;background:#fff;-webkit-overflow-scrolling:touch}
table.bm-rt-table{width:100%;border-collapse:collapse;font-size:.96rem;margin:0;background:#fff;border:0}
.bm-rt-table th{background:var(--rt-card);color:var(--rt-dark);font-weight:700;font-size:.78rem;
  letter-spacing:.06em;text-transform:uppercase;padding:12px 14px;text-align:left;white-space:nowrap;border:0}
.bm-rt-table td{padding:11px 14px;border:0;border-top:1px solid var(--rt-line);vertical-align:middle;color:var(--rt-ink);font-size:inherit;font-weight:400}
.bm-rt-table tbody tr,.bm-rt-table tbody tr:last-child{background:#fff}
.bm-rt-table tbody tr:nth-child(even){background:var(--rt-zebra)}
.bm-rt-table tbody tr:hover{background:var(--rt-hover)}
.bm-rt-table .c-rank,.bm-rt-table .c-flag{text-align:center;width:1%}
.bm-rt-table .c-pct,.bm-rt-table .c-stars{text-align:right;width:1%;white-space:nowrap}
.bm-rt-table .c-pct{font-weight:700}
.bm-rt-table .c-code{font-weight:600;letter-spacing:.03em;white-space:nowrap;width:1%;text-align:left}
.bm-rt-table th.c-user,.bm-rt-table td.c-user{text-align:left}
.bm-rt-table .c-user{font-weight:600;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm-rt-table th.c-name,.bm-rt-table td.c-name{text-align:left}
.bm-rt-table .c-name{color:var(--rt-muted)}
.bm-rt-table .c-time{white-space:nowrap;width:1%}
.bm-rt-table .c-time span{vertical-align:middle}
.bm-rt-clock{display:inline-grid;place-items:center;color:var(--rt-mid);margin-right:7px;vertical-align:middle}
.bm-rt-empty{text-align:center;color:var(--rt-muted);padding:34px 14px}

/* poradi - medaile (zlato/stribro/bronz zustava, ostatni v barve webu) */
.bm-rt-medal{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:999px;
  font-size:.86rem;font-weight:800;color:#fff;background:var(--rt-c);
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.12)}
.bm-rt-medal.m1{background:linear-gradient(160deg,#F5D061,#D9A423);color:#4A3608}
.bm-rt-medal.m2{background:linear-gradient(160deg,#DCDFE3,#AEB4BB);color:#3A3F45}
.bm-rt-medal.m3{background:linear-gradient(160deg,#DFAE7B,#B57739);color:#4A2E10}
.bm-rt-flag{font-size:1.25rem;line-height:1}

/* hvezdicky */
.bm-rt-stars{display:inline-flex;gap:2px}
.bm-rt-star svg{display:block;fill:#DDE1E5}
.bm-rt-star.on svg{fill:var(--rt-c)}

.bm-rt-note{margin:10px 2px 0;font-size:.88rem;color:var(--rt-muted);font-style:italic}

/* --- responzivita --- */
@media(max-width:900px){
  .bm-rt-row{grid-template-columns:1fr;gap:8px;padding:14px 0}
  .bm-rt-lbl{padding-top:0}
  .bm-rt-panel{padding:4px 16px 16px}
  .bm-rt-table .c-code,.bm-rt-table th.c-code,
  .bm-rt-table .c-time,.bm-rt-table th.c-time{display:none}
}
@media(max-width:640px){
  .bm-rt-table .c-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bm-rt-table th{font-size:.68rem;padding:10px 6px;letter-spacing:.03em}
  .bm-rt-table td{padding:9px 6px;font-size:.92rem}
  .bm-rt-table .c-user{max-width:112px}
  .bm-rt-medal{width:26px;height:26px;font-size:.78rem}
  .bm-rt-flag{font-size:1.05rem}
  .bm-rt-stars{gap:1px}
  .bm-rt-star svg{width:12px;height:12px}
  .bm-rt-toggle{padding:10px}
  .bm-rt-sum{font-size:.92rem;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .bm-rt .bm-rt-actions .btn{flex:1 1 auto}
}
@media(max-width:480px){
  .bm-rt-table .c-name,.bm-rt-table th.c-name{display:none}
}
@media(max-width:430px){
  .bm-rt-table .c-flag,.bm-rt-table th.c-flag{display:none}
  .bm-rt-table .c-user{max-width:100px}
}
@media(max-width:340px){
  .bm-rt-table .c-user{max-width:70px}
  .bm-rt-star svg{width:10px;height:10px}
}
@media (prefers-reduced-motion:reduce){
  .bm-rt-chev,.bm-rt-bar{transition:none}
  .bm-rt.is-loading .bm-rt-reload{animation:none}
}
