/*
 * Rayan AI Connector 0.10.4
 * Source accordion renderer.
 * Intentionally uses unique class names so legacy source-card CSS cannot leak in.
 */

#rayan-ai-root .rayan-ai-sources {
  width:min(92%,980px);
  max-width:100%;
  padding:10px 11px;
}

#rayan-ai-root .rayan-ai-sources-title {
  margin:0 0 7px;
}

#rayan-ai-root .rai-source-accordion {
  position:relative;
  margin-top:7px;
  overflow:hidden;
  scroll-margin-top:96px;
  border:1px solid rgba(102,255,126,.20);
  border-radius:10px;
  background:linear-gradient(155deg,rgba(0,23,7,.76),rgba(0,11,3,.90));
  box-shadow:inset 0 0 20px rgba(62,255,92,.02),0 5px 16px rgba(0,0,0,.12);
}

#rayan-ai-root .rai-source-accordion:first-of-type {
  margin-top:0;
}

#rayan-ai-root .rai-source-accordion.is-open {
  border-color:rgba(102,255,126,.34);
}

#rayan-ai-root .rai-source-accordion.is-citation-target {
  border-color:rgba(145,255,160,.82);
  box-shadow:0 0 0 2px rgba(84,255,111,.08),0 0 20px rgba(50,255,80,.22);
}

#rayan-ai-root .rai-source-accordion-head {
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-height:42px;
  margin:0;
  padding:8px 10px;
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#effff2;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
  box-shadow:none;
}

#rayan-ai-root .rai-source-accordion-head:hover,
#rayan-ai-root .rai-source-accordion-head:focus-visible {
  background:rgba(45,170,67,.075);
  outline:none;
}

#rayan-ai-root .rai-source-number {
  display:inline-grid;
  place-items:center;
  min-width:24px;
  height:24px;
  padding:0 6px;
  border:1px solid rgba(124,255,144,.62);
  border-radius:7px;
  background:linear-gradient(145deg,rgba(15,103,34,.78),rgba(5,49,16,.9));
  color:#effff2;
  box-shadow:0 0 9px rgba(60,255,91,.14);
  font-size:9px;
  font-weight:900;
  line-height:1;
}

#rayan-ai-root .rai-source-type {
  display:inline-flex;
  align-items:center;
  min-height:21px;
  padding:2px 7px;
  border:1px solid rgba(116,255,137,.27);
  border-radius:999px;
  background:rgba(26,94,40,.26);
  color:#bcffc6;
  font-size:8.5px;
  font-weight:800;
  letter-spacing:.07em;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
}

#rayan-ai-root .rai-source-title {
  min-width:0;
  color:#effff2;
  font-size:11.5px;
  font-weight:800;
  line-height:1.35;
  text-shadow:0 0 6px rgba(86,255,111,.18);
}

#rayan-ai-root .rai-source-chevron {
  display:grid;
  place-items:center;
  width:25px;
  height:25px;
  border:1px solid rgba(99,255,123,.16);
  border-radius:50%;
  color:#79ff8f;
  background:rgba(28,102,40,.13);
  font-size:15px;
  font-weight:800;
  line-height:1;
  transition:background .16s ease,border-color .16s ease;
}

#rayan-ai-root .rai-source-accordion.is-open .rai-source-chevron {
  border-color:rgba(99,255,123,.34);
  background:rgba(28,102,40,.24);
}

#rayan-ai-root .rai-source-accordion-body[hidden] {
  display:none !important;
}

#rayan-ai-root .rai-source-accordion-body {
  padding:10px 12px 12px;
  border-top:1px solid rgba(90,255,114,.10);
  background:rgba(0,8,2,.31);
}

#rayan-ai-root .rai-source-visual {
  display:flex;
  margin:0 0 10px;
}

#rayan-ai-root .rai-source-image-frame {
  display:block;
  width:112px;
  max-width:34%;
  aspect-ratio:1;
  overflow:hidden;
  border:1px solid rgba(112,255,135,.30);
  border-radius:11px;
  background:rgba(0,17,5,.92);
  box-shadow:inset 0 0 20px rgba(66,255,96,.05),0 5px 15px rgba(0,0,0,.18);
  text-decoration:none !important;
}

