/* Tunnel — feuille de style */
:root{
  --yellow:#FFE401;
  --yellow-dark:#E5CC00;
  --dark:#181818;
  --dark-2:#1e1e1e;
  --text:#2d2d2d;
  --muted:#666;
  --bg-grey:#f6f7fb;
  --green:#22c55e;
  --red:#ef4444;
  --border:#e5e7eb;
  --blue:#2563eb;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Open Sans',sans-serif;color:var(--text);background:var(--bg-grey);line-height:1.55;min-height:100vh;display:flex;flex-direction:column}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}

/* Header */
.tn-header{background:#fff;border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;justify-content:space-between}
.tn-logo img{height:38px}
.tn-secure{font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:6px}
.tn-secure i{color:var(--green)}

/* Progress bar */
.tn-progress-wrap{background:#fff;padding:18px 24px 14px;border-bottom:1px solid var(--border)}
.tn-progress-inner{max-width:920px;margin:0 auto;display:flex;justify-content:space-between;gap:6px}
.tn-step{flex:1;text-align:center;font-size:.7rem;color:var(--muted);position:relative}
.tn-step-num{width:28px;height:28px;border-radius:50%;background:#e5e7eb;color:#9ca3af;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 4px;font-size:.78rem;transition:.15s}
.tn-step.done .tn-step-num{background:var(--green);color:#fff}
.tn-step.active .tn-step-num{background:var(--yellow);color:var(--dark);box-shadow:0 0 0 4px rgba(255,228,1,.25)}
.tn-step.active .tn-step-label{color:var(--dark);font-weight:700}
.tn-progress-bar{max-width:920px;margin:14px auto 0;height:4px;background:#e5e7eb;border-radius:99px;overflow:hidden}
.tn-progress-fill{height:100%;background:var(--yellow);transition:width .3s ease}

/* Main */
.tn-main{flex:1;max-width:880px;width:100%;margin:0 auto;padding:36px 24px 80px}
.tn-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:36px;box-shadow:0 4px 20px rgba(0,0,0,.04)}
.tn-card h1{font-size:1.8rem;color:var(--dark);font-weight:800;margin-bottom:10px;line-height:1.25}
.tn-card .tn-lead{color:var(--muted);font-size:1rem;margin-bottom:28px;max-width:680px}

/* Forms */
.tn-form-group{margin-bottom:20px}
.tn-form-group label{display:block;font-weight:600;color:var(--dark);margin-bottom:6px;font-size:.92rem}
.tn-form-group label .req{color:var(--red);font-weight:400}
.tn-form-group .tn-hint{font-size:.8rem;color:var(--muted);margin-bottom:6px}
.tn-form-group input[type=text],
.tn-form-group input[type=email],
.tn-form-group input[type=tel],
.tn-form-group input[type=date],
.tn-form-group textarea,
.tn-form-group select{
  width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:.95rem;color:var(--text);background:#fff;transition:.15s
}
.tn-form-group input:focus,
.tn-form-group textarea:focus,
.tn-form-group select:focus{outline:none;border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,228,1,.2)}
.tn-form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.tn-form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}

/* Toggle Particulier/Entreprise */
.tn-toggle{display:grid;grid-template-columns:1fr 1fr;background:#f3f4f6;border-radius:10px;padding:4px;margin-bottom:28px}
.tn-toggle label{padding:14px;text-align:center;cursor:pointer;border-radius:8px;font-weight:600;transition:.15s;color:var(--muted)}
.tn-toggle input{display:none}
.tn-toggle input:checked + label{background:#fff;color:var(--dark);box-shadow:0 2px 6px rgba(0,0,0,.06)}

/* Boutons */
.tn-actions{display:flex;justify-content:space-between;gap:14px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}
.btn{padding:13px 28px;border-radius:8px;font-weight:700;font-size:.95rem;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:.15s;font-family:inherit;text-decoration:none}
.btn-back{background:transparent;color:var(--muted);padding-left:0}
.btn-back:hover{color:var(--dark);text-decoration:none}
.btn-next{background:var(--yellow);color:var(--dark);padding:14px 32px;box-shadow:0 4px 14px rgba(255,228,1,.3)}
.btn-next:hover{background:var(--yellow-dark);transform:translateY(-1px);text-decoration:none}
.btn-next:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* Step 1 — cases */
.tn-universes{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:24px}
.tn-universe-tab{background:#fff;border:2px solid var(--border);border-radius:99px;padding:10px;text-align:center;cursor:pointer;font-size:.82rem;font-weight:700;color:var(--dark);transition:.15s}
.tn-universe-tab:hover{border-color:var(--yellow);background:#fffceb}
.tn-universe-tab.active{background:var(--yellow);border-color:var(--yellow)}
.tn-cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tn-case{background:#fff;border:2px solid var(--border);border-radius:10px;padding:18px;cursor:pointer;display:flex;align-items:center;gap:14px;transition:.15s}
.tn-case:hover{border-color:var(--yellow);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.05)}
.tn-case.selected{border-color:var(--yellow);background:#fffceb}
.tn-case i{font-size:1.4rem;color:var(--yellow-dark);width:32px;text-align:center}
.tn-case .lbl{font-weight:600;font-size:.88rem;color:var(--dark);line-height:1.3}

/* Step 2 — eligibility */
.tn-question{background:#fff;border:1px solid var(--border);border-radius:10px;padding:20px 24px;margin-bottom:14px}
.tn-question .q{font-weight:600;color:var(--dark);margin-bottom:14px;font-size:.95rem}
.tn-radio-row{display:flex;gap:10px}
.tn-radio-row label{flex:1;display:flex;align-items:center;justify-content:center;padding:12px;border:2px solid var(--border);border-radius:8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:.15s}
.tn-radio-row input{display:none}
.tn-radio-row input:checked + label{border-color:var(--yellow);background:#fffceb}
.tn-radio-row input[value=yes]:checked + label.yes{border-color:var(--red);background:#fef2f2;color:var(--red)}
.tn-radio-row input[value=no]:checked + label.no{border-color:var(--green);background:#dcfce7;color:#0f5132}

/* Step 5 — upload */
.tn-doc{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px;margin-bottom:14px}
.tn-doc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.tn-doc-head .lbl{font-weight:700;color:var(--dark);font-size:.95rem}
.tn-doc-head .lbl .req{color:var(--red);margin-left:4px}
.tn-doc-head .badge{font-size:.7rem;font-weight:700;padding:3px 10px;border-radius:99px;letter-spacing:.4px}
.tn-doc-head .badge.required{background:#fef2f2;color:var(--red)}
.tn-doc-head .badge.optional{background:#f3f4f6;color:var(--muted)}
.tn-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed var(--border);border-radius:8px;padding:24px;text-align:center;cursor:pointer;transition:.15s}
.tn-drop:hover{border-color:var(--yellow);background:#fffceb}
.tn-drop i{font-size:1.4rem;color:var(--muted)}
.tn-drop .ftext{font-size:.85rem;color:var(--muted)}
.tn-drop input{display:none}
.tn-file-ok{margin-top:10px;padding:10px 12px;background:#dcfce7;color:#0f5132;border-radius:6px;font-size:.85rem;display:flex;justify-content:space-between;align-items:center}
.tn-file-ok i{color:var(--green)}

/* Step 6 — mandat preview */
.mandate{background:#fff;padding:32px;border:1px solid var(--border);border-radius:10px;font-size:.88rem;line-height:1.6;max-height:480px;overflow-y:auto}
.mandate h2{font-size:1.2rem;color:var(--dark);margin-bottom:14px}
.mandate h3{font-size:.95rem;color:var(--dark);margin:18px 0 8px;border-bottom:1px solid var(--border);padding-bottom:4px}
.mandate p{margin-bottom:10px}
.mandate ul{margin-left:20px;margin-bottom:10px}

.consent-block{background:#fffceb;border-left:3px solid var(--yellow);padding:18px;border-radius:6px;margin-top:24px}
.consent-block h3{font-size:.95rem;color:var(--dark);margin-bottom:14px}
.consent-block label{display:flex;align-items:flex-start;gap:10px;font-size:.85rem;color:var(--text);margin-bottom:10px;cursor:pointer}
.consent-block input[type=checkbox]{margin-top:2px;flex-shrink:0}

/* Step 7 — signature */
#signature-canvas{width:100%;height:200px;border:2px dashed var(--border);border-radius:8px;background:#fff;cursor:crosshair;touch-action:none}
.signature-controls{margin-top:12px;display:flex;gap:10px}
.signature-controls button{padding:8px 14px;background:#fff;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:.85rem}

/* Step 8 — payment summary */
.pay-summary{background:#fffceb;border:2px solid var(--yellow);border-radius:10px;padding:24px;margin-bottom:24px}
.pay-summary .row{display:flex;justify-content:space-between;padding:8px 0;font-size:.95rem}
.pay-summary .row.total{font-weight:800;font-size:1.1rem;border-top:1px solid var(--yellow-dark);padding-top:14px;margin-top:8px}

/* Confirmation */
.tn-confirmation{text-align:center;padding:40px 24px}
.tn-confirmation .check-icon{width:80px;height:80px;border-radius:50%;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:2.5rem;margin-bottom:24px}
.tn-confirmation h1{font-size:2rem;color:var(--dark);font-weight:800;margin-bottom:14px}
.tn-confirmation .ref{font-size:1.2rem;color:var(--yellow-dark);font-weight:800;margin-bottom:20px}
.tn-confirmation .next-steps{text-align:left;max-width:520px;margin:36px auto 0;background:#f6f7fb;border-radius:10px;padding:24px}
.tn-confirmation .next-steps h2{font-size:1rem;color:var(--dark);margin-bottom:16px}
.tn-confirmation .next-step{display:flex;gap:14px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border)}
.tn-confirmation .next-step:last-child{border:none}
.tn-confirmation .next-step .num{width:28px;height:28px;border-radius:50%;background:var(--yellow);color:var(--dark);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.8rem}

/* Refus eligibility */
.tn-reject{background:#fef2f2;border:1px solid var(--red);border-left:4px solid var(--red);border-radius:8px;padding:24px;margin-top:24px}
.tn-reject h2{color:var(--red);font-size:1.05rem;margin-bottom:8px}

/* Footer */
.tn-footer{background:#fff;border-top:1px solid var(--border);padding:24px;text-align:center;font-size:.82rem;color:var(--muted)}
.tn-footer span{margin:0 8px;color:var(--border)}
.tn-footer a{color:var(--muted)}
.tn-footer-trust{margin-top:8px;font-size:.75rem;color:#9ca3af}
.tn-footer-trust i{color:var(--yellow-dark)}

/* Mobile */
@media (max-width:760px){
  .tn-main{padding:20px 16px 60px}
  .tn-card{padding:24px 20px}
  .tn-card h1{font-size:1.4rem}
  .tn-progress-inner{justify-content:center;gap:4px}
  .tn-step-label{display:none}
  .tn-form-row,.tn-form-row-3{grid-template-columns:1fr}
  .tn-universes{grid-template-columns:repeat(2,1fr)}
  .tn-cases-grid{grid-template-columns:1fr}
  .tn-actions{flex-direction:column-reverse}
  .btn-next{width:100%;justify-content:center}
  .btn-back{width:100%;justify-content:center;text-align:center}
}
