:root{
  --purple:#72238e;        /* couleur de marque confirmée (widget Ausha du site) */
  --purple-dark:#571a6e;
  --purple-tint:#F5EFF8;   /* fond légèrement teinté violet */
  --ink:#2B2230;           /* texte principal, chaud proche du violet */
  --muted:#7C7286;
  --line:#E7DEEE;
  --paper:#FFFFFF;
  --ok-bg:#EFF6EE;
  --ok-text:#3F6B3F;
  --err-bg:#FBEAEA;
  --err-text:#A13E3E;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);}
body{
  font-family:"Work Sans",sans-serif;
  font-size:16px;
  line-height:1.6;
}
h1,h2,h3,.display{
  font-family:"Fraunces",serif;
  font-weight:500;
  letter-spacing:-0.01em;
}
a{color:inherit;}
button{font-family:inherit;}

.app{max-width:920px;margin:0 auto;padding:0 24px 96px;}

header.top{
  display:flex; align-items:center; justify-content:space-between;
  padding:32px 0 20px;
  border-bottom:1px solid var(--line);
  margin-bottom:32px;
  gap:20px; flex-wrap:wrap;
}
.brand{display:flex; align-items:center; gap:14px;}
.brand .logo{height:44px; width:auto;}
.brand-text{display:flex; flex-direction:column; gap:2px;}
.brand-text .maison{font-size:13px; color:var(--purple); letter-spacing:0.02em; font-weight:600;}
.brand-text h1{font-size:26px; margin:0; color:var(--ink);}

nav.tabs{display:flex; gap:8px; align-items:center;}
nav.tabs button{
  background:none;border:1px solid var(--line);color:var(--ink);
  opacity:0.75; font-size:14px; cursor:pointer; padding:8px 18px;
  border-radius:20px;
}
nav.tabs button.active{opacity:1; background:var(--purple); border-color:var(--purple); color:#fff;}
nav.tabs button:hover{opacity:1; border-color:var(--purple);}

.view{display:none;}
.view.active{display:block;}

/* Catalogue */
.intro{max-width:60ch; color:var(--muted); margin-bottom:28px; font-size:16px;}

.search-row{margin-bottom:24px;}

.listen-fullbleed{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
.listen-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start;
  max-width:1800px; margin:0 auto; padding:0 32px; box-sizing:border-box;
}
.window{
  border:1px solid var(--line); border-radius:12px; padding:22px;
  background:#fff;
}
.window-title{
  font-size:18px; margin:0 0 18px; color:var(--purple);
  display:flex; align-items:center; gap:8px;
}
.tp-recap{margin-top:20px; padding-top:16px; border-top:1px solid var(--line);}
.tp-recap h4{font-size:14px; color:var(--purple); font-weight:600; margin:0 0 10px; font-family:"Work Sans",sans-serif;}
.tp-recap ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.tp-recap li{font-size:13px; color:var(--ink);}
.tp-recap li button{
  background:none; border:none; color:var(--ink); text-align:left; font-size:13px;
  cursor:pointer; padding:2px 0;
}
.tp-recap li button:hover{color:var(--purple);}
.tp-recap li button .recap-word{color:var(--purple-dark); font-weight:600;}

.tp-actions{display:flex; gap:12px; margin-top:20px; flex-wrap:wrap;}
.dl-pdf-btn{
  background:#fff; color:var(--purple); border:1px solid var(--purple);
  padding:11px 20px; border-radius:24px; font-weight:600; cursor:pointer; font-size:14px;
}
.dl-pdf-btn:hover{background:var(--purple); color:#fff;}

@media (max-width:880px){
  .listen-grid{grid-template-columns:1fr; padding:0 20px;}
}
#search-input{
  width:100%; padding:12px 16px; border:1px solid var(--line); border-radius:8px;
  font-size:15px; font-family:inherit; color:var(--ink); background:var(--paper);
}
#search-input:focus{outline:none; border-color:var(--purple);}
.search-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;}
.search-tag-btn{
  background:var(--purple-tint); color:var(--purple); border:1px solid transparent;
  border-radius:16px; padding:5px 13px; font-size:13px; cursor:pointer;
}
.search-tag-btn:hover, .search-tag-btn.active{background:var(--purple); color:#fff;}

.ep-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line);}
.ep-row{
  display:flex; align-items:center; gap:20px;
  padding:20px 4px; border-bottom:1px solid var(--line);
  cursor:pointer; transition:background .15s;
}
.ep-row:hover{background:var(--purple-tint);}
.ep-row:hover .ep-title{color:var(--purple);}
.ep-num{font-family:"Fraunces",serif; font-size:15px; color:var(--purple); width:28px; flex-shrink:0;}
.ep-body{flex:1; min-width:0;}
.ep-title{font-family:"Fraunces",serif; font-size:19px; margin:0 0 6px; color:var(--ink);}
.ep-meta{font-size:13px; color:var(--muted);}
.tag{
  display:inline-block; font-size:12px; color:var(--purple);
  border:1px solid #D8C3E2; border-radius:12px;
  padding:2px 10px; margin-right:6px;
}
.empty{padding:40px 4px; color:var(--muted); font-style:italic;}
.plays-badge{font-size:12px; color:var(--muted);}

