/*
  Popovehlasy.sk – Public UI
  Cieľ: moderný, farebný, "tropical / Thailand" vibe.
  Pozn.: štýly sú primárne viazané na .ph-public, aby nezasahovali do adminu.
*/

:root{
  --ph-bg: #ffffff;
  --ph-ink: #0f172a;
  --ph-muted: rgba(15,23,42,.70);
  --ph-card: rgba(255,255,255,.78);
  --ph-border: rgba(15,23,42,.10);
  --ph-shadow: 0 14px 40px rgba(15,23,42,.10);
  --ph-shadow-sm: 0 10px 24px rgba(15,23,42,.10);

  --ph-a: #06b6d4;   /* cyan */
  --ph-b: #a78bfa;   /* violet */
  --ph-c: #fb7185;   /* rose */
  --ph-d: #34d399;   /* emerald */
  --ph-e: #fbbf24;   /* amber */
}

.ph-public{
  font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--ph-ink);
  background:
    radial-gradient(1200px 600px at 15% 10%, rgba(6,182,212,.18), transparent 60%),
    radial-gradient(900px 520px at 85% 15%, rgba(167,139,250,.18), transparent 55%),
    radial-gradient(1000px 600px at 40% 90%, rgba(251,113,133,.16), transparent 60%),
    linear-gradient(180deg, #ffffff, #f8fafc);
}

.ph-public a{ color: inherit; }
.ph-public .text-muted{ color: var(--ph-muted) !important; }

/* Hero */
.ph-hero{
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--ph-border);
}

.ph-hero::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(700px 420px at 20% 25%, rgba(52,211,153,.22), transparent 60%),
    radial-gradient(680px 420px at 70% 20%, rgba(251,191,36,.20), transparent 55%),
    radial-gradient(900px 520px at 50% 85%, rgba(6,182,212,.18), transparent 62%);
  z-index: 0;
}

.ph-hero-inner{
  position: relative;
  z-index: 1;
  padding: 4.25rem 1rem 3.25rem;
}

.ph-hero-card{
  background: var(--ph-card);
  border: 1px solid var(--ph-border);
  box-shadow: var(--ph-shadow);
  border-radius: 24px;
  padding: 2rem;
  backdrop-filter: blur(10px);
}

.ph-pill{
  display:inline-flex;
  gap:.5rem;
  align-items:center;
  padding: .35rem .8rem;
  border-radius: 999px;
  border: 1px solid var(--ph-border);
  background: rgba(255,255,255,.75);
  box-shadow: 0 10px 20px rgba(15,23,42,.06);
  font-size: .9rem;
}

.ph-pill .dot{
  width: 9px; height: 9px; border-radius: 999px; display:inline-block;
  background: linear-gradient(135deg, var(--ph-a), var(--ph-b));
}

.ph-btn{
  border-radius: 999px !important;
  padding: .75rem 1.1rem;
  font-weight: 600;
}

.ph-btn-primary{
  background: linear-gradient(135deg, var(--ph-a), var(--ph-b));
  border: none;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(6,182,212,.20);
}

.ph-btn-primary:hover{ filter: brightness(1.02); transform: translateY(-1px); }

.ph-btn-outline{
  border: 1px solid var(--ph-border) !important;
  background: rgba(255,255,255,.85) !important;
}

/* Sections */
.ph-section{
  padding: 4rem 0;
}

.ph-section.alt{
  background: rgba(255,255,255,.55);
  border-top: 1px solid var(--ph-border);
  border-bottom: 1px solid var(--ph-border);
}

.ph-h2{
  font-weight: 700;
  letter-spacing: -.02em;
}

.ph-lead{
  font-size: 1.05rem;
  color: var(--ph-muted);
}

.ph-card{
  background: rgba(255,255,255,.82);
  border: 1px solid var(--ph-border);
  border-radius: 22px;
  box-shadow: var(--ph-shadow-sm);
  padding: 1.25rem;
  backdrop-filter: blur(10px);
}

.ph-icon{
  width: 44px; height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items:center;
  justify-content:center;
  background: linear-gradient(135deg, rgba(6,182,212,.18), rgba(167,139,250,.18));
  border: 1px solid var(--ph-border);
}

.ph-stat{
  display:flex;
  gap: 1rem;
  align-items:center;
}

.ph-stat strong{ font-size: 1.25rem; }

