/* EV4X Vesmírná kalkulačka 3.0 */
.ev4x-calc-inline-wrap,
.ev4x-calc-launch-wrap {
  box-sizing:border-box;
  width:100%;
  margin:18px 0;
  font-family:'Segoe UI', Arial, Helvetica, sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
.ev4x-calc-launch-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:11px 18px;
  border:1px solid rgba(124,210,255,.38);
  border-radius:999px;
  background:linear-gradient(135deg, #1c4d88, #2f7dcb 58%, #69b6ff);
  color:#f4fbff;
  font-size:16px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(19,76,138,.30), inset 0 0 0 1px rgba(255,255,255,.12);
}
.ev4x-calc-launch-button:hover,
.ev4x-calc-launch-button:focus-visible {
  transform:translateY(-1px);
  outline:2px solid rgba(124,210,255,.40);
  outline-offset:3px;
}
.ev4x-calc-modal {
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.ev4x-calc-modal[hidden] { display:none !important; }
.ev4x-calc-modal-backdrop {
  position:absolute;
  inset:0;
  background:rgba(5,14,28,.64);
  backdrop-filter:blur(5px);
}
.ev4x-calc-panel {
  --calc-bg-a:#0e2440;
  --calc-bg-b:#071221;
  --calc-bg-c:#040b15;
  --calc-text:#ffffff;
  --calc-muted:#dcebfa;
  --calc-display-bg-a:rgba(244,250,255,.98);
  --calc-display-bg-b:rgba(226,241,251,.96);
  --calc-display-text:#0c2336;
  --calc-button-bg-a:rgba(255,255,255,.15);
  --calc-button-bg-b:rgba(255,255,255,.09);
  --calc-button-text:#ffffff;
  --calc-border:rgba(143,216,255,.22);
  --calc-accent:#69b6ff;
  --calc-warn-a:#ffd978;
  --calc-warn-b:#ffb85b;
  position:relative;
  box-sizing:border-box;
  width:min(100%, 430px);
  margin:0 auto;
  border-radius:26px;
  padding:16px;
  color:var(--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(--calc-bg-a), var(--calc-bg-b) 68%, var(--calc-bg-c));
  border:1px solid var(--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);
}
.ev4x-calc-panel.is-modal-panel {
  z-index:1;
  width:min(94vw, 430px);
  max-height:calc(100dvh - 36px);
  overflow-y:auto;
}
.ev4x-calc-panel *,
.ev4x-calc-panel *::before,
.ev4x-calc-panel *::after {
  box-sizing:border-box;
}
.ev4x-calc-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-calc-theme-svetly {
  --calc-bg-a:#f7fbff;
  --calc-bg-b:#eaf4fb;
  --calc-bg-c:#dcebf4;
  --calc-text:#12313d;
  --calc-muted:#31505f;
  --calc-display-bg-a:#ffffff;
  --calc-display-bg-b:#f1f8fc;
  --calc-display-text:#0d2335;
  --calc-button-bg-a:rgba(19,66,102,.10);
  --calc-button-bg-b:rgba(19,66,102,.05);
  --calc-button-text:#12313d;
  --calc-border:rgba(41,114,163,.22);
  --calc-accent:#1f7fc0;
  box-shadow:0 18px 46px rgba(17,68,112,.18), 0 0 0 1px rgba(255,255,255,.70) inset;
}
.ev4x-calc-theme-svetly .ev4x-calc-stars { opacity:.12; }
.ev4x-calc-theme-tmavy {
  --calc-bg-a:#202537;
  --calc-bg-b:#121725;
  --calc-bg-c:#090d16;
  --calc-text:#f6f7fb;
  --calc-muted:#cfd7e8;
  --calc-display-bg-a:#f8f9ff;
  --calc-display-bg-b:#e9edf9;
  --calc-display-text:#101522;
  --calc-button-bg-a:rgba(255,255,255,.13);
  --calc-button-bg-b:rgba(255,255,255,.07);
  --calc-button-text:#f6f7fb;
  --calc-border:rgba(210,218,244,.16);
  --calc-accent:#a6bbff;
}
.ev4x-calc-head,
.ev4x-calc-mode-row,
.ev4x-calc-display,
.ev4x-calc-keys,
.ev4x-calc-note {
  position:relative;
  z-index:1;
}
.ev4x-calc-panel,
.ev4x-calc-panel button,
.ev4x-calc-panel output,
.ev4x-calc-panel span,
.ev4x-calc-panel strong {
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:geometricPrecision;
}
.ev4x-calc-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:12px;
}
.ev4x-calc-head strong {
  display:block;
  font-size:18px;
  font-weight:900;
  line-height:1.2;
  letter-spacing:.01em;
  text-shadow:none;
}
.ev4x-calc-head span {
  display:block;
  margin-top:3px;
  color:var(--calc-muted);
  font-size:12px;
  font-weight:700;
}
.ev4x-calc-head-actions {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.ev4x-calc-theme-button,
.ev4x-calc-mini-button,
.ev4x-calc-close {
  border:1px solid rgba(160,221,255,.20);
  background:rgba(255,255,255,.08);
  color:var(--calc-text);
  cursor:pointer;
  font-weight:900;
}
.ev4x-calc-theme-button {
  min-height:32px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
  text-shadow:none;
}
.ev4x-calc-close {
  width:34px;
  height:34px;
  border-radius:50%;
  font-size:24px;
  line-height:1;
}
.ev4x-calc-mode-row {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:-2px 0 10px;
  color:var(--calc-muted);
  font-size:12px;
  font-weight:700;
}
.ev4x-calc-mini-button {
  min-height:30px;
  padding:4px 10px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(255,217,120,.18), rgba(82,168,255,.14));
  color:var(--calc-text);
}
.ev4x-calc-memory {
  margin-left:auto;
}
.ev4x-calc-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(--calc-display-bg-a), var(--calc-display-bg-b));
  color:var(--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-calc-keys {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:8px;
}
.ev4x-calc-keys button {
  min-height:50px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:linear-gradient(180deg, var(--calc-button-bg-a), var(--calc-button-bg-b));
  color:var(--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-calc-keys button:hover,
.ev4x-calc-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-calc-keys button.is-wide {
  grid-column:span 2;
}
.ev4x-calc-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-calc-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-calc-keys button.is-operator {
  background:linear-gradient(135deg, rgba(124,210,255,.25), rgba(91,132,255,.14));
}
.ev4x-calc-keys button.is-constant {
  background:linear-gradient(135deg, rgba(255,219,124,.28), rgba(104,197,255,.20));
}
.ev4x-calc-keys button.is-clear {
  background:linear-gradient(135deg, var(--calc-warn-a), var(--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-calc-keys button.is-equals {
  background:linear-gradient(135deg, #7be0b7, #49bd8a);
  color:#05351f;
}
.ev4x-calc-note {
  margin:12px 0 0;
  color:var(--calc-muted);
  font-size:12px;
  line-height:1.4;
  font-weight:600;
  text-align:center;
  text-shadow:none;
}
body.ev4x-calc-modal-open {
  overflow:hidden;
}

@media (max-width: 520px) {
  .ev4x-calc-modal {
    align-items:flex-end;
    padding:10px;
  }
  .ev4x-calc-panel,
  .ev4x-calc-panel.is-modal-panel {
    width:100%;
    border-radius:24px 24px 18px 18px;
    padding:14px;
  }
  .ev4x-calc-head {
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .ev4x-calc-head strong {
    font-size:21px;
  }
  .ev4x-calc-head span {
    font-size:13px;
  }
  .ev4x-calc-head-actions {
    justify-content:space-between;
  }
  .ev4x-calc-theme-button {
    min-height:36px;
    font-size:13px;
    padding:7px 11px;
  }
  .ev4x-calc-mode-row {
    font-size:13px;
    gap:9px;
  }
  .ev4x-calc-mini-button {
    min-height:34px;
    font-size:13px;
    padding:5px 12px;
  }
  .ev4x-calc-display {
    min-height:62px;
    font-size:33px;
    padding:13px 15px;
  }
  .ev4x-calc-keys {
    gap:7px;
  }
  .ev4x-calc-keys button {
    min-height:52px;
    border-radius:14px;
    font-size:21px;
  }
  .ev4x-calc-keys button.is-function {
    font-size:16px;
  }
  .ev4x-calc-keys button.is-convert {
    font-size:15px;
  }
  .ev4x-calc-note {
    font-size:13px;
    line-height:1.45;
  }
  .ev4x-calc-memory {
    margin-left:0;
    width:100%;
  }
}

@media (max-width: 380px) {
  .ev4x-calc-panel,
  .ev4x-calc-panel.is-modal-panel {
    padding:12px;
  }
  .ev4x-calc-keys {
    gap:6px;
  }
  .ev4x-calc-keys button {
    min-height:50px;
    font-size:20px;
  }
  .ev4x-calc-keys button.is-function {
    font-size:15px;
  }
  .ev4x-calc-keys button.is-convert {
    font-size:14px;
  }
}