/* Detail / lecture */
.back-link{background:none;border:none;color:var(--purple);cursor:pointer;font-size:14px;padding:0;margin-bottom:24px;font-weight:500;}
.back-link:hover{text-decoration:underline;}
.ep-header h2{font-size:30px;margin:0 0 8px;}
.ep-header .ep-meta{margin-bottom:24px;}

.player-card{
  background:var(--purple-tint); border:1px solid var(--line);
  border-radius:10px; padding:18px 20px; margin-bottom:28px;
}
.player-card audio{width:100%; display:block;}
.dl-row{display:flex; gap:14px; margin-top:14px; flex-wrap:wrap;}
.dl-row a, .dl-row button{
  font-size:13px; color:var(--purple); text-decoration:none;
  border:1px solid var(--purple); border-radius:20px; padding:7px 16px;
  background:#fff; cursor:pointer;
}
.dl-row a:hover, .dl-row button:hover{background:var(--purple); color:#fff;}
.plays-count{font-size:12px; color:var(--muted); margin-top:10px;}

.video-frame-wrap{margin-top:16px;}
.video-frame{position:relative; width:100%; padding-bottom:56.25%; height:0; border-radius:8px; overflow:hidden; background:#000;}
.video-frame iframe{position:absolute; top:0; left:0; width:100%; height:100%; border:0;}

.transcript{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 6px 10px 22px;
  max-height:480px;
  overflow-y:auto;
  scrollbar-gutter:stable;
}
.transcript::-webkit-scrollbar{width:10px;}
.transcript::-webkit-scrollbar-track{background:var(--purple-tint); border-radius:10px;}
.transcript::-webkit-scrollbar-thumb{background:var(--purple); border-radius:10px; border:2px solid var(--purple-tint);}
.transcript::-webkit-scrollbar-thumb:hover{background:var(--purple-dark);}
.seg{
  padding:10px 14px; color:var(--muted);
  cursor:pointer; transition:background .15s, color .15s;
  border-radius:6px; margin:2px 0;
}
.seg .ts{font-size:12px; color:var(--purple); margin-right:10px; font-variant-numeric:tabular-nums; font-weight:600;}
.seg.current{
  background:#FBDCE8; color:#000000; font-weight:600;
  box-shadow:0 1px 4px rgba(114,35,142,0.15);
}
.seg.current .ts{color:var(--purple-dark);}
.seg:hover{color:var(--ink); background:var(--purple-tint);}
.seg a.link-word{
  color:var(--purple-dark); background:rgba(114,35,142,0.14);
  padding:1px 5px; border-radius:4px; font-weight:600;
  text-decoration:none; box-shadow:inset 0 -2px 0 rgba(114,35,142,0.35);
}
.seg a.link-word:hover{background:rgba(114,35,142,0.24);}

.related{margin-top:32px; padding-top:24px; border-top:1px solid var(--line);}
.related h3{font-size:15px; color:var(--purple); font-family:"Work Sans",sans-serif; font-weight:600; margin-bottom:12px;}

/* Publier */
.publish-title{font-size:26px; margin-bottom:10px;}
.form-note{color:var(--muted); font-size:14px; max-width:60ch; margin-bottom:28px;}
form.publish{display:flex; flex-direction:column; gap:20px; max-width:640px;}
.field label{display:block; font-size:13px; color:var(--purple); font-weight:600; margin-bottom:6px;}
.field input[type=text], .field input[type=url], .field input[type=password], .field input[type=email], .field textarea, .field input[type=file]{
  width:100%; background:#fff; border:1px solid var(--line);
  color:var(--ink); padding:10px 12px; border-radius:6px; font-family:inherit; font-size:14px;
}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--purple);}
.field textarea{min-height:130px; resize:vertical; line-height:1.6;}
.field .hint{font-size:12px; color:var(--muted); margin-top:5px;}

.import-row{display:flex; align-items:center; gap:12px; margin-bottom:8px; flex-wrap:wrap;}
.import-row input[type=file]{flex:0 0 auto; width:auto; font-size:13px; padding:8px;}
#import-status{color:var(--purple); font-weight:500;}

.honeypot{position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden;}