/* Year chips */
.ph-chips{
  display:flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.ph-chip{
  text-decoration:none;
  padding: .45rem .9rem;
  border-radius: 999px;
  border: 1px solid var(--ph-border);
  background: rgba(255,255,255,.8);
  transition: transform .15s ease, box-shadow .15s ease;
}

.ph-chip:hover{ transform: translateY(-1px); box-shadow: 0 10px 18px rgba(15,23,42,.08); }
.ph-chip.active{ background: linear-gradient(135deg, rgba(6,182,212,.22), rgba(167,139,250,.22)); }

/* Sponsors */
.ph-sponsors{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 1rem;
}
@media (min-width: 768px){
  .ph-sponsors{ grid-template-columns: repeat(4, minmax(0,1fr)); }
}

.ph-sponsor{
  background: rgba(255,255,255,.82);
  border: 1px solid var(--ph-border);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(15,23,42,.06);
  padding: 1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height: 90px;
}

.ph-sponsor img{ max-height: 56px; max-width: 100%; object-fit: contain; }

/* Small screens */
@media (max-width: 767.98px) {
  .ph-hero-inner{ padding: 3.4rem 1rem 2.6rem; }
  .ph-hero-card{ padding: 1.4rem; border-radius: 20px; }
  .ph-section{ padding: 3rem 0; }
}

/* ===== RESPONSIVE IMPROVEMENTS (2025061001) ===== */

/* Safe area insets for notched phones */
body { padding-bottom: env(safe-area-inset-bottom, 0); }

/* Better touch targets */
@media (max-width: 768px) {
  .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .form-control, .form-select { min-height: 44px; font-size: 16px !important; /* prevents iOS zoom */ }
  .navbar-brand { font-size: 1rem; }

  /* Cards */
  .card { border-radius: 14px !important; }
  .card-body { padding: 1rem !important; }

  /* Modals */
  .modal-dialog { margin: .5rem; }
  .modal-content { border-radius: 18px; }

  /* Tables – horizontal scroll hint */
  .table-wrap::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 24px;
    background: linear-gradient(to left, rgba(255,255,255,.9), transparent);
    pointer-events: none;
  }
  .table-wrap { position: relative; }
}

/* Tablet */
@media (max-width: 991px) {
  .container { padding-left: 1rem; padding-right: 1rem; }
  .row.g-4 { --bs-gutter-x: 1rem; }
}

/* Ensure no horizontal scroll */
html, body { max-width: 100%; overflow-x: hidden; }

/* ===== PUBLIC INDEX (moved from inline) ===== */

    .ph-nav-register {
      position: relative;
      font-weight: 700;
      color: var(--ph-b, #d63384) !important;
    }

    .ph-nav-register::after {
      content: '';
      position: absolute;
      left: 12px;
      right: 12px;
      bottom: 6px;
      height: 2px;
      border-radius: 999px;
      background: linear-gradient(135deg, var(--ph-a, #7c3aed), var(--ph-b, #d63384));
      opacity: .9;
    }

    .ph-nav-register-pulse {
      animation: phRegisterPulse 1.8s ease-in-out infinite;
    }

    @keyframes phRegisterPulse {
      0%,
      100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(214, 51, 132, 0.00);
      }
      50% {
        transform: scale(1.06);
        box-shadow: 0 0 0 10px rgba(214, 51, 132, 0.00);
      }
    }

    #pedagog-vstup {
      scroll-margin-top: 110px;
    }
    .ph-sponsor {
      height: 100%;
    }

    .ph-sponsor-link {
      display: block;
      width: 100%;
      height: 100%;
      color: inherit;
      text-decoration: none;
    }

    .ph-sponsor-inner {
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: flex-start;
      gap: 1rem;
      text-align: center;
    }

    .ph-sponsor-logo-wrap {
      width: 100%;
      min-height: 110px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .ph-sponsor-logo-wrap img,
    .ph-sponsor img {
      max-width: 100%;
      max-height: 90px;
      object-fit: contain;
    }

    .ph-sponsor-text {
      width: 100%;
    }

    .ph-sponsor-name {
      font-weight: 700;
      font-size: 1rem;
      color: #212529;
      margin-bottom: .4rem;
    }

    .ph-sponsor-description {
      font-size: .92rem;
      line-height: 1.5;
      color: #6c757d;
    }
  