/* =============================================
   DIGITAL NAURYZ 2026 — WordPress Plugin CSS v3
   Цвета дня задаются через CSS-переменные:
   --nz-c1 (основной) и --nz-c2 (акцентный)

   ШРИФТЫ:
   Unbounded — латиница и кириллица (заголовки)
   Noto Sans  — казахские символы (қ ң ү і ғ һ ө ұ ә)
   Fallback стек: Unbounded → Noto Sans → system-ui
   ============================================= */

/* Noto Sans для казахских символов */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700;900&display=swap');

/* Хелпер: шрифт с поддержкой казахского */
.nz-kz-font {
  font-family: 'Unbounded', 'Noto Sans', 'Segoe UI', Arial, sans-serif !important;
}

/* Глобальный стек для всех элементов плагина —
   браузер сам выберет нужный шрифт под символ */
#nz-ticker, #nz-banner, #nz-badge, #nz-modal, #nz-calendar {
  font-family: 'Unbounded', 'Noto Sans', 'Segoe UI', Arial, sans-serif;
}

/* ── TICKER ── */
#nz-ticker {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 99990; height: 34px; overflow: hidden;
  background: linear-gradient(90deg, var(--nz-c1,#00c9a7) 0%, var(--nz-c2,#7b61ff) 50%, var(--nz-c1,#00c9a7) 100%);
  background-size: 200% 100%;
  animation: nz-grad 6s linear infinite;
  display: flex; align-items: center;
}
@keyframes nz-grad { 0%{background-position:0%} 100%{background-position:200%} }

.nz-ticker-track { display:flex; animation:nz-scroll 30s linear infinite; white-space:nowrap; }
@keyframes nz-scroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

.nz-ti {
  font-family:'Unbounded','Noto Sans',Arial,sans-serif; font-size:.6rem; font-weight:700;
  color:rgba(255,255,255,.9); letter-spacing:.15em;
  padding:0 26px; display:flex; align-items:center; gap:10px;
}
.nz-dot { width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.4);flex-shrink:0; }

/* ── PARTICLES ── */
#nz-overlay { position:fixed;inset:0;z-index:99980;pointer-events:none;overflow:hidden; }
.nz-particle { position:absolute;top:-60px;animation:nz-fall linear infinite;pointer-events:none; }
@keyframes nz-fall {
  0%{transform:translateY(-60px) rotate(0deg);opacity:0} 10%{opacity:1}
  90%{opacity:.7} 100%{transform:translateY(110vh) rotate(720deg);opacity:0}
}

/* ── BANNER ── */
#nz-banner {
  position:fixed; bottom:0;left:0;right:0; z-index:99991;
  pointer-events:auto; transform:translateY(100%);
  transition:transform .7s cubic-bezier(.34,1.56,.64,1);
}
#nz-banner.nz-show { transform:translateY(0); }

