@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,300;0,400;0,600;0,700;0,900;1,400&display=swap');

/* ═══════════════════════════════════════════════════
   TALENT SHOW WF 2026 — Design System v11
   ═══════════════════════════════════════════════════ */
:root{
  --blue:#2E75B6;--dark:#1F4E79;--teal:#0d9488;--gold:#d97706;
  --coral:#e11d48;--purple:#7c3aed;--green:#059669;
  --bg:#f0f4f8;--card:#fff;--border:#e2e8f0;
  --shadow:0 4px 24px rgba(31,78,121,.09);
  --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
#ts-app{
  font-family:'Inter',system-ui,sans-serif;
  color:#1a1a2e;width:100%;max-width:none !important;
}

/* ── HERO ──────────────────────────────────────────── */
.ts-hero{
  position:relative;overflow:hidden;
  background:#06061a;
  padding:56px 32px 44px;text-align:center;color:#fff;
}
.ts-hero::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 90% at 20% 50%,rgba(46,117,182,.28),transparent),
    radial-gradient(ellipse 60% 70% at 80% 30%,rgba(124,58,237,.18),transparent),
    radial-gradient(ellipse 50% 60% at 60% 80%,rgba(13,148,136,.15),transparent);
  animation:ts-bg-shift 12s ease-in-out infinite alternate;
}
@keyframes ts-bg-shift{0%{opacity:.7}100%{opacity:1}}

/* Particules flottantes */
.ts-hero::after{
  content:'✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧';
  position:absolute;top:16px;left:0;right:0;text-align:center;
  font-size:10px;color:rgba(255,179,71,.25);letter-spacing:24px;
  animation:ts-float 6s ease-in-out infinite;
}
@keyframes ts-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

.ts-hero-content{position:relative;z-index:2;}
.ts-hero-badge{
  display:inline-block;
  background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.35);
  color:#fbbf24;padding:5px 20px;border-radius:50px;
  font-size:.68rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;
  margin-bottom:18px;
  animation:ts-pop .6s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes ts-pop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}