#rayan-ai-root .rai-source-image {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .18s ease,filter .18s ease;
}

#rayan-ai-root a.rai-source-image-frame:hover .rai-source-image,
#rayan-ai-root a.rai-source-image-frame:focus-visible .rai-source-image {
  transform:scale(1.035);
  filter:brightness(1.08);
}

#rayan-ai-root a.rai-source-image-frame:focus-visible {
  outline:2px solid rgba(142,255,158,.78);
  outline-offset:2px;
}

#rayan-ai-root .rai-source-identity,
#rayan-ai-root .rai-source-biblio {
  color:rgba(207,255,216,.64);
  font-size:10px;
  line-height:1.45;
}

#rayan-ai-root .rai-source-biblio {
  margin-top:3px;
  color:rgba(174,255,188,.54);
}

#rayan-ai-root .rai-source-tags {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:9px;
}

#rayan-ai-root .rai-source-tag {
  display:inline-flex;
  padding:3px 7px;
  border:1px solid rgba(94,255,119,.16);
  border-radius:999px;
  background:rgba(38,118,52,.16);
  color:rgba(208,255,216,.68);
  font-size:8.5px;
  line-height:1.2;
}

#rayan-ai-root .rai-source-sections {
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid rgba(90,255,114,.08);
  color:rgba(201,255,211,.60);
  font-size:9.5px;
  line-height:1.5;
}

#rayan-ai-root .rai-source-sections strong {
  display:block;
  margin-bottom:4px;
  color:rgba(218,255,224,.76);
  font-size:8.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

#rayan-ai-root .rai-source-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:29px;
  margin-top:10px;
  padding:6px 10px;
  border:1px solid rgba(122,255,142,.42);
  border-radius:7px;
  background:linear-gradient(145deg,rgba(12,91,29,.62),rgba(4,48,15,.78));
  color:#bfffc9 !important;
  box-shadow:0 0 9px rgba(58,255,88,.10);
  font-size:9.5px;
  font-weight:800;
  text-decoration:none !important;
}

#rayan-ai-root .rai-source-link:hover,
#rayan-ai-root .rai-source-link:focus {
  border-color:#95ffa5;
  background:#0d7328;
  color:#fff !important;
  outline:none;
}

#rayan-ai-root .rai-source-local {
  margin-top:9px;
  color:rgba(184,255,196,.38);
  font-size:8.5px;
  font-style:italic;
}

@media (max-width:760px) {
  #rayan-ai-root .rayan-ai-sources {
    width:96%;
    padding:8px;
  }

  #rayan-ai-root .rai-source-accordion-head {
    min-height:40px;
    grid-template-columns:auto auto minmax(0,1fr) auto;
    gap:6px;
    padding:7px 8px;
  }

  #rayan-ai-root .rai-source-title {
    font-size:10.5px;
  }

  #rayan-ai-root .rai-source-type {
    padding:2px 5px;
    font-size:7.8px;
  }

  #rayan-ai-root .rai-source-accordion-body {
    padding:9px 10px 11px;
  }

  #rayan-ai-root .rai-source-link {
    width:100%;
  }

  #rayan-ai-root .rai-source-image-frame {
    width:92px;
    max-width:38%;
  }
}

/* ========================================================================== */
/* Rayan AI Connector 0.20.7 — accordéon primaire + sources exclusives       */
/* ========================================================================== */

#rayan-ai-root .rai-sources-primary {
  overflow:hidden;
  padding:0 !important;
  border:1px solid rgba(102,255,126,.26);
  border-radius:13px;
  background:linear-gradient(155deg,rgba(0,22,7,.84),rgba(0,10,3,.94));
  box-shadow:inset 0 0 28px rgba(62,255,92,.025),0 7px 22px rgba(0,0,0,.16);
}

#rayan-ai-root .rai-sources-primary-head {
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-height:46px;
  margin:0;
  padding:10px 12px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:9px;
  border:0;
  border-radius:0;
  background:rgba(31,126,47,.08);
  color:#dfffe5;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
  box-shadow:none;
}

