/* ===== VTX Packs TV Linguistiques – Frontend ===== */
.vtx-widget *,.vtx-widget *::before,.vtx-widget *::after{box-sizing:border-box;margin:0;padding:0}
.vtx-modal-overlay *,.vtx-modal-overlay *::before,.vtx-modal-overlay *::after{box-sizing:border-box}

:root{
  --vtx-blue:#003A8C;
  --vtx-blue-light:#0057C8;
  --vtx-accent:#00B4D8;
  --vtx-bg:#F4F7FC;
  --vtx-white:#ffffff;
  --vtx-border:#E2E8F0;
  --vtx-text:#1A2332;
  --vtx-muted:#6B7A99;
  --vtx-shadow:0 2px 12px rgba(0,58,140,.08);
  --vtx-shadow-hover:0 8px 28px rgba(0,58,140,.15);
  --vtx-radius:14px;
  --vtx-t:.22s cubic-bezier(.4,0,.2,1);
}

/* Widget */
.vtx-widget{width:100%;max-width:480px;background:var(--vtx-white);border-radius:20px;box-shadow:var(--vtx-shadow);overflow:hidden;font-family:'DM Sans',sans-serif}
.vtx-widget__header{display:flex;align-items:center;gap:10px;padding:18px 24px 14px;border-bottom:1px solid var(--vtx-border)}
.vtx-widget__header-icon{width:26px;height:26px;color:var(--vtx-blue);flex-shrink:0}
.vtx-widget__title{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--vtx-blue)}

/* Pack list */
.vtx-packs{list-style:none;padding:6px 0}
.vtx-pack-item{display:flex;align-items:center;gap:14px;padding:13px 24px;cursor:pointer;transition:background var(--vtx-t);position:relative}
.vtx-pack-item:not(:last-child)::after{content:'';position:absolute;bottom:0;left:24px;right:24px;height:1px;background:var(--vtx-border)}
.vtx-pack-item:hover{background:#F0F5FF}
.vtx-pack-item:hover .vtx-pack-name{color:var(--vtx-blue-light)}
.vtx-pack-flag-emoji{font-size:22px;line-height:1;flex-shrink:0;width:32px;text-align:center}
.vtx-pack-name{flex:1;font-size:15px;font-weight:500;color:var(--vtx-text);transition:color var(--vtx-t)}
.vtx-pack-price{text-align:right;margin-right:12px;flex-shrink:0}
.vtx-pack-price__amount{display:block;font-size:13px;font-weight:700;color:var(--vtx-text);white-space:nowrap}
.vtx-pack-price__period{display:block;font-size:10px;color:var(--vtx-muted);text-transform:uppercase;letter-spacing:.05em}
.vtx-pack-btn{width:30px;height:30px;border-radius:50%;background:var(--vtx-blue);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--vtx-t),transform var(--vtx-t),box-shadow var(--vtx-t);box-shadow:0 2px 8px rgba(0,58,140,.25)}
.vtx-pack-btn svg{width:14px;height:14px;color:#fff;pointer-events:none}
.vtx-pack-item:hover .vtx-pack-btn{background:var(--vtx-blue-light);transform:scale(1.1);box-shadow:0 4px 14px rgba(0,87,200,.35)}

/* Animations */
.vtx-pack-item{animation:vtxPackIn .4s ease both}
.vtx-pack-item:nth-child(1){animation-delay:.05s}.vtx-pack-item:nth-child(2){animation-delay:.10s}
.vtx-pack-item:nth-child(3){animation-delay:.15s}.vtx-pack-item:nth-child(4){animation-delay:.20s}
.vtx-pack-item:nth-child(5){animation-delay:.25s}.vtx-pack-item:nth-child(6){animation-delay:.30s}
.vtx-pack-item:nth-child(7){animation-delay:.35s}.vtx-pack-item:nth-child(8){animation-delay:.40s}
@keyframes vtxPackIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}

/* Modal overlay */
.vtx-modal-overlay{position:fixed;inset:0;background:rgba(10,20,50,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .28s ease}
.vtx-modal-overlay.is-open{opacity:1;pointer-events:all}
.vtx-modal{background:var(--vtx-white);border-radius:20px;width:100%;max-width:520px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,58,140,.22);transform:translateY(24px) scale(.97);transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .28s ease;opacity:0;font-family:'DM Sans',sans-serif}
.vtx-modal-overlay.is-open .vtx-modal{transform:translateY(0) scale(1);opacity:1}

/* Modal header */
.vtx-modal__header{display:flex;align-items:center;gap:14px;padding:20px 24px 16px;background:linear-gradient(135deg,var(--vtx-blue) 0%,var(--vtx-blue-light) 100%);color:#fff;flex-shrink:0}
.vtx-modal__flag{font-size:30px;line-height:1}
.vtx-modal__info{flex:1}
.vtx-modal__pack-name{font-size:19px;font-weight:700;color:#fff}
.vtx-modal__pack-price{font-size:13px;color:rgba(255,255,255,.75);margin-top:2px}
.vtx-modal__close{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.15);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:background var(--vtx-t),transform var(--vtx-t);flex-shrink:0}
.vtx-modal__close:hover{background:rgba(255,255,255,.28);transform:rotate(90deg)}
.vtx-modal__close svg{width:18px;height:18px}

/* Modal body */
.vtx-modal__body{padding:18px 24px;overflow-y:auto;flex:1}
.vtx-modal__subtitle{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--vtx-muted);margin-bottom:14px}

/* Channels grid */
.vtx-channels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:10px}
.vtx-channel-card{background:var(--vtx-bg);border-radius:10px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid var(--vtx-border);transition:border-color var(--vtx-t),box-shadow var(--vtx-t),transform var(--vtx-t);animation:vtxChanIn .35s ease both}
@keyframes vtxChanIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.vtx-channel-card:hover{border-color:var(--vtx-accent);box-shadow:0 4px 16px rgba(0,180,216,.15);transform:translateY(-2px)}
.vtx-channel-icon{width:44px;height:44px;border-radius:8px;background:linear-gradient(135deg,var(--vtx-blue) 0%,var(--vtx-accent) 100%);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;letter-spacing:-.5px;text-align:center;line-height:1.2;flex-shrink:0}
.vtx-channel-name{font-size:11px;font-weight:600;color:var(--vtx-text);text-align:center;line-height:1.3}

/* Modal footer */
.vtx-modal__footer{padding:14px 24px 18px;border-top:1px solid var(--vtx-border);display:flex;gap:10px;flex-shrink:0}
.vtx-btn{flex:1;padding:11px 18px;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all var(--vtx-t);border:none}
.vtx-btn--primary{background:linear-gradient(135deg,var(--vtx-blue) 0%,var(--vtx-blue-light) 100%);color:#fff;box-shadow:0 4px 14px rgba(0,58,140,.3)}
.vtx-btn--primary:hover{box-shadow:0 6px 20px rgba(0,58,140,.4);transform:translateY(-1px)}
.vtx-btn--secondary{background:var(--vtx-bg);color:var(--vtx-muted);border:1px solid var(--vtx-border)}
.vtx-btn--secondary:hover{background:#E8EDF5;color:var(--vtx-text)}

@media(max-width:480px){
  .vtx-modal__footer{flex-direction:column}
  .vtx-channels-grid{grid-template-columns:repeat(3,1fr)}
  .vtx-pack-item{padding:12px 16px}
  .vtx-widget__header{padding:14px 16px 12px}
}