.ts-hero-title{
  font-size:clamp(2.4rem,5vw,4rem);font-weight:900;
  letter-spacing:-2px;line-height:1;
  background:linear-gradient(135deg,#fff 0%,#fbbf24 45%,#f87171 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:ts-rise .7s .1s cubic-bezier(.34,1.56,.64,1) both;
}
.ts-hero-sub{
  font-size:.78rem;color:rgba(255,255,255,.4);letter-spacing:4px;
  text-transform:uppercase;margin:8px 0 28px;
  animation:ts-rise .7s .2s ease both;
}
@keyframes ts-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

.ts-hero-stats{
  display:inline-flex;gap:0;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:50px;padding:4px;
  backdrop-filter:blur(10px);
  animation:ts-rise .7s .3s ease both;
}
.ts-hs{display:flex;flex-direction:column;align-items:center;padding:10px 22px;gap:2px;}
.ts-hs+.ts-hs{border-left:1px solid rgba(255,255,255,.08);}
.ts-hn{font-size:1.5rem;font-weight:900;color:#fbbf24;line-height:1;}
.ts-hl{font-size:.6rem;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:1.5px;}

/* ── NAV ───────────────────────────────────────────── */
.ts-nav{
  display:flex;gap:0;background:rgba(255,255,255,.95);
  border-bottom:1px solid var(--border);
  overflow-x:auto;scrollbar-width:none;
  position:sticky;top:0;z-index:100;width:100%;
  backdrop-filter:blur(12px);
  box-shadow:0 2px 16px rgba(0,0,0,.07);
  transition:box-shadow .3s;
}
.ts-nav::-webkit-scrollbar{display:none}
.ts-nav-shadow{box-shadow:0 4px 24px rgba(0,0,0,.12);}
.ts-nav-btn{
  flex-shrink:0;background:none;border:none;
  padding:15px 20px;font-size:.8rem;font-weight:600;
  color:#6b7280;cursor:pointer;position:relative;
  transition:color .2s;white-space:nowrap;
  font-family:inherit;
}
.ts-nav-btn::after{
  content:'';position:absolute;bottom:0;left:12px;right:12px;height:3px;
  background:linear-gradient(90deg,var(--dark),var(--blue));
  border-radius:3px 3px 0 0;
  transform:scaleX(0) translateY(2px);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.ts-nav-btn:hover{color:var(--dark);}
.ts-nav-btn.active{color:var(--dark);font-weight:700;}
.ts-nav-btn.active::after{transform:scaleX(1) translateY(0);}

/* ── BODY / TABS ────────────────────────────────────── */
.ts-body{padding:24px 20px 56px;background:var(--bg);min-height:60vh;width:100%;}
.ts-tab{display:none;}
.ts-tab.active{display:block;animation:ts-tab-in .4s cubic-bezier(.4,0,.2,1);}
@keyframes ts-tab-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* Inner nav (bilan) */
.ts-inner-nav{display:flex;gap:8px;padding:20px 0 0;flex-wrap:wrap;}
.ts-inner-btn{
  background:#fff;border:1.5px solid var(--border);border-radius:50px;
  padding:8px 18px;font-size:.78rem;font-weight:600;color:#6b7280;
  cursor:pointer;transition:all .2s;font-family:inherit;
}
.ts-inner-btn:hover{border-color:var(--blue);color:var(--blue);}
.ts-inner-btn.active{
  background:var(--dark);color:#fff;border-color:var(--dark);
  box-shadow:0 4px 12px rgba(31,78,121,.25);
}
.ts-inner-tab{display:none;padding:18px 0 0;}
.ts-inner-tab.active{display:block;animation:ts-tab-in .35s ease;}

/* ── CARD ───────────────────────────────────────────── */
.ts-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);margin-bottom:16px;
  transition:box-shadow .25s;
}
.ts-card:hover{box-shadow:0 8px 32px rgba(31,78,121,.12);}
.ts-card-header{padding:24px 28px;color:#fff;position:relative;overflow:hidden;}
.ts-card-header::before{
  content:'';position:absolute;top:-30px;right:-30px;
  width:120px;height:120px;border-radius:50%;
  background:rgba(255,255,255,.06);
}
.ts-card-header::after{
  content:'';position:absolute;bottom:-20px;right:40px;
  width:80px;height:80px;border-radius:50%;
  background:rgba(255,255,255,.04);
}
.ts-card-header h2{margin:0 0 4px;font-size:1.25rem;font-weight:800;position:relative;z-index:1;}
.ts-card-header p{margin:0;opacity:.75;font-size:.83rem;position:relative;z-index:1;}
.ts-header-blue  {background:linear-gradient(135deg,#1F4E79 0%,#2E75B6 100%);}
.ts-header-teal  {background:linear-gradient(135deg,#0f5e57 0%,#0d9488 100%);}
.ts-header-gold  {background:linear-gradient(135deg,#78350f 0%,#d97706 100%);}
.ts-header-coral {background:linear-gradient(135deg,#881337 0%,#e11d48 100%);}
.ts-header-purple{background:linear-gradient(135deg,#4c1d95 0%,#7c3aed 100%);}
.ts-header-green {background:linear-gradient(135deg,#064e3b 0%,#059669 100%);}

/* ── FORM ───────────────────────────────────────────── */
.ts-form{padding:24px 28px;}
.ts-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:640px){.ts-grid-2{grid-template-columns:1fr;}}
.ts-field{margin-bottom:16px;}
.ts-label{
  display:flex;align-items:flex-start;gap:8px;
  font-weight:600;font-size:.83rem;color:#374151;margin-bottom:7px;
}
.ts-label em{font-weight:400;color:#9ca3af;font-style:normal;}
.ts-num{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--dark);color:#fff;border-radius:50%;
  min-width:20px;height:20px;font-size:10px;font-weight:700;flex-shrink:0;
}
.ts-req{color:#ef4444;}
.ts-section-title{
  font-size:.85rem;font-weight:700;color:var(--dark);
  border-bottom:2px solid var(--border);padding-bottom:7px;margin:20px 0 14px;
  display:flex;align-items:center;gap:8px;
}

.ts-input,.ts-select,.ts-textarea{
  width:100%;border:1.5px solid var(--border);border-radius:10px;
  padding:10px 13px;font-size:.87rem;color:#374151;background:#f8fafc;
  font-family:inherit;transition:all .2s;box-sizing:border-box;
}
.ts-input:focus,.ts-select:focus,.ts-textarea:focus{
  outline:none;border-color:var(--blue);background:#fff;
  box-shadow:0 0 0 4px rgba(46,117,182,.1);
}
.ts-input:hover,.ts-select:hover{border-color:rgba(46,117,182,.4);}
.ts-textarea{resize:vertical;min-height:68px;}
.ts-select-sm,.ts-textarea-sm{
  border:1.5px solid var(--border);border-radius:8px;padding:6px 10px;
  font-size:.8rem;background:#f8fafc;font-family:inherit;
}
.ts-textarea-sm{width:100%;resize:none;}

/* Radio cards */
.ts-radios{display:flex;flex-direction:column;gap:8px;}
.ts-radio-card{
  display:flex;align-items:center;gap:12px;background:#f8fafc;
  border:1.5px solid var(--border);border-radius:10px;padding:11px 16px;
  cursor:pointer;transition:all .2s;font-size:.87rem;color:#374151;
}
.ts-radio-card:hover{border-color:var(--blue);background:#eef4fb;transform:translateX(3px);}
.ts-radio-card:has(input:checked){
  border-color:var(--blue);background:#eef4fb;
  box-shadow:0 0 0 3px rgba(46,117,182,.1);
}
.ts-radio-card input{accent-color:var(--blue);width:16px;height:16px;flex-shrink:0;}

/* Genre */
.ts-genre-btns{display:flex;gap:6px;align-items:center;}
.ts-genre-btn span{
  display:inline-block;padding:6px 12px;border:1.5px solid var(--border);
  border-radius:8px;font-size:.78rem;font-weight:700;cursor:pointer;background:#fff;
  transition:all .2s;
}
.ts-genre-btn:hover span{border-color:var(--blue);}
.ts-gb-active span{background:var(--dark);color:#fff;border-color:var(--dark) !important;
  box-shadow:0 2px 8px rgba(31,78,121,.25);}
.ts-gb-g.ts-gb-active span{background:#1d4ed8;border-color:#1d4ed8;}
.ts-gb-f.ts-gb-active span{background:#be185d;border-color:#be185d;}
.ts-genre-btn input{display:none;}

/* Élèves */
.ts-eleve-header-row,.ts-eleve-row{
  display:grid;grid-template-columns:1fr 1fr 100px 120px 36px;
  gap:8px;padding:0 28px;align-items:center;
}
.ts-eleve-header-row{font-size:.7rem;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;padding-bottom:4px;}
.ts-eleve-row{margin-bottom:8px;}
.ts-eleve-row .ts-input{padding:8px 11px;}
@media(max-width:640px){.ts-eleve-row,.ts-eleve-header-row{grid-template-columns:1fr 1fr;padding:0 16px;}}

/* Buttons */
.ts-btn{
  border:none;border-radius:10px;padding:11px 24px;
  font-size:.87rem;font-weight:700;cursor:pointer;
  transition:all .2s;display:inline-flex;align-items:center;gap:8px;
  font-family:inherit;position:relative;overflow:hidden;
}
.ts-btn::before{
  content:'';position:absolute;inset:0;background:rgba(255,255,255,.0);
  transition:background .2s;
}
.ts-btn:hover::before{background:rgba(255,255,255,.1);}
.ts-btn-primary{
  background:linear-gradient(135deg,var(--dark),var(--blue));color:#fff;
  box-shadow:0 4px 16px rgba(31,78,121,.2);
}
.ts-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(31,78,121,.3);}
.ts-btn-primary:active{transform:translateY(0);}
.ts-btn-ghost{
  background:#fff;color:#374151;border:1.5px solid var(--border);
  box-shadow:0 1px 4px rgba(0,0,0,.05);
}
.ts-btn-ghost:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px);}
.ts-btn-rm{
  background:none;border:none;color:#ef4444;cursor:pointer;
  font-size:.9rem;padding:4px 8px;border-radius:6px;transition:all .15s;
}
.ts-btn-rm:hover{background:#fee2e2;transform:scale(1.1);}
.ts-arrow{transition:transform .2s;}
.ts-btn:hover .ts-arrow{transform:translateX(4px);}
.ts-form-footer{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);}
.ts-inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.ts-pwd-input{max-width:200px;}

/* Messages */
.ts-msg{border-radius:10px;padding:12px 18px;margin:14px 28px;font-size:.85rem;
  animation:ts-pop .3s ease;}
.ts-ok{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46;}
.ts-err{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;}
.ts-notice{
  background:#eff6ff;border:1px solid #93c5fd;color:#1e40af;
  border-radius:10px;padding:18px;margin:18px 28px;text-align:center;
}
.ts-muted{color:#9ca3af;font-size:.78rem;}

/* Tables */
.ts-table-wrap{overflow-x:auto;padding:0 28px 4px;}
.ts-table{width:100%;border-collapse:collapse;font-size:.81rem;}
.ts-table th{
  background:linear-gradient(135deg,var(--dark),var(--blue));
  color:#fff;padding:10px 12px;text-align:left;font-weight:600;font-size:.76rem;
}
.ts-table td{padding:9px 12px;border-bottom:1px solid #f1f5f9;vertical-align:top;transition:background .15s;}
.ts-table tr:hover td{background:#f0f7ff;}
.ts-badge{display:inline-block;border-radius:20px;padding:2px 9px;font-size:.7rem;font-weight:700;}
.ts-badge-green{background:#d1fae5;color:#065f46;}
.ts-badge-red{background:#fee2e2;color:#991b1b;}
.ts-badge-orange{background:#fef3c7;color:#92400e;}

/* Export box */
.ts-export-box{background:#f8fafc;border-top:1px dashed var(--border);padding:18px 28px;}
.ts-export-box h4{font-size:.86rem;font-weight:700;color:#374151;margin:0 0 12px;}
.ts-section-divider{
  display:flex;align-items:center;gap:12px;padding:16px 28px 6px;
  color:#9ca3af;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;
}
.ts-section-divider::before,.ts-section-divider::after{content:'';flex:1;height:1px;background:var(--border);}

/* ── RÉSULTATS CARDS ─────────────────────────────────── */
.ts-resultats-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:12px;padding:0 28px 20px;
}
.ts-res-card{
  border:1.5px solid var(--border);border-radius:12px;padding:14px;
  background:#f8fafc;transition:all .25s;cursor:default;
}
.ts-res-card:hover{border-color:var(--blue);box-shadow:0 4px 16px rgba(31,78,121,.1);transform:translateY(-2px);}
.ts-res-card.ts-rang-1{border-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7);}
.ts-res-card.ts-rang-2{border-color:#94a3b8;background:linear-gradient(135deg,#f9fafb,#f1f5f9);}
.ts-res-card.ts-rang-3{border-color:#d97706;background:linear-gradient(135deg,#fff7ed,#fde8cc);}
.ts-res-nom{font-weight:800;font-size:.88rem;color:#1a1a2e;margin-bottom:3px;}
.ts-res-info{font-size:.72rem;color:#6b7280;margin-top:2px;}
.ts-res-rang-btns{display:flex;gap:5px;margin-top:10px;flex-wrap:wrap;}
.ts-rang-btn{display:inline-block;cursor:pointer;}
.ts-rang-btn span{
  display:inline-block;padding:5px 11px;border:1.5px solid var(--border);
  border-radius:8px;font-size:.8rem;background:#fff;transition:all .18s;cursor:pointer;
}
.ts-rang-btn:hover span{border-color:var(--blue);transform:scale(1.05);}
.ts-rang-btn input:checked+span{background:var(--dark);color:#fff;border-color:var(--dark);}

/* ── GRANDE FINALE ───────────────────────────────────── */
.ts-cat-section{padding:18px 28px;border-bottom:1px solid #f1f5f9;}
.ts-cat-section:last-of-type{border-bottom:none;}
.ts-cat-label{font-size:.95rem;font-weight:800;color:var(--dark);margin:0 0 12px;}
.ts-finalist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
@media(max-width:640px){.ts-finalist-grid{grid-template-columns:1fr;}}
.ts-finalist-card{
  border-radius:14px;padding:18px 16px;border:1.5px solid;
  transition:all .25s;
}
.ts-finalist-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.1);}
.ts-rang-1{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fbbf24;}
.ts-rang-2{background:linear-gradient(135deg,#f9fafb,#f1f5f9);border-color:#cbd5e1;}
.ts-rang-3{background:linear-gradient(135deg,#fff7ed,#fde8cc);border-color:#f59e0b;}
.ts-finalist-rank{font-size:2.2rem;line-height:1;margin-bottom:6px;animation:ts-bounce 2s ease-in-out infinite;}
@keyframes ts-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.ts-finalist-name{font-weight:800;font-size:.92rem;color:#1a1a2e;margin-bottom:4px;}
.ts-finalist-info{font-size:.73rem;color:#6b7280;margin-top:2px;}
.ts-finalist-eleves{font-size:.71rem;color:#374151;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.07);line-height:1.6;}

/* ── BILAN ───────────────────────────────────────────── */
.ts-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:22px 28px;}
@media(max-width:640px){.ts-kpi-grid{grid-template-columns:repeat(2,1fr);}}
.ts-kpi{
  border-radius:14px;padding:20px 16px;text-align:center;border:1.5px solid;
  transition:all .25s;
}
.ts-kpi:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.ts-kpi-icon{font-size:1.6rem;margin-bottom:4px;}
.ts-kpi-num{font-size:2.2rem;font-weight:900;line-height:1;}
.ts-kpi-label{font-size:.68rem;margin-top:4px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;}
.ts-kpi-blue  {background:#eff6ff;border-color:#93c5fd;color:#1e40af;}
.ts-kpi-gold  {background:#fffbeb;border-color:#fcd34d;color:#78350f;}
.ts-kpi-green {background:#f0fdf4;border-color:#86efac;color:#166534;}
.ts-kpi-coral {background:#fff1f2;border-color:#fda4af;color:#9f1239;}
.ts-kpi-purple{background:#f5f3ff;border-color:#c4b5fd;color:#5b21b6;}
.ts-kpi-pink  {background:#fdf4ff;border-color:#e879f9;color:#86198f;}

.ts-chart-section{padding:0 28px 20px;}
.ts-gender-bar{display:flex;height:36px;border-radius:50px;overflow:hidden;width:100%;}
.ts-gb-fille,.ts-gb-garcon{
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:.78rem;font-weight:700;transition:width 1s ease;
}
.ts-gb-fille{background:linear-gradient(90deg,#db2777,#f472b6);}
.ts-gb-garcon{background:linear-gradient(90deg,#1d4ed8,#60a5fa);}
.ts-gender-legend{font-size:.76rem;color:#6b7280;margin-top:8px;display:flex;align-items:center;gap:6px;}
.ts-dot{display:inline-block;width:9px;height:9px;border-radius:50%;}
.ts-dot-f{background:#db2777;}.ts-dot-g{background:#1d4ed8;}

.ts-bilan-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0 28px 24px;}
@media(max-width:640px){.ts-bilan-cols{grid-template-columns:1fr;}}
.ts-bar-row{display:grid;grid-template-columns:130px 1fr 30px;align-items:center;gap:8px;margin-bottom:10px;}
.ts-bar-label{font-size:.78rem;color:#374151;font-weight:600;line-height:1.3;}
.ts-bar-track{background:#f1f5f9;border-radius:50px;height:10px;overflow:hidden;}
.ts-bar-fill{
  height:100%;border-radius:50px;width:0%;
  background:linear-gradient(90deg,var(--dark),var(--blue));
  transition:width 1.3s cubic-bezier(.4,0,.2,1);
}
.ts-bar-lang{background:linear-gradient(90deg,#0f5e57,#34d399);}
.ts-bar-val{font-size:.78rem;font-weight:700;color:var(--dark);text-align:right;}

/* Résumé établissements */
.ts-etab-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:12px;}
.ts-etab-summary-card{
  background:#f8fafc;border:1.5px solid var(--border);border-radius:12px;
  padding:14px 16px;text-align:center;transition:all .2s;
}
.ts-etab-summary-card:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:var(--shadow);}
.ts-etab-sum-icon{font-size:1.8rem;margin-bottom:5px;}
.ts-etab-sum-name{font-size:.75rem;font-weight:700;color:#374151;margin-bottom:5px;line-height:1.3;}
.ts-etab-sum-nums{font-size:.82rem;color:#6b7280;}

/* Sondage résumé */
.ts-sondage-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:20px 28px;}
@media(max-width:640px){.ts-sondage-summary{grid-template-columns:repeat(2,1fr);}}
.ts-ss-card{border-radius:12px;padding:16px;text-align:center;font-size:.8rem;border:1.5px solid;transition:transform .2s;}
.ts-ss-card:hover{transform:translateY(-2px);}
.ts-ss-card strong{display:block;font-size:1.8rem;font-weight:900;margin-bottom:2px;line-height:1;}
.ts-ss-green{background:#d1fae5;border-color:#6ee7b7;color:#065f46;}
.ts-ss-orange{background:#fef3c7;border-color:#fcd34d;color:#78350f;}
.ts-ss-red{background:#fee2e2;border-color:#fca5a5;color:#991b1b;}
.ts-ss-blue{background:#eff6ff;border-color:#93c5fd;color:#1e40af;}

/* Bilan établissements */
.ts-etab-card{border-radius:14px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:16px;}
.ts-etab-head{
  background:linear-gradient(135deg,var(--dark),var(--blue));
  color:#fff;padding:14px 22px;
}
.ts-etab-name{font-size:.95rem;font-weight:800;margin-bottom:5px;}
.ts-etab-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.76rem;opacity:.88;margin-bottom:6px;}
.ts-pills{display:flex;flex-wrap:wrap;gap:5px;}
.ts-pill{background:rgba(255,255,255,.2);border-radius:20px;padding:2px 9px;font-size:.68rem;font-weight:600;}
.ts-pill-dark{background:#e0f2fe;color:#0369a1;}
.ts-groupe-item{padding:12px 22px;border-bottom:1px solid #f8fafc;background:#fff;transition:background .15s;}
.ts-groupe-item:hover{background:#f8fafc;}
.ts-groupe-item.ts-finaliste{background:linear-gradient(90deg,rgba(251,191,36,.06),transparent);}
.ts-groupe-top{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:7px;font-size:.83rem;}
.ts-tag{background:#e0f2fe;color:#0369a1;border-radius:20px;padding:2px 9px;font-size:.67rem;font-weight:700;}
.ts-tag-b{background:#ede9fe;color:#5b21b6;}
.ts-tag-gold{background:#fef3c7;color:#92400e;}
.ts-eleve-chips{display:flex;flex-wrap:wrap;gap:5px;}
.ts-eleve-chip{border-radius:20px;padding:3px 9px;font-size:.7rem;font-weight:600;transition:transform .15s;}
.ts-eleve-chip:hover{transform:scale(1.05);}
.ts-eleve-chip em{font-style:normal;opacity:.65;margin-left:3px;}
.ts-chip-boy{background:#dbeafe;color:#1d4ed8;}
.ts-chip-girl{background:#fce7f3;color:#be185d;}

/* ── PUBLIC STATS [ts_stats] ──────────────────────────── */
.tswf-public-stats{max-width:700px;margin:0 auto;font-family:'Inter',system-ui,sans-serif;}
.tswf-ps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
@media(max-width:560px){.tswf-ps-grid{grid-template-columns:repeat(2,1fr);}}
.tswf-ps-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;padding:16px;text-align:center;transition:all .2s;}
.tswf-ps-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.08);}
.tswf-ps-icon{font-size:1.6rem;}
.tswf-ps-num{font-size:1.9rem;font-weight:900;color:#1F4E79;line-height:1;}
.tswf-ps-lbl{font-size:.72rem;color:#6b7280;margin-top:2px;}
.tswf-ps-cats{margin-bottom:12px;}
.tswf-ps-bar-row{display:grid;grid-template-columns:140px 1fr 28px;align-items:center;gap:8px;margin-bottom:8px;font-size:.78rem;}
.tswf-ps-track{background:#f1f5f9;border-radius:50px;height:8px;overflow:hidden;}
.tswf-ps-fill{height:100%;border-radius:50px;background:linear-gradient(90deg,#1F4E79,#2E75B6);}
.tswf-ps-gender{display:flex;height:30px;border-radius:50px;overflow:hidden;}
.tswf-ps-gb{display:flex;align-items:center;justify-content:center;color:#fff;font-size:.74rem;font-weight:700;background:linear-gradient(90deg,#db2777,#f472b6);}
.tswf-ps-gb-m{background:linear-gradient(90deg,#1d4ed8,#60a5fa);}

/* ── PRINT ────────────────────────────────────────────── */
.ts-print-wrap{max-width:210mm;margin:0 auto;font-family:'Segoe UI',Arial,sans-serif;font-size:11pt;}
.ts-print-actions{text-align:center;padding:16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;margin-bottom:20px;}
.ts-print-btn{background:linear-gradient(135deg,#1F4E79,#2E75B6);color:#fff;border:none;border-radius:8px;padding:11px 24px;font-size:.9rem;font-weight:700;cursor:pointer;}
.ts-print-page{background:#fff;padding:20mm;margin-bottom:8px;}
.ts-print-cover{text-align:center;padding:20mm 0 12mm;}
.ts-print-logo{font-size:4rem;margin-bottom:14px;}
.ts-print-cover h1{font-size:26pt;font-weight:900;color:#1F4E79;margin:0 0 6px;letter-spacing:-1px;}
.ts-print-cover h2{font-size:15pt;font-weight:400;color:#6b7280;margin:0 0 20px;}
.ts-print-date{font-size:12pt;font-weight:700;color:#374151;margin:0 0 5px;}
.ts-print-subtitle{font-size:9.5pt;color:#9ca3af;}
.ts-print-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px;}
.ts-print-stat{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:12px;text-align:center;}
.ts-ps-n{display:block;font-size:20pt;font-weight:900;color:#1F4E79;line-height:1;}
.ts-ps-l{display:block;font-size:8pt;color:#6b7280;margin-top:2px;text-transform:uppercase;letter-spacing:.5px;}
.ts-print-h2{font-size:13pt;font-weight:800;color:#1F4E79;border-bottom:2px solid #1F4E79;padding-bottom:5px;margin:20px 0 10px;}
.ts-print-h3{font-size:10.5pt;font-weight:700;color:#374151;border-left:3px solid #2E75B6;padding-left:9px;margin:14px 0 7px;}
.ts-print-etab-header{background:#1F4E79;color:#fff;padding:11px 15px;border-radius:7px;margin-bottom:10px;}
.ts-print-etab-header h2{border:none;color:#fff;margin:0 0 4px;font-size:11.5pt;}
.ts-print-etab-meta{font-size:8pt;opacity:.85;display:flex;flex-wrap:wrap;gap:12px;}
.ts-print-groupe{border:1px solid #e2e8f0;border-radius:7px;padding:9px 13px;margin-bottom:7px;}
.ts-print-groupe-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:4px;font-size:9.5pt;font-weight:700;}
.ts-print-medaille{font-size:13pt;}
.ts-print-tag{background:#e0f2fe;color:#0369a1;border-radius:20px;padding:1px 7px;font-size:7pt;font-weight:700;}
.ts-print-tag-lang{background:#ede9fe;color:#5b21b6;}
.ts-print-tag-gold{background:#fef3c7;color:#92400e;}
.ts-print-eleves{font-size:8.5pt;color:#374151;margin:3px 0;line-height:1.6;}
.ts-print-notes{font-size:8pt;color:#7c3aed;font-style:italic;background:#f5f3ff;border-radius:5px;padding:3px 8px;margin:3px 0;}
.ts-print-muted{color:#9ca3af;font-size:8pt;}
.ts-print-table{width:100%;border-collapse:collapse;font-size:9pt;margin-bottom:10px;}
.ts-print-table th{background:#1F4E79;color:#fff;padding:7px 9px;text-align:left;font-weight:600;}
.ts-print-table td{padding:5px 9px;border-bottom:1px solid #f1f5f9;}
.ts-print-table tr:nth-child(even) td{background:#f8fafc;}
.ts-finalist-grid-print{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
.ts-finalist-card-print{border-radius:8px;padding:12px;border:1.5px solid;}
.ts-finalist-card-print .medaille{font-size:16pt;display:block;margin-bottom:3px;}
.ts-finalist-card-print .nom{font-weight:800;font-size:9.5pt;margin-bottom:3px;}
.ts-finalist-card-print .info{font-size:7.5pt;color:#6b7280;margin-top:1px;}
.ts-finalist-card-print .eleves{font-size:7.5pt;color:#374151;margin-top:6px;padding-top:6px;border-top:1px solid rgba(0,0,0,.08);}
.rang-print-1{background:#fffbeb;border-color:#fbbf24;}
.rang-print-2{background:#f9fafb;border-color:#cbd5e1;}
.rang-print-3{background:#fff7ed;border-color:#f59e0b;}


  body{padding:0}
  .ts-print-wrap{max-width:none}
  .ts-print-page{padding:12mm 15mm;page-break-after:always;margin:0}
  .ts-print-page:last-child{page-break-after:avoid}
  .ts-print-etab-header{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ts-finalist-card-print,.ts-finalist-grid-print,.ts-print-groupe{page-break-inside:avoid}
  @page{size:A4;margin:0}
}

/* Debug bar bilan global */
.ts-debug-bar{
  background:#fef9c3;border:1px solid #fde047;color:#713f12;
  border-radius:8px;padding:8px 16px;margin:16px 28px 0;
  font-size:.78rem;font-weight:600;
}

/* ══════════════════════════════════════════
   PRÉSENTATION PROJET + SONDAGE REDESIGN
   ══════════════════════════════════════════ */

/* Card projet */
.ts-project-card{padding:0;margin-bottom:16px;}
.ts-project-header{
  display:flex;align-items:center;gap:18px;
  padding:24px 28px 20px;border-bottom:1px solid var(--border);
}
.ts-project-logo{
  font-size:3rem;width:64px;height:64px;display:flex;
  align-items:center;justify-content:center;
  background:linear-gradient(135deg,#1F4E79,#2E75B6);
  border-radius:16px;flex-shrink:0;
  box-shadow:0 4px 16px rgba(31,78,121,.3);
  animation:ts-pop .6s cubic-bezier(.34,1.56,.64,1) both;
}
.ts-project-title{font-size:1.3rem;font-weight:900;color:#1a1a2e;margin:0 0 3px;}
.ts-project-subtitle{font-size:.82rem;color:#6b7280;margin:0;}
.ts-project-desc{
  padding:18px 28px;font-size:.88rem;color:#374151;
  line-height:1.7;border-bottom:1px solid var(--border);
  background:linear-gradient(135deg,#f8fafc,#fff);
}
.ts-project-desc strong{color:var(--dark);}

/* Timeline */
.ts-timeline{padding:20px 28px;display:flex;flex-direction:column;gap:0;border-bottom:1px solid var(--border);}
.ts-tl-item{display:flex;gap:16px;align-items:flex-start;position:relative;padding-bottom:20px;}
.ts-tl-item:last-child{padding-bottom:0;}
.ts-tl-item::before{
  content:'';position:absolute;left:11px;top:24px;bottom:0;width:2px;
  background:linear-gradient(to bottom,var(--border),transparent);
}
.ts-tl-item:last-child::before{display:none;}
.ts-tl-dot{
  width:24px;height:24px;border-radius:50%;flex-shrink:0;
  background:var(--border);border:3px solid #fff;margin-top:2px;
  box-shadow:0 0 0 2px var(--border);
  transition:all .3s;
}
.ts-tl-dot-now{
  background:linear-gradient(135deg,var(--dark),var(--blue));
  box-shadow:0 0 0 3px rgba(46,117,182,.25);
  animation:ts-pulse-dot 2s ease-in-out infinite;
}
@keyframes ts-pulse-dot{0%,100%{box-shadow:0 0 0 3px rgba(46,117,182,.25)}50%{box-shadow:0 0 0 6px rgba(46,117,182,.1)}}
.ts-tl-dot-star{
  background:linear-gradient(135deg,#d97706,#fbbf24);
  box-shadow:0 0 0 3px rgba(251,191,36,.3);
  font-size:0;
}
.ts-tl-content{flex:1;}
.ts-tl-date{font-size:.7rem;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.8px;margin-bottom:2px;}
.ts-tl-title{font-size:.9rem;font-weight:700;color:#1a1a2e;margin-bottom:3px;}
.ts-tl-desc{font-size:.8rem;color:#6b7280;line-height:1.55;}
.ts-tl-finale .ts-tl-title{color:var(--gold);}
.ts-tl-finale .ts-tl-date{color:var(--gold);}

/* Missions grid */
.ts-missions-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
  padding:18px 28px 22px;
}
@media(max-width:640px){.ts-missions-grid{grid-template-columns:repeat(2,1fr);}}
.ts-mission-card{
  background:#f8fafc;border:1.5px solid var(--border);border-radius:12px;
  padding:14px 12px;text-align:center;transition:all .25s;
}
.ts-mission-card:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:var(--shadow);}
.ts-mission-icon{font-size:1.5rem;margin-bottom:6px;}
.ts-mission-title{font-size:.78rem;font-weight:800;color:var(--dark);margin-bottom:5px;}
.ts-mission-desc{font-size:.7rem;color:#6b7280;line-height:1.5;}

/* Référent toggle */
.ts-referent-toggle{display:block;cursor:pointer;}
.ts-referent-toggle input{display:none;}
.ts-referent-btn{
  display:flex;align-items:center;gap:12px;
  background:#f8fafc;border:1.5px solid var(--border);
  border-radius:12px;padding:14px 18px;transition:all .2s;
}
.ts-referent-toggle:hover .ts-referent-btn{border-color:var(--blue);background:#eef4fb;}
.ts-referent-toggle input:checked ~ .ts-referent-btn{
  background:linear-gradient(135deg,rgba(31,78,121,.08),rgba(46,117,182,.05));
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(46,117,182,.1);
}
.ts-referent-icon{font-size:1.4rem;}
.ts-referent-text{font-size:.87rem;font-weight:600;color:#374151;flex:1;}
.ts-referent-check{
  width:22px;height:22px;border-radius:50%;background:var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:.75rem;color:transparent;font-weight:700;
  transition:all .2s;
}
.ts-referent-toggle input:checked ~ .ts-referent-btn .ts-referent-check{
  background:var(--blue);color:#fff;
}
.ts-field-hint{font-size:.75rem;color:#9ca3af;margin-top:7px;padding-left:4px;line-height:1.5;}

/* Séparateur section formulaire */
#tab-sondage .ts-card+.ts-card{border-top-left-radius:0;border-top-right-radius:0;border-top:none;}

/* ══════════════════════════════════════════
   IMPRESSION / PDF — Reset complet
   Garantit que tout le contenu est visible
   ══════════════════════════════════════════ */
@media print {
  /* Reset couleurs pour impression */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  /* Fond blanc, texte noir partout */
  html, body {
    background: #ffffff !important;
    color: #000000 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Cacher les éléments non imprimables */
  .ts-nav,
  .ts-hero::after,
  .ts-export-box,
  .no-print,
  .ts-debug-bar,
  .ts-print-actions,
  .ts-btn-rm,
  .ts-inner-nav,
  button[type="button"],
  .ts-btn-ghost {
    display: none !important;
  }

  /* Hero : fond dégradé → bleu imprimable */
  .ts-hero {
    background: #1F4E79 !important;
    color: #ffffff !important;
    padding: 20px !important;
    print-color-adjust: exact !important;
  }
  .ts-hero-title {
    -webkit-text-fill-color: #ffffff !important;
    color: #ffffff !important;
  }
  .ts-hero-sub, .ts-hl { color: rgba(255,255,255,0.8) !important; }
  .ts-hn { color: #fbbf24 !important; }

  /* Body et tabs */
  .ts-body { background: #ffffff !important; padding: 0 !important; }
  .ts-tab { display: block !important; }
  .ts-tab:not(.active) { display: none !important; }

  /* Cards */
  .ts-card {
    border: 1px solid #e2e8f0 !important;
    box-shadow: none !important;
    break-inside: avoid;
  }

  /* Headers colorés → gardés avec -webkit-print-color-adjust */
  .ts-header-blue  { background: #1F4E79 !important; print-color-adjust: exact !important; }
  .ts-header-teal  { background: #0d9488 !important; print-color-adjust: exact !important; }
  .ts-header-gold  { background: #d97706 !important; print-color-adjust: exact !important; }
  .ts-header-coral { background: #e11d48 !important; print-color-adjust: exact !important; }
  .ts-header-purple{ background: #7c3aed !important; print-color-adjust: exact !important; }
  .ts-header-green { background: #059669 !important; print-color-adjust: exact !important; }

  /* KPI */
  .ts-kpi { break-inside: avoid; border: 1px solid #e2e8f0 !important; }
  .ts-kpi-num { color: inherit !important; }

  /* Tables */
  .ts-table th { background: #1F4E79 !important; color: #fff !important; print-color-adjust: exact !important; }
  .ts-table td { border-bottom: 1px solid #e2e8f0 !important; }

  /* Barres */
  .ts-bar-fill { print-color-adjust: exact !important; }

  /* Finalistes */
  .ts-finalist-card { break-inside: avoid; }
  .ts-rang-1 { background: #fffbeb !important; print-color-adjust: exact !important; }
  .ts-rang-2 { background: #f9fafb !important; print-color-adjust: exact !important; }
  .ts-rang-3 { background: #fff7ed !important; print-color-adjust: exact !important; }

  /* Établissements */
  .ts-etab-head { background: #1F4E79 !important; color: #fff !important; print-color-adjust: exact !important; }

  /* Mise en page */
  #ts-app { max-width: 100% !important; }
  @page { size: A4; margin: 15mm 12mm; }
}

/* Bouton éditer inscription */
.ts-insc-edit-btn{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:8px;padding:7px 14px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;}
.ts-insc-edit-btn:hover{background:rgba(255,255,255,.25);}
.ts-insc-annonce{background:linear-gradient(135deg,rgba(251,191,36,.12),rgba(251,191,36,.05));border:1px solid rgba(251,191,36,.3);border-left:4px solid #fbbf24;padding:14px 20px;font-size:.88rem;color:#78350f;margin:0;line-height:1.6;}
