/* вынесен из order-button.js (SEC-11: style-src без unsafe-inline); подключается ссылкой <link> на страницах и страховочно из скрипта */
    .nv-order-btn {
      display: inline-flex; align-items: center; justify-content: center;
      gap: 8px;
      padding: 12px 20px;
      border-radius: 12px;
      font-size: 0.9rem; font-weight: 700;
      letter-spacing: -0.005em;
      cursor: pointer; border: none;
      text-decoration: none;
      font-family: inherit;
      transition: transform .2s, box-shadow .2s, filter .2s;
      background: linear-gradient(135deg, #00e5ff, #0088b3);
      color: #07050d;
      box-shadow: 0 8px 20px rgba(0,229,255,0.25);
      width: 100%;
    }
    .nv-order-btn:hover {
      transform: translateY(-2px);
      filter: brightness(1.08);
      box-shadow: 0 12px 28px rgba(0,229,255,0.4);
    }
    .nv-order-btn:active { transform: translateY(0); }
    .nv-order-btn--compact {
      padding: 9px 14px;
      font-size: 0.82rem;
      border-radius: 10px;
      gap: 6px;
    }
    .nv-order-btn__icon { font-size: 1.05rem; line-height: 1; }

    /* Модалка */
    .nv-order-modal {
      position: fixed; inset: 0;
      background: rgba(7,5,13,0.85);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      z-index: 2000;
      display: none;
      align-items: center; justify-content: center;
      padding: 20px;
      animation: nvOrderFadeIn 0.25s ease;
    }
    .nv-order-modal.visible { display: flex; }
    @keyframes nvOrderFadeIn { from { opacity: 0 } to { opacity: 1 } }

    .nv-order-modal__card {
      position: relative;
      width: 100%; max-width: 460px;
      background: linear-gradient(180deg, #110a1f, #0a0716);
      border: 1px solid rgba(0,229,255,0.3);
      border-radius: 20px;
      padding: 32px 28px 28px;
      box-shadow: 0 30px 80px rgba(0,0,0,0.6), 0 0 60px rgba(0,229,255,0.15);
    }
    .nv-order-modal__close {
      position: absolute; top: 14px; right: 14px;
      width: 36px; height: 36px;
      background: rgba(244,241,255,0.05);
      border: 1px solid rgba(167,139,255,0.2);
      border-radius: 50%;
      color: rgba(244,241,255,0.7);
      font-size: 1.1rem; font-weight: 700;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: all 0.2s;
    }
    .nv-order-modal__close:hover {
      background: rgba(255,62,201,0.15);
      border-color: rgba(255,62,201,0.4);
      color: #fff;
      transform: rotate(90deg);
    }
    .nv-order-modal__title {
      margin: 0 0 4px;
      font-size: 1.25rem; font-weight: 800;
      color: #fff;
      letter-spacing: -0.015em;
    }
    .nv-order-modal__subtitle {
      margin: 0 0 22px;
      font-size: 0.88rem;
      color: rgba(244,241,255,0.6);
      line-height: 1.5;
    }
    .nv-order-modal__film {
      display: flex; align-items: center; gap: 12px;
      padding: 12px;
      background: rgba(0,229,255,0.06);
      border: 1px solid rgba(0,229,255,0.2);
      border-radius: 12px;
      margin-bottom: 20px;
    }
    .nv-order-modal__film-icon {
      width: 36px; height: 36px;
      background: linear-gradient(135deg, #00e5ff, #0088b3);
      border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      font-size: 1rem;
      color: #07050d;
      flex-shrink: 0;
    }
    .nv-order-modal__film-label {
      font-size: 0.72rem;
      color: rgba(244,241,255,0.5);
      letter-spacing: 0.05em;
      text-transform: uppercase;
    }
    .nv-order-modal__film-name {
      font-size: 0.95rem;
      font-weight: 700;
      color: #fff;
      margin-top: 2px;
    }

    .nv-order-modal__field { margin-bottom: 14px; }
    .nv-order-modal__field label {
      display: block;
      font-size: 0.78rem;
      color: rgba(244,241,255,0.6);
      margin-bottom: 6px;
      font-weight: 600;
    }
    .nv-order-modal__field label .nv-required { color: #ff3ec9; margin-left: 2px; }
    .nv-order-modal__input,
    .nv-order-modal__textarea {
      width: 100%;
      padding: 12px 14px;
      background: rgba(7,5,13,0.5);
      border: 1px solid rgba(167,139,255,0.2);
      border-radius: 10px;
      color: #fff;
      font-family: inherit;
      font-size: 0.95rem;
      transition: border-color 0.2s, background 0.2s;
      box-sizing: border-box;
    }
    .nv-order-modal__input:focus,
    .nv-order-modal__textarea:focus {
      outline: none;
      border-color: #00e5ff;
      background: rgba(7,5,13,0.7);
    }
    .nv-order-modal__textarea { resize: vertical; min-height: 70px; }

    .nv-order-modal__submit {
      width: 100%;
      padding: 14px;
      margin-top: 8px;
      background: linear-gradient(135deg, #00e5ff, #0088b3);
      color: #07050d;
      border: none;
      border-radius: 12px;
      font-size: 0.95rem; font-weight: 800;
      cursor: pointer;
      transition: transform 0.2s, filter 0.2s, box-shadow 0.2s;
      box-shadow: 0 10px 24px rgba(0,229,255,0.3);
      font-family: inherit;
    }
    .nv-order-modal__submit:hover:not(:disabled) {
      transform: translateY(-2px);
      filter: brightness(1.08);
      box-shadow: 0 14px 32px rgba(0,229,255,0.45);
    }
    .nv-order-modal__submit:disabled {
      opacity: 0.5;
      cursor: not-allowed;
      transform: none;
    }
    .nv-order-modal__msg {
      margin-top: 12px;
      padding: 10px 14px;
      border-radius: 10px;
      font-size: 0.85rem;
      display: none;
    }
    .nv-order-modal__msg.success {
      display: block;
      background: rgba(180,255,57,0.1);
      border: 1px solid rgba(180,255,57,0.3);
      color: #b4ff39;
    }
    .nv-order-modal__msg.error {
      display: block;
      background: rgba(255,62,201,0.1);
      border: 1px solid rgba(255,62,201,0.3);
      color: #ff3ec9;
    }
    .nv-order-modal__hint {
      margin-top: 14px;
      padding-top: 14px;
      border-top: 1px solid rgba(167,139,255,0.15);
      font-size: 0.78rem;
      color: rgba(244,241,255,0.5);
      text-align: center;
      line-height: 1.5;
    }
  
