.ev4x-sp-app,
.ev4x-sp-app * { box-sizing:border-box; }

.ev4x-sp-app {
  --bg1:#06141a;
  --bg2:#0d232a;
  --panel:rgba(255,255,255,.97);
  --ink:#1c2532;
  --muted:#6a7483;
  --line:rgba(255,255,255,.18);
  --teal:#34c7b8;
  --blue:#2f8f9d;
  --gold:#e7ba52;
  font-family:"Segoe UI", Arial, sans-serif;
  color:#edf9f7;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:geometricPrecision;
}

.ev4x-sp-teacher {
  padding:22px;
  border-radius:26px;
  background:
    linear-gradient(180deg, rgba(4,16,22,.78) 0%, rgba(8,23,29,.86) 100%),
    radial-gradient(circle at 14% 12%, rgba(47,143,157,.16), transparent 18%),
    radial-gradient(circle at 82% 18%, rgba(52,199,184,.14), transparent 18%),
    var(--ev4x-sp-shell-bg) center/cover no-repeat,
    linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 100%);
  box-shadow:0 22px 50px rgba(0,0,0,.22);
}

.ev4x-sp-overline {
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
  font-weight:800;
  color:#bfeceb;
}

.ev4x-sp-topbar {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:20px;
}

.ev4x-sp-topbar h2,
.ev4x-sp-student-shell h2 {
  margin:8px 0;
  font-size:clamp(28px, 4vw, 44px);
  line-height:1.02;
  font-weight:700;
  letter-spacing:-0.02em;
  text-shadow:none;
}

.ev4x-sp-meta { color:#d7f1ef; }

.ev4x-sp-toolbar {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}

.ev4x-sp-quick-controls {
  position:fixed;
  top:92px;
  right:22px;
  z-index:140;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:5px;
  margin:0;
  padding:6px;
  width:128px;
  min-width:128px;
  border-radius:14px;
  background:rgba(10,19,31,.46);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 8px 18px rgba(0,0,0,.12);
  backdrop-filter:blur(8px);
  pointer-events:none;
}

.ev4x-sp-quick-controls .ev4x-sp-btn {
  width:100%;
  min-height:34px;
  padding:6px 8px;
  font-size:12px;
  line-height:1.1;
  font-weight:700;
  border-radius:8px;
  pointer-events:auto;
  box-shadow:none;
  background:rgba(255,255,255,.12);
  text-shadow:none;
}

.ev4x-sp-quick-controls .ev4x-sp-btn.ev4x-sp-btn-primary {
  background:linear-gradient(135deg, var(--teal), var(--blue));
}

.ev4x-sp-btn,
.ev4x-sp-mini-btn {
  appearance:none;
  border:none;
  border-radius:14px;
  padding:12px 16px;
  font-weight:800;
  cursor:pointer;
}

.ev4x-sp-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  background:rgba(255,255,255,.14);
  color:#fff;
  text-decoration:none;
  line-height:1.25;
  text-align:center;
  white-space:normal;
  font-weight:700;
  text-shadow:none;
}

.ev4x-sp-btn:hover,
.ev4x-sp-mini-btn:hover { transform:translateY(-1px); }
.ev4x-sp-btn-primary { background:linear-gradient(135deg, var(--teal), var(--blue)); }

.ev4x-sp-mini-btn {
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px;
  background:#eaf6f5;
  color:#0e5867;
}

.ev4x-sp-grid {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:20px;
  align-items:start;
}

.ev4x-sp-panel {
  background:rgba(255,255,255,.10);
  border:1px solid rgba(230,245,250,.26);
  border-radius:24px;
  padding:18px;
  backdrop-filter: blur(3px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12), 0 10px 30px rgba(0,0,0,.16);
}

.ev4x-sp-map-panel {
  border-color:rgba(226,242,248,.34);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16), 0 12px 34px rgba(0,0,0,.18);
}

.ev4x-sp-map {
  position:relative;
  min-height:560px;
  border-radius:22px;
  overflow:visible;
  background-color:#07161b;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(225,242,248,.30);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}

.ev4x-sp-map::before {
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(5,16,22,.34), rgba(5,16,22,.54)),
    radial-gradient(circle at 18% 22%, rgba(255,255,255,.65) 0 1px, transparent 2px),
    radial-gradient(circle at 60% 34%, rgba(255,255,255,.45) 0 1px, transparent 2px),
    radial-gradient(circle at 78% 68%, rgba(255,255,255,.55) 0 1px, transparent 2px),
    radial-gradient(circle at 30% 74%, rgba(255,255,255,.45) 0 1px, transparent 2px),
    radial-gradient(circle at 85% 14%, rgba(255,255,255,.45) 0 1px, transparent 2px);
  pointer-events:none;
  z-index:0;
}

.ev4x-sp-lines,
.ev4x-sp-nodes {
  z-index:1;
}