.linker{border:1px solid var(--line); border-radius:8px; padding:16px; background:var(--purple-tint);}
.linker-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px;}
.linker-row input, .linker-row select{
  background:#fff; border:1px solid var(--line);
  color:var(--ink); padding:8px 10px; border-radius:6px; font-size:13px; font-family:inherit;
}
.linker-row input{flex:1; min-width:140px;}
.linker-row select{flex:1; min-width:160px;}
.linker-row button{
  background:var(--purple); border:none; color:#fff; font-weight:600;
  padding:8px 16px; border-radius:6px; cursor:pointer; font-size:13px;
}
.linker-row button:hover{background:var(--purple-dark);}
.use-selection-btn{background:#fff !important; color:var(--purple) !important; border:1px solid var(--purple) !important;}
.use-selection-btn:hover{background:var(--purple) !important; color:#fff !important;}
.linked-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:6px;}
.linked-list li{font-size:13px; color:var(--ink); display:flex; justify-content:space-between; gap:10px;}
.linked-list li button{background:none;border:none;color:var(--purple);cursor:pointer;font-size:12px;}
.linked-list li button:hover{text-decoration:underline;}

.submit-btn{
  align-self:flex-start; background:var(--purple); color:#fff; border:none;
  padding:12px 24px; border-radius:24px; font-weight:600; cursor:pointer; font-size:14px;
}
.submit-btn:hover{background:var(--purple-dark);}
.status-msg{font-size:14px; padding:10px 14px; border-radius:6px; margin-top:6px;}
.status-msg.ok{background:var(--ok-bg); color:var(--ok-text);}
.status-msg.err{background:var(--err-bg); color:var(--err-text);}

/* Modération */
.mod-gate{max-width:360px; display:flex; flex-direction:column; gap:12px;}
.mod-label{font-size:13px;color:var(--purple);font-weight:600;}
.mod-error{color:var(--err-text);}
.mod-gate input{
  background:#fff; border:1px solid var(--line);
  color:var(--ink); padding:9px 12px; border-radius:6px; font-family:inherit;
}
.pending-card{border:1px solid var(--line); border-radius:8px; padding:16px; margin-bottom:14px;}
.mod-section-title{font-size:16px; color:var(--purple); margin:32px 0 16px; padding-top:20px; border-top:1px solid var(--line);}
.mod-section-title:first-child{margin-top:0; padding-top:0; border-top:none;}

.mod-tabs{display:flex; gap:8px; margin:24px 0 28px; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:0;}
.mod-tabs button{
  background:none; border:none; color:var(--muted); font-size:14px; font-weight:500;
  cursor:pointer; padding:10px 4px; margin-right:20px; border-bottom:2px solid transparent;
}
.mod-tabs button.active{color:var(--purple); border-bottom-color:var(--purple); font-weight:600;}
.mod-tabs button:hover{color:var(--purple);}
.field-spaced{margin-bottom:12px;}
.field-stack{display:flex; flex-direction:column; gap:20px; max-width:640px;}
.pending-card h4{margin:0 0 6px; font-family:"Fraunces",serif; font-size:17px;}
.pending-actions{display:flex; gap:10px; margin-top:10px;}
.pending-actions button{
  border:1px solid; border-radius:20px; padding:7px 16px; font-size:13px; cursor:pointer; background:#fff;
}
.approve{border-color:#3F6B3F; color:#3F6B3F;}
.approve:hover{background:#3F6B3F; color:#fff;}
.reject{border-color:#A13E3E; color:#A13E3E;}
.reject:hover{background:#A13E3E; color:#fff;}
.pending-error{color:#A13E3E; font-size:13px; margin-top:10px; background:var(--err-bg); padding:8px 12px; border-radius:6px;}

footer.mod-footer{margin-top:60px; padding-top:20px; border-top:1px solid var(--line);}
footer.mod-footer button{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;}
footer.mod-footer button:hover{color:var(--purple);}
.footer-sep{color:var(--line); font-size:12px; margin:0 6px;}

/* Fenêtre de choix de podcast lors d'un clic sur un mot lié */
.modal-overlay{
  position:fixed; inset:0; background:rgba(43,34,48,0.55);
  display:flex; align-items:center; justify-content:center; z-index:1000; padding:20px;
}
.modal-box{
  background:#fff; border-radius:12px; max-width:480px; width:100%;
  max-height:80vh; display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 20px 50px rgba(43,34,48,0.3);
}
.modal-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 20px; border-bottom:1px solid var(--line);
}
.modal-header h3{font-size:17px; margin:0; color:var(--ink); font-weight:500;}
.modal-close{
  background:none; border:none; font-size:22px; line-height:1; color:var(--muted);
  cursor:pointer; padding:0 4px;
}
.modal-close:hover{color:var(--purple);}
.modal-list{list-style:none; margin:0; padding:8px; overflow-y:auto;}
.modal-list .empty{padding:20px; color:var(--muted); font-style:italic; font-size:14px;}
.modal-item{
  display:block; width:100%; text-align:left; background:none; border:none;
  padding:12px 12px; border-radius:8px; cursor:pointer;
}
.modal-item:hover{background:var(--purple-tint);}
.modal-item strong{display:block; color:var(--purple); font-family:"Fraunces",serif; font-size:16px; margin-bottom:4px;}
.modal-snippet{display:block; color:var(--muted); font-size:13px; line-height:1.4;}

@media (max-width:640px){
  header.top{flex-direction:column; align-items:flex-start;}
  .ep-row{gap:12px;}
  .ep-title{font-size:17px;}
}
