*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#0f0e0c;--ink2:#4a4843;--ink3:#9a9790;
  --bg:#fafaf8;--surface:#ffffff;
  --accent:#2155c4;--accent-light:#eef2fc;--accent-dark:#173b99;
  --border:rgba(15,14,12,.10);--border-strong:rgba(15,14,12,.18);
  --radius:10px;
  --success:#0c7c4a;--success-light:#e8f8f0;
  --warn:#b45309;--warn-light:#fef3c7;
  --danger:#b42318;--danger-light:#fef2f1;
}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--ink);line-height:1.6}
nav{position:sticky;top:0;z-index:200;background:rgba(250,250,248,.94);backdrop-filter:blur(14px);border-bottom:.5px solid var(--border);padding:0 2rem;height:62px;display:flex;align-items:center;justify-content:space-between}
.logo{font-family:'Playfair Display',serif;font-size:21px;color:var(--ink);text-decoration:none}
.logo span{color:var(--accent)}
.btn-nav{background:var(--accent);color:#fff;border:none;cursor:pointer;padding:9px 22px;border-radius:var(--radius);font-size:14px;font-weight:500;font-family:'Inter',sans-serif;text-decoration:none;display:inline-block}
.btn-nav:hover{background:var(--accent-dark)}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:5px;width:38px;height:38px;align-items:center;justify-content:center}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s,opacity .25s}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-nav-panel{display:none;position:fixed;top:56px;left:0;right:0;background:var(--surface);border-bottom:.5px solid var(--border);box-shadow:0 12px 28px rgba(15,14,12,.08);z-index:199;flex-direction:column;padding:.5rem 1.25rem 1.25rem;max-height:0;overflow:hidden;transition:max-height .25s ease}
.mobile-nav-panel.open{max-height:400px}
.mobile-nav-panel a{padding:13px 4px;font-size:15px;color:var(--ink2);text-decoration:none;border-bottom:.5px solid var(--border);display:block}
.mobile-nav-panel a:last-child{border-bottom:none}
.wrap{max-width:720px;margin:0 auto;padding:60px 1.5rem 100px}
h1{font-family:'Playfair Display',serif;font-size:clamp(28px,5vw,40px);line-height:1.18;margin-bottom:.8rem;color:var(--ink)}
.subtitle{font-size:16px;color:var(--ink2);margin-bottom:1.2rem}
.quota-badge{display:inline-block;font-size:13px;font-weight:600;padding:6px 14px;border-radius:99px;margin-bottom:1.4rem}
.quota-badge.ok{background:var(--success-light);color:var(--success)}
.quota-badge.warn{background:var(--warn-light);color:var(--warn)}
.disclaimer{font-size:12.5px;color:var(--ink3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:2rem}
.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:1.4rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:1rem;background:var(--surface)}
.dropzone:hover,.dropzone.dragover{border-color:var(--accent);background:var(--accent-light)}
.dropzone p{font-size:14px;color:var(--ink2);margin:0}
.dropzone .dz-icon{font-size:22px;margin-bottom:.3rem}
.dropzone small{display:block;color:var(--ink3);font-size:12px;margin-top:.3rem}
.dz-filename{display:none;align-items:center;justify-content:space-between;background:var(--accent-light);border-radius:var(--radius);padding:10px 14px;margin-bottom:1rem;font-size:13.5px}
.dz-filename button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;font-weight:500;font-family:'Inter',sans-serif}
.extract-status{display:none;align-items:center;gap:8px;font-size:13px;color:var(--accent);margin-bottom:1rem;padding:10px 14px;background:var(--accent-light);border-radius:var(--radius)}
.spinner{width:14px;height:14px;border:2px solid var(--accent-light);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
.or-divider{display:flex;align-items:center;gap:12px;margin:1rem 0;color:var(--ink3);font-size:12.5px}
.or-divider::before,.or-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.privacy-tip{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink3);margin-top:8px}
textarea{width:100%;min-height:280px;padding:16px;border-radius:var(--radius);border:1.5px solid var(--border-strong);font-family:'Inter',sans-serif;font-size:14.5px;color:var(--ink);resize:vertical;background:var(--surface)}
textarea:focus{outline:none;border-color:var(--accent)}
textarea:disabled{background:var(--bg);color:var(--ink3)}
.char-count{font-size:12.5px;color:var(--ink3);text-align:right;margin-top:6px;margin-bottom:1rem}
.result-preview{font-size:13px;color:var(--ink3);margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:6px 16px}
.result-preview span{display:flex;align-items:center;gap:5px}
.btn-analyze{width:100%;background:var(--accent);color:#fff;border:none;cursor:pointer;padding:16px 28px;border-radius:var(--radius);font-size:16px;font-weight:600;font-family:'Inter',sans-serif;box-shadow:0 2px 8px rgba(33,85,196,.25)}
.btn-analyze:hover{background:var(--accent-dark)}
.btn-analyze:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.gate,.loading,.error-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:2rem;text-align:center}
.error-box{background:var(--danger-light);border:none;color:var(--danger);font-size:14.5px}
#result{display:none;margin-top:2rem}
.result-card{border-radius:16px;padding:2rem;text-align:center;margin-bottom:1.5rem}
.result-card.low{background:var(--danger-light)}
.result-card.medium{background:var(--warn-light)}
.result-card.high{background:var(--success-light)}
.result-score{font-family:'Playfair Display',serif;font-size:52px;font-weight:700;line-height:1}
.result-label{font-size:16px;font-weight:600;margin-top:.5rem}
.result-card.low .result-score,.result-card.low .result-label{color:var(--danger)}
.result-card.medium .result-score,.result-card.medium .result-label{color:var(--warn)}
.result-card.high .result-score,.result-card.high .result-label{color:var(--success)}
.result-detail{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.6rem 1.8rem;margin-bottom:1.2rem}
.result-detail h3{font-size:16px;margin-bottom:.8rem}
.result-detail ul{margin-left:1.2rem;color:var(--ink2);font-size:15px;line-height:1.7}
.result-detail li{margin-bottom:.4rem}
.result-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:1rem}
.btn-secondary{background:var(--surface);color:var(--ink2);border:1.5px solid var(--border-strong);cursor:pointer;padding:11px 20px;border-radius:var(--radius);font-size:14px;font-weight:500;font-family:'Inter',sans-serif}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}
.btn-secondary:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:680px){
  nav{padding:0 1.2rem;height:56px}
  .logo{font-size:18px}
  .btn-nav{padding:8px 14px;font-size:13px}
  .nav-toggle{display:flex}
  .wrap{padding:36px 1.2rem 70px}
  h1{font-size:26px}
  .subtitle{font-size:14.5px}
  textarea{min-height:200px;font-size:16px;padding:12px}
  .result-score{font-size:40px}
  .result-detail,.disclaimer,.gate,.loading{padding:1.2rem}
  .result-preview{font-size:12px}
  .result-actions{flex-direction:column}
  .result-actions button{width:100%}
}

/* ── Accessibilité : lien d'évitement (skip-link) ── */
.skip-link{
  position:absolute;top:-48px;left:12px;z-index:10000;
  background:var(--accent, #2155c4);color:#fff;
  padding:12px 20px;border-radius:8px;font-family:'Inter',sans-serif;
  font-size:14px;font-weight:600;text-decoration:none;
  transition:top .15s ease;
}
.skip-link:focus{top:12px}
