/* =========================================================
   Revisly — éditeur de note
   (se charge par-dessus dashboard.css)
   ========================================================= */

.content.editeur{
  padding:0 0 60px;
  display:grid;grid-template-columns:minmax(0,1fr) 264px;gap:0;align-items:start;
}

/* ---------- barre d'outils ---------- */
.barre-outils{
  position:sticky;top:65px;z-index:15;
  display:flex;align-items:center;gap:4px;flex-wrap:wrap;
  padding:8px 28px;
  background:var(--topbar-bg);backdrop-filter:blur(10px);
  border-bottom:.8px solid var(--surface-border);
}
.barre-outils .sep{width:1px;height:20px;background:var(--surface-border);margin:0 6px;flex:none}
.outil{
  min-width:32px;height:32px;padding:0 8px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-secondary);font-size:.875rem;
  transition:background .15s,color .15s;
}
.outil:hover{background:var(--surface-soft-hover);color:var(--ink-primary)}
.outil.on{background:var(--sky-tint);color:var(--ink-primary)}
.outil svg{width:16px;height:16px}
.outil .t{font-weight:700}
.outil .t.it{font-style:italic;font-weight:500}
.outil .t.su{text-decoration:underline;font-weight:500}
.outil .t.h{font-size:.8125rem;font-weight:700}

/* ---------- colonne d'édition ---------- */
.zone{padding:26px 28px 0;max-width:860px;margin:0 auto;width:100%}

.doc-head .retour{
  display:inline-flex;align-items:center;gap:7px;
  font-size:.8125rem;color:var(--ink-tertiary);margin-bottom:16px;
}
.doc-head .retour:hover{color:var(--ink-primary)}
.doc-head .retour svg{width:14px;height:14px}

.titre-note{
  width:100%;background:none;border:0;outline:0;padding:0;margin:0;
  color:var(--ink-primary);font:inherit;
  font-size:2rem;font-weight:700;letter-spacing:-.025em;line-height:1.25;
}
.titre-note::placeholder{color:var(--ink-tertiary)}

.doc-meta{
  margin-top:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:.75rem;color:var(--ink-tertiary);
}
.doc-meta .tag{border:.8px solid var(--surface-border);border-radius:999px;padding:2px 9px;color:var(--ink-secondary)}
.doc-meta .sauvegarde{display:inline-flex;align-items:center;gap:6px}
.doc-meta .sauvegarde i{width:6px;height:6px;border-radius:999px;background:var(--moss);flex:none}
.doc-meta .sauvegarde.encours i{background:var(--daisy)}
.doc-meta .etoile{
  margin-left:auto;width:30px;height:30px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;color:var(--ink-tertiary);
}
.doc-meta .etoile:hover{background:var(--surface-soft-hover);color:var(--ink-primary)}
.doc-meta .etoile svg{width:16px;height:16px}
.doc-meta .etoile.on{color:var(--daisy)}
.doc-meta .etoile.on svg{fill:currentColor}

/* ---------- le document ---------- */
.redaction{
  margin-top:26px;padding-bottom:80px;outline:0;
  font-size:1.0625rem;line-height:1.75;color:var(--ink-secondary);
}
.redaction:focus-visible{outline:0}
.redaction h2{
  margin:34px 0 12px;font-size:1.375rem;font-weight:700;letter-spacing:-.015em;
  line-height:1.35;color:var(--ink-primary);scroll-margin-top:120px;
}
.redaction h3{
  margin:26px 0 10px;font-size:1.0625rem;font-weight:600;
  line-height:1.4;color:var(--ink-primary);scroll-margin-top:120px;
}
.redaction h2:first-child,.redaction h3:first-child{margin-top:0}
.redaction p{margin:0 0 14px}
.redaction ul,.redaction ol{margin:0 0 16px;padding-left:24px;list-style:revert}
.redaction li{margin-bottom:7px}
.redaction blockquote{
  margin:18px 0;padding:2px 0 2px 16px;
  border-left:3px solid var(--sky);color:var(--ink-primary);font-style:italic;
}
.redaction mark{background:rgba(201,162,39,.32);color:var(--ink-primary);padding:1px 3px;border-radius:3px}
.redaction code{
  background:var(--surface-soft);border:.8px solid var(--surface-border);
  border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em;
}
.redaction b,.redaction strong{color:var(--ink-primary);font-weight:600}
.redaction a{color:var(--sky-soft);text-decoration:underline}
.redaction:empty::before,.redaction > p:only-child:empty::before{
  content:attr(data-vide);color:var(--ink-tertiary);
}