#rayan-ai-root .rai-sources-primary-head:hover,
#rayan-ai-root .rai-sources-primary-head:focus-visible {
  background:rgba(45,170,67,.12);
  outline:none;
}

#rayan-ai-root .rai-sources-primary-title {
  min-width:0;
  color:#72ff8a;
  font-size:10px;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
  text-shadow:0 0 8px rgba(86,255,111,.22);
}

#rayan-ai-root .rai-sources-primary-count {
  display:inline-grid;
  place-items:center;
  min-width:24px;
  height:24px;
  padding:0 7px;
  border:1px solid rgba(124,255,144,.42);
  border-radius:999px;
  background:rgba(20,98,34,.42);
  color:#eaffee;
  font-size:9px;
  font-weight:900;
  line-height:1;
}

#rayan-ai-root .rai-sources-primary-chevron {
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border:1px solid rgba(99,255,123,.22);
  border-radius:50%;
  color:#79ff8f;
  background:rgba(28,102,40,.14);
  font-size:16px;
  font-weight:900;
  line-height:1;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}

#rayan-ai-root .rai-sources-primary.is-open .rai-sources-primary-chevron {
  border-color:rgba(99,255,123,.42);
  background:rgba(28,102,40,.25);
}

#rayan-ai-root .rai-sources-primary-body[hidden] {
  display:none !important;
}

#rayan-ai-root .rai-sources-primary-body {
  padding:8px 9px 10px;
  border-top:1px solid rgba(90,255,114,.10);
  background:rgba(0,7,2,.22);
}

#rayan-ai-root .rai-sources-primary-body > .rai-source-accordion:first-child {
  margin-top:0;
}

/* Le titre peut s'étendre sur plusieurs lignes sans être recouvert. */
#rayan-ai-root .rai-source-title {
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  overflow-wrap:anywhere;
  word-break:normal;
}

#rayan-ai-root .rai-source-chevron {
  flex:0 0 auto;
  justify-self:end;
  align-self:center;
}

@media (max-width:760px) {
  #rayan-ai-root .rayan-ai-sources.rai-sources-primary {
    width:96%;
    max-width:96%;
    margin-left:auto;
    margin-right:auto;
  }

  #rayan-ai-root .rai-sources-primary-head {
    min-height:42px;
    padding:8px 9px;
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:7px;
  }

  #rayan-ai-root .rai-sources-primary-title {
    font-size:9px;
    letter-spacing:.075em;
  }

  #rayan-ai-root .rai-sources-primary-count {
    min-width:22px;
    height:22px;
    padding:0 6px;
    font-size:8.5px;
  }

  #rayan-ai-root .rai-sources-primary-chevron {
    width:25px;
    height:25px;
    font-size:15px;
  }

  #rayan-ai-root .rai-sources-primary-body {
    padding:7px;
  }

  /* Mobile : le chevron possède sa propre colonne et le titre sa propre ligne. */
  #rayan-ai-root .rai-source-accordion-head {
    min-height:0;
    grid-template-columns:auto auto minmax(0,1fr);
    grid-template-areas:
      "number type chevron"
      "title title title";
    align-items:center;
    gap:5px 6px;
    padding:8px;
  }

  #rayan-ai-root .rai-source-number {
    grid-area:number;
  }

  #rayan-ai-root .rai-source-type {
    grid-area:type;
    justify-self:start;
  }

  #rayan-ai-root .rai-source-title {
    grid-area:title;
    width:100%;
    padding:1px 1px 0;
    font-size:10.5px;
    line-height:1.38;
  }

  #rayan-ai-root .rai-source-chevron {
    grid-area:chevron;
    justify-self:end;
    width:27px;
    height:27px;
    margin-left:auto;
  }
}

@media (max-width:420px) {
  #rayan-ai-root .rai-sources-primary-head {
    padding:7px 8px;
  }

  #rayan-ai-root .rai-source-accordion-head {
    padding:7px;
  }

  #rayan-ai-root .rai-source-title {
    font-size:10px;
  }
}