.ev4x-sp-lines {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.ev4x-sp-line {
  stroke:rgba(255,255,255,.20);
  stroke-width:0.5;
  stroke-dasharray:2.8 2.8;
}

.ev4x-sp-line-active {
  stroke:rgba(231,186,82,.92);
  stroke-width:0.9;
}

.ev4x-sp-nodes { position:absolute; inset:0; }

.ev4x-sp-node {
  position:absolute;
  transform:translate(-50%, -50%);
  min-width:104px;
  max-width:156px;
  padding:12px 14px;
  border-radius:999px;
  text-align:center;
  color:#fff;
  font-weight:700;
  font-size:12.5px;
  line-height:1.2;
  background:linear-gradient(135deg, #2f8f9d, #1c6d78);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 10px 22px rgba(0,0,0,.22);
  text-shadow:none;
}

.ev4x-sp-node.is-current {
  box-shadow:0 0 0 4px rgba(231,186,82,.42), 0 0 18px rgba(255,232,154,.55), 0 0 34px rgba(244,193,64,.32), 0 18px 28px rgba(0,0,0,.26);
  background:linear-gradient(135deg, #f2d17d, #e2ab3c);
  color:#22303f;
  animation:ev4xSpCurrentPulse 2.4s ease-in-out infinite;
}

@keyframes ev4xSpCurrentPulse {
  0%, 100% {
    box-shadow:0 0 0 4px rgba(231,186,82,.38), 0 0 14px rgba(255,232,154,.45), 0 0 28px rgba(244,193,64,.24), 0 18px 28px rgba(0,0,0,.24);
    transform:translate(-50%, -50%) scale(1);
  }
  50% {
    box-shadow:0 0 0 5px rgba(231,186,82,.50), 0 0 24px rgba(255,236,173,.72), 0 0 42px rgba(244,193,64,.34), 0 20px 30px rgba(0,0,0,.28);
    transform:translate(-50%, -50%) scale(1.04);
  }
}

.ev4x-sp-node.is-goal { background:linear-gradient(135deg, #7be0b7, #2da56f); }
.ev4x-sp-node.is-start { background:linear-gradient(135deg, #678eff, #4757ca); }
.ev4x-sp-node.is-hub { background:linear-gradient(135deg, #34c7b8, #178d83); }

.ev4x-sp-node span {
  display:block;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
}

.ev4x-sp-node.is-long {
  font-size:12px;
  line-height:1.15;
}

.ev4x-sp-resultline {
  margin-top:14px;
  color:#dff8f6;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.ev4x-sp-current-node {
  background:var(--panel);
  color:var(--ink);
  border-radius:20px;
  padding:18px;
  margin-bottom:10px;
  border:1px solid rgba(214,232,239,.78);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.72), 0 8px 24px rgba(0,0,0,.08);
}

.ev4x-sp-current-node h3 { margin:6px 0 10px; font-size:28px; font-weight:700; text-shadow:none; }
.ev4x-sp-current-node p { margin:0; color:#334155; font-size:18px; font-weight:400; text-shadow:none; }

.ev4x-sp-section-title {
  margin:6px 0 12px;
  font-size:18px;
  font-weight:800;
  color:#ffffff;
}

.ev4x-sp-options {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-bottom:10px;
}

.ev4x-sp-option-card {
  background:rgba(255,255,255,.96);
  color:#13202f;
  border-radius:18px;
  padding:16px;
}

.ev4x-sp-option-head {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:8px;
}

.ev4x-sp-option-letter {
  display:inline-grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:linear-gradient(135deg, var(--teal), var(--blue));
  color:#fff;
  font-size:22px;
  font-weight:900;
}

.ev4x-sp-option-count {
  font-weight:800;
  color:#0f5664;
}

.ev4x-sp-option-label {
  font-size:19px;
  font-weight:800;
  margin-bottom:6px;
}

.ev4x-sp-option-target { color:#5b6877; }
.ev4x-sp-helper { margin:0 0 16px; color:#d9f5f2; }

.ev4x-sp-columns {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.ev4x-sp-columns h4 {
  margin:0 0 10px;
  color:#fff;
  font-size:18px;
}

.ev4x-sp-code-list {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.ev4x-sp-code-badge {
  display:inline-block;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-weight:800;
}

.ev4x-sp-code-badge-empty { opacity:.65; }

.ev4x-sp-history-wrap { margin-top:18px; }

.ev4x-sp-history {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.ev4x-sp-history-item {
  background:rgba(255,255,255,.95);
  color:#13202f;
  border-radius:14px;
  padding:12px 14px;
}

.ev4x-sp-history-item.is-empty {
  background:rgba(255,255,255,.12);
  color:#e7f8f6;
}

.ev4x-sp-history-label { font-weight:800; }
.ev4x-sp-history-stats {
  margin-top:6px;
  font-size:14px;
  font-weight:800;
  color:#0f5664;
}
.ev4x-sp-history-note { margin-top:4px; color:#3d4b5b; }
.ev4x-sp-history-time { margin-top:6px; font-size:12px; color:#5b6877; }

.ev4x-sp-final-stats {
  margin-top:18px;
  padding:16px;
  border-radius:20px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
}

.ev4x-sp-ranking {
  margin-top:16px;
}

.ev4x-sp-ranking-table {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.ev4x-sp-ranking-row {
  display:grid;
  grid-template-columns:56px 1fr auto;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,255,255,.96);
  color:#13202f;
}

.ev4x-sp-ranking-rank {
  font-weight:900;
  font-size:20px;
  color:#0f5664;
}

.ev4x-sp-ranking-code {
  font-weight:900;
}

.ev4x-sp-ranking-meta {
  color:#4b5a6b;
  font-weight:700;
  text-align:right;
}

.ev4x-sp-inline-message,
.ev4x-sp-message {
  border-radius:16px;
  padding:14px 16px;
}

.ev4x-sp-inline-message {
  display:none;
  margin-bottom:16px;
  background:rgba(123,224,183,.18);
  border:1px solid rgba(123,224,183,.32);
  color:#f3fffb;
}

.ev4x-sp-inline-message.is-visible { display:block; }
.ev4x-sp-inline-message.is-error {
  background:rgba(230,96,96,.16);
  border-color:rgba(230,96,96,.32);
}

.ev4x-sp-student {
  max-width:760px;
  margin:0 auto;
  padding:12px;
}

.ev4x-sp-student-shell {
  background:
    linear-gradient(180deg, rgba(8,26,33,.82) 0%, rgba(14,42,49,.88) 100%),
    var(--ev4x-sp-shell-bg) center/cover no-repeat,
    linear-gradient(180deg, #081a21 0%, #0e2a31 100%);
  border-radius:24px;
  padding:22px;
  box-shadow:0 16px 36px rgba(0,0,0,.18);
}

.ev4x-sp-student-form {
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  align-items:end;
  margin-bottom:16px;
}

.ev4x-sp-student-form label {
  display:block;
  font-weight:700;
  color:#e6fcfb;
}

.ev4x-sp-student-form input {
  width:100%;
  margin-top:8px;
  border:none;
  border-radius:14px;
  padding:14px 14px;
  font-size:16px;
}

.ev4x-sp-student-card {
  background:rgba(255,255,255,.96);
  color:#1d2534;
  border-radius:20px;
  padding:18px;
}

.ev4x-sp-student-card h3 { margin:8px 0 10px; font-size:28px; }
.ev4x-sp-student-card p { margin:0 0 16px; font-size:17px; color:#334155; }
.ev4x-sp-statusline { color:#536071; font-weight:700; }

.ev4x-sp-student-options {
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}

.ev4x-sp-vote-btn {
  border:none;
  border-radius:18px;
  padding:18px 16px;
  background:#e8f5f3;
  color:#12313b;
  cursor:pointer;
  text-align:left;
}

.ev4x-sp-vote-btn strong {
  display:block;
  font-size:28px;
  margin-bottom:6px;
}

.ev4x-sp-vote-btn span {
  display:block;
  font-size:16px;
  font-weight:700;
}

/* 117.0: žákem vybraná odpověď před vyhodnocením je oranžová.
   Zelená/červená zůstává vyhrazená až pro stav po vyhodnocení. */
.ev4x-sp-vote-btn.is-selected {
  background:linear-gradient(135deg, #ffb347, #f97316);
  color:#fff;
  box-shadow:0 0 0 3px rgba(249,115,22,.28);
}

.ev4x-sp-vote-btn:disabled {
  opacity:.65;
  cursor:not-allowed;
}

.ev4x-sp-student-distance {
  margin:10px 0 2px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(45,86,175,.12), rgba(120,77,190,.14));
  border:1px solid rgba(60,102,196,.18);
  color:#294066;
  font-weight:900;
}


.ev4x-sp-student-brief {
  margin-top:14px;
  padding:16px 16px 14px;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(15,31,62,.96), rgba(28,54,99,.92));
  color:#eef5ff;
  border:1px solid rgba(132,166,223,.24);
  box-shadow:0 14px 30px rgba(18,32,58,.18);
}

.ev4x-sp-student-brief-eyebrow {
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#bcd4ff;
  margin-bottom:8px;
}

.ev4x-sp-student-brief-title {
  font-size:20px;
  line-height:1.2;
  font-weight:900;
  color:#ffffff;
}

.ev4x-sp-student-brief-text {
  margin-top:8px;
  font-size:14px;
  line-height:1.5;
  color:#dbe8ff;
}

.ev4x-sp-student-brief-meta {
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.ev4x-sp-student-brief-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.12);
  color:#f7fbff;
  font-size:12px;
  font-weight:800;
}

.ev4x-sp-student-brief-chip.is-start::before,
.ev4x-sp-student-brief-chip.is-goal::before,
.ev4x-sp-student-brief-chip.is-distance::before {
  content:'';
  width:9px;
  height:9px;
  border-radius:999px;
  display:block;
}

.ev4x-sp-student-brief-chip.is-start::before { background:#79a7ff; box-shadow:0 0 10px rgba(121,167,255,.7); }
.ev4x-sp-student-brief-chip.is-goal::before { background:#7be0b7; box-shadow:0 0 10px rgba(123,224,183,.7); }
.ev4x-sp-student-brief-chip.is-distance::before { background:#ffd978; box-shadow:0 0 10px rgba(255,217,120,.75); }

.ev4x-sp-student-note {
  margin-top:14px;
  color:#536071;
  font-weight:700;
}


.ev4x-sp-student-progress {
  margin-top:14px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.ev4x-sp-student-progress-badge {
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:#eef6ff;
  color:#24415f;
  font-weight:800;
  font-size:14px;
}

.ev4x-sp-student-progress-badge.is-good {
  background:#e8f8ef;
  color:#11613c;
}

.ev4x-sp-student-progress-badge.is-warn {
  background:#fff1e8;
  color:#8a3f12;
}

.ev4x-sp-student-history {
  margin-top:14px;
  display:grid;
  gap:10px;
}

.ev4x-sp-student-history-item {
  border:1px solid #dbe7f5;
  background:#f8fbff;
  border-radius:14px;
  padding:10px 12px;
}

.ev4x-sp-student-history-item.is-empty {
  color:#64748b;
}

.ev4x-sp-student-history-label {
  font-weight:700;
  color:#233247;
}

.ev4x-sp-student-history-time {
  margin-top:4px;
  font-size:12px;
  color:#64748b;
}

.ev4x-sp-message {
  margin-top:14px;
  background:rgba(255,255,255,.10);
  color:#eefbfa;
}

.ev4x-sp-message:empty {
  display:none;
}

@media (max-width: 1024px) {
  .ev4x-sp-grid,
  .ev4x-sp-options,
  .ev4x-sp-columns,
  .ev4x-sp-student-form,
  .ev4x-sp-student-options {
    grid-template-columns:1fr;
  }

  .ev4x-sp-topbar {
    flex-direction:column;
  }

  .ev4x-sp-student-progress {
    flex-direction:column;
  }

  .ev4x-sp-toolbar {
    justify-content:flex-start;
  }

  .ev4x-sp-quick-controls {
    position:sticky;
    top:12px;
    right:auto;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    margin:0 0 14px;
    width:fit-content;
    max-width:100%;
    min-width:0;
    padding:10px;
  }

  .ev4x-sp-map { min-height:420px; }
}

@media (max-width: 640px) {
  .ev4x-sp-teacher,
  .ev4x-sp-student-shell {
    padding:16px;
  }

  .ev4x-sp-node {
    min-width:72px;
    font-size:12px;
    padding:10px 8px;
  }

  .ev4x-sp-ranking-row {
    grid-template-columns:44px 1fr;
  }

  .ev4x-sp-ranking-meta {
    grid-column:1 / -1;
    text-align:left;
  }
}


.ev4x-sp-student-fixed-session {
  display:flex;
  align-items:center;
  min-height:48px;
  padding:0 16px;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:#eefbfa;
  font-weight:700;
}


.ev4x-sp-join-card {
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  padding:16px;
  margin:0 0 16px;
}
.ev4x-sp-join-grid {
  display:grid;
  grid-template-columns:180px 1fr;
  gap:16px;
  align-items:center;
}
.ev4x-sp-join-qr {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:180px;
  background:rgba(255,255,255,.96);
  border-radius:18px;
  padding:12px;
}
.ev4x-sp-qr-svg {
  display:block;
  width:100%;
  max-width:170px;
  height:auto;
}

.ev4x-sp-join-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.ev4x-sp-join-actions-center {
  justify-content:center;
}

.ev4x-sp-join-actions .ev4x-sp-btn {
  max-width:100%;
}

.ev4x-sp-qr-modal[hidden] {
  display:none !important;
}

.ev4x-sp-qr-modal {
  position:fixed !important;
  inset:0 !important;
  z-index:2147483000 !important;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.ev4x-sp-qr-modal-backdrop {
  position:absolute;
  inset:0;
  background:rgba(2, 8, 14, .94);
  backdrop-filter:none;
}

.ev4x-sp-qr-modal-dialog {
  position:relative;
  z-index:1;
  width:min(96vw, 1200px);
  max-height:96vh;
  overflow:auto;
  border-radius:32px;
  padding:24px 24px 22px;
  background:linear-gradient(180deg, #07151c 0%, #0d2229 100%);
  box-shadow:0 30px 80px rgba(0,0,0,.45);
  text-align:center;
}

.ev4x-sp-qr-modal-title {
  margin:0 0 8px;
  font-size:clamp(24px, 4vw, 34px);
  font-weight:900;
  color:#eefbfa;
}

.ev4x-sp-qr-modal-subtitle {
  margin:0 0 16px;
  color:#cfeeed;
  font-size:clamp(16px, 2vw, 22px);
  font-weight:800;
}

.ev4x-sp-qr-modal-qr {
  width:min(88vmin, 980px);
  margin:0 auto 18px;
  padding:22px;
  border-radius:30px;
  background:rgba(255,255,255,.99);
}

.ev4x-sp-qr-modal-qr .ev4x-sp-qr-svg {
  display:block;
  width:100%;
  height:auto;
  max-width:none;
}

.ev4x-sp-qr-modal-close {
  position:absolute;
  top:12px;
  right:12px;
  width:46px;
  height:46px;
  border:none;
  border-radius:999px;
  cursor:pointer;
  font-size:30px;
  line-height:1;
  color:#e8fbf9;
  background:rgba(255,255,255,.14);
}


@media (max-width: 960px) {
  .ev4x-sp-grid { grid-template-columns:1fr; }
  .ev4x-sp-join-grid { grid-template-columns:1fr; }
  .ev4x-sp-join-actions { flex-direction:column; align-items:stretch; }
}

@media (max-width: 640px) {
  .ev4x-sp-join-qr { min-height:150px; }
  .ev4x-sp-qr-modal { padding:12px; }
  .ev4x-sp-qr-modal-dialog { width:min(98vw, 98vh); padding:18px 14px 16px; border-radius:24px; }
  .ev4x-sp-qr-modal-qr { width:min(92vw, 92vh); padding:14px; }
}


.ev4x-sp-modal-open {
  overflow:hidden !important;
}


.ev4x-sp-cinematic[hidden] {
  display:none !important;
}

.ev4x-sp-cinematic {
  position:fixed;
  inset:0;
  z-index:2147483200;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}

.ev4x-sp-cinematic.is-visible {
  opacity:1;
  pointer-events:auto;
}

.ev4x-sp-cinematic-backdrop {
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 22%, rgba(67, 196, 255, .20), transparent 18%),
    radial-gradient(circle at 78% 20%, rgba(255, 215, 92, .18), transparent 16%),
    radial-gradient(circle at 50% 70%, rgba(125, 102, 255, .16), transparent 24%),
    linear-gradient(180deg, rgba(2, 10, 18, .95) 0%, rgba(4, 14, 26, .98) 100%);
  backdrop-filter: blur(4px);
}

.ev4x-sp-cinematic-stage {
  position:relative;
  width:min(96vw, 1120px);
  min-height:min(72vh, 720px);
  border-radius:34px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 50% 56%, rgba(44, 104, 255, .18), transparent 22%),
    linear-gradient(180deg, rgba(5, 19, 34, .96) 0%, rgba(3, 10, 22, .98) 100%);
  box-shadow:0 36px 120px rgba(0,0,0,.48);
  isolation:isolate;
}

.ev4x-sp-cinematic-stage::before,
.ev4x-sp-cinematic-stage::after {
  content:'';
  position:absolute;
  inset:-20%;
  pointer-events:none;
}

.ev4x-sp-cinematic-stage::before {
  background:
    radial-gradient(circle at 15% 18%, rgba(255,255,255,.9) 0 1px, transparent 2px),
    radial-gradient(circle at 34% 42%, rgba(255,255,255,.75) 0 1px, transparent 2px),
    radial-gradient(circle at 75% 28%, rgba(255,255,255,.7) 0 1px, transparent 2px),
    radial-gradient(circle at 66% 64%, rgba(255,255,255,.85) 0 1px, transparent 2px),
    radial-gradient(circle at 25% 72%, rgba(255,255,255,.65) 0 1px, transparent 2px),
    radial-gradient(circle at 86% 76%, rgba(255,255,255,.8) 0 1px, transparent 2px),
    radial-gradient(circle at 54% 18%, rgba(255,255,255,.75) 0 1px, transparent 2px),
    radial-gradient(circle at 8% 62%, rgba(255,255,255,.7) 0 1px, transparent 2px),
    radial-gradient(circle at 93% 12%, rgba(255,255,255,.85) 0 1px, transparent 2px),
    radial-gradient(circle at 44% 84%, rgba(255,255,255,.8) 0 1px, transparent 2px);
  opacity:.9;
  animation:ev4xSpStarDrift 16s linear infinite;
}

.ev4x-sp-cinematic-stage::after {
  background:
    linear-gradient(90deg, transparent 0 12%, rgba(255,255,255,.12) 13%, transparent 14%),
    linear-gradient(120deg, transparent 0 60%, rgba(255,255,255,.14) 61%, transparent 62%),
    linear-gradient(150deg, transparent 0 38%, rgba(255, 215, 115, .16) 39%, transparent 40%);
  opacity:.4;
  animation:ev4xSpNebulaPulse 8s ease-in-out infinite;
}

.ev4x-sp-cinematic-stars {
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}

.ev4x-sp-cinematic-stars span {
  position:absolute;
  width:180px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.95), rgba(255,255,255,0));
  box-shadow:0 0 18px rgba(255,255,255,.48);
  opacity:0;
  transform:rotate(-25deg) translateX(-120px);
  animation:ev4xSpShootingStar 2.8s linear infinite;
}

.ev4x-sp-cinematic-stars span:nth-child(1)  { top:12%; left:6%;  animation-delay:.2s;  }
.ev4x-sp-cinematic-stars span:nth-child(2)  { top:20%; left:48%; animation-delay:1.2s; }
.ev4x-sp-cinematic-stars span:nth-child(3)  { top:30%; left:20%; animation-delay:2.1s; }
.ev4x-sp-cinematic-stars span:nth-child(4)  { top:38%; left:64%; animation-delay:.9s; }
.ev4x-sp-cinematic-stars span:nth-child(5)  { top:48%; left:12%; animation-delay:1.9s; }
.ev4x-sp-cinematic-stars span:nth-child(6)  { top:58%; left:54%; animation-delay:2.7s; }
.ev4x-sp-cinematic-stars span:nth-child(7)  { top:66%; left:8%;  animation-delay:1.5s; }
.ev4x-sp-cinematic-stars span:nth-child(8)  { top:72%; left:44%; animation-delay:.5s; }
.ev4x-sp-cinematic-stars span:nth-child(9)  { top:22%; left:72%; animation-delay:2.4s; }
.ev4x-sp-cinematic-stars span:nth-child(10) { top:78%; left:68%; animation-delay:1.1s; }
.ev4x-sp-cinematic-stars span:nth-child(11) { top:84%; left:18%; animation-delay:2.9s; }
.ev4x-sp-cinematic-stars span:nth-child(12) { top:10%; left:76%; animation-delay:3.2s; }

.ev4x-sp-cinematic-content {
  position:absolute;
  inset:0;
  z-index:1;
  display:grid;
  align-content:start;
  justify-items:center;
  text-align:center;
  padding:24px 42px 92px;
  color:#fff;
}

.ev4x-sp-cinematic-content > :not(.ev4x-sp-cinematic-orbit) {
  position:relative;
  z-index:2;
}

.ev4x-sp-cinematic-orbit {
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}

.ev4x-sp-cinematic-flightpath {
  position:absolute;
  left:24%;
  top:37%;
  width:54%;
  height:28%;
  border-radius:999px;
  background:radial-gradient(ellipse at center, rgba(255,236,180,.18) 0%, rgba(120,173,255,.12) 38%, rgba(255,255,255,0) 72%);
  filter:blur(18px);
  opacity:.9;
  transform:rotate(-18deg);
  animation:ev4xSpRouteGlow 5.5s ease-in-out infinite;
}

.ev4x-sp-cinematic-flightpath::after {
  content:'';
  position:absolute;
  inset:18% 8%;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,244,205,.22), rgba(255,255,255,0));
  filter:blur(10px);
  opacity:.8;
}

.ev4x-sp-cinematic-planet {
  position:absolute;
  border-radius:50%;
  overflow:hidden;
  background-color:transparent !important;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  box-shadow:none;
  filter:drop-shadow(0 12px 30px rgba(0,0,0,.28));
}

.ev4x-sp-cinematic-planet span {
  position:absolute;
  left:50%;
  bottom:-34px;
  transform:translateX(-50%);
  padding:7px 14px;
  border-radius:999px;
  background:rgba(5,17,33,.34);
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  white-space:nowrap;
  backdrop-filter:blur(6px);
  z-index:3;
}

.ev4x-sp-cinematic-planet.is-earth {
  left:8%;
  bottom:11%;
  width:min(24vw, 184px);
  height:min(24vw, 184px);
  background:transparent url('../img/web-zeme-2-transparent.png') center/contain no-repeat;
  filter:drop-shadow(0 0 14px rgba(90,156,255,.28)) drop-shadow(0 0 34px rgba(41,92,187,.18));
  animation:ev4xSpPlanetFloat 5.5s ease-in-out infinite;
}

.ev4x-sp-cinematic-planet.is-destination {
  right:8%;
  top:18%;
  width:min(13vw, 110px);
  height:min(13vw, 110px);
  background:transparent url('https://system.eduvia4x.cz/wp-content/uploads/2026/04/web-bellatrix-3.png') center/cover no-repeat;
  filter:drop-shadow(0 0 12px rgba(255,234,176,.26)) drop-shadow(0 0 24px rgba(191,142,255,.18));
  animation:ev4xSpPlanetFloat 4.8s ease-in-out infinite;
}

.ev4x-sp-cinematic-planet.is-destination::before,
.ev4x-sp-cinematic-orbit-outro .ev4x-sp-cinematic-planet.is-arrival::before {
  content:'';
  position:absolute;
  left:50%;
  top:50%;
  width:118%;
  height:118%;
  transform:translate(-50%, -50%);
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,248,210,.18) 0%, rgba(198,156,255,.12) 38%, rgba(146,111,255,.08) 56%, rgba(146,111,255,0) 76%);
  filter:blur(10px);
  z-index:-1;
  pointer-events:none;
  animation:ev4xSpBellatrixGlow 3.8s ease-in-out infinite;
}

.ev4x-sp-cinematic-orbit-outro .ev4x-sp-cinematic-planet.is-arrival {
  left:50%;
  top:71%;
  width:min(28vw, 240px);
  height:min(28vw, 240px);
  margin-left:calc(min(29vw, 248px) / -2);
  margin-top:calc(min(29vw, 248px) / -2);
  background:transparent url('https://system.eduvia4x.cz/wp-content/uploads/2026/04/web-bellatrix-3.png') center/cover no-repeat;
  filter:drop-shadow(0 0 14px rgba(255,240,190,.24)) drop-shadow(0 0 34px rgba(191,136,255,.18));
  animation:ev4xSpArrivalPulse 5.2s ease-in-out infinite;
}

.ev4x-sp-cinematic-content.is-outro {
  background:radial-gradient(circle at 50% 62%, rgba(56, 185, 117, .12), transparent 24%);
  align-content:start;
  padding-top:54px;
}

.ev4x-sp-cinematic-kicker {
  text-transform:uppercase;
  letter-spacing:.28em;
  font-size:13px;
  font-weight:900;
  color:#cfeffc;
  margin-bottom:16px;
  opacity:0;
  transform:translateY(16px);
}

.ev4x-sp-cinematic-title {
  font-size:clamp(28px, 4.6vw, 62px);
  font-weight:900;
  line-height:1.04;
  letter-spacing:.01em;
  margin-bottom:16px;
  text-shadow:0 10px 36px rgba(0,0,0,.44);
  opacity:0;
  transform:scale(.92) translateY(22px);
}


.ev4x-sp-cinematic-title,
.ev4x-sp-cinematic-subtitle,
.ev4x-sp-cinematic-mission,
.ev4x-sp-cinematic-summary {
  max-width:min(88%, 980px);
}
.ev4x-sp-cinematic-subtitle {
  max-width:760px;
  font-size:clamp(16px, 2.1vw, 24px);
  line-height:1.35;
  color:#eaf8ff;
  opacity:0;
  transform:translateY(18px);
}

.ev4x-sp-cinematic-mission {
  margin-top:16px;
  padding:14px 24px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  color:#fff2cb;
  font-size:clamp(15px, 1.7vw, 21px);
  font-weight:900;
  letter-spacing:.04em;
  opacity:0;
  transform:translateY(18px);
  box-shadow:0 14px 30px rgba(0,0,0,.18);
}

.ev4x-sp-cinematic-summary {
  margin-top:12px;
  max-width:900px;
  padding:16px 22px;
  border-radius:20px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:#effef6;
  font-size:clamp(14px, 1.45vw, 18px);
  font-weight:800;
  line-height:1.45;
  opacity:0;
  transform:translateY(18px);
}

.ev4x-sp-cinematic-glow {
  position:absolute;
  width:min(86vw, 520px);
  height:min(86vw, 520px);
  border-radius:50%;
  background:radial-gradient(circle, rgba(255, 221, 122, .34) 0%, rgba(85, 151, 255, .18) 35%, rgba(5, 14, 28, 0) 72%);
  filter:blur(6px);
  animation:ev4xSpGlowPulse 4s ease-in-out infinite;
  pointer-events:none;
}

.ev4x-sp-cinematic.is-outro .ev4x-sp-cinematic-glow {
  background:radial-gradient(circle, rgba(138, 235, 182, .34) 0%, rgba(72, 160, 255, .16) 34%, rgba(5, 14, 28, 0) 72%);
}

.ev4x-sp-cinematic.is-visible .ev4x-sp-cinematic-kicker {
  animation:ev4xSpRiseIn .7s ease forwards .2s;
}

.ev4x-sp-cinematic.is-visible .ev4x-sp-cinematic-title {
  animation:ev4xSpTitleIn .95s cubic-bezier(.2,.75,.15,1) forwards .45s;
}

.ev4x-sp-cinematic.is-visible .ev4x-sp-cinematic-subtitle {
  animation:ev4xSpRiseIn .8s ease forwards .85s;
}

.ev4x-sp-cinematic.is-visible .ev4x-sp-cinematic-mission {
  animation:ev4xSpRiseIn .8s ease forwards 1.1s;
}

.ev4x-sp-cinematic.is-visible .ev4x-sp-cinematic-summary {
  animation:ev4xSpRiseIn .8s ease forwards 1.2s;
}

.ev4x-sp-cinematic-welcome {
  position:absolute;
  left:50%;
  top:calc(71% + min(29vw, 248px) / 2 + 20px);
  transform:translateX(-50%);
  z-index:3;
  padding:10px 18px;
  border-radius:999px;
  background:rgba(5,17,33,.42);
  border:1px solid rgba(255,255,255,.12);
  color:#fff7d8;
  font-size:clamp(15px, 1.55vw, 19px);
  font-weight:900;
  letter-spacing:.02em;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.ev4x-sp-cinematic-skip {
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:2;
  border:none;
  border-radius:999px;
  padding:12px 16px;
  background:rgba(255,255,255,.12);
  color:#ecf8ff;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 10px 28px rgba(0,0,0,.22);
}

.ev4x-sp-cinematic-skip:hover {
  transform:translateY(-1px);
}

@keyframes ev4xSpRouteGlow {
  0%, 100% { opacity:.72; transform:rotate(-18deg) scale(1); }
  50% { opacity:1; transform:rotate(-18deg) scale(1.03); }
}

@keyframes ev4xSpPlanetFloat {
  0%, 100% { transform:translateY(0px) scale(1); }
  50% { transform:translateY(-10px) scale(1.02); }
}

@keyframes ev4xSpPlanetPulse {
  0%, 100% { transform:scale(.9); opacity:.75; }
  50% { transform:scale(1.12); opacity:1; }
}

@keyframes ev4xSpBellatrixGlow {
  0%, 100% {
    opacity:.68;
    transform:translate(-50%, -50%) scale(0.98);
  }
  50% {
    opacity:.92;
    transform:translate(-50%, -50%) scale(1.04);
  }
}

@keyframes ev4xSpArrivalPulse {
  0%, 100% { transform:scale(1); filter:drop-shadow(0 0 14px rgba(255,234,161,.24)); }
  50% { transform:scale(1.04); filter:drop-shadow(0 0 28px rgba(255,234,161,.42)); }
}

@keyframes ev4xSpShootingStar {
  0%   { opacity:0; transform:translateX(-140px) translateY(0) rotate(-25deg) scaleX(.45); }
  10%  { opacity:1; }
  70%  { opacity:1; }
  100% { opacity:0; transform:translateX(420px) translateY(120px) rotate(-25deg) scaleX(1); }
}

@keyframes ev4xSpStarDrift {
  0% { transform:translate3d(0,0,0) scale(1); }
  50% { transform:translate3d(-10px, 8px, 0) scale(1.03); }
  100% { transform:translate3d(0,0,0) scale(1); }
}

@keyframes ev4xSpNebulaPulse {
  0%,100% { transform:scale(1); opacity:.32; }
  50% { transform:scale(1.06); opacity:.48; }
}

@keyframes ev4xSpGlowPulse {
  0%,100% { transform:scale(.92); opacity:.65; }
  50% { transform:scale(1.08); opacity:.92; }
}

@keyframes ev4xSpRiseIn {
  from { opacity:0; transform:translateY(18px); }
  to   { opacity:1; transform:translateY(0); }
}

@keyframes ev4xSpTitleIn {
  0% { opacity:0; transform:scale(.85) translateY(28px); filter:blur(8px); }
  65% { opacity:1; transform:scale(1.04) translateY(-2px); filter:blur(0); }
  100% { opacity:1; transform:scale(1) translateY(0); filter:blur(0); }
}

@media (max-width: 900px) {
  .ev4x-sp-cinematic-stage {
    min-height:min(76vh, 680px);
  }
  .ev4x-sp-cinematic-content {
    padding:52px 24px 84px;
  }
}

@media (max-width: 640px) {
  .ev4x-sp-quick-controls {
    padding:8px;
    gap:8px;
    border-radius:16px;
    min-width:0;
  }

  .ev4x-sp-quick-controls .ev4x-sp-btn {
    min-height:40px;
    padding:9px 12px;
    font-size:13px;
  }

  .ev4x-sp-cinematic {
    padding:10px;
  }
  .ev4x-sp-cinematic-stage {
    min-height:min(84vh, 640px);
    border-radius:24px;
  }
  .ev4x-sp-cinematic-skip {
    right:12px;
    bottom:12px;
    font-size:14px;
    padding:10px 14px;
  }
}


/* Fullscreen improvements */
.ev4x-sp-app:fullscreen,
.ev4x-sp-app:-webkit-full-screen {
  width:100vw !important;
  height:100vh !important;
  max-width:none !important;
  max-height:none !important;
  overflow:auto !important;
  padding:20px !important;
  border-radius:0 !important;
  box-sizing:border-box;
  scrollbar-width:auto;
}

.ev4x-sp-app:fullscreen .ev4x-sp-grid,
.ev4x-sp-app:-webkit-full-screen .ev4x-sp-grid {
  align-items:start;
}

.ev4x-sp-app:fullscreen .ev4x-sp-map,
.ev4x-sp-app:-webkit-full-screen .ev4x-sp-map {
  min-height:620px;
}

.ev4x-sp-app:fullscreen .ev4x-sp-quick-controls,
.ev4x-sp-app:-webkit-full-screen .ev4x-sp-quick-controls {
  position:fixed;
  top:18px;
  right:18px;
  z-index:200;
}

.ev4x-sp-app:fullscreen .ev4x-sp-topbar,
.ev4x-sp-app:-webkit-full-screen .ev4x-sp-topbar {
  align-items:flex-start;
}

@media (max-width: 1024px) {
  .ev4x-sp-app:fullscreen .ev4x-sp-quick-controls,
  .ev4x-sp-app:-webkit-full-screen .ev4x-sp-quick-controls {
    position:sticky;
    top:12px;
    right:auto;
  }
}


.ev4x-sp-vote-btn.is-correct {
  background:linear-gradient(135deg, #31b76b, #1d8b4f);
  color:#fff;
  box-shadow:0 0 0 3px rgba(49,183,107,.26);
  opacity:1;
}

.ev4x-sp-vote-btn.is-wrong {
  background:linear-gradient(135deg, #f7d5d5, #efb6b6);
  color:#742c2c;
  opacity:1;
}

.ev4x-sp-cinematic-orbit-intro .ev4x-sp-cinematic-planet.is-earth span,
.ev4x-sp-cinematic-orbit-intro .ev4x-sp-cinematic-planet.is-destination span {
  backdrop-filter:blur(4px);
}
@media (max-width: 900px) {
  .ev4x-sp-cinematic-planet.is-earth {
    left:4%;
    bottom:8%;
    width:min(34vw, 170px);
    height:min(34vw, 170px);
  }
  .ev4x-sp-cinematic-planet.is-destination {
    right:4%;
    top:12%;
    width:min(18vw, 98px);
    height:min(18vw, 98px);
  }
  .ev4x-sp-cinematic-orbit-outro .ev4x-sp-cinematic-planet.is-arrival {
    width:min(50vw, 230px);
    height:min(50vw, 230px);
    margin-left:calc(min(50vw, 230px) / -2);
    margin-top:calc(min(50vw, 230px) / -2);
    left:50%;
    top:72%;
  }
  .ev4x-sp-cinematic-welcome {
    top:calc(72% + min(50vw, 230px) / 2 + 16px);
    font-size:14px;
    padding:9px 14px;
    width:min(86vw, 420px);
    text-align:center;
  }
}

.ev4x-sp-cinematic-orbit-intro .ev4x-sp-cinematic-planet span { font-size:12px; opacity:.88; }

.ev4x-sp-optional{font-size:12px;color:#6b7280;font-weight:700;}
.ev4x-sp-student-form-note{font-size:13px;color:#64748b;margin-top:8px;}

/* 58.0: mini mapa mise v anonymním samostatném průchodu */
.ev4x-sp-student-map-card {
  margin:14px 0 0;
}

.ev4x-sp-student-map-details {
  border:1px solid rgba(46, 85, 120, .16);
  border-radius:18px;
  background:linear-gradient(180deg, #f7fbff 0%, #eef7fb 100%);
  overflow:hidden;
}

.ev4x-sp-student-map-details summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  font-weight:900;
  color:#223247;
  user-select:none;
}

.ev4x-sp-student-map-details summary::-webkit-details-marker { display:none; }

.ev4x-sp-student-map-details summary::before {
  content:'✦';
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:999px;
  background:linear-gradient(135deg, #f2d17d, #e2ab3c);
  color:#223247;
  box-shadow:0 0 0 3px rgba(231,186,82,.18);
}

.ev4x-sp-student-map-details summary span {
  margin-left:auto;
  color:#607087;
  font-size:12px;
  font-weight:800;
  text-align:right;
}

.ev4x-sp-student-map {
  position:relative;
  height:258px;
  margin:0 12px 10px;
  border-radius:18px;
  overflow:hidden;
  background-color:#07161b;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(22, 48, 72, .22);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10), 0 10px 22px rgba(20, 41, 58, .10);
}

.ev4x-sp-student-map::before {
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(3,12,19,.16), rgba(4,15,22,.52)),
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.72) 0 1px, transparent 2px),
    radial-gradient(circle at 74% 24%, rgba(255,255,255,.55) 0 1px, transparent 2px),
    radial-gradient(circle at 35% 76%, rgba(255,255,255,.48) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 68%, rgba(255,255,255,.60) 0 1px, transparent 2px),
    radial-gradient(circle at 50% 50%, rgba(125,176,255,.08), transparent 42%);
  z-index:0;
  pointer-events:none;
}

.ev4x-sp-student-map::after {
  content:'';
  position:absolute;
  inset:10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.07);
  pointer-events:none;
  z-index:0;
}

.ev4x-sp-student-map-scenery {
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}

.ev4x-sp-student-map-route {
  position:absolute;
  left:9%;
  right:10%;
  top:24%;
  bottom:20%;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(121,167,255,.10), rgba(255,217,120,.06), rgba(123,224,183,.10));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}

.ev4x-sp-student-map-route::before {
  content:'';
  position:absolute;
  left:9%;
  right:12%;
  top:49%;
  height:2px;
  background:linear-gradient(90deg, rgba(121,167,255,.6), rgba(255,217,120,.75), rgba(123,224,183,.55));
  box-shadow:0 0 10px rgba(255,217,120,.25);
}

.ev4x-sp-student-map-route::after {
  content:'';
  position:absolute;
  right:10%;
  top:49%;
  transform:translateY(-50%);
  border-left:10px solid rgba(255,217,120,.82);
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
  filter:drop-shadow(0 0 6px rgba(255,217,120,.35));
}

.ev4x-sp-student-map-planet {
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-radius:999px;
  box-shadow:0 0 0 1px rgba(255,255,255,.08), 0 10px 28px rgba(2,8,22,.28);
}

.ev4x-sp-student-map-planet span {
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  display:inline-block;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(9,20,37,.82);
  color:#f8fbff;
  font-size:11px;
  font-weight:900;
  line-height:1.15;
  white-space:nowrap;
  box-shadow:0 8px 16px rgba(0,0,0,.18);
}

.ev4x-sp-student-map-planet span small {
  display:block;
  font-size:10px;
  opacity:.88;
  font-weight:800;
}

.ev4x-sp-student-map-planet.is-earth {
  left:18px;
  top:18px;
  width:34px;
  height:34px;
  background:radial-gradient(circle at 32% 30%, #b9ebff 0%, #4ca7ff 35%, #1a59ab 68%, #0b2e57 100%);
}

.ev4x-sp-student-map-planet.is-earth span {
  top:42px;
}

.ev4x-sp-student-map-planet.is-bellatrix {
  right:18px;
  bottom:18px;
  width:42px;
  height:42px;
  background:radial-gradient(circle at 32% 28%, #fff5bf 0%, #7be0b7 38%, #297d7b 72%, #143f54 100%);
  box-shadow:0 0 0 5px rgba(123,224,183,.12), 0 10px 28px rgba(2,8,22,.28);
}

.ev4x-sp-student-map-planet.is-bellatrix span {
  bottom:48px;
}

.ev4x-sp-student-map-lines,
.ev4x-sp-student-map-nodes {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.ev4x-sp-student-map-lines { z-index:2; }
.ev4x-sp-student-map-nodes { z-index:3; }

.ev4x-sp-student-map-line {
  stroke:rgba(255,255,255,.22);
  stroke-width:.7;
  stroke-dasharray:2.4 2.6;
  stroke-linecap:round;
}

.ev4x-sp-student-map-line.is-next,
.ev4x-sp-student-map-line.is-target-current {
  stroke:rgba(255,255,255,.42);
  stroke-width:.95;
}

.ev4x-sp-student-map-line.is-visited {
  stroke:rgba(231,186,82,.96);
  stroke-width:1.55;
  stroke-dasharray:none;
  filter:drop-shadow(0 0 5px rgba(231,186,82,.45));
}

.ev4x-sp-student-map-node {
  position:absolute;
  z-index:2;
  transform:translate(-50%, -50%);
  display:flex;
  align-items:center;
  gap:8px;
  max-width:180px;
  opacity:.56;
}

.ev4x-sp-student-map-node.label-left {
  flex-direction:row-reverse;
}

.ev4x-sp-student-map-node.label-above,
.ev4x-sp-student-map-node.label-below {
  flex-direction:column;
  align-items:center;
  gap:8px;
}

.ev4x-sp-student-map-node.label-above {
  flex-direction:column-reverse;
}

.ev4x-sp-student-map-dot {
  position:relative;
  display:block;
  width:14px;
  height:14px;
  flex:0 0 14px;
  border-radius:999px;
  background:#dbe8f3;
  border:2px solid rgba(255,255,255,.72);
  box-shadow:0 0 12px rgba(255,255,255,.30);
}

.ev4x-sp-student-map-node.is-visited { opacity:.96; }
.ev4x-sp-student-map-node.is-visited .ev4x-sp-student-map-dot { background:#e7ba52; box-shadow:0 0 16px rgba(231,186,82,.60); }
.ev4x-sp-student-map-node.is-start .ev4x-sp-student-map-dot { background:#79a7ff; }
.ev4x-sp-student-map-node.is-goal .ev4x-sp-student-map-dot { background:#7be0b7; box-shadow:0 0 0 4px rgba(123,224,183,.16), 0 0 16px rgba(123,224,183,.42); }

.ev4x-sp-student-map-marker {
  position:absolute;
  top:-11px;
  left:50%;
  transform:translateX(-50%);
  font-size:12px;
  line-height:1;
  color:#fff5c7;
  text-shadow:0 0 10px rgba(255,217,120,.75);
  pointer-events:none;
}

.ev4x-sp-student-map-node.is-current {
  opacity:1;
  z-index:4;
}

.ev4x-sp-student-map-node.is-current .ev4x-sp-student-map-dot {
  width:20px;
  height:20px;
  flex-basis:20px;
  background:#ffd978;
  border-color:#fff7cf;
  box-shadow:0 0 0 6px rgba(231,186,82,.24), 0 0 26px rgba(255,217,120,.88);
  animation:ev4xSpStudentMapPulse 2.2s ease-in-out infinite;
}

.ev4x-sp-student-map-node.is-current.is-goal .ev4x-sp-student-map-dot {
  background:linear-gradient(135deg, #ffe58b 0%, #7be0b7 100%);
  border-color:#fff8d9;
}

.ev4x-sp-student-map-label {
  display:block;
  max-width:150px;
  padding:7px 10px;
  border-radius:14px;
  background:rgba(255,255,255,.95);
  color:#223247;
  font-size:12px;
  font-weight:900;
  line-height:1.15;
  box-shadow:0 10px 20px rgba(0,0,0,.18);
  overflow-wrap:anywhere;
  text-align:center;
}

.ev4x-sp-student-map-legend {
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  padding:0 14px 12px;
  color:#516075;
  font-size:12px;
  font-weight:800;
}

.ev4x-sp-student-map-legend span {
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.ev4x-sp-student-map-legend i {
  width:10px;
  height:10px;
  border-radius:999px;
  background:#dbe8f3;
  border:1px solid rgba(45, 63, 82, .18);
}

.ev4x-sp-student-map-legend i.is-current { background:#ffd978; box-shadow:0 0 10px rgba(231,186,82,.55); }
.ev4x-sp-student-map-legend i.is-visited { background:#e7ba52; }

@keyframes ev4xSpStudentMapPulse {
  0%, 100% { transform:scale(1); }
  50% { transform:scale(1.14); }
}

@media (max-width:640px) {
  .ev4x-sp-student-map { height:222px; margin-left:8px; margin-right:8px; }
  .ev4x-sp-student-map-details summary { align-items:flex-start; flex-wrap:wrap; }
  .ev4x-sp-student-map-details summary span { width:100%; margin-left:40px; text-align:left; }
  .ev4x-sp-student-map-node { max-width:140px; }
  .ev4x-sp-student-map-label { max-width:116px; font-size:11px; padding:6px 8px; }
  .ev4x-sp-student-map-route { left:12%; right:13%; top:25%; bottom:22%; }
  .ev4x-sp-student-map-planet.is-earth { left:14px; top:14px; width:28px; height:28px; }
  .ev4x-sp-student-map-planet.is-bellatrix { right:14px; bottom:14px; width:34px; height:34px; }
  .ev4x-sp-student-map-planet span { font-size:10px; padding:4px 8px; }
  .ev4x-sp-student-brief-title { font-size:18px; }
  .ev4x-sp-student-brief-text { font-size:13px; }
}


/* 69.0: nástup do kosmické lodi, počet neodeslaných hlasů, správná posloupnost */
.ev4x-sp-boarding-panel {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin:14px 0 18px;
}

.ev4x-sp-boarding-card,
.ev4x-sp-correct-sequence {
  border:1px solid rgba(80,120,170,.18);
  background:linear-gradient(135deg, rgba(255,255,255,.94), rgba(238,247,255,.94));
  border-radius:18px;
  padding:12px 14px;
  color:#223247;
  box-shadow:0 10px 24px rgba(20,40,70,.08);
}

.ev4x-sp-boarding-muted {
  color:#607087;
  font-weight:700;
}

.ev4x-sp-unanswered-number {
  display:inline-grid;
  place-items:center;
  min-width:42px;
  height:34px;
  margin-left:8px;
  padding:0 10px;
  border-radius:999px;
  background:#fff0e6;
  color:#92390b;
  font-weight:950;
  font-size:20px;
}

.ev4x-sp-unanswered-number.is-zero {
  background:#e8f8ef;
  color:#11613c;
}

.ev4x-sp-correct-sequence {
  grid-column:1 / -1;
}

.ev4x-sp-correct-sequence summary {
  cursor:pointer;
  font-weight:900;
  color:#19355d;
}

.ev4x-sp-correct-sequence-list {
  margin-top:10px;
  display:grid;
  gap:8px;
}

.ev4x-sp-correct-row {
  display:grid;
  grid-template-columns:38px 1fr auto auto;
  gap:10px;
  align-items:center;
  border:1px solid rgba(80,120,170,.14);
  border-radius:14px;
  padding:8px 10px;
  background:rgba(255,255,255,.72);
}

.ev4x-sp-correct-row span {
  font-weight:900;
  color:#61708a;
}

.ev4x-sp-correct-row strong {
  color:#20304a;
}

.ev4x-sp-correct-row em {
  min-width:34px;
  text-align:center;
  border-radius:999px;
  padding:5px 10px;
  background:#173d74;
  color:#fff;
  font-style:normal;
  font-weight:950;
}

.ev4x-sp-correct-original {
  font-size:12px;
  color:#748197;
}

@media (max-width:760px) {
  .ev4x-sp-boarding-panel { grid-template-columns:1fr; }
  .ev4x-sp-correct-row { grid-template-columns:30px 1fr auto; }
  .ev4x-sp-correct-original { display:none; }
}


/* 70.0: rozbalovací graf hlasování a seznamy žáků pro bezpečné promítání */
.ev4x-sp-teacher-toggle-panel {
  margin:14px 0;
  border:1px solid rgba(110,150,190,.20);
  border-radius:18px;
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(235,247,249,.88));
  box-shadow:0 12px 28px rgba(20,40,70,.08);
  overflow:hidden;
}

.ev4x-sp-teacher-toggle-panel > summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  font-weight:950;
  color:#16365f;
}

.ev4x-sp-teacher-toggle-panel > summary::-webkit-details-marker {
  display:none;
}

.ev4x-sp-teacher-toggle-panel > summary span {
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.ev4x-sp-teacher-toggle-panel > summary em {
  font-style:normal;
  font-size:12px;
  font-weight:850;
  color:#65748a;
  background:rgba(22,54,95,.08);
  border-radius:999px;
  padding:6px 10px;
}

.ev4x-sp-teacher-toggle-panel[open] > summary {
  border-bottom:1px solid rgba(110,150,190,.16);
  background:rgba(255,255,255,.55);
}

.ev4x-sp-teacher-toggle-panel .ev4x-sp-options,
.ev4x-sp-teacher-toggle-panel .ev4x-sp-helper,
.ev4x-sp-teacher-toggle-panel .ev4x-sp-columns,
.ev4x-sp-teacher-toggle-panel .ev4x-sp-section-title {
  margin-left:14px;
  margin-right:14px;
}

.ev4x-sp-teacher-toggle-panel .ev4x-sp-section-title {
  margin-top:14px;
}

.ev4x-sp-teacher-toggle-panel .ev4x-sp-helper,
.ev4x-sp-teacher-toggle-panel .ev4x-sp-columns {
  margin-bottom:14px;
}

@media (max-width:760px) {
  .ev4x-sp-teacher-toggle-panel > summary {
    align-items:flex-start;
    flex-direction:column;
  }
}


/* 71.0: vyšší kontrast rozbalených učitelských panelů */
.ev4x-sp-teacher-toggle-panel[open] {
  background:#f6fbff;
  border-color:rgba(32,68,112,.32);
}

.ev4x-sp-teacher-toggle-panel[open] > summary {
  background:linear-gradient(135deg, #ffffff, #e8f3fb);
  color:#102a4c;
  border-bottom:1px solid rgba(32,68,112,.20);
}

.ev4x-sp-teacher-toggle-panel[open] .ev4x-sp-columns {
  background:#eaf3f7;
  border:1px solid rgba(32,68,112,.14);
  border-radius:18px;
  padding:16px;
  color:#102033;
}

.ev4x-sp-teacher-toggle-panel[open] .ev4x-sp-columns h4 {
  color:#14365f;
  font-size:20px;
  font-weight:950;
  text-shadow:none;
}

.ev4x-sp-teacher-toggle-panel[open] .ev4x-sp-code-badge {
  min-width:42px;
  height:42px;
  display:inline-grid;
  place-items:center;
  padding:0 12px;
  border-radius:999px;
  background:linear-gradient(135deg, #ffffff, #d7e6ef);
  color:#19304d;
  border:1px solid rgba(32,68,112,.18);
  box-shadow:0 8px 16px rgba(25,48,77,.10);
  font-weight:950;
  font-size:17px;
  opacity:1;
}

.ev4x-sp-teacher-toggle-panel[open] .ev4x-sp-code-badge-empty {
  background:#eef3f7;
  color:#536274;
  border:1px dashed rgba(32,68,112,.25);
  opacity:1;
}

.ev4x-sp-teacher-toggle-panel[open] .ev4x-sp-options {
  background:#f7fbff;
  border-radius:18px;
  padding:14px;
}

.ev4x-sp-teacher-toggle-panel[open] .ev4x-sp-helper {
  color:#405066;
  font-weight:750;
}

.ev4x-sp-teacher-toggle-panel[open] .ev4x-sp-section-title {
  color:#14365f;
  font-weight:950;
  text-shadow:none;
}


/* 74.0: viditelné odhalení správné odpovědi v žákovském režimu */
.ev4x-sp-student-answer-reveal {
  grid-column:1 / -1;
  border-radius:18px;
  padding:14px 16px;
  margin-top:8px;
  background:linear-gradient(135deg, #eef7ff, #f8fbff);
  border:1px solid rgba(38, 89, 144, .22);
  color:#17304d;
  box-shadow:0 10px 22px rgba(20, 44, 76, .10);
}

.ev4x-sp-student-answer-reveal.is-correct {
  background:linear-gradient(135deg, #e9fff3, #f7fffb);
  border-color:rgba(36, 140, 85, .30);
}

.ev4x-sp-student-answer-reveal.is-wrong {
  background:linear-gradient(135deg, #fff3ec, #fffaf7);
  border-color:rgba(190, 92, 44, .30);
}

.ev4x-sp-student-answer-kicker {
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-weight:950;
  color:#5a6a7e;
  margin-bottom:5px;
}

.ev4x-sp-student-answer-main {
  font-size:19px;
  font-weight:900;
  color:#102a4c;
}

.ev4x-sp-student-answer-main strong {
  display:inline-grid;
  place-items:center;
  min-width:38px;
  margin-left:6px;
  padding:4px 10px;
  border-radius:999px;
  background:#173d74;
  color:#fff;
  font-weight:950;
}

.ev4x-sp-student-answer-note {
  margin-top:6px;
  font-weight:800;
  color:#334155;
}


/* 79.0: číslo kola v historii cesty */
.ev4x-sp-history-round {
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-bottom:7px;
  padding:4px 10px;
  border-radius:999px;
  background:linear-gradient(135deg, #183d72, #245ca3);
  color:#ffffff;
  font-size:12px;
  font-weight:950;
  letter-spacing:.02em;
  box-shadow:0 6px 14px rgba(15, 45, 90, .18);
}


/* 80.0: kulaté planetární uzly v mapách mise + kompletní posádka */
.ev4x-sp-node {
  width:124px;
  height:124px;
  min-width:124px;
  max-width:124px;
  padding:12px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#f7fcff;
  font-weight:900;
  font-size:13px;
  line-height:1.12;
  background:
    radial-gradient(circle at 30% 26%, rgba(132,236,255,.98) 0%, rgba(49,174,207,.98) 30%, rgba(20,112,151,.98) 66%, rgba(11,61,91,1) 100%);
  border:2px solid rgba(228,248,255,.82);
  box-shadow:
    inset -10px -14px 20px rgba(0,0,0,.20),
    0 0 0 5px rgba(76,189,219,.12),
    0 10px 24px rgba(0,0,0,.24),
    0 0 22px rgba(74,184,221,.24);
  overflow:hidden;
}

.ev4x-sp-node::before {
  content:'';
  position:absolute;
  left:17%;
  top:12%;
  width:34%;
  height:26%;
  border-radius:50%;
  background:rgba(255,255,255,.16);
  filter:blur(2px);
}

.ev4x-sp-node span {
  position:relative;
  z-index:1;
  display:block;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
  text-shadow:0 1px 2px rgba(0,0,0,.38);
}

.ev4x-sp-node.is-long {
  width:136px;
  height:136px;
  min-width:136px;
  max-width:136px;
  font-size:12px;
  line-height:1.08;
}

.ev4x-sp-node.is-start {
  background:
    radial-gradient(circle at 30% 26%, rgba(168,195,255,.98) 0%, rgba(105,140,255,.98) 31%, rgba(70,84,188,.98) 70%, rgba(37,44,113,1) 100%);
}

.ev4x-sp-node.is-hub {
  background:
    radial-gradient(circle at 30% 26%, rgba(120,255,235,.98) 0%, rgba(49,205,190,.98) 31%, rgba(20,138,128,.98) 70%, rgba(11,72,80,1) 100%);
}

.ev4x-sp-node.is-goal {
  background:
    radial-gradient(circle at 30% 26%, rgba(202,255,224,.98) 0%, rgba(116,230,178,.98) 31%, rgba(45,154,110,.98) 70%, rgba(18,78,60,1) 100%);
}

.ev4x-sp-node.is-current {
  color:#203047;
  background:
    radial-gradient(circle at 30% 26%, rgba(255,242,176,.99) 0%, rgba(255,215,100,.99) 28%, rgba(224,159,49,.99) 64%, rgba(152,94,16,1) 100%);
  border-color:#fff6cf;
  box-shadow:
    inset -10px -14px 20px rgba(0,0,0,.16),
    0 0 0 7px rgba(255,217,120,.18),
    0 12px 28px rgba(0,0,0,.28),
    0 0 30px rgba(255,217,120,.50);
}

.ev4x-sp-student-map-node {
  position:absolute;
  z-index:2;
  transform:translate(-50%, -50%);
  display:block;
  max-width:none;
  opacity:.82;
  text-align:center;
  pointer-events:none;
}

.ev4x-sp-student-map-node.label-left,
.ev4x-sp-student-map-node.label-above,
.ev4x-sp-student-map-node.label-below {
  display:block;
}

.ev4x-sp-student-map-dot {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:98px;
  height:98px;
  padding:10px;
  flex:0 0 auto;
  border-radius:50%;
  background:
    radial-gradient(circle at 30% 30%, rgba(105,236,255,.96) 0%, rgba(52,185,212,.96) 28%, rgba(22,112,146,.98) 68%, rgba(12,66,96,1) 100%);
  border:2px solid rgba(230,247,255,.88);
  box-shadow:
    inset -8px -12px 18px rgba(0,0,0,.18),
    0 0 0 4px rgba(74,183,214,.10),
    0 0 18px rgba(73,184,221,.28);
  overflow:hidden;
}

.ev4x-sp-student-map-dot::before {
  content:'';
  position:absolute;
  inset:10% auto auto 14%;
  width:34%;
  height:26%;
  border-radius:50%;
  background:rgba(255,255,255,.16);
  filter:blur(2px);
}

.ev4x-sp-student-map-dot-text {
  display:block;
  position:relative;
  z-index:1;
  color:#f6fbff;
  font-size:13px;
  line-height:1.12;
  font-weight:900;
  letter-spacing:.01em;
  text-shadow:0 1px 2px rgba(0,0,0,.36);
  max-width:100%;
  word-break:break-word;
}

.ev4x-sp-student-map-node.is-visited { opacity:1; }
.ev4x-sp-student-map-node.is-visited .ev4x-sp-student-map-dot {
  background:
    radial-gradient(circle at 30% 30%, rgba(255,233,151,.98) 0%, rgba(233,184,80,.98) 30%, rgba(158,105,30,.98) 70%, rgba(96,59,12,1) 100%);
  box-shadow:
    inset -8px -12px 18px rgba(0,0,0,.18),
    0 0 0 4px rgba(231,186,82,.12),
    0 0 22px rgba(231,186,82,.34);
}

.ev4x-sp-student-map-node.is-start .ev4x-sp-student-map-dot {
  background:
    radial-gradient(circle at 30% 30%, rgba(154,187,255,.98) 0%, rgba(96,130,255,.98) 32%, rgba(63,77,177,.98) 72%, rgba(36,45,111,1) 100%);
}

.ev4x-sp-student-map-node.is-goal .ev4x-sp-student-map-dot {
  background:
    radial-gradient(circle at 30% 30%, rgba(196,255,220,.98) 0%, rgba(102,227,171,.98) 30%, rgba(45,142,108,.98) 70%, rgba(17,78,61,1) 100%);
  box-shadow:
    inset -8px -12px 18px rgba(0,0,0,.16),
    0 0 0 5px rgba(123,224,183,.12),
    0 0 24px rgba(123,224,183,.34);
}

.ev4x-sp-student-map-node.is-current .ev4x-sp-student-map-dot {
  width:112px;
  height:112px;
  flex-basis:auto;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,234,160,.99) 0%, rgba(255,212,94,.99) 28%, rgba(223,151,43,.99) 62%, rgba(148,92,18,1) 100%);
  border-color:#fff7cf;
  box-shadow:
    inset -8px -12px 18px rgba(0,0,0,.14),
    0 0 0 8px rgba(255,217,120,.16),
    0 0 28px rgba(255,217,120,.48);
}

.ev4x-sp-student-map-label {
  display:none;
}

.ev4x-sp-boarding-card-main {
  grid-column:1 / -1;
}

.ev4x-sp-boarding-status-text {
  margin-top:6px;
  font-size:17px;
  line-height:1.4;
  font-weight:850;
  color:#17365d;
}

.ev4x-sp-boarding-status-text.is-complete {
  color:#0e5b37;
}

@media (max-width:760px) {
  .ev4x-sp-node,
  .ev4x-sp-node.is-long {
    width:104px;
    height:104px;
    min-width:104px;
    max-width:104px;
    font-size:11px;
  }
  .ev4x-sp-student-map-dot {
    width:84px;
    height:84px;
    padding:8px;
  }
  .ev4x-sp-student-map-node.is-current .ev4x-sp-student-map-dot {
    width:96px;
    height:96px;
  }
  .ev4x-sp-student-map-dot-text {
    font-size:12px;
  }
}


/* 81.0: Diagnostika kola a mentorská podpora */
.ev4x-sp-diagnostics-panel > summary span {
  color:#16365f;
}

.ev4x-sp-diagnostics {
  padding:14px;
}

.ev4x-sp-diagnostics-empty {
  margin:14px;
  padding:14px 16px;
  border-radius:16px;
  background:#f4f8fb;
  color:#405066;
  font-weight:800;
  border:1px solid rgba(32,68,112,.12);
}

.ev4x-sp-diagnostics-top {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}

.ev4x-sp-diagnostics-card {
  min-height:128px;
  border-radius:18px;
  padding:14px;
  border:1px solid rgba(32,68,112,.14);
  background:linear-gradient(135deg, #ffffff, #edf6fb);
  box-shadow:0 10px 24px rgba(20,40,70,.08);
}

.ev4x-sp-diagnostics-card h4 {
  margin:0 0 8px;
  font-size:16px;
  color:#18385f;
  font-weight:950;
}

.ev4x-sp-diagnostics-card.is-correct {
  background:linear-gradient(135deg, #f3fff7, #dff7e9);
  border-color:rgba(22,115,64,.20);
}

.ev4x-sp-diagnostics-card.is-mentor {
  background:linear-gradient(135deg, #fffaf0, #f5ecff);
  border-color:rgba(185,139,43,.22);
}

.ev4x-sp-diagnostics-card.is-wrong {
  background:linear-gradient(135deg, #fff7f2, #ffe8dc);
  border-color:rgba(177,72,33,.22);
}

.ev4x-sp-diagnostics-card.is-missing {
  background:linear-gradient(135deg, #f6f8fb, #e9eef4);
  border-color:rgba(75,93,112,.18);
}

.ev4x-sp-diagnostics-big-number {
  font-size:30px;
  line-height:1;
  font-weight:950;
  color:#17365d;
  margin-bottom:10px;
}

.ev4x-sp-diagnostics-note {
  color:#536274;
  font-weight:750;
  font-size:13px;
  line-height:1.35;
  margin:0 0 10px;
}

.ev4x-sp-diagnostics-detail-title {
  margin:18px 0 10px;
  color:#17365d;
  font-weight:950;
  font-size:18px;
}

.ev4x-sp-diagnostics-options {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.ev4x-sp-diagnostics-option {
  display:grid;
  grid-template-columns:54px 1fr;
  gap:12px;
  align-items:start;
  border-radius:18px;
  padding:12px;
  border:1px solid rgba(32,68,112,.14);
  background:#f8fbff;
}

.ev4x-sp-diagnostics-option.is-correct {
  background:linear-gradient(135deg, #effff5, #ddf7e7);
  border-color:rgba(22,115,64,.22);
}

.ev4x-sp-diagnostics-option.is-wrong {
  background:linear-gradient(135deg, #fff8f2, #ffe9df);
  border-color:rgba(177,72,33,.20);
}

.ev4x-sp-diagnostics-option-letter {
  width:46px;
  height:46px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:#173d74;
  color:#fff;
  font-size:24px;
  font-weight:950;
  box-shadow:0 8px 16px rgba(23,61,116,.18);
}

.ev4x-sp-diagnostics-option.is-correct .ev4x-sp-diagnostics-option-letter {
  background:#16884f;
}

.ev4x-sp-diagnostics-option.is-wrong .ev4x-sp-diagnostics-option-letter {
  background:#b94a1f;
}

.ev4x-sp-diagnostics-option-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:#17365d;
  font-weight:950;
  margin-bottom:6px;
}

.ev4x-sp-diagnostics-option-head span {
  border-radius:999px;
  padding:4px 9px;
  background:rgba(23,61,116,.08);
  font-size:12px;
}

.ev4x-sp-diagnostics-option-label {
  color:#23344e;
  font-weight:850;
  margin-bottom:6px;
}

.ev4x-sp-diagnostics-option-diagnosis {
  color:#5d6b7f;
  font-weight:750;
  font-size:13px;
  margin-bottom:8px;
}

.ev4x-sp-diagnostics-codes {
  margin-top:6px;
}

@media (max-width:960px) {
  .ev4x-sp-diagnostics-top,
  .ev4x-sp-diagnostics-options {
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:640px) {
  .ev4x-sp-diagnostics-top,
  .ev4x-sp-diagnostics-options {
    grid-template-columns:1fr;
  }
}


/* 82.0: oddělené vyhodnocení a posun v plovoucím menu */
.ev4x-sp-quick-controls {
  width:148px;
  min-width:148px;
}

.ev4x-sp-quick-controls .ev4x-sp-btn {
  min-height:36px;
}

.ev4x-sp-toolbar [data-action="evaluateRound"] {
  box-shadow:0 10px 22px rgba(42, 157, 143, .18);
}

.ev4x-sp-toolbar [data-action="advanceAuto"],
.ev4x-sp-quick-controls [data-action="advanceAuto"] {
  background:rgba(255,255,255,.16);
}


/* 85.0: raketoplánový efekt po posunu do dalšího kola – hlasitější zvuk */
.ev4x-sp-current-node {
  position:relative;
  overflow:hidden;
}

.ev4x-sp-shuttle-flyby[hidden] {
  display:none !important;
}

.ev4x-sp-shuttle-flyby {
  position:absolute;
  inset:0;
  z-index:8;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:20px;
  background:
    radial-gradient(circle at 22% 30%, rgba(58, 199, 255, .18), transparent 26%),
    radial-gradient(circle at 82% 72%, rgba(255, 212, 94, .16), transparent 24%),
    linear-gradient(135deg, rgba(3, 12, 24, .94), rgba(8, 28, 44, .92));
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
}

.ev4x-sp-shuttle-flyby.is-visible {
  opacity:1;
}

.ev4x-sp-shuttle-stars {
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 12% 24%, rgba(255,255,255,.90) 0 1px, transparent 2px),
    radial-gradient(circle at 28% 62%, rgba(255,255,255,.70) 0 1px, transparent 2px),
    radial-gradient(circle at 44% 18%, rgba(255,255,255,.75) 0 1px, transparent 2px),
    radial-gradient(circle at 58% 78%, rgba(255,255,255,.80) 0 1px, transparent 2px),
    radial-gradient(circle at 76% 38%, rgba(255,255,255,.90) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 68%, rgba(255,255,255,.65) 0 1px, transparent 2px);
  opacity:.78;
  transform:translateX(0);
}

.ev4x-sp-shuttle-flyby.is-visible .ev4x-sp-shuttle-stars {
  animation:ev4xSpShuttleStars 6.4s linear both;
}

.ev4x-sp-shuttle-flyby img {
  position:relative;
  z-index:2;
  width:min(92%, 620px);
  max-height:92%;
  object-fit:contain;
  filter:drop-shadow(0 18px 34px rgba(0,0,0,.38)) drop-shadow(0 0 18px rgba(72,184,255,.30));
  transform:translateX(-72%) scale(.78) rotate(-1deg);
  opacity:0;
}

.ev4x-sp-shuttle-flyby.is-visible img {
  animation:ev4xSpShuttleFly 6.3s cubic-bezier(.18,.72,.24,1) both;
}

.ev4x-sp-shuttle-caption {
  position:absolute;
  left:18px;
  right:18px;
  bottom:14px;
  z-index:3;
  text-align:center;
  color:#eefbff;
  font-weight:950;
  font-size:15px;
  letter-spacing:.02em;
  text-shadow:0 2px 8px rgba(0,0,0,.65);
  opacity:0;
  transform:translateY(8px);
}

.ev4x-sp-shuttle-flyby.is-visible .ev4x-sp-shuttle-caption {
  animation:ev4xSpShuttleCaption 6.3s ease both;
}

@keyframes ev4xSpShuttleFly {
  0% {
    opacity:0;
    transform:translateX(-72%) scale(.78) rotate(-2deg);
  }
  12% {
    opacity:1;
  }
  48% {
    opacity:1;
    transform:translateX(0%) scale(1.05) rotate(0deg);
  }
  82% {
    opacity:1;
    transform:translateX(26%) scale(.96) rotate(1deg);
  }
  100% {
    opacity:0;
    transform:translateX(92%) scale(.74) rotate(2deg);
  }
}

@keyframes ev4xSpShuttleStars {
  0% { transform:translateX(0); opacity:.72; }
  100% { transform:translateX(-18%); opacity:.9; }
}

@keyframes ev4xSpShuttleCaption {
  0%, 10% {
    opacity:0;
    transform:translateY(8px);
  }
  22%, 76% {
    opacity:1;
    transform:translateY(0);
  }
  100% {
    opacity:0;
    transform:translateY(8px);
  }
}

@media (max-width:640px) {
  .ev4x-sp-shuttle-caption {
    font-size:13px;
  }
}


/* 87.0: stabilizace planetárních uzlů v hlavní mapě */
.ev4x-sp-map {
  overflow:hidden;
}

.ev4x-sp-node {
  width:92px;
  height:92px;
  min-width:92px;
  max-width:92px;
  padding:9px;
  font-size:11px;
  line-height:1.08;
  box-sizing:border-box;
}

.ev4x-sp-node.is-long {
  width:104px;
  height:104px;
  min-width:104px;
  max-width:104px;
  font-size:10px;
  line-height:1.06;
}

.ev4x-sp-node span {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  overflow:hidden;
}

.ev4x-sp-node.is-current {
  transform:translate(-50%, -50%) scale(1);
}

@keyframes ev4xSpCurrentPulse {
  0%, 100% {
    box-shadow:0 0 0 4px rgba(231,186,82,.38), 0 0 14px rgba(255,232,154,.45), 0 0 28px rgba(244,193,64,.24), 0 18px 28px rgba(0,0,0,.24);
    transform:translate(-50%, -50%) scale(1);
  }
  50% {
    box-shadow:0 0 0 5px rgba(231,186,82,.50), 0 0 24px rgba(255,236,173,.72), 0 0 42px rgba(244,193,64,.34), 0 20px 30px rgba(0,0,0,.28);
    transform:translate(-50%, -50%) scale(1.025);
  }
}

@media (max-width:900px) {
  .ev4x-sp-node,
  .ev4x-sp-node.is-long {
    width:82px;
    height:82px;
    min-width:82px;
    max-width:82px;
    padding:8px;
    font-size:9.5px;
  }
}


/* 88.0: kompaktní planetární mapa bez překrývání */
.ev4x-sp-node {
  width:64px;
  height:64px;
  min-width:64px;
  max-width:64px;
  padding:6px;
  font-size:8.7px;
  line-height:1.03;
  border-width:1.5px;
}

.ev4x-sp-node.is-long {
  width:72px;
  height:72px;
  min-width:72px;
  max-width:72px;
  padding:6px;
  font-size:8.2px;
  line-height:1.02;
}

.ev4x-sp-node span {
  -webkit-line-clamp:4;
}

.ev4x-sp-node.is-current {
  width:70px;
  height:70px;
  min-width:70px;
  max-width:70px;
}

.ev4x-sp-node.is-current.is-long {
  width:78px;
  height:78px;
  min-width:78px;
  max-width:78px;
}

.ev4x-sp-line {
  stroke-width:0.42;
  stroke-dasharray:2.2 2.8;
}

.ev4x-sp-line-active {
  stroke-width:0.85;
}

@media (max-width:900px) {
  .ev4x-sp-node,
  .ev4x-sp-node.is-long {
    width:58px;
    height:58px;
    min-width:58px;
    max-width:58px;
    padding:5px;
    font-size:7.4px;
  }
  .ev4x-sp-node.is-current,
  .ev4x-sp-node.is-current.is-long {
    width:64px;
    height:64px;
    min-width:64px;
    max-width:64px;
  }
}


/* 89.0: čitelnější planety a rolovatelná mapa mise */
.ev4x-sp-map {
  max-height: 900px;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
}

.ev4x-sp-node {
  width: 78px;
  height: 78px;
  min-width: 78px;
  max-width: 78px;
  padding: 7px;
  font-size: 9.8px;
  line-height: 1.06;
  border-width: 2px;
}

.ev4x-sp-node.is-long {
  width: 86px;
  height: 86px;
  min-width: 86px;
  max-width: 86px;
  padding: 7px;
  font-size: 9.1px;
  line-height: 1.04;
}

.ev4x-sp-node.is-current {
  width: 84px;
  height: 84px;
  min-width: 84px;
  max-width: 84px;
}

.ev4x-sp-node.is-current.is-long {
  width: 92px;
  height: 92px;
  min-width: 92px;
  max-width: 92px;
}

.ev4x-sp-node span {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}

.ev4x-sp-line {
  stroke-width: 0.5;
  stroke-dasharray: 2.4 3.2;
}

.ev4x-sp-line-active {
  stroke-width: 1;
}

@media (max-width: 900px) {
  .ev4x-sp-map {
    max-height: 760px;
  }
  .ev4x-sp-node {
    width: 72px;
    height: 72px;
    min-width: 72px;
    max-width: 72px;
    padding: 6px;
    font-size: 8.9px;
  }
  .ev4x-sp-node.is-long {
    width: 80px;
    height: 80px;
    min-width: 80px;
    max-width: 80px;
    font-size: 8.3px;
  }
  .ev4x-sp-node.is-current {
    width: 78px;
    height: 78px;
    min-width: 78px;
    max-width: 78px;
  }
  .ev4x-sp-node.is-current.is-long {
    width: 86px;
    height: 86px;
    min-width: 86px;
    max-width: 86px;
  }
}


/* 90.0: zřetelnější spojnice mezi uzly */
.ev4x-sp-lines {
  overflow: visible;
}

.ev4x-sp-line {
  stroke: rgba(220, 236, 255, 0.52);
  stroke-width: 1.25;
  stroke-dasharray: 4 3;
  stroke-linecap: round;
  opacity: 1;
}

.ev4x-sp-line-active {
  stroke: rgba(255, 211, 84, 0.96);
  stroke-width: 2.4;
  stroke-dasharray: none;
  stroke-linecap: round;
  filter: drop-shadow(0 0 3px rgba(255, 225, 120, 0.70)) drop-shadow(0 0 8px rgba(255, 196, 64, 0.50));
}

@media (max-width: 900px) {
  .ev4x-sp-line {
    stroke-width: 1.05;
  }
  .ev4x-sp-line-active {
    stroke-width: 2.1;
  }
}


/* 91.0: oprava mapy mise – jedno pozadí, řádkové uzly, zřetelné spojnice */
.ev4x-sp-map {
  min-height: 720px;
  max-height: 920px;
  overflow-y: auto;
  overflow-x: hidden;
  background-repeat: no-repeat !important;
  background-position: center top !important;
  background-size: cover !important;
  background-attachment: local !important;
}

/* Vypnutí druhé vrstvy hvězdného pozadí, která vytvářela dojem dvou různých map. */
.ev4x-sp-map::before {
  display: none !important;
}

.ev4x-sp-lines {
  overflow: visible;
  pointer-events: none;
  z-index: 1;
}

.ev4x-sp-nodes {
  z-index: 2;
}

.ev4x-sp-line {
  stroke: rgba(225, 242, 255, 0.68);
  stroke-width: 1.55;
  stroke-dasharray: 5 4;
  stroke-linecap: round;
  opacity: 1;
}

.ev4x-sp-line-active {
  stroke: rgba(255, 211, 84, 0.98);
  stroke-width: 2.7;
  stroke-dasharray: none;
  stroke-linecap: round;
  filter: drop-shadow(0 0 4px rgba(255, 225, 120, 0.82)) drop-shadow(0 0 10px rgba(255, 196, 64, 0.55));
}

.ev4x-sp-node {
  width: 82px;
  height: 82px;
  min-width: 82px;
  max-width: 82px;
  padding: 7px;
  font-size: 10px;
  line-height: 1.05;
  border-width: 2px;
}

.ev4x-sp-node.is-long {
  width: 90px;
  height: 90px;
  min-width: 90px;
  max-width: 90px;
  font-size: 9.2px;
  line-height: 1.03;
}

.ev4x-sp-node.is-current {
  width: 88px;
  height: 88px;
  min-width: 88px;
  max-width: 88px;
}

.ev4x-sp-node.is-current.is-long {
  width: 96px;
  height: 96px;
  min-width: 96px;
  max-width: 96px;
}

.ev4x-sp-node span {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 900px) {
  .ev4x-sp-map {
    max-height: 780px;
  }

  .ev4x-sp-line {
    stroke-width: 1.25;
  }

  .ev4x-sp-line-active {
    stroke-width: 2.25;
  }

  .ev4x-sp-node {
    width: 74px;
    height: 74px;
    min-width: 74px;
    max-width: 74px;
    font-size: 8.8px;
  }

  .ev4x-sp-node.is-long {
    width: 82px;
    height: 82px;
    min-width: 82px;
    max-width: 82px;
    font-size: 8.1px;
  }

  .ev4x-sp-node.is-current {
    width: 80px;
    height: 80px;
    min-width: 80px;
    max-width: 80px;
  }

  .ev4x-sp-node.is-current.is-long {
    width: 88px;
    height: 88px;
    min-width: 88px;
    max-width: 88px;
  }
}


/* 92.0: učitelský režim Prohlédnout misi */
.ev4x-sp-preview-panel {
  margin: 0 0 12px;
  padding: 14px 16px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255, 247, 209, .97), rgba(226, 245, 255, .97));
  border: 1px solid rgba(231, 186, 82, .45);
  color: #17365d;
  box-shadow: 0 10px 24px rgba(16, 40, 70, .12);
}

.ev4x-sp-preview-panel strong {
  display: block;
  font-size: 16px;
  font-weight: 950;
  margin-bottom: 4px;
}

.ev4x-sp-preview-panel span {
  display: block;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}

.ev4x-sp-btn-preview {
  border-color: rgba(231, 186, 82, .55);
}

.ev4x-sp-btn-preview.is-active {
  background: linear-gradient(135deg, #f6c655, #e7a93b);
  color: #1f2a37;
  border-color: rgba(255, 244, 198, .85);
  box-shadow: 0 0 0 3px rgba(231, 186, 82, .25), 0 12px 24px rgba(0,0,0,.18);
}

.ev4x-sp-app.is-preview-mode .ev4x-sp-option-count {
  display: none;
}

.ev4x-sp-app.is-preview-mode .ev4x-sp-option-card {
  border-color: rgba(231, 186, 82, .34);
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(255, 248, 225, .92));
}

.ev4x-sp-app.is-preview-mode .ev4x-sp-option-target {
  color: #7a5a19;
  font-weight: 850;
}

.ev4x-sp-app.is-preview-mode .ev4x-sp-mini-btn {
  background: linear-gradient(135deg, #f4c350, #dd9f2f);
  color: #1f2a37;
  border-color: rgba(122, 90, 25, .18);
  font-weight: 950;
}

.ev4x-sp-app.is-preview-mode [data-bind="vote_graph_summary"]::after {
  content: " · režim prohlížení";
}


/* 93.0: čitelnější zalomení textu v zadání a volbách */
.ev4x-sp-current-node p[data-bind="node_text"],
.ev4x-sp-student-state [data-bind="node_text"] {
  white-space: normal;
  line-height: 1.55;
}

.ev4x-sp-option-label {
  line-height: 1.28;
}

.ev4x-sp-option-target {
  color: #7a5a19;
  font-weight: 850;
  opacity: .92;
}


/* 94.0: karty možností bez zobrazování cílových/opravných uzlů */
.ev4x-sp-option-target {
  display: none !important;
}


/* 96.0: klikací fullscreen mapy a barevně projeté planety */
.ev4x-sp-map {
  cursor: zoom-in;
}

.ev4x-sp-map-panel {
  position: relative;
}

.ev4x-sp-map-fullscreen-close {
  display: none;
}

.ev4x-sp-app.is-map-fullscreen .ev4x-sp-map-panel {
  position: fixed !important;
  inset: 18px !important;
  z-index: 999999 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 18px !important;
  display: flex !important;
  flex-direction: column !important;
  background: rgba(3, 12, 18, .96) !important;
  border: 1px solid rgba(225,242,248,.42) !important;
  border-radius: 24px !important;
  box-shadow: 0 24px 80px rgba(0,0,0,.62), inset 0 0 0 1px rgba(255,255,255,.12) !important;
}

.ev4x-sp-app.is-map-fullscreen .ev4x-sp-map {
  flex: 1 1 auto !important;
  width: 100% !important;
  max-height: none !important;
  min-height: 0 !important;
  height: auto !important;
  cursor: default;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

.ev4x-sp-app.is-map-fullscreen .ev4x-sp-resultline {
  flex: 0 0 auto;
  margin-top: 10px;
}

.ev4x-sp-app.is-map-fullscreen .ev4x-sp-map-fullscreen-close {
  display: grid;
  place-items: center;
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 10;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.32);
  background: rgba(255,255,255,.92);
  color: #10233a;
  font-size: 28px;
  font-weight: 950;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(0,0,0,.38);
}

html.ev4x-sp-map-fullscreen-open,
body.ev4x-sp-map-fullscreen-open {
  overflow: hidden !important;
}

/* Projetá planeta – jasně odlišená od běžných planet. */
.ev4x-sp-node.is-visited {
  background:
    radial-gradient(circle at 30% 26%, rgba(255,238,169,.99) 0%, rgba(235,184,76,.99) 31%, rgba(166,107,28,.99) 70%, rgba(92,56,11,1) 100%) !important;
  border-color: rgba(255, 242, 190, .92) !important;
  color: #fff8dc !important;
  box-shadow:
    inset -10px -14px 20px rgba(0,0,0,.14),
    0 0 0 5px rgba(255, 216, 112, .14),
    0 10px 24px rgba(0,0,0,.22),
    0 0 22px rgba(255, 214, 96, .32) !important;
}

.ev4x-sp-node.is-visited span::after {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 15px;
  height: 15px;
  margin-left: 3px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: #8a5a10;
  font-size: 10px;
  font-weight: 950;
  vertical-align: middle;
}

.ev4x-sp-node.is-current {
  z-index: 7;
}


/* 97.0: planetární barvy – start Země modře, projeté planety šedě, cíl zlatě */
.ev4x-sp-node.is-start {
  background:
    radial-gradient(circle at 30% 26%, rgba(168,210,255,.99) 0%, rgba(75,153,255,.99) 34%, rgba(42,86,190,.98) 70%, rgba(22,45,108,1) 100%) !important;
  border-color: rgba(215,238,255,.94) !important;
  color:#f4fbff !important;
}

.ev4x-sp-node.is-visited:not(.is-start):not(.is-goal) {
  background:
    radial-gradient(circle at 30% 26%, rgba(228,234,240,.98) 0%, rgba(158,171,184,.98) 34%, rgba(88,101,115,.98) 72%, rgba(48,57,68,1) 100%) !important;
  border-color: rgba(232,238,244,.86) !important;
  color: #f8fbff !important;
  box-shadow:
    inset -10px -14px 20px rgba(0,0,0,.20),
    0 0 0 4px rgba(210,220,230,.12),
    0 10px 24px rgba(0,0,0,.22),
    0 0 18px rgba(210,220,230,.24) !important;
}

.ev4x-sp-node.is-goal {
  background:
    radial-gradient(circle at 30% 26%, rgba(255,245,180,.99) 0%, rgba(245,198,72,.99) 34%, rgba(185,121,25,.99) 72%, rgba(102,62,10,1) 100%) !important;
  border-color: rgba(255,241,184,.95) !important;
  color:#fff9dc !important;
  box-shadow:
    inset -10px -14px 20px rgba(0,0,0,.14),
    0 0 0 5px rgba(255, 216, 112, .15),
    0 10px 24px rgba(0,0,0,.22),
    0 0 26px rgba(255, 214, 96, .36) !important;
}

.ev4x-sp-node.is-current:not(.is-goal) {
  background:
    radial-gradient(circle at 30% 26%, rgba(179,214,255,.99) 0%, rgba(96,128,255,.99) 34%, rgba(63,76,185,.99) 72%, rgba(38,45,112,1) 100%) !important;
  border-color: rgba(230,240,255,.95) !important;
  color:#ffffff !important;
  box-shadow:
    inset -10px -14px 20px rgba(0,0,0,.15),
    0 0 0 6px rgba(118, 158, 255, .18),
    0 12px 28px rgba(0,0,0,.28),
    0 0 30px rgba(118, 158, 255, .46) !important;
}

.ev4x-sp-node.is-visited:not(.is-current) span::after {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 15px;
  height: 15px;
  margin-left: 3px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: #4b5563;
  font-size: 10px;
  font-weight: 950;
  vertical-align: middle;
}


/* 98.0: oprava fullscreen mapy – stejný souřadnicový prostor pro planety i spojnice */
.ev4x-sp-app.is-map-fullscreen .ev4x-sp-map-panel {
  overflow: auto !important;
  display: block !important;
}

.ev4x-sp-app.is-map-fullscreen .ev4x-sp-map {
  width: 100% !important;
  height: var(--ev4x-map-content-height, auto) !important;
  min-height: var(--ev4x-map-content-height, 720px) !important;
  max-height: none !important;
  overflow: visible !important;
  cursor: default;
}

.ev4x-sp-app.is-map-fullscreen .ev4x-sp-lines,
.ev4x-sp-app.is-map-fullscreen .ev4x-sp-nodes {
  width: var(--ev4x-map-content-width, 100%) !important;
  height: var(--ev4x-map-content-height, 720px) !important;
  min-height: var(--ev4x-map-content-height, 720px) !important;
}

.ev4x-sp-app.is-map-fullscreen .ev4x-sp-resultline {
  position: sticky;
  bottom: 0;
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(3, 12, 18, .78);
  backdrop-filter: blur(4px);
}


/* 100.0: aktuální planeta výrazně zeleně – barva ekosystému */
.ev4x-sp-node.is-current:not(.is-goal) {
  background:
    radial-gradient(circle at 30% 26%, rgba(206, 255, 222, .99) 0%, rgba(58, 219, 128, .99) 34%, rgba(22, 151, 83, .99) 72%, rgba(8, 83, 47, 1) 100%) !important;
  border-color: rgba(220, 255, 234, .98) !important;
  color: #ffffff !important;
  box-shadow:
    inset -10px -14px 20px rgba(0,0,0,.13),
    0 0 0 6px rgba(57, 219, 128, .23),
    0 12px 30px rgba(0,0,0,.28),
    0 0 34px rgba(58, 219, 128, .58),
    0 0 58px rgba(23, 185, 105, .30) !important;
}

/* Startovní planeta je modrá, pokud už není právě aktuální. */
.ev4x-sp-node.is-start:not(.is-current) {
  background:
    radial-gradient(circle at 30% 26%, rgba(168,210,255,.99) 0%, rgba(75,153,255,.99) 34%, rgba(42,86,190,.98) 70%, rgba(22,45,108,1) 100%) !important;
  border-color: rgba(215,238,255,.94) !important;
  color:#f4fbff !important;
}


/* 114.0: bezpečné zastavení raketoplánu v úvodní animaci
   Raketoplán se po příletu zastaví uvnitř záběru podle šířky samotné scény,
   ne podle pevných pixelů nebo samotného viewportu. Tím se zabrání oříznutí
   při jiném rozlišení, zoomu prohlížeče, měřítku Windows nebo projektoru. */
.ev4x-sp-cinematic-ship {
  position:absolute;
  pointer-events:none;
}

.ev4x-sp-cinematic-ship img {
  display:block;
  width:100%;
  height:auto;
}

.ev4x-sp-cinematic-ship-intro {
  left:50%;
  bottom:clamp(24px, 5vh, 44px);
  width:min(52%, 560px, 62vh);
  max-width:calc(100% - 96px);
  transform:translateX(-50%) translate(0, 0) scale(1);
  opacity:0;
  z-index:2;
  transform-origin:center center;
  will-change:transform, opacity;
  backface-visibility:hidden;
  transform-style:preserve-3d;
  filter:drop-shadow(0 18px 36px rgba(0,0,0,.32));
}

/* 116.0: plynulejší přílet bez změny dráhy nebo cílové pozice.
   Zůstávají stejné body letu; mění se jen časování a GPU-friendly transformace. */
.ev4x-sp-cinematic.is-visible .ev4x-sp-cinematic-ship-intro {
  animation:
    ev4xSpShipIntroLaunch 3.2s linear forwards .35s,
    ev4xSpShipFloat 5.8s ease-in-out infinite 3.75s;
}

@keyframes ev4xSpShipIntroLaunch {
  0% {
    opacity:0;
    transform:translateX(-50%) translate3d(-86%, 128px, 0) scale(.10);
  }
  8% {
    opacity:.92;
    transform:translateX(-50%) translate3d(-82%, 124px, 0) scale(.12);
  }
  32% {
    opacity:1;
    transform:translateX(-50%) translate3d(-58%, 95px, 0) scale(.34);
  }
  56% {
    opacity:1;
    transform:translateX(-50%) translate3d(-34%, 58px, 0) scale(.58);
  }
  80% {
    opacity:1;
    transform:translateX(-50%) translate3d(-14%, 20px, 0) scale(.84);
  }
  100% {
    opacity:1;
    transform:translateX(-50%) translate3d(0, 0, 0) scale(1);
  }
}

@keyframes ev4xSpShipFloat {
  0%, 100% {
    transform:translateX(-50%) translateY(0) scale(1);
  }
  50% {
    transform:translateX(-50%) translateY(-5px) scale(1.006);
  }
}

@media (max-width: 860px), (max-height: 720px) {
  .ev4x-sp-cinematic-ship-intro {
    width:min(48%, 500px, 56vh);
    max-width:calc(100% - 72px);
    bottom:clamp(22px, 4vh, 36px);
  }
}

@media (max-width: 640px), (max-height: 560px) {
  .ev4x-sp-cinematic-ship-intro {
    width:min(58%, 380px, 48vh);
    max-width:calc(100% - 48px);
    bottom:clamp(18px, 3vh, 30px);
  }
}

/* 108.0: kompaktní mapa mise – viditelná cílová planeta a menší orientační planety */
.ev4x-sp-map {
  max-height: 790px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

.ev4x-sp-node,
.ev4x-sp-node.is-long {
  width: 58px !important;
  height: 58px !important;
  min-width: 58px !important;
  max-width: 58px !important;
  padding: 5px !important;
  font-size: 7.6px !important;
  line-height: 1.02 !important;
  border-width: 1.5px !important;
  box-shadow:
    inset -6px -8px 12px rgba(0,0,0,.18),
    0 7px 16px rgba(0,0,0,.22),
    0 0 12px rgba(74,184,221,.22) !important;
}

.ev4x-sp-node::before {
  display: none !important;
}

.ev4x-sp-node.is-current,
.ev4x-sp-node.is-current.is-long {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  max-width: 64px !important;
}

.ev4x-sp-node span {
  -webkit-line-clamp: 4 !important;
  overflow: hidden !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.42) !important;
}

.ev4x-sp-node.is-goal {
  background:
    radial-gradient(circle at 30% 26%, rgba(255,246,188,.99) 0%, rgba(248,205,84,.99) 34%, rgba(188,123,26,.99) 72%, rgba(105,64,10,1) 100%) !important;
  border-color: rgba(255,244,194,.98) !important;
  box-shadow:
    inset -6px -8px 12px rgba(0,0,0,.14),
    0 7px 16px rgba(0,0,0,.22),
    0 0 20px rgba(255,214,96,.42) !important;
}

.ev4x-sp-line {
  stroke-width: 1.05 !important;
  stroke-dasharray: 4 4 !important;
}

.ev4x-sp-line-active {
  stroke-width: 2.05 !important;
}

/* Anonymní průchod: mapa slouží jen jako orientace, proto jsou planety malé a bez textu. */
.ev4x-sp-student-map {
  height: 300px !important;
  overflow: hidden !important;
}

.ev4x-sp-student-map-scenery .ev4x-sp-student-map-planet {
  display: none !important;
}

.ev4x-sp-student-map-node {
  max-width: none !important;
  opacity: .84 !important;
}

.ev4x-sp-student-map-dot {
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
  border-width: 1.5px !important;
  box-shadow:
    inset -4px -6px 8px rgba(0,0,0,.18),
    0 0 10px rgba(73,184,221,.25) !important;
}

.ev4x-sp-student-map-dot::before {
  inset: 12% auto auto 16% !important;
  width: 32% !important;
  height: 24% !important;
}

.ev4x-sp-student-map-dot-text {
  display: none !important;
}

.ev4x-sp-student-map-node.is-current .ev4x-sp-student-map-dot {
  width: 42px !important;
  height: 42px !important;
  box-shadow:
    inset -4px -6px 8px rgba(0,0,0,.14),
    0 0 0 5px rgba(255,217,120,.16),
    0 0 18px rgba(255,217,120,.48) !important;
}

.ev4x-sp-student-map-node.is-goal .ev4x-sp-student-map-dot,
.ev4x-sp-student-map-node.is-current.is-goal .ev4x-sp-student-map-dot {
  background:
    radial-gradient(circle at 30% 30%, rgba(255,246,188,.99) 0%, rgba(248,205,84,.99) 34%, rgba(188,123,26,.99) 72%, rgba(105,64,10,1) 100%) !important;
  border-color: rgba(255,244,194,.98) !important;
  box-shadow:
    inset -4px -6px 8px rgba(0,0,0,.14),
    0 0 0 4px rgba(255,217,120,.13),
    0 0 18px rgba(255,214,96,.42) !important;
}

.ev4x-sp-student-map-node.is-visited .ev4x-sp-student-map-dot {
  box-shadow:
    inset -4px -6px 8px rgba(0,0,0,.16),
    0 0 12px rgba(231,186,82,.32) !important;
}

.ev4x-sp-student-map-marker {
  top: -13px !important;
  font-size: 11px !important;
}

@media (max-width:760px) {
  .ev4x-sp-student-map { height: 260px !important; }
  .ev4x-sp-student-map-dot {
    width: 28px !important;
    height: 28px !important;
  }
  .ev4x-sp-student-map-node.is-current .ev4x-sp-student-map-dot {
    width: 34px !important;
    height: 34px !important;
  }
}

/* 109.0: anonymní průchod bez zadávání čísla žáka */
.ev4x-sp-anonymous-badge {
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  margin:8px 0 12px;
  padding:10px 14px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(45,86,175,.12), rgba(52,199,184,.14));
  border:1px solid rgba(45,86,175,.18);
  color:#17304d;
  font-weight:850;
}

.ev4x-sp-app.is-preview-mode .ev4x-sp-option-card.is-correct {
  background:linear-gradient(135deg, #e9fff3, #f7fffb);
  border:1px solid rgba(36,140,85,.30);
  box-shadow:0 0 0 3px rgba(36,140,85,.12);
}

.ev4x-sp-app.is-preview-mode .ev4x-sp-option-card.is-correct .ev4x-sp-option-letter {
  background:linear-gradient(135deg, #31b76b, #1d8b4f);
}

.ev4x-sp-app.is-preview-mode .ev4x-sp-option-card.is-wrong {
  background:linear-gradient(135deg, #fff3ec, #fffaf7);
  border:1px solid rgba(190,92,44,.22);
}

.ev4x-sp-app.is-preview-mode .ev4x-sp-option-card.is-wrong .ev4x-sp-option-letter {
  background:linear-gradient(135deg, #efb6b6, #d77272);
  color:#742c2c;
}


/* 111.0: reset anonymní mise v zařízení žáka */
.ev4x-sp-anonymous-actions {
  display:flex;
  flex-direction:column;
  gap:8px;
  align-self:stretch;
}

.ev4x-sp-btn-secondary {
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.28);
  color:#ffffff;
}

.ev4x-sp-btn-secondary:hover {
  background:rgba(255,255,255,.24);
}

.ev4x-sp-student-form .ev4x-sp-student-form-note {
  grid-column:1 / -1;
  color:rgba(238,251,250,.82);
}


/* 115.0: Doporučené dvojice žák + nejbližší mentor podle zasedacího pořádku */
.ev4x-sp-mentor-pairs {
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.ev4x-sp-mentor-pair {
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  padding:8px 9px;
  border-radius:12px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(126,89,28,.18);
  font-size:13px;
  font-weight:850;
  color:#26405d;
}

.ev4x-sp-mentor-pair-label {
  color:#62758b;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.ev4x-sp-mentor-pair-code {
  min-width:28px;
  text-align:center;
  padding:3px 8px;
  border-radius:999px;
  background:#fff3ce;
  color:#6c4400;
  border:1px solid rgba(168,109,0,.18);
}

.ev4x-sp-mentor-pair-code.is-student {
  background:#ffe7de;
  color:#7a2d11;
  border-color:rgba(177,72,33,.18);
}

.ev4x-sp-mentor-pair-arrow {
  color:#54708e;
  font-weight:950;
}

.ev4x-sp-mentor-pair-relation,
.ev4x-sp-diagnostics-mini-note {
  color:#5c6c7f;
  font-size:12px;
  font-weight:800;
}


/* 118.0: skrytí vedoucí odpovědi při promítání a mazání žáků z mise */
.ev4x-sp-private-decision-hint {
  margin-top:14px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(8,22,38,.24);
  border:1px solid rgba(255,255,255,.10);
  color:#d9f5f2;
  font-size:12px;
  line-height:1.35;
}
.ev4x-sp-private-decision-hint span {
  display:block;
  opacity:.78;
  margin-bottom:2px;
}
.ev4x-sp-private-decision-hint strong {
  color:#ffffff;
  font-size:13px;
}
.ev4x-sp-crew-management {
  margin:14px;
  padding:16px;
  border-radius:18px;
  background:#eef6fb;
  border:1px solid rgba(32,68,112,.16);
}
.ev4x-sp-crew-management h4 {
  margin:0 0 8px;
  color:#14365f;
  font-size:20px;
  font-weight:950;
}
.ev4x-sp-crew-management .ev4x-sp-helper {
  margin:0 0 12px;
  color:#4c5f73;
}
.ev4x-sp-removable-code-list {
  gap:10px;
}
.ev4x-sp-code-badge-removable {
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  padding:0 6px 0 12px !important;
}
.ev4x-sp-remove-student-btn {
  width:26px;
  height:26px;
  border:0;
  border-radius:999px;
  background:#d9534f;
  color:#fff;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  box-shadow:0 4px 10px rgba(120,20,20,.22);
}
.ev4x-sp-remove-student-btn:hover {
  transform:translateY(-1px);
  filter:brightness(1.04);
}


/* 119.0: volitelný časový limit kola */
.ev4x-sp-round-timer-control {
  display:grid;
  gap:8px;
}
.ev4x-sp-timer-toggle,
.ev4x-sp-timer-seconds-label {
  display:flex;
  align-items:center;
  gap:8px;
  color:#33445c;
  font-weight:850;
}
.ev4x-sp-timer-toggle input {
  width:18px;
  height:18px;
  accent-color:#2f8f9d;
}
.ev4x-sp-timer-seconds-label input {
  width:90px;
  min-height:36px;
  border-radius:12px;
  border:1px solid rgba(32,68,112,.22);
  padding:6px 10px;
  font-size:16px;
  font-weight:900;
  color:#17304d;
  background:#ffffff;
}
.ev4x-sp-round-timer-status {
  border-radius:12px;
  padding:8px 10px;
  background:#edf7fb;
  border:1px solid rgba(32,68,112,.12);
  color:#17365d;
  font-weight:850;
  line-height:1.3;
}
.ev4x-sp-round-timer-status.is-expired {
  background:#fff1e9;
  border-color:rgba(190,92,44,.28);
  color:#8a3a15;
}
.ev4x-sp-student-round-timer {
  margin:10px 0 12px;
  border-radius:18px;
  padding:12px 14px;
  background:linear-gradient(135deg, #f1fbff, #ffffff);
  border:1px solid rgba(38,89,144,.22);
  color:#17304d;
  font-size:18px;
  font-weight:950;
  text-align:center;
  box-shadow:0 10px 22px rgba(20,44,76,.08);
}
.ev4x-sp-student-round-timer.is-expired {
  background:linear-gradient(135deg, #fff0e8, #fffaf7);
  border-color:rgba(190,92,44,.32);
  color:#92390b;
}


/* 138.0: dlouhé názvy misí se v žákovském/anonymním zobrazení zalamují i u podtržítek a dlouhých slov. */
/* 120.0: viditelný název mise v žákovském i anonymním rozhraní */
.ev4x-sp-student-visible-mission-title {
  margin:8px 0 16px;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.20);
  color:#f3fffd;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}

.ev4x-sp-student-visible-mission-title span {
  display:block;
  margin-bottom:4px;
  font-size:12px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#bfeceb;
}

.ev4x-sp-student-visible-mission-title strong {
  display:block;
  max-width:100%;
  font-size:clamp(16px, 3.4vw, 24px);
  line-height:1.2;
  font-weight:900;
  color:#ffffff;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
  text-wrap:balance;
}

.ev4x-sp-student-card-mission-title {
  margin:10px 0 12px;
  padding:10px 12px;
  border-radius:14px;
  background:linear-gradient(135deg, rgba(20,69,82,.10), rgba(45,111,115,.12));
  border:1px solid rgba(20,69,82,.16);
  color:#17313c;
}

.ev4x-sp-student-card-mission-title span {
  display:block;
  margin-bottom:3px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#486574;
}

.ev4x-sp-student-card-mission-title strong {
  display:block;
  max-width:100%;
  font-size:18px;
  line-height:1.2;
  font-weight:900;
  color:#102936;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
  text-wrap:balance;
}

/* 147.0: sjednocený vzhled kalkulačky StarPath + oprava světlého režimu */
.ev4x-sp-student-tools {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:12px 0 14px;
  padding:10px 12px;
  border-radius:16px;
  background:linear-gradient(135deg, rgba(18,31,65,.82), rgba(30,62,96,.72));
  border:1px solid rgba(124,210,255,.18);
  box-shadow:0 12px 28px rgba(7,20,40,.22);
  font-family:'Segoe UI', Arial, Helvetica, sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
.ev4x-sp-student-tools[hidden] { display:none !important; }
.ev4x-sp-student-tools span {
  color:#dcefff;
  font-size:13px;
  font-weight:700;
}
.ev4x-sp-calculator-open {
  white-space:nowrap;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:11px 18px !important;
  border:1px solid rgba(124,210,255,.38) !important;
  border-radius:999px !important;
  background:linear-gradient(135deg, #1c4d88, #2f7dcb 58%, #69b6ff) !important;
  color:#f4fbff !important;
  font-size:16px !important;
  font-weight:900 !important;
  box-shadow:0 10px 24px rgba(19,76,138,.30), inset 0 0 0 1px rgba(255,255,255,.12) !important;
}
.ev4x-sp-calculator-open:hover,
.ev4x-sp-calculator-open:focus-visible {
  transform:translateY(-1px);
  outline:2px solid rgba(124,210,255,.40);
  outline-offset:3px;
}
.ev4x-sp-calculator-modal {
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.ev4x-sp-calculator-modal[hidden] { display:none !important; }
.ev4x-sp-calculator-backdrop {
  position:absolute;
  inset:0;
  background:rgba(5,14,28,.64);
  backdrop-filter:blur(5px);
}
.ev4x-sp-calculator-panel {
  --sp-calc-bg-a:#0e2440;
  --sp-calc-bg-b:#071221;
  --sp-calc-bg-c:#040b15;
  --sp-calc-text:#ffffff;
  --sp-calc-muted:#dcebfa;
  --sp-calc-display-bg-a:rgba(244,250,255,.98);
  --sp-calc-display-bg-b:rgba(226,241,251,.96);
  --sp-calc-display-text:#0c2336;
  --sp-calc-button-bg-a:rgba(255,255,255,.15);
  --sp-calc-button-bg-b:rgba(255,255,255,.09);
  --sp-calc-button-text:#ffffff;
  --sp-calc-border:rgba(143,216,255,.22);
  --sp-calc-warn-a:#ffd978;
  --sp-calc-warn-b:#ffb85b;
  position:relative;
  z-index:1;
  box-sizing:border-box;
  width:min(94vw, 430px);
  border-radius:26px;
  padding:16px;
  color:var(--sp-calc-text);
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 18%, rgba(102,198,255,.18), transparent 22%),
    radial-gradient(circle at 82% 14%, rgba(255,217,120,.14), transparent 18%),
    radial-gradient(circle at 72% 78%, rgba(123,224,183,.10), transparent 20%),
    linear-gradient(180deg, var(--sp-calc-bg-a), var(--sp-calc-bg-b) 68%, var(--sp-calc-bg-c));
  border:1px solid var(--sp-calc-border);
  box-shadow:0 28px 80px rgba(0,0,0,.38), 0 0 0 1px rgba(255,255,255,.06) inset, 0 0 36px rgba(74,145,255,.12);
  max-height:calc(100dvh - 36px);
  overflow-y:auto;
  font-family:'Segoe UI', Arial, Helvetica, sans-serif;
}
.ev4x-sp-calculator-panel *,
.ev4x-sp-calculator-panel *::before,
.ev4x-sp-calculator-panel *::after {
  box-sizing:border-box;
}
.ev4x-sp-calculator-panel,
.ev4x-sp-calculator-panel button,
.ev4x-sp-calculator-panel span,
.ev4x-sp-calculator-panel strong,
.ev4x-sp-calculator-panel div {
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:geometricPrecision;
}
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly {
  --sp-calc-bg-a:#f7fbff;
  --sp-calc-bg-b:#eaf4fb;
  --sp-calc-bg-c:#dcebf4;
  --sp-calc-text:#12313d;
  --sp-calc-muted:#31505f;
  --sp-calc-display-bg-a:#ffffff;
  --sp-calc-display-bg-b:#f1f8fc;
  --sp-calc-display-text:#0d2335;
  --sp-calc-button-bg-a:rgba(19,66,102,.10);
  --sp-calc-button-bg-b:rgba(19,66,102,.05);
  --sp-calc-button-text:#12313d;
  --sp-calc-border:rgba(41,114,163,.22);
  box-shadow:0 18px 46px rgba(17,68,112,.18), 0 0 0 1px rgba(255,255,255,.70) inset;
}
.ev4x-sp-calculator-panel.ev4x-sp-theme-tmavy {
  --sp-calc-bg-a:#202537;
  --sp-calc-bg-b:#121725;
  --sp-calc-bg-c:#090d16;
  --sp-calc-text:#f6f7fb;
  --sp-calc-muted:#cfd7e8;
  --sp-calc-display-bg-a:#f8f9ff;
  --sp-calc-display-bg-b:#e9edf9;
  --sp-calc-display-text:#101522;
  --sp-calc-button-bg-a:rgba(255,255,255,.13);
  --sp-calc-button-bg-b:rgba(255,255,255,.07);
  --sp-calc-button-text:#f6f7fb;
  --sp-calc-border:rgba(210,218,244,.16);
}
.ev4x-sp-calculator-stars {
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    radial-gradient(circle at 12% 20%, rgba(255,255,255,.95) 0 1.1px, transparent 1.3px),
    radial-gradient(circle at 26% 72%, rgba(255,255,255,.72) 0 1px, transparent 1.2px),
    radial-gradient(circle at 41% 34%, rgba(255,255,255,.82) 0 1.2px, transparent 1.35px),
    radial-gradient(circle at 58% 18%, rgba(255,255,255,.82) 0 1px, transparent 1.2px),
    radial-gradient(circle at 74% 55%, rgba(255,255,255,.88) 0 1.1px, transparent 1.3px),
    radial-gradient(circle at 88% 28%, rgba(255,255,255,.75) 0 1px, transparent 1.2px),
    radial-gradient(circle at 83% 82%, rgba(255,255,255,.9) 0 1.15px, transparent 1.35px);
  opacity:.45;
}
.ev4x-sp-theme-svetly .ev4x-sp-calculator-stars { opacity:.12; }
.ev4x-sp-calculator-head,
.ev4x-sp-calculator-mode,
.ev4x-sp-calculator-display,
.ev4x-sp-calculator-keys,
.ev4x-sp-calculator-note {
  position:relative;
  z-index:1;
}
.ev4x-sp-calculator-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:12px;
}
.ev4x-sp-calculator-head-title strong {
  display:block;
  font-size:18px;
  font-weight:900;
  line-height:1.2;
  letter-spacing:.01em;
  text-shadow:none;
}
.ev4x-sp-calculator-head-title span {
  display:block;
  margin-top:3px;
  color:var(--sp-calc-muted);
  font-size:12px;
  font-weight:700;
}
.ev4x-sp-calculator-head-actions {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.ev4x-sp-calculator-theme-button,
.ev4x-sp-calculator-close {
  border:1px solid rgba(160,221,255,.20);
  background:rgba(255,255,255,.08);
  color:var(--sp-calc-text);
  cursor:pointer;
  font-weight:800;
  text-shadow:none;
}
.ev4x-sp-calculator-theme-button {
  min-height:32px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  white-space:nowrap;
}
.ev4x-sp-calculator-close {
  width:34px;
  height:34px;
  border-radius:50%;
  font-size:24px;
  line-height:1;
}
.ev4x-sp-calculator-mode {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:-2px 0 10px;
  color:var(--sp-calc-muted);
  font-size:12px;
  font-weight:700;
}
.ev4x-sp-calculator-memory {
  margin-left:auto;
}
.ev4x-sp-calculator-mode strong {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  padding:3px 8px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(255,217,120,.18), rgba(82,168,255,.14));
  color:var(--sp-calc-text);
  border:1px solid rgba(255,217,120,.20);
}
.ev4x-sp-calculator-display {
  width:100%;
  min-height:60px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  overflow:hidden;
  margin:0 0 12px;
  padding:12px 14px;
  border-radius:18px;
  background:linear-gradient(180deg, var(--sp-calc-display-bg-a), var(--sp-calc-display-bg-b));
  color:var(--sp-calc-display-text);
  font-size:32px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:0;
  text-align:right;
  text-shadow:none;
  border:1px solid rgba(145,209,244,.42);
  box-shadow:inset 0 1px 4px rgba(0,0,0,.08), 0 0 0 1px rgba(255,255,255,.55), 0 0 10px rgba(118,190,255,.10);
  white-space:nowrap;
}
.ev4x-sp-calculator-keys {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:8px;
}
.ev4x-sp-calculator-keys button {
  min-height:50px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:linear-gradient(180deg, var(--sp-calc-button-bg-a), var(--sp-calc-button-bg-b));
  color:var(--sp-calc-button-text);
  font-size:20px;
  font-weight:800;
  letter-spacing:0;
  text-shadow:none;
  cursor:pointer;
  box-shadow:0 6px 14px rgba(0,0,0,.16), inset 0 0 0 1px rgba(255,255,255,.05);
  transition:transform .12s ease, background .12s ease, box-shadow .12s ease;
}
.ev4x-sp-calculator-keys button:hover,
.ev4x-sp-calculator-keys button:focus-visible {
  transform:translateY(-1px);
  outline:2px solid rgba(105,182,255,.40);
  outline-offset:2px;
  box-shadow:0 10px 22px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.12);
}
.ev4x-sp-calculator-keys button.is-wide { grid-column:span 2; }
.ev4x-sp-calculator-keys button.is-function {
  background:linear-gradient(135deg, rgba(92,191,255,.30), rgba(102,225,201,.18));
  font-size:16px;
  font-weight:700;
}
.ev4x-sp-calculator-keys button.is-mode {
  background:linear-gradient(135deg, rgba(255,202,96,.32), rgba(240,183,59,.20));
  font-size:16px;
  color:var(--sp-calc-text);
}
.ev4x-sp-calculator-keys button.is-convert {
  background:linear-gradient(135deg, rgba(204,232,255,.24), rgba(129,191,255,.14));
  font-size:15px;
  font-weight:700;
}
.ev4x-sp-calculator-keys button.is-constant {
  background:linear-gradient(135deg, rgba(255,219,124,.28), rgba(104,197,255,.20));
  font-size:21px;
}
.ev4x-sp-calculator-keys button.is-clear {
  background:linear-gradient(135deg, var(--sp-calc-warn-a), var(--sp-calc-warn-b));
  color:#402400;
  box-shadow:0 10px 20px rgba(255,152,76,.22), inset 0 0 0 1px rgba(255,255,255,.18);
}
.ev4x-sp-calculator-note {
  margin:12px 0 0;
  color:var(--sp-calc-muted);
  font-size:12px;
  line-height:1.4;
  font-weight:600;
  text-align:center;
  text-shadow:none;
}
@media (max-width: 520px) {
  .ev4x-sp-calculator-modal {
    align-items:flex-end;
    padding:10px;
  }
  .ev4x-sp-calculator-panel {
    width:100%;
    border-radius:24px 24px 18px 18px;
    padding:14px;
  }
  .ev4x-sp-calculator-head {
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .ev4x-sp-calculator-head-title strong {
    font-size:21px;
  }
  .ev4x-sp-calculator-head-title span {
    font-size:13px;
  }
  .ev4x-sp-calculator-head-actions {
    justify-content:space-between;
  }
  .ev4x-sp-calculator-theme-button {
    min-height:36px;
    font-size:13px;
    padding:7px 11px;
  }
  .ev4x-sp-calculator-mode {
    font-size:13px;
    gap:9px;
  }
  .ev4x-sp-calculator-display {
    min-height:62px;
    font-size:33px;
    padding:13px 15px;
  }
  .ev4x-sp-calculator-keys {
    gap:7px;
  }
  .ev4x-sp-calculator-keys button {
    min-height:52px;
    border-radius:14px;
    font-size:21px;
  }
  .ev4x-sp-calculator-keys button.is-function,
  .ev4x-sp-calculator-keys button.is-mode {
    font-size:16px;
  }
  .ev4x-sp-calculator-keys button.is-convert {
    font-size:15px;
  }
  .ev4x-sp-calculator-note {
    font-size:13px;
    line-height:1.45;
  }
  .ev4x-sp-calculator-memory {
    margin-left:0;
    width:100%;
  }
}
@media (max-width: 380px) {
  .ev4x-sp-calculator-panel {
    padding:12px;
  }
  .ev4x-sp-calculator-keys {
    gap:6px;
  }
  .ev4x-sp-calculator-keys button {
    min-height:50px;
    font-size:20px;
  }
  .ev4x-sp-calculator-keys button.is-function,
  .ev4x-sp-calculator-keys button.is-mode {
    font-size:15px;
  }
  .ev4x-sp-calculator-keys button.is-convert {
    font-size:14px;
  }
}


/* 147.0: pojistka pro skutečně světlý režim kalkulačky */
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly {
  background:
    radial-gradient(circle at 18% 18%, rgba(91,166,222,.10), transparent 22%),
    radial-gradient(circle at 82% 14%, rgba(255,217,120,.16), transparent 18%),
    linear-gradient(180deg, #f9fdff, #edf7fd 68%, #deedf6) !important;
  color:#12313d !important;
  border-color:rgba(41,114,163,.24) !important;
}
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-head-title strong,
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-head-title span,
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-mode,
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-note,
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-theme-button,
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-close {
  color:#12313d !important;
}
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-keys button {
  background:linear-gradient(180deg, rgba(19,66,102,.11), rgba(19,66,102,.055)) !important;
  color:#12313d !important;
  border-color:rgba(41,114,163,.18) !important;
}
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-display {
  background:linear-gradient(180deg, #ffffff, #f1f8fc) !important;
  color:#0d2335 !important;
}
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-stars {
  opacity:.10 !important;
}
.ev4x-sp-calculator-panel.ev4x-sp-theme-svetly .ev4x-sp-calculator-keys button.is-clear {
  background:linear-gradient(135deg, #ffd978, #ffb85b) !important;
  color:#402400 !important;
}

/* 127.0: oprava zvětšené žákovské mapy – mapa má ve fullscreen režimu skutečnou výšku. */
.ev4x-sp-student-map {
  cursor: zoom-in;
}

.ev4x-sp-student-map-fullscreen-close {
  display: none;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-card {
  position: fixed !important;
  inset: 14px !important;
  z-index: 999999 !important;
  width: auto !important;
  height: auto !important;
  max-height: calc(100dvh - 28px) !important;
  margin: 0 !important;
  padding: 14px !important;
  border-radius: 24px !important;
  background: rgba(3, 12, 18, .97) !important;
  border: 1px solid rgba(225,242,248,.42) !important;
  box-shadow: 0 24px 80px rgba(0,0,0,.62), inset 0 0 0 1px rgba(255,255,255,.12) !important;
  display: block !important;
  overflow: auto !important;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-details {
  display: block !important;
  min-height: 0 !important;
  border-radius: 20px !important;
  background: rgba(8, 22, 34, .92) !important;
  border-color: rgba(225,242,248,.24) !important;
  overflow: hidden !important;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-details summary {
  display: flex !important;
  padding: 14px 62px 12px 16px !important;
  color: #f8fbff !important;
  background: rgba(255,255,255,.07) !important;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-details summary span {
  color: rgba(232,244,255,.82) !important;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map {
  display: block !important;
  width: auto !important;
  height: calc(100dvh - 150px) !important;
  min-height: 420px !important;
  margin: 10px !important;
  border-radius: 20px !important;
  cursor: default !important;
  overflow: hidden !important;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-lines,
.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-nodes,
.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-scenery {
  display: block !important;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-legend {
  padding: 0 14px 14px !important;
  color: rgba(232,244,255,.84) !important;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-legend i {
  border-color: rgba(255,255,255,.38) !important;
}

.ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-fullscreen-close {
  display: grid !important;
  place-items: center !important;
  position: absolute !important;
  top: 22px !important;
  right: 22px !important;
  z-index: 20 !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.32) !important;
  background: rgba(255,255,255,.94) !important;
  color: #10233a !important;
  font-size: 30px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.38) !important;
}

html.ev4x-sp-student-map-fullscreen-open,
body.ev4x-sp-student-map-fullscreen-open {
  overflow: hidden !important;
}

@media (max-width: 640px) {
  .ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-card {
    inset: 8px !important;
    max-height: calc(100dvh - 16px) !important;
    padding: 10px !important;
    border-radius: 20px !important;
  }

  .ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-details summary {
    padding-right: 58px !important;
  }

  .ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map {
    height: calc(100dvh - 128px) !important;
    min-height: 310px !important;
    margin: 8px !important;
  }

  .ev4x-sp-app.is-student-map-fullscreen .ev4x-sp-student-map-fullscreen-close {
    top: 16px !important;
    right: 16px !important;
    width: 42px !important;
    height: 42px !important;
  }
}


/* 132.0: výraznější zvýraznění zadání/otázky na planetě */
.ev4x-sp-question-focus {
  margin: 12px 0 2px;
  padding: 14px 16px 16px;
  border-radius: 18px;
  border: 1px solid rgba(233, 185, 73, .42);
  border-left: 6px solid #e9b949;
  background: linear-gradient(180deg, #fff8dd 0%, #f8fbff 100%);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}

.ev4x-sp-question-focus-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  color: #7a5a19;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ev4x-sp-question-focus-label::before {
  content: "✦";
  color: #e0a500;
  font-size: 14px;
  line-height: 1;
}

.ev4x-sp-question-focus .ev4x-sp-question-focus-text,
.ev4x-sp-current-node .ev4x-sp-question-focus p[data-bind="node_text"],
.ev4x-sp-student-card .ev4x-sp-question-focus p[data-bind="node_text"] {
  margin: 0;
  color: #15324e;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.58;
  text-shadow: none;
}

.ev4x-sp-question-focus-student {
  margin-bottom: 14px;
}

@media (max-width: 640px) {
  .ev4x-sp-question-focus {
    padding: 12px 14px 14px;
  }

  .ev4x-sp-question-focus .ev4x-sp-question-focus-text,
  .ev4x-sp-current-node .ev4x-sp-question-focus p[data-bind="node_text"],
  .ev4x-sp-student-card .ev4x-sp-question-focus p[data-bind="node_text"] {
    font-size: 18px;
    line-height: 1.5;
  }
}


/* 133.0: samostatný hodnocený průchod žáka – závěrečná známka na mobilu */
.ev4x-sp-student-progress-badge.is-grade {
  background:#eef2ff;
  color:#29337a;
}

.ev4x-sp-final-grade-card {
  grid-column:1 / -1;
  border-radius:24px;
  padding:22px;
  background:linear-gradient(135deg, #0f2945, #113d55 52%, #0f5c55);
  color:#ffffff;
  box-shadow:0 18px 38px rgba(15,41,69,.28);
  border:1px solid rgba(255,255,255,.18);
}

.ev4x-sp-final-grade-kicker {
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:12px;
  font-weight:950;
  color:#c8f7ff;
  margin-bottom:8px;
}

.ev4x-sp-final-grade-student {
  font-size:18px;
  font-weight:850;
  color:#eefbff;
  margin-bottom:16px;
}

.ev4x-sp-final-grade-main {
  display:flex;
  align-items:center;
  gap:20px;
  margin:4px 0 18px;
}

.ev4x-sp-final-grade-number {
  width:132px;
  min-width:132px;
  height:132px;
  border-radius:32px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, #fff7c2, #ffd166);
  color:#12313b;
  font-size:92px;
  line-height:1;
  font-weight:1000;
  box-shadow:0 14px 30px rgba(0,0,0,.22), inset 0 0 0 3px rgba(255,255,255,.35);
}

.ev4x-sp-final-grade-text {
  font-size:22px;
  line-height:1.45;
  font-weight:850;
}

.ev4x-sp-final-grade-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}

.ev4x-sp-final-grade-grid span {
  border-radius:16px;
  padding:12px 14px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.14);
  font-weight:850;
}

.ev4x-sp-final-grade-scale {
  font-size:13px;
  line-height:1.45;
  color:#d9f9ff;
  font-weight:750;
  margin-top:10px;
}

.ev4x-sp-final-grade-message {
  margin-top:14px;
  border-radius:16px;
  padding:12px 14px;
  background:rgba(255,255,255,.14);
  color:#ffffff;
  font-weight:850;
}

@media (max-width: 640px) {
  .ev4x-sp-final-grade-main {
    flex-direction:column;
    align-items:flex-start;
  }
  .ev4x-sp-final-grade-number {
    width:118px;
    min-width:118px;
    height:118px;
    font-size:82px;
  }
  .ev4x-sp-final-grade-grid {
    grid-template-columns:1fr;
  }
}

/* 134.0: zobrazení celkového počtu planet */
.ev4x-sp-student-visible-mission-title em {
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:10px;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.22);
  color:#e9fffb;
  font-style:normal;
  font-weight:900;
  font-size:13px;
}
.ev4x-sp-student-brief-chip.is-planets::before {
  content:'';
  width:9px;
  height:9px;
  border-radius:999px;
  display:block;
  background:#c4a7ff;
  box-shadow:0 0 10px rgba(196,167,255,.75);
}

/* 139.0: PDF zpráva z mise */
.ev4x-sp-btn-report {
  background:linear-gradient(135deg, #2563eb, #7c3aed);
  box-shadow:0 10px 24px rgba(37,99,235,.28);
}
.ev4x-sp-student-report-actions {
  margin-top:16px;
  display:flex;
  justify-content:center;
}
.ev4x-sp-student-report-btn {
  min-width:220px;
}


/* 141.0: jednotné barvy planet v mapě mise podle požadavku žákovské přípravy */
.ev4x-sp-node.is-start:not(.is-error) {
  background: radial-gradient(circle at 30% 26%, rgba(190,226,255,.99) 0%, rgba(74,154,255,.99) 34%, rgba(33,91,197,.98) 72%, rgba(12,49,118,1) 100%) !important;
  border-color: rgba(215,238,255,.96) !important;
  color:#f4fbff !important;
}
.ev4x-sp-node.is-visited:not(.is-start):not(.is-goal):not(.is-error) {
  background: radial-gradient(circle at 30% 26%, rgba(190,255,211,.99) 0%, rgba(71,210,118,.99) 34%, rgba(31,142,76,.99) 72%, rgba(12,77,43,1) 100%) !important;
  border-color: rgba(209,255,224,.94) !important;
  color:#f5fff8 !important;
  box-shadow: inset -10px -14px 20px rgba(0,0,0,.16), 0 0 0 5px rgba(52,211,153,.14), 0 10px 24px rgba(0,0,0,.22), 0 0 22px rgba(52,211,153,.32) !important;
}
.ev4x-sp-node.is-error:not(.is-goal),
.ev4x-sp-node.is-visited.is-error:not(.is-goal) {
  background: radial-gradient(circle at 30% 26%, rgba(255,205,205,.99) 0%, rgba(239,91,91,.99) 35%, rgba(177,38,38,.99) 72%, rgba(95,17,24,1) 100%) !important;
  border-color: rgba(255,222,222,.96) !important;
  color:#fff7f7 !important;
  box-shadow: inset -10px -14px 20px rgba(0,0,0,.18), 0 0 0 5px rgba(239,68,68,.16), 0 10px 24px rgba(0,0,0,.24), 0 0 24px rgba(239,68,68,.42) !important;
}
.ev4x-sp-node.is-goal,
.ev4x-sp-node.is-current.is-goal {
  background: radial-gradient(circle at 28% 24%, rgba(255,255,255,.99) 0%, rgba(205,238,255,.99) 26%, rgba(89,169,255,.98) 58%, rgba(30,82,177,.98) 82%, rgba(14,43,105,1) 100%) !important;
  border-color: rgba(238,248,255,.98) !important;
  color:#f8fcff !important;
  box-shadow: inset -10px -14px 20px rgba(0,0,0,.16), 0 0 0 5px rgba(147,197,253,.18), 0 10px 24px rgba(0,0,0,.22), 0 0 28px rgba(147,197,253,.50) !important;
}
.ev4x-sp-student-map-planet.is-earth {
  background: radial-gradient(circle at 32% 30%, #d6f4ff 0%, #4ca7ff 35%, #1a59ab 68%, #0b2e57 100%) !important;
}
.ev4x-sp-student-map-planet.is-bellatrix {
  background: radial-gradient(circle at 30% 26%, #ffffff 0%, #cfeeff 26%, #5aa9ff 58%, #1f58ba 82%, #0f316f 100%) !important;
  box-shadow:0 0 0 5px rgba(147,197,253,.16), 0 10px 28px rgba(2,8,22,.28), 0 0 20px rgba(205,238,255,.45) !important;
}
.ev4x-sp-student-map-node.is-visited:not(.is-start):not(.is-goal):not(.is-error) .ev4x-sp-student-map-dot {
  background: radial-gradient(circle at 32% 30%, #c6ffd7 0%, #47d276 38%, #1f8e4c 75%, #0c4d2b 100%) !important;
  border-color: rgba(218,255,229,.95) !important;
  box-shadow:0 0 0 4px rgba(52,211,153,.14), 0 0 16px rgba(52,211,153,.45) !important;
}
.ev4x-sp-student-map-node.is-error:not(.is-goal) .ev4x-sp-student-map-dot,
.ev4x-sp-student-map-node.is-visited.is-error:not(.is-goal) .ev4x-sp-student-map-dot {
  background: radial-gradient(circle at 32% 30%, #ffd1d1 0%, #ef5b5b 38%, #b12626 75%, #5f1118 100%) !important;
  border-color: rgba(255,224,224,.96) !important;
  box-shadow:0 0 0 4px rgba(239,68,68,.15), 0 0 18px rgba(239,68,68,.52) !important;
}
.ev4x-sp-student-map-node.is-goal .ev4x-sp-student-map-dot,
.ev4x-sp-student-map-node.is-current.is-goal .ev4x-sp-student-map-dot {
  background: radial-gradient(circle at 30% 28%, #ffffff 0%, #cfeeff 28%, #5aa9ff 60%, #1f58ba 84%, #0f316f 100%) !important;
  border-color: rgba(238,248,255,.98) !important;
  box-shadow:0 0 0 4px rgba(147,197,253,.16), 0 0 20px rgba(147,197,253,.55) !important;
}
.ev4x-sp-student-map-legend i.is-visited { background:#47d276 !important; }
.ev4x-sp-student-map-legend i.is-error { background:#ef5b5b !important; }


/* 148.0: Kopírovatelný blok kódu v zadání planety pro BBC micro:bit / MicroPython */
.ev4x-sp-question-focus-text[data-bind="node_text"],
.ev4x-sp-question-focus-text[data-bind="node_text"] * {
  user-select: text;
  -webkit-user-select: text;
}

.ev4x-sp-code-wrap {
  margin: 16px 0 18px;
  border: 1px solid rgba(31, 60, 77, .18);
  border-radius: 14px;
  overflow: hidden;
  background: #0f172a;
  box-shadow: 0 12px 26px rgba(15, 23, 42, .16);
  user-select: text !important;
  -webkit-user-select: text !important;
}

.ev4x-sp-code-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  background: linear-gradient(135deg, rgba(30, 64, 175, .95), rgba(6, 95, 70, .92));
  color: #ffffff;
  font-size: 14px;
  font-weight: 900;
}

.ev4x-sp-code-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.ev4x-sp-code-copy,
.ev4x-sp-code-editor {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .42);
  background: rgba(255, 255, 255, .14);
  color: #ffffff !important;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.1;
  text-decoration: none !important;
  cursor: pointer;
}

.ev4x-sp-code-copy:hover,
.ev4x-sp-code-editor:hover,
.ev4x-sp-code-copy:focus-visible,
.ev4x-sp-code-editor:focus-visible {
  background: rgba(255, 255, 255, .24);
  outline: 2px solid rgba(255, 255, 255, .72);
  outline-offset: 2px;
}

.ev4x-sp-code-block {
  margin: 0;
  padding: 15px 16px 16px;
  max-height: 360px;
  overflow: auto;
  background: #0f172a;
  color: #e5e7eb;
  font-family: Consolas, "Courier New", monospace;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  white-space: pre;
  tab-size: 4;
  user-select: text !important;
  -webkit-user-select: text !important;
}

.ev4x-sp-code-block code {
  display: block;
  color: inherit;
  background: transparent;
  font: inherit;
  white-space: pre;
  user-select: text !important;
  -webkit-user-select: text !important;
}

.ev4x-sp-code-status {
  min-height: 0;
  padding: 0 14px 12px;
  color: #bfdbfe;
  background: #0f172a;
  font-size: 12px;
  font-weight: 800;
}

.ev4x-sp-question-focus-text[data-bind="node_text"] .ev4x-sp-code-wrap + br,
.ev4x-sp-question-focus-text[data-bind="node_text"] br + .ev4x-sp-code-wrap {
  display: none;
}

@media (max-width: 640px) {
  .ev4x-sp-code-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .ev4x-sp-code-actions {
    width: 100%;
    justify-content: flex-start;
  }
  .ev4x-sp-code-copy,
  .ev4x-sp-code-editor {
    flex: 1 1 auto;
  }
  .ev4x-sp-code-block {
    font-size: 13px;
  }
}


/* 149.0: mapa/vizuál planet je společný pro anonymní i hodnocený samostatný průchod.
   Samotné zobrazení řídí JS funkcí renderStudentMiniMap() pro režimy self + graded. */


/* 150.0: kopírovatelný kód je podporovaný i v samostatném hodnoceném průchodu. */


/* 151.0: kopírování kódu jen při copy_code=true; logika je v JS. */


/* 152.0: kopírovací blok kódu se zobrazuje pouze při skutečném kódu/copy_code=true. */


/* EV4X StarPath 153.0 – kopírovatelný blok kódu z pole `code` */
.ev4x-code-patch-153,
.ev4x-sp-code-block {
  margin: 14px 0 16px;
  border: 1px solid rgba(72, 187, 255, .35);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(10, 23, 48, .96), rgba(9, 18, 39, .96));
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  overflow: hidden;
}

.ev4x-sp-code-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  background: rgba(59, 130, 246, .18);
  color: #f8fafc;
  font-weight: 800;
}

.ev4x-sp-copy-code-btn {
  border: 0;
  border-radius: 999px;
  padding: 7px 12px;
  cursor: pointer;
  font-weight: 800;
  color: #06223a;
  background: #7dd3fc;
}

.ev4x-sp-code-pre {
  margin: 0;
  padding: 14px;
  overflow: auto;
  color: #e5f6ff;
  background: transparent;
  user-select: text !important;
  -webkit-user-select: text !important;
  white-space: pre;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 13px;
  line-height: 1.45;
}

.ev4x-sp-code-pre code {
  user-select: text !important;
  -webkit-user-select: text !important;
}


/* 154.0: vizuál planet i ve třídní misi; logika je opravena v JS. */


/* 155.0: kalkulačka pro finanční gramotnost se zapíná logikou v JS. */






/* EV4X StarPath 158.0 – skutečné ovládání kalkulačky ve formuláři relace */
.ev4x-sp-session-settings-form .ev4x-sp-session-setting {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 150px;
  margin: 0;
}

.ev4x-sp-session-settings-form .ev4x-sp-session-setting span {
  font-size: 11px;
  font-weight: 700;
  color: #334155;
}

.ev4x-sp-session-settings-form select {
  min-height: 34px;
  min-width: 150px;
}

.ev4x-sp-session-settings-form .button {
  min-height: 34px;
  margin-top: 17px;
}


/* 160.0: oprava zbloudilého písmene n v zadání je řešena v JS/PHP. */


/* 164.0: tooltipy názvů planet ve všech mapách a režimech */
.ev4x-sp-node[data-planet-title],
.ev4x-sp-student-map-node[data-planet-title] {
  cursor: help;
  outline: none;
}

.ev4x-sp-node[data-planet-title]::after,
.ev4x-sp-student-map-node[data-planet-title]::after {
  content: attr(data-planet-title);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 12px);
  transform: translateX(-50%) translateY(4px);
  z-index: 9999;
  min-width: max-content;
  max-width: min(280px, 72vw);
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(6,18,32,.96);
  color: #ffffff;
  font-size: 13px !important;
  line-height: 1.25 !important;
  font-weight: 800;
  text-align: center;
  white-space: normal;
  box-shadow: 0 14px 32px rgba(0,0,0,.36), 0 0 16px rgba(52,199,184,.22);
  text-shadow: none;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.ev4x-sp-node[data-planet-title]::before,
.ev4x-sp-student-map-node[data-planet-title]::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 5px);
  transform: translateX(-50%) translateY(4px) rotate(45deg);
  z-index: 9998;
  width: 10px;
  height: 10px;
  background: rgba(6,18,32,.96);
  border-right: 1px solid rgba(255,255,255,.22);
  border-bottom: 1px solid rgba(255,255,255,.22);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.ev4x-sp-node[data-planet-title]:hover,
.ev4x-sp-node[data-planet-title]:focus-visible,
.ev4x-sp-student-map-node[data-planet-title]:hover,
.ev4x-sp-student-map-node[data-planet-title]:focus-visible {
  z-index: 10000 !important;
}

.ev4x-sp-node[data-planet-title]:hover::after,
.ev4x-sp-node[data-planet-title]:focus-visible::after,
.ev4x-sp-node[data-planet-title]:hover::before,
.ev4x-sp-node[data-planet-title]:focus-visible::before,
.ev4x-sp-student-map-node[data-planet-title]:hover::after,
.ev4x-sp-student-map-node[data-planet-title]:focus-visible::after,
.ev4x-sp-student-map-node[data-planet-title]:hover::before,
.ev4x-sp-student-map-node[data-planet-title]:focus-visible::before {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.ev4x-sp-node[data-planet-title]:hover::before,
.ev4x-sp-node[data-planet-title]:focus-visible::before,
.ev4x-sp-student-map-node[data-planet-title]:hover::before,
.ev4x-sp-student-map-node[data-planet-title]:focus-visible::before {
  transform: translateX(-50%) translateY(0) rotate(45deg);
}

.ev4x-sp-student-map-node[data-planet-title]::after {
  bottom: calc(100% + 14px);
}

.ev4x-sp-student-map-node.label-above[data-planet-title]::after,
.ev4x-sp-student-map-node.label-above[data-planet-title]::before {
  bottom: auto;
  top: calc(100% + 12px);
}

.ev4x-sp-student-map-node.label-above[data-planet-title]::before {
  top: calc(100% + 5px);
  border-right: 0;
  border-bottom: 0;
  border-left: 1px solid rgba(255,255,255,.22);
  border-top: 1px solid rgba(255,255,255,.22);
}

.ev4x-sp-student-map-node.label-left[data-planet-title]::after,
.ev4x-sp-student-map-node.label-right[data-planet-title]::after,
.ev4x-sp-student-map-node.label-below[data-planet-title]::after {
  bottom: calc(100% + 14px);
}


/* 165.0: skutečný plovoucí tooltip názvu planety mimo ořez mapy */
.ev4x-sp-node[data-planet-title]::after,
.ev4x-sp-node[data-planet-title]::before,
.ev4x-sp-student-map-node[data-planet-title]::after,
.ev4x-sp-student-map-node[data-planet-title]::before {
  display: none !important;
}

.ev4x-sp-planet-tooltip-fixed {
  position: fixed;
  z-index: 2147483000;
  min-width: max-content;
  max-width: min(320px, calc(100vw - 24px));
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.30);
  background: rgba(6,18,32,.97);
  color: #ffffff;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 900;
  text-align: center;
  white-space: normal;
  box-shadow: 0 14px 34px rgba(0,0,0,.42), 0 0 18px rgba(52,199,184,.24);
  text-shadow: none;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
}

.ev4x-sp-planet-tooltip-fixed::after {
  content: "";
  position: absolute;
  left: var(--ev4x-tooltip-arrow-left, 50%);
  bottom: -5px;
  width: 10px;
  height: 10px;
  transform: translateX(-50%) rotate(45deg);
  background: rgba(6,18,32,.97);
  border-right: 1px solid rgba(255,255,255,.24);
  border-bottom: 1px solid rgba(255,255,255,.24);
}

.ev4x-sp-planet-tooltip-fixed[data-placement="bottom"]::after {
  bottom: auto;
  top: -5px;
  border-right: 0;
  border-bottom: 0;
  border-left: 1px solid rgba(255,255,255,.24);
  border-top: 1px solid rgba(255,255,255,.24);
}

.ev4x-sp-planet-tooltip-fixed.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* 166.0: oprava hoveru u planet v žákovské/anonymní mapě.
   Starší styl měl u .ev4x-sp-student-map-node pointer-events:none, takže se hover k planetě nedostal. */
.ev4x-sp-student-map-node[data-planet-title] {
  pointer-events: auto !important;
  cursor: help !important;
}

.ev4x-sp-student-map-node[data-planet-title] .ev4x-sp-student-map-dot,
.ev4x-sp-student-map-node[data-planet-title] .ev4x-sp-student-map-dot-text {
  pointer-events: auto !important;
}