/* ---------- colonne de droite ---------- */
.rail-doc{
  position:sticky;top:113px;padding:26px 28px 0 0;
  display:flex;flex-direction:column;gap:16px;
  max-height:calc(100vh - 113px);overflow-y:auto;
}
.encart{background:var(--surface-card);border:.8px solid var(--surface-border);border-radius:14px;padding:16px}
.encart h4{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-tertiary)}

.sommaire-doc{margin-top:12px;display:flex;flex-direction:column;gap:1px}
.sommaire-doc a{
  display:block;padding:6px 9px;border-radius:7px;
  font-size:.8125rem;line-height:1.4;color:var(--ink-secondary);
  border-left:2px solid transparent;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:background .15s,color .15s,border-color .15s;
}
.sommaire-doc a.n3{padding-left:20px;font-size:.78125rem;color:var(--ink-tertiary)}
.sommaire-doc a:hover{background:var(--surface-soft-hover);color:var(--ink-primary)}
.sommaire-doc a.on{border-left-color:var(--sky);color:var(--ink-primary);background:var(--sky-tint)}
.sommaire-vide{margin-top:10px;font-size:.8125rem;color:var(--ink-tertiary)}

.faits{margin-top:12px;display:flex;flex-direction:column;gap:8px;font-size:.8125rem}
.faits div{display:flex;align-items:center;justify-content:space-between;gap:10px}
.faits dt{color:var(--ink-tertiary)}
.faits dd{margin:0;color:var(--ink-primary);font-variant-numeric:tabular-nums}