.nz-banner-inner {
  background:linear-gradient(135deg,#0d1b2a 0%,#0f2a1a 50%,#1a0d2a 100%);
  border-top:1px solid rgba(255,255,255,.1); position:relative; overflow:hidden;
}
.nz-bar {
  width:100%;height:6px;
  background:linear-gradient(90deg,var(--nz-c1,#00c9a7),var(--nz-c2,#7b61ff),#ffd700,#ff6b6b,var(--nz-c1,#00c9a7));
  background-size:200% 100%; animation:nz-grad 4s linear infinite;
}
.nz-bc {
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 26px; gap:14px; flex-wrap:wrap;
}
.nz-logo { flex-shrink:0;display:flex;align-items:center;gap:12px; }
.nz-logo-txt .l1 { font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:.55rem;color:rgba(255,255,255,.4);letter-spacing:.15em;display:block; }
.nz-logo-txt .l2 {
  font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:1.1rem;font-weight:900;
  background:linear-gradient(90deg,var(--nz-c1,#00c9a7),var(--nz-c2,#7b61ff));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block;
  line-height:1.2;
}
.nz-logo-txt .l3 { font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:.52rem;color:rgba(255,255,255,.3);letter-spacing:.2em;display:block; }

.nz-msg { flex:1;min-width:160px;text-align:center; }
.nz-greet { font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:clamp(.82rem,2vw,1.2rem);font-weight:700;color:#fff;margin-bottom:3px; }
.nz-greet span { background:linear-gradient(90deg,var(--nz-c1,#00c9a7),#ffd700);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.nz-sub { font-size:.72rem;color:rgba(255,255,255,.4);letter-spacing:.03em;line-height:1.4; }

.nz-cd { display:flex;gap:8px;flex-shrink:0; }
.nz-cdi { display:flex;flex-direction:column;align-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:9px;padding:6px 10px;min-width:44px; }
.nz-cdn { font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:1.1rem;font-weight:900;color:var(--nz-c1,#00c9a7);line-height:1; }
.nz-cdl { font-size:.5rem;color:rgba(255,255,255,.35);letter-spacing:.1em;text-transform:uppercase;margin-top:2px; }

.nz-close-btn {
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.4);
  width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:.85rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;
}
.nz-close-btn:hover { background:rgba(255,100,100,.2);color:#ff6b6b; }

/* ── BADGE ── */
#nz-badge { position:fixed;top:20px;right:20px;z-index:99992;pointer-events:auto;animation:nz-float 3s ease-in-out infinite; }
@keyframes nz-float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }

.nz-badge-inner {
  background:rgba(13,27,42,.96);border:1px solid rgba(255,255,255,.15);
  border-radius:14px;padding:10px 14px;display:flex;align-items:center;gap:10px;
  backdrop-filter:blur(16px);box-shadow:0 8px 30px rgba(0,0,0,.3);
  cursor:pointer;transition:all .2s;
}
.nz-badge-inner:hover { border-color:var(--nz-c1,#00c9a7);box-shadow:0 8px 40px rgba(0,0,0,.4); }
.nz-pulse { position:absolute;top:-4px;right:-4px;width:11px;height:11px;border-radius:50%;background:#ff6b6b;animation:nz-pulse-a 2s ease-out infinite; }
@keyframes nz-pulse-a { 0%{box-shadow:0 0 0 0 rgba(255,107,107,.7)} 70%{box-shadow:0 0 0 9px rgba(255,107,107,0)} 100%{box-shadow:0 0 0 0 rgba(255,107,107,0)} }
.nz-badge-txt span:first-child { font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:.58rem;font-weight:700;color:var(--nz-c1,#00c9a7);letter-spacing:.1em;display:block; }
.nz-badge-txt span:last-child { font-size:.54rem;color:rgba(255,255,255,.35);display:block; }

/* ── MODAL & CALENDAR (shared base) ── */
#nz-modal, #nz-calendar {
  position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.82);backdrop-filter:blur(10px);
  opacity:0;pointer-events:none;transition:opacity .4s;
}
#nz-modal.nz-show, #nz-calendar.nz-show { opacity:1;pointer-events:auto; }

.nz-card, .nz-cal-card {
  background:linear-gradient(145deg,#0d1b2a,#0f2a1a);
  border:1px solid rgba(255,255,255,.12);border-radius:22px;
  position:relative;overflow:hidden;text-align:center;
  box-shadow:0 32px 80px rgba(0,0,0,.6),0 0 60px rgba(0,0,0,.3);
}
.nz-card { padding:40px 34px;max-width:490px;width:90%; }
.nz-cal-card { padding:32px 28px;max-width:560px;width:92%;max-height:88vh;overflow-y:auto; }

.nz-card::before, .nz-cal-card::before {
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--nz-c1,#00c9a7),var(--nz-c2,#7b61ff),#ffd700,#ff6b6b,var(--nz-c1,#00c9a7));
  background-size:300% 100%;animation:nz-grad 3s linear infinite;
}
.nz-grid-bg {
  position:absolute;inset:0;pointer-events:none;opacity:.025;
  background-image:linear-gradient(rgba(255,255,255,1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,1) 1px,transparent 1px);
  background-size:26px 26px;
}
.nz-modal-close {
  position:absolute;top:13px;right:13px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.4);
  width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:.9rem;
  display:flex;align-items:center;justify-content:center;transition:all .2s;
}
.nz-modal-close:hover { background:rgba(255,100,100,.2);color:#ff6b6b; }

.nz-tulips { display:flex;justify-content:center;gap:6px;margin-bottom:18px; }
.nz-tulips svg { animation:nz-sway 2.2s ease-in-out infinite; }
.nz-tulips svg:nth-child(2) { animation-delay:.35s; }
.nz-tulips svg:nth-child(3) { animation-delay:.7s; }
@keyframes nz-sway { 0%,100%{transform:rotate(-3deg)} 50%{transform:rotate(3deg)} }

.nz-mtitle {
  font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:clamp(1.4rem,3.5vw,2rem);font-weight:900;
  background:linear-gradient(135deg,var(--nz-c1,#00c9a7) 0%,var(--nz-c2,#7b61ff) 50%,#ffd700 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:5px;line-height:1.1;
}
.nz-msubt { font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:.68rem;color:rgba(255,255,255,.35);letter-spacing:.2em;margin-bottom:16px; }
.nz-mdesc { font-size:.83rem;color:rgba(255,255,255,.55);line-height:1.65;margin-bottom:20px; }

.nz-tags { display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:20px; }
.nz-tag { background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);padding:4px 12px;border-radius:50px;font-size:.66rem;letter-spacing:.05em;font-family:'Unbounded','Noto Sans',Arial,sans-serif; }

.nz-mbtn {
  background:linear-gradient(135deg,var(--nz-c1,#00c9a7),var(--nz-c2,#7b61ff));color:#fff;
  border:none;padding:12px 24px;border-radius:50px;
  font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:.76rem;cursor:pointer;
  letter-spacing:.04em;transition:transform .2s,box-shadow .2s;
  box-shadow:0 0 24px rgba(0,0,0,.3);
}
.nz-mbtn:hover { transform:translateY(-2px);box-shadow:0 0 40px rgba(0,0,0,.4); }

/* ── CALENDAR LIST ── */
.nz-cal-list { display:flex;flex-direction:column;gap:8px;margin-top:16px;text-align:left; }
.nz-cal-row {
  background:rgba(255,255,255,.05);border-radius:10px;padding:12px 14px;
  display:flex;align-items:center;gap:12px;
  border-left:3px solid transparent;transition:background .2s;
}
.nz-cal-row:hover { background:rgba(255,255,255,.08); }
.nz-cal-today { background:rgba(255,255,255,.1)!important;border-color:var(--nz-c1,#00c9a7)!important; }
.nz-cal-emoji { font-size:1.6rem;flex-shrink:0;width:36px;text-align:center; }
.nz-cal-info { flex:1;min-width:0; }
.nz-cal-date { font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:.55rem;color:rgba(255,255,255,.4);letter-spacing:.12em;margin-bottom:2px; }
.nz-cal-name { font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:.85rem;font-weight:700;color:#fff;margin-bottom:1px; }
.nz-cal-nru { font-size:.75rem;color:rgba(255,255,255,.5); }
.nz-cal-badge { background:rgba(0,201,167,.2);color:#00c9a7;border-radius:20px;padding:3px 10px;font-family:'Unbounded','Noto Sans',Arial,sans-serif;font-size:.6rem;font-weight:700;flex-shrink:0;white-space:nowrap; }

/* ── CONFETTI ── */
.nz-confetti { position:fixed;pointer-events:none;z-index:99995;animation:nz-cfall linear forwards; }
@keyframes nz-cfall { 0%{transform:translateY(-20px) rotate(0deg);opacity:1} 100%{transform:translateY(105vh) rotate(900deg);opacity:0} }

/* ══════════════════════════════════════════════
   MOBILE ADAPTATION
   480px  — телефон портрет
   640px  — телефон ландшафт / маленький планшет
   782px  — WP admin-bar breakpoint
   1024px — планшет
══════════════════════════════════════════════ */

/* Admin bar offsets */
.admin-bar #nz-ticker { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar #nz-ticker { top: 46px; }
}

/* ── TABLET (≤1024px) ── */
@media screen and (max-width: 1024px) {
  .nz-bc { gap: 12px; padding: 14px 18px; }
  .nz-msg { min-width: 140px; }
  .nz-greet { font-size: 1rem; }
}

/* ── MOBILE LANDSCAPE / SMALL TABLET (≤640px) ── */
@media screen and (max-width: 640px) {

  /* TICKER — чуть медленнее на маленьких экранах */
  .nz-ticker-track { animation-duration: 22s; }
  .nz-ti { font-size: .55rem; padding: 0 18px; letter-spacing: .08em; }

  /* BANNER — вертикальная раскладка */
  .nz-bc {
    flex-direction: column;
    align-items: flex-start;
    padding: 14px 16px 16px;
    gap: 10px;
  }
  .nz-logo { width: 100%; }
  .nz-logo-txt .l2 { font-size: .95rem; }
  .nz-msg { width: 100%; text-align: left; }
  .nz-greet { font-size: .9rem; }
  .nz-sub { font-size: .7rem; }

  /* Countdown + close кнопка в одну строку */
  .nz-cd-row {
    display: flex; align-items: center;
    justify-content: space-between; width: 100%;
  }
  .nz-cd { gap: 6px; }
  .nz-cdi { min-width: 44px; padding: 5px 8px; }
  .nz-cdn { font-size: 1rem; }
  .nz-cdl { font-size: .45rem; }
  .nz-close-btn { position: absolute; top: 10px; right: 12px; }

  /* BADGE — убираем текст, оставляем только иконку */
  .nz-badge-txt { display: none; }
  #nz-badge { top: auto; bottom: 90px; right: 14px; }
  .nz-badge-inner { padding: 8px 10px; border-radius: 50%; width: 52px; height: 52px; justify-content: center; }

  /* MODAL — на весь экран снизу (bottom sheet) */
  #nz-modal {
    align-items: flex-end;
    padding: 0;
  }
  .nz-card {
    width: 100%;
    max-width: 100%;
    border-radius: 20px 20px 0 0;
    padding: 28px 20px 32px;
    max-height: 90vh;
    overflow-y: auto;
  }
  .nz-mtitle { font-size: 1.3rem; }
  .nz-tulips svg:first-child,
  .nz-tulips svg:last-child { display: none; }
  .nz-tags { gap: 5px; }
  .nz-tag { font-size: .6rem; padding: 3px 9px; }
  .nz-mbtn { font-size: .72rem; padding: 11px 18px; }

  /* CALENDAR — тоже bottom sheet */
  #nz-calendar { align-items: flex-end; padding: 0; }
  .nz-cal-card {
    width: 100%;
    max-width: 100%;
    border-radius: 20px 20px 0 0;
    padding: 24px 16px 32px;
    max-height: 88vh;
    overflow-y: auto;
  }
  .nz-cal-row { padding: 10px 12px; gap: 10px; }
  .nz-cal-emoji { font-size: 1.4rem; width: 30px; }
  .nz-cal-name { font-size: .78rem; }
  .nz-cal-nru { font-size: .68rem; }
  .nz-cal-badge { font-size: .58rem; padding: 2px 7px; }
}

/* ── MOBILE PORTRAIT (≤480px) ── */
@media screen and (max-width: 480px) {

  /* TICKER */
  .nz-ti { font-size: .5rem; padding: 0 14px; letter-spacing: .06em; }

  /* BANNER — компактный */
  .nz-bc { padding: 12px 14px 14px; gap: 8px; }
  .nz-logo svg { width: 36px; height: 36px; }
  .nz-logo-txt .l1 { font-size: .48rem; }
  .nz-logo-txt .l2 { font-size: .85rem; }
  .nz-logo-txt .l3 { font-size: .44rem; }
  .nz-greet { font-size: .82rem; }
  .nz-sub { font-size: .65rem; line-height: 1.4;
    /* Обрезаем длинный digital-текст */
    display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
  }
  .nz-cdn { font-size: .9rem; }
  .nz-cdi { min-width: 38px; padding: 4px 6px; }

  /* BADGE */
  #nz-badge { right: 12px; bottom: 84px; }
  .nz-badge-inner { width: 48px; height: 48px; padding: 7px 9px; }

  /* MODAL */
  .nz-card { padding: 22px 16px 28px; }
  .nz-mtitle { font-size: 1.15rem; }
  .nz-msubt { font-size: .58rem; letter-spacing: .12em; }
  .nz-mdesc { font-size: .78rem; }
  .nz-mbtn { font-size: .68rem; padding: 10px 16px; width: 100%; text-align: center; }

  /* CALENDAR */
  .nz-cal-card { padding: 20px 14px 28px; }
  .nz-cal-emoji { display: none; }
  .nz-cal-row { gap: 8px; }
}

/* ── VERY SMALL (≤360px) — старые телефоны ── */
@media screen and (max-width: 360px) {
  .nz-logo-txt .l2 { font-size: .75rem; }
  .nz-greet { font-size: .75rem; }
  .nz-cd { gap: 4px; }
  .nz-cdi { min-width: 34px; padding: 4px 5px; }
  .nz-cdn { font-size: .82rem; }
  .nz-cdl { font-size: .4rem; }
  .nz-mtitle { font-size: 1rem; }
  .nz-card { padding: 18px 14px 24px; }
}