.gen{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.gen button{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  padding:10px 12px;border-radius:10px;font-size:.875rem;
  background:var(--surface-soft);border:.8px solid var(--surface-border);color:var(--ink-primary);
  transition:background .15s,border-color .15s;
}
.gen button:hover{background:var(--surface-soft-hover);border-color:var(--border-fort)}
.gen button .em{display:flex;flex:none;color:var(--sky-soft)}
.gen button .em svg{width:18px;height:18px}

/* =========================================================
   Panneau de partage
   ========================================================= */
.zone-partage{position:relative}

.btn-partage.actif{background:var(--sky-tint);border-color:var(--sky);color:var(--ink-primary)}
.btn-partage .pastille{
  width:7px;height:7px;border-radius:999px;background:var(--moss);flex:none;margin-left:2px;
}

.panneau-partage{
  position:absolute;top:calc(100% + 10px);right:0;z-index:40;
  width:360px;max-width:calc(100vw - 32px);
  background:var(--surface-card);border:.8px solid var(--surface-border);
  border-radius:16px;padding:18px;
  box-shadow:0 18px 50px rgba(0,0,0,.5);
}
.panneau-partage h3{font-size:.9375rem;font-weight:600}
.panneau-partage .sous{margin-top:4px;font-size:.75rem;color:var(--ink-tertiary)}

.rangee-partage{
  display:flex;align-items:center;gap:14px;
  padding:14px 0;border-bottom:.8px solid var(--surface-line);
}
.rangee-partage:last-of-type{border-bottom:0}
.rangee-partage .txt{flex:1;min-width:0}
.rangee-partage .txt b{display:block;font-size:.875rem;font-weight:500}
.rangee-partage .txt span{display:block;margin-top:2px;font-size:.75rem;color:var(--ink-tertiary)}

.bascule-partage{
  flex:none;position:relative;width:40px;height:23px;border-radius:999px;
  background:var(--track);border:.8px solid var(--surface-border);
  transition:background .2s,border-color .2s;
}
.bascule-partage::after{
  content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:999px;
  background:var(--ink-mute);transition:transform .2s,background .2s;
}
.bascule-partage.on{background:rgba(26,122,184,.35);border-color:var(--sky)}
.bascule-partage.on::after{transform:translateX(17px);background:var(--sky-soft)}

.reglages-lien{margin-top:4px}
.reglages-lien[hidden]{display:none}

.choix-droit{
  width:100%;margin-top:10px;appearance:none;cursor:pointer;
  background:var(--surface-soft);border:.8px solid var(--surface-border);
  border-radius:10px;padding:9px 12px;
  font:inherit;font-size:.8125rem;color:var(--ink-primary);
}
.choix-droit:focus{outline:0;border-color:var(--sky);box-shadow:0 0 0 3px rgba(26,122,184,.22)}
.choix-droit option{background:var(--surface-card);color:var(--ink-primary)}

.champ-lien{display:flex;gap:8px;margin-top:10px}
.champ-lien input{
  flex:1;min-width:0;background:var(--surface-soft);
  border:.8px solid var(--surface-border);border-radius:10px;
  padding:9px 11px;font:inherit;font-size:.75rem;color:var(--ink-secondary);
}
.champ-lien input:focus{outline:0;border-color:var(--sky)}
.champ-lien button{
  flex:none;padding:9px 14px;border-radius:10px;font-size:.8125rem;font-weight:600;
  background:var(--sky);border:.8px solid var(--sky-border);color:#fff;
  transition:background .15s;
}
.champ-lien button:hover{background:var(--sky-hover)}
.champ-lien button.copie{background:var(--moss);border-color:var(--moss)}

.acces{margin-top:6px;display:flex;flex-direction:column;gap:9px}
.acces .qui{display:flex;align-items:center;gap:10px}
.acces .rond{
  flex:none;width:28px;height:28px;border-radius:999px;
  display:flex;align-items:center;justify-content:center;
  font-size:.6875rem;font-weight:700;color:#fff;background:var(--sky);
}
.acces .rond.invite{background:#6b6b72}
.acces .nom{flex:1;min-width:0;font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acces .role{font-size:.6875rem;color:var(--ink-tertiary);white-space:nowrap}
.acces .retirer{
  flex:none;width:24px;height:24px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;color:var(--ink-tertiary);
}
.acces .retirer:hover{background:rgba(207,86,71,.16);color:var(--ink-ko)}
.acces .retirer svg{width:13px;height:13px}

.inviter{display:flex;gap:8px;margin-top:12px}
.inviter input{
  flex:1;min-width:0;background:var(--surface-soft);
  border:.8px solid var(--surface-border);border-radius:10px;
  padding:9px 11px;font:inherit;font-size:.8125rem;color:var(--ink-primary);
}
.inviter input:focus{outline:0;border-color:var(--sky);box-shadow:0 0 0 3px rgba(26,122,184,.22)}
.inviter button{
  flex:none;padding:9px 14px;border-radius:10px;font-size:.8125rem;font-weight:600;
  background:var(--surface-soft);border:.8px solid var(--surface-border);color:var(--ink-primary);
}
.inviter button:hover{background:var(--surface-soft-hover)}

.msg-partage{margin-top:10px;font-size:.75rem;min-height:15px}
.msg-partage.ok{color:var(--ink-ok)}
.msg-partage.err{color:var(--ink-ko)}

@media (prefers-reduced-motion: reduce){
  .outil,.sommaire-doc a,.gen button,.bascule-partage,.bascule-partage::after{transition:none}
}

@media (max-width:1180px){
  .content.editeur{grid-template-columns:minmax(0,1fr)}
  .rail-doc{
    position:static;max-height:none;padding:0 28px 0;
    flex-direction:row;flex-wrap:wrap;
  }
  .rail-doc .encart{flex:1;min-width:240px}
}
@media (max-width:640px){
  /* ancré sur le bouton, le panneau sortait de l’écran par la gauche.
     Sur mobile on l’ancre sur la barre du haut, qui occupe toute la largeur.
     (.topbar est en sticky : elle sert de référence même si elle porte un
     backdrop-filter, qui piège position:fixed) */
  .zone-partage{position:static}
  .panneau-partage{
    top:calc(100% + 8px);left:12px;right:12px;
    width:auto;max-width:none;max-height:76vh;overflow:auto;
  }
  .barre-outils{padding:8px 12px;gap:2px}
  .barre-outils .sep{margin:0 3px}
  .zone{padding:20px 16px 0}
  .rail-doc{padding:0 16px}
  .titre-note{font-size:1.5rem}
  .redaction{font-size:1rem}
}

/* ---------- état de la génération ---------- */
.gen-etat{
  margin-top:10px;font-size:.8125rem;line-height:1.5;color:var(--sky-bold);
}
.gen button[disabled]{opacity:.55;cursor:progress}
