/* === DKsearch — theme vert nenuphar === */
:root{
  --bg:#07110c;
  --bg-soft:#0c1a13;
  --bg-card:#0f1f17;
  --border:rgba(110,214,154,.14);
  --border-soft:rgba(255,255,255,.06);
  --text:#e4f3ea;
  --text-soft:#a7b9af;
  --text-mute:#6b7c73;
  --lily-1:#3fa874;
  --lily-2:#6ed69a;
  --lily-3:#2dd4a0;
  --lily-deep:#14b892;
  --lily-glow:rgba(110,214,154,.35);
  --error:#e74c3c;
}

*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg);color:var(--text);
  display:flex;flex-direction:row;
  background-image:
    radial-gradient(ellipse 700px 500px at 10% 20%,rgba(63,168,116,.18),transparent),
    radial-gradient(ellipse 600px 500px at 88% 18%,rgba(45,212,160,.10),transparent),
    radial-gradient(ellipse 500px 400px at 50% 92%,rgba(110,214,154,.10),transparent);
}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(110,214,154,.14);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(110,214,154,.28)}

/* === LIGHTBOX / CAROUSEL === */
.lightbox{
  position:fixed;inset:0;z-index:500;
  background:rgba(4,10,7,.94);backdrop-filter:blur(14px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  animation:fadeIn .18s ease;
  padding:1.5rem 3rem 4.5rem;
}
.lightbox-stage{
  flex:1;width:100%;
  display:flex;align-items:center;justify-content:center;
  position:relative;min-height:0;
}
.lightbox-image{
  max-width:100%;max-height:100%;
  object-fit:contain;border-radius:6px;
  box-shadow:0 20px 60px rgba(0,0,0,.6);
  animation:fadeIn .2s ease;
}
.lightbox-image.loading{opacity:.15}
.lightbox-loading{
  position:absolute;color:var(--lily-2);
  display:none;pointer-events:none;
}
.lightbox-loading svg{animation:spin 1s linear infinite}
.lightbox-loading.visible{display:block}
.lightbox-btn{
  position:absolute;z-index:2;
  background:rgba(15,31,23,.65);border:1px solid rgba(110,214,154,.2);
  color:var(--text);font-family:inherit;
  cursor:pointer;transition:all .15s;
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(8px);
}
.lightbox-btn:hover{
  background:rgba(63,168,116,.2);border-color:var(--lily-2);color:#fff;
  transform:translateY(-50%) scale(1.05);
}
.lightbox-close{
  top:1rem;right:1rem;
  width:42px;height:42px;border-radius:50%;
  font-size:1.15rem;font-weight:700;
  transform:none;
}
.lightbox-close:hover{transform:scale(1.08)}
.lightbox-prev,.lightbox-next{
  top:50%;transform:translateY(-50%);
  width:52px;height:64px;border-radius:10px;
  font-size:2rem;font-weight:300;line-height:1;
}
.lightbox-prev{left:1rem}
.lightbox-next{right:1rem}
.lightbox-prev.hidden,.lightbox-next.hidden{display:none}
.lightbox-footer{
  position:absolute;bottom:0;left:0;right:0;
  padding:.9rem 1.4rem calc(.9rem + env(safe-area-inset-bottom, 0px));
  background:linear-gradient(to top, rgba(4,10,7,.95), transparent);
  display:flex;flex-direction:column;align-items:center;gap:.3rem;
  pointer-events:none;
}
.lightbox-title{
  font-size:.95rem;color:var(--text);font-weight:500;
  text-align:center;max-width:90%;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  pointer-events:auto;
}
.lightbox-meta{
  display:flex;align-items:center;gap:1rem;
  font-size:.8rem;color:var(--text-mute);
  pointer-events:auto;
}
.lightbox-counter{font-variant-numeric:tabular-nums}
.lightbox-source{
  color:var(--lily-2);text-decoration:none;transition:all .15s;
  padding:.2rem .5rem;border-radius:5px;
}
.lightbox-source:hover{color:#fff;background:rgba(63,168,116,.2)}

body.lightbox-open{overflow:hidden}

@media(max-width:700px){
  .lightbox{padding:.8rem .5rem 5rem}
  .lightbox-close{top:.6rem;right:.6rem;width:38px;height:38px}
  .lightbox-prev,.lightbox-next{
    width:44px;height:54px;font-size:1.6rem;
  }
  .lightbox-prev{left:.4rem}
  .lightbox-next{right:.4rem}
  .lightbox-title{font-size:.85rem}
  .lightbox-meta{font-size:.72rem;gap:.6rem}
}

/* === AUTH OVERLAY === */
.auth-overlay{
  position:fixed;inset:0;z-index:1000;
  background:
    radial-gradient(ellipse 800px 600px at 30% 40%,rgba(63,168,116,.18),transparent 70%),
    radial-gradient(ellipse 600px 500px at 75% 70%,rgba(45,212,160,.12),transparent 70%),
    rgba(7,17,12,.96);
  backdrop-filter:blur(18px);
  display:flex;align-items:center;justify-content:center;
  animation:fadeIn .25s ease;
}
.auth-box{
  display:flex;flex-direction:column;align-items:center;gap:1.15rem;
  padding:2.4rem 2.2rem 2rem;border-radius:22px;
  background:linear-gradient(180deg,rgba(18,36,26,.88),rgba(12,26,19,.9));
  border:1px solid var(--border);
  box-shadow:
    0 28px 80px rgba(0,0,0,.6),
    0 0 0 1px rgba(110,214,154,.08),
    inset 0 1px 0 rgba(255,255,255,.04);
  width:min(400px,92vw);
  animation:floatIn .4s cubic-bezier(.16,1,.3,1);
}
.auth-logo{
  width:200px;height:auto;margin-bottom:.2rem;
  filter:drop-shadow(0 0 22px rgba(110,214,154,.4));
}
.auth-box h2{
  font-size:.78rem;color:var(--text-mute);font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  margin-top:-.3rem;
}
.auth-box input[type="password"]{
  width:100%;background:rgba(7,17,12,.85);
  border:1px solid var(--border);
  border-radius:12px;padding:.85rem 1.1rem;color:var(--text);
  font-family:inherit;font-size:1rem;outline:none;
  transition:all .2s;text-align:center;letter-spacing:.18em;
}
.auth-box input[type="password"]::placeholder{
  color:var(--text-mute);letter-spacing:.04em;font-weight:500;
}
.auth-box input[type="password"]:focus{
  border-color:var(--lily-2);
  background:rgba(7,17,12,.95);
  box-shadow:0 0 0 3px rgba(63,168,116,.18), 0 6px 20px rgba(63,168,116,.22);
}
.auth-submit{
  width:100%;padding:.8rem 1rem;
  background:linear-gradient(135deg,var(--lily-1),var(--lily-3));
  color:#06140c;border:none;border-radius:12px;
  font-family:inherit;font-size:.95rem;font-weight:800;
  letter-spacing:.04em;cursor:pointer;
  transition:all .18s;
  box-shadow:0 6px 20px rgba(45,212,160,.28), inset 0 1px 0 rgba(255,255,255,.15);
}
.auth-submit:hover{
  filter:brightness(1.1);transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(45,212,160,.45), inset 0 1px 0 rgba(255,255,255,.2);
}
.auth-submit:active{transform:translateY(0);filter:brightness(.95)}
.auth-error{color:var(--error);font-size:.82rem;min-height:1em;text-align:center;font-weight:500}

/* === SIDEBAR === */
.sidebar{
  width:280px;flex-shrink:0;
  display:flex;flex-direction:column;
  background:rgba(7,17,12,.92);backdrop-filter:blur(14px);
  border-right:1px solid var(--border);
  z-index:20;transition:margin-left .25s ease;
}
.sidebar.collapsed{margin-left:-280px}

.sidebar-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:.8rem 1rem;border-bottom:1px solid var(--border-soft);
  flex-shrink:0;
}
.sidebar-title{
  font-size:.85rem;font-weight:700;color:var(--lily-2);
  letter-spacing:.04em;text-transform:uppercase;
}
.sidebar-header .btn-icon{font-size:.85rem;padding:.25rem .45rem}

.btn-new-search{
  margin:.7rem .8rem;padding:.55rem .8rem;border-radius:10px;
  background:linear-gradient(135deg,var(--lily-1),var(--lily-2));color:#06140c;
  border:none;font-size:.9rem;font-weight:700;cursor:pointer;
  transition:all .18s;flex-shrink:0;
  box-shadow:0 4px 16px rgba(63,168,116,.25);
}
.btn-new-search:hover{filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 6px 22px rgba(63,168,116,.4)}

.conv-list{flex:1;overflow-y:auto;padding:.3rem .5rem;display:flex;flex-direction:column;gap:.2rem}

.conv-item{
  padding:.55rem .7rem;border-radius:8px;
  background:transparent;border:1px solid transparent;
  cursor:pointer;transition:all .15s;display:flex;flex-direction:column;gap:.15rem;
}
.conv-item:hover{background:rgba(110,214,154,.04);border-color:rgba(110,214,154,.08)}
.conv-item.active{background:rgba(63,168,116,.12);border-color:rgba(110,214,154,.3)}

.conv-item-row{display:flex;align-items:center;gap:.4rem}
.conv-item-title{flex:1;font-size:.85rem;font-weight:600;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-item.active .conv-item-title{color:var(--text)}
.conv-item-meta{font-size:.68rem;color:var(--text-mute);display:flex;gap:.6rem}
.conv-item-meta span{white-space:nowrap}

.conv-item-actions{display:none;align-items:center;gap:.3rem;margin-left:auto}
.conv-item:hover .conv-item-actions{display:flex}
.conv-item-actions button{
  background:none;border:none;color:var(--text-mute);cursor:pointer;
  font-size:.8rem;padding:.1rem .3rem;border-radius:4px;transition:all .15s;
}
.conv-item-actions button:hover{color:var(--error);background:rgba(231,76,60,.1)}

.conv-rename-input{
  flex:1;background:rgba(110,214,154,.08);border:1px solid rgba(110,214,154,.4);
  border-radius:5px;padding:.2rem .45rem;color:var(--text);
  font-family:inherit;font-size:.85rem;font-weight:600;outline:none;
}

.sidebar-empty{
  padding:1.5rem .8rem;text-align:center;color:var(--text-mute);font-size:.82rem;
}

/* Sidebar toggle (collapsed) */
.sidebar-toggle{
  position:fixed;top:.8rem;left:.8rem;z-index:25;
  width:40px;height:40px;border-radius:10px;
  background:rgba(15,31,23,.9);border:1px solid var(--border);
  color:var(--lily-2);cursor:pointer;font-size:1.05rem;
  display:none;align-items:center;justify-content:center;
  transition:all .15s;backdrop-filter:blur(10px);
}
.sidebar-toggle:hover{color:#fff;border-color:var(--lily-2);box-shadow:0 0 14px rgba(110,214,154,.3)}
.sidebar.collapsed ~ .app-main .sidebar-toggle{display:flex}

/* === APP MAIN === */
.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;position:relative}

/* === HEADER (minimal) === */
.app-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:.7rem 1.2rem;flex-shrink:0;
  border-bottom:1px solid var(--border-soft);
  background:rgba(7,17,12,.7);backdrop-filter:blur(12px);
  z-index:10;
}
.app-header .brand{display:flex;align-items:center;gap:.6rem;cursor:pointer}
.app-header .brand-logo{height:30px;width:auto}
.btn-icon{
  background:none;border:1px solid var(--border);color:var(--text-soft);
  border-radius:8px;padding:.4rem .65rem;cursor:pointer;font-size:1rem;transition:all .15s;
}
.btn-icon:hover{color:var(--text);border-color:var(--lily-2);background:rgba(110,214,154,.08)}

/* === HOME (landing centre) === */
.home-wrap{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:2rem 1.2rem;overflow-y:auto;gap:2rem;
}
.home-wrap.hidden{display:none}

.home-logo{
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  animation:floatIn .6s cubic-bezier(.16,1,.3,1);
}
.home-logo-img{
  height:84px;width:auto;
  filter:drop-shadow(0 0 24px rgba(110,214,154,.35));
}
.home-tagline{
  font-size:1rem;color:var(--text-soft);font-weight:500;
  text-align:center;max-width:520px;line-height:1.5;
}

.search-box{
  width:min(640px,92vw);display:flex;flex-direction:column;gap:.7rem;
  animation:floatIn .7s cubic-bezier(.16,1,.3,1) .1s both;
}
.search-field{
  position:relative;display:flex;align-items:center;gap:.45rem;
  background:rgba(15,31,23,.7);border:1px solid var(--border);
  border-radius:30px;padding:.35rem .4rem .35rem 1.2rem;
  transition:all .2s;
  box-shadow:0 8px 30px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.02);
}
.search-field:focus-within{
  border-color:var(--lily-2);
  box-shadow:0 8px 36px rgba(63,168,116,.3), 0 0 0 3px rgba(63,168,116,.12), inset 0 0 0 1px rgba(110,214,154,.14);
}
.search-field .ic{color:var(--lily-2);font-size:1.05rem;flex-shrink:0;display:flex;align-items:center;pointer-events:none;user-select:none}
.search-field textarea{
  flex:1;min-width:0;resize:none;
  background:transparent;border:none;outline:none;
  color:var(--text);font-family:inherit;font-size:16px;
  padding:.7rem 0;line-height:1.35;max-height:160px;
}
.search-field textarea::placeholder{color:var(--text-mute)}

/* Toggle profondeur de recherche (light / medium / high) */
.btn-depth{
  position:relative;
  width:40px;height:40px;border-radius:50%;
  border:1px solid var(--border);background:rgba(110,214,154,.05);
  cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:all .18s;
}
.btn-depth:hover{border-color:var(--lily-2);background:rgba(110,214,154,.1)}
.btn-depth .depth-bars{display:flex;align-items:flex-end;gap:2.5px;height:14px}
.btn-depth .b{width:3px;border-radius:1.5px;background:rgba(110,214,154,.22);transition:all .2s}
.btn-depth .b1{height:5px}
.btn-depth .b2{height:9px}
.btn-depth .b3{height:13px}
.btn-depth[data-level="light"]  .b1{background:var(--lily-2);box-shadow:0 0 6px var(--lily-glow)}
.btn-depth[data-level="medium"] .b1,
.btn-depth[data-level="medium"] .b2{background:var(--lily-2);box-shadow:0 0 6px var(--lily-glow)}
.btn-depth[data-level="high"] .b1,
.btn-depth[data-level="high"] .b2,
.btn-depth[data-level="high"] .b3{background:var(--lily-3);box-shadow:0 0 8px rgba(45,212,160,.5)}
.btn-depth[data-level="high"]{border-color:rgba(45,212,160,.4)}
.btn-depth-sm{width:36px;height:36px}
.btn-depth-sm .depth-bars{height:12px}
.btn-depth-sm .b1{height:4px}
.btn-depth-sm .b2{height:8px}
.btn-depth-sm .b3{height:11px}

/* Toggle extras (images / videos / news) — multi-select */
.btn-extras{
  position:relative;
  width:40px;height:40px;border-radius:50%;
  border:1px solid var(--border);background:rgba(110,214,154,.05);
  cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:all .18s;color:var(--text-soft);
  font-weight:700;font-size:1.1rem;
}
.btn-extras:hover{border-color:var(--lily-2);background:rgba(110,214,154,.1);color:var(--text)}
.btn-extras.has-active{border-color:var(--lily-2);background:rgba(63,168,116,.15);color:var(--lily-2)}
.btn-extras .extras-ic{line-height:1}
.btn-extras .extras-dots{
  position:absolute;bottom:4px;right:4px;
  display:flex;gap:2px;
}
.btn-extras .extras-dots .d{
  width:5px;height:5px;border-radius:50%;
  background:var(--lily-3);box-shadow:0 0 4px rgba(45,212,160,.7);
}
.btn-extras-sm{width:36px;height:36px;font-size:1rem}

.extras-menu{
  position:absolute;z-index:60;
  background:#0f1f17;border:1px solid var(--border);border-radius:12px;
  padding:.4rem;min-width:200px;
  box-shadow:0 12px 32px rgba(0,0,0,.55);
  display:flex;flex-direction:column;gap:.2rem;
  animation:floatIn .15s ease;
}
.extras-menu-title{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--text-mute);font-weight:700;
  padding:.3rem .55rem .15rem;
}
.extras-menu-item{
  display:flex;align-items:center;gap:.6rem;
  padding:.5rem .65rem;border-radius:8px;cursor:pointer;
  font-size:.9rem;color:var(--text-soft);transition:all .12s;
  user-select:none;
}
.extras-menu-item:hover{background:rgba(110,214,154,.08);color:var(--text)}
.extras-menu-item.active{background:rgba(63,168,116,.15);color:var(--lily-2);font-weight:600}
.extras-menu-item .em-check{
  width:16px;height:16px;border-radius:4px;
  border:1.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .15s;
}
.extras-menu-item.active .em-check{
  background:var(--lily-2);border-color:var(--lily-2);color:#06140c;
}
.extras-menu-item.active .em-check::after{content:'✓';font-size:.72rem;font-weight:800}
.extras-menu-item .em-icon{font-size:1rem}
.extras-menu-item .em-label{flex:1}
.extras-menu-item .em-hint{font-size:.7rem;color:var(--text-mute)}
.extras-menu-item.active .em-hint{color:var(--lily-2);opacity:.8}

.depth-menu{
  position:absolute;z-index:60;
  background:#0f1f17;border:1px solid var(--border);border-radius:10px;
  padding:.35rem;min-width:150px;
  box-shadow:0 10px 30px rgba(0,0,0,.5);
  display:flex;flex-direction:column;gap:.15rem;
  animation:floatIn .15s ease;
}
.depth-menu-item{
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding:.45rem .65rem;border-radius:7px;cursor:pointer;
  font-size:.85rem;color:var(--text-soft);transition:all .12s;
}
.depth-menu-item:hover{background:rgba(110,214,154,.08);color:var(--text)}
.depth-menu-item.active{background:rgba(63,168,116,.15);color:var(--lily-2);font-weight:600}
.depth-menu-item .dm-label{display:flex;align-items:center;gap:.4rem}
.depth-menu-item .dm-hint{font-size:.7rem;color:var(--text-mute);font-weight:500}
.depth-menu-item.active .dm-hint{color:var(--lily-2);opacity:.8}

.btn-search-go{
  width:44px;height:44px;border-radius:50%;border:none;
  background:linear-gradient(135deg,var(--lily-1),var(--lily-3));color:#06140c;
  cursor:pointer;font-size:1rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  transition:all .18s;flex-shrink:0;
  box-shadow:0 4px 14px rgba(45,212,160,.35);
}
.btn-search-go:hover{filter:brightness(1.12);transform:scale(1.05);box-shadow:0 6px 22px rgba(45,212,160,.5)}
.btn-search-go:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.btn-search-go.loading{animation:pulse 1.2s ease-in-out infinite}

.home-hints{
  display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;
  max-width:640px;animation:floatIn .8s cubic-bezier(.16,1,.3,1) .2s both;
}
.hint-chip{
  font-size:.8rem;color:var(--text-soft);
  padding:.4rem .8rem;border-radius:14px;
  background:rgba(110,214,154,.05);border:1px solid var(--border-soft);
  cursor:pointer;transition:all .15s;
}
.hint-chip:hover{background:rgba(110,214,154,.12);border-color:var(--border);color:var(--text)}

/* === SESSION (resultats) === */
.session-wrap{
  flex:1;display:flex;flex-direction:column;overflow:hidden;
}
.session-wrap.hidden{display:none}

.session-stream{
  flex:1;overflow-y:auto;
  padding:1.5rem clamp(1rem, 4vw, 4rem) 1rem;
  display:flex;flex-direction:column;gap:1.6rem;
  width:100%;
}

/* Etape : question + requete + reponse, plein fond (pas de cadre) */
.step{
  display:flex;flex-direction:column;gap:.6rem;
  animation:fadeIn .3s ease;
}
.step + .step{
  padding-top:1.4rem;margin-top:.4rem;
  border-top:1px solid var(--border-soft);
}

/* Bulle question (user) : alignee a droite, style chat */
.step-prompt{
  align-self:flex-end;
  max-width:min(78%, 700px);
  padding:.7rem 1rem;
  background:linear-gradient(135deg, rgba(63,168,116,.22), rgba(45,212,160,.12));
  border:1px solid rgba(110,214,154,.28);
  border-radius:16px 16px 4px 16px;
  box-shadow:0 2px 10px rgba(63,168,116,.08);
}
.step-prompt-ic{display:none}
.step-prompt-body{
  font-size:1rem;font-weight:500;line-height:1.45;
  color:var(--text);word-wrap:break-word;white-space:pre-wrap;
}

/* Chip requete : sous la bulle question, aligne a droite */
.step-query{
  align-self:flex-end;
  display:flex;align-items:center;gap:.5rem;
  max-width:min(78%, 700px);
  font-size:.72rem;color:var(--text-mute);
  margin-top:-.2rem;
}
.step-query-label{
  font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  color:var(--lily-2);padding:.15rem .45rem;
  background:rgba(110,214,154,.08);border:1px solid rgba(110,214,154,.2);border-radius:4px;
}
.step-query-text{
  flex:1;font-family:'JetBrains Mono','Fira Code',monospace;font-size:.82rem;
  color:var(--text-soft);background:rgba(110,214,154,.04);
  border:1px solid var(--border-soft);border-radius:5px;padding:.2rem .5rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* Reponse (IA) : alignee a gauche, pas de cadre, juste du texte sur le fond */
.step-result{
  align-self:flex-start;
  width:100%;max-width:min(95%, 800px);
  padding:.3rem .2rem;
  font-size:.96rem;line-height:1.7;color:var(--text-soft);
}
.step-result h2{
  font-size:.82rem;color:var(--lily-2);font-weight:800;
  margin:.9rem 0 .4rem;text-transform:uppercase;letter-spacing:.06em;
  padding-bottom:.3rem;border-bottom:1px solid var(--border-soft);
}
.step-result h2:first-child{margin-top:0}
.step-result h3{
  font-size:.98rem;color:var(--text);font-weight:700;
  margin:.8rem 0 .3rem;letter-spacing:.01em;
}
.step-result h4{
  font-size:.9rem;color:var(--text-soft);font-weight:700;
  margin:.6rem 0 .2rem;
}
.step-result hr{
  border:none;height:1px;margin:.7rem 0;
  background:linear-gradient(to right, transparent, var(--border), transparent);
}
.step-result ul,.step-result ol{margin:.35rem 0 .35rem 1.1rem;padding-left:.4rem}
.step-result li{margin:.25rem 0}
.step-result strong{color:var(--text);font-weight:700}
.step-result p{margin:.4rem 0}
.step-result a{color:var(--lily-3);text-decoration:underline;text-underline-offset:2px}
.step-result a:hover{color:var(--lily-2)}
.step-result code{background:rgba(110,214,154,.08);padding:.1rem .3rem;border-radius:4px;font-size:.85rem;font-family:'JetBrains Mono','Fira Code',monospace;color:var(--lily-2)}

/* === SECTIONS EXTRAS DANS UN STEP === */
.step-extras{
  align-self:flex-start;
  width:100%;max-width:min(100%, 1100px);
  display:flex;flex-direction:column;gap:1rem;
  margin-top:.2rem;
}
.extras-section-title{
  font-size:.7rem;font-weight:800;color:var(--lily-2);
  text-transform:uppercase;letter-spacing:.08em;
  display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;
}
.extras-section-title .icon{font-size:1rem}
.extras-section-title .count{
  font-size:.68rem;color:var(--text-mute);font-weight:600;
}

/* Images INLINE (1 ou 2 au-dessus de la reponse, integrees) */
.step-inline-images{
  align-self:flex-start;
  display:grid;gap:.6rem;
  width:100%;max-width:min(100%, 760px);
  margin-top:-.1rem;
}
.step-inline-images.count-1{
  grid-template-columns:1fr;max-width:min(100%, 540px);
}
.step-inline-images.count-1 .extras-image{
  aspect-ratio:16/10;
}
.step-inline-images.count-2{
  grid-template-columns:repeat(2, 1fr);
}
.step-inline-images.count-2 .extras-image{
  aspect-ratio:4/3;
}

/* Grille IMAGES (3+ sous la reponse) */
.extras-images{
  display:grid;gap:.5rem;
}
.extras-images.count-grid{
  grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
}
.extras-image{
  position:relative;display:block;
  aspect-ratio:4/3;overflow:hidden;
  border-radius:10px;background:rgba(110,214,154,.04);
  border:1px solid var(--border-soft);
  transition:all .18s;text-decoration:none;
  padding:0;cursor:pointer;font-family:inherit;color:inherit;
}
.extras-image:hover{
  border-color:var(--lily-2);transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(63,168,116,.22);
}
.extras-image img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .3s;
}
.extras-image:hover img{transform:scale(1.05)}
.extras-image-placeholder{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  color:var(--text-mute);font-size:1.2rem;
}
.extras-image-caption{
  position:absolute;bottom:0;left:0;right:0;
  padding:.35rem .5rem;
  background:linear-gradient(to top, rgba(7,17,12,.92), transparent);
  color:var(--text);font-size:.72rem;font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  opacity:0;transition:opacity .18s;
}
.extras-image:hover .extras-image-caption{opacity:1}

/* Liste VIDEOS */
.extras-videos{
  display:grid;gap:.6rem;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
}
.extras-video{
  display:flex;gap:.7rem;padding:.5rem;border-radius:10px;
  background:rgba(110,214,154,.03);border:1px solid var(--border-soft);
  text-decoration:none;color:var(--text-soft);
  transition:all .18s;
}
.extras-video:hover{background:rgba(110,214,154,.08);border-color:var(--lily-2);color:var(--text)}
.extras-video-thumb{
  position:relative;flex-shrink:0;
  width:120px;aspect-ratio:16/9;border-radius:6px;overflow:hidden;
  background:rgba(0,0,0,.4);
}
.extras-video-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.extras-video-length{
  position:absolute;bottom:3px;right:3px;
  padding:1px 5px;border-radius:3px;
  background:rgba(0,0,0,.82);color:#fff;
  font-size:.68rem;font-weight:700;
}
.extras-video-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}
.extras-video-title{
  font-size:.85rem;font-weight:600;color:var(--text);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.extras-video-src{font-size:.7rem;color:var(--text-mute)}

/* Liste NEWS */
.extras-news{display:flex;flex-direction:column;gap:.45rem}
.extras-news-item{
  display:block;padding:.6rem .75rem;border-radius:8px;
  background:rgba(110,214,154,.03);border:1px solid var(--border-soft);
  text-decoration:none;transition:all .18s;
}
.extras-news-item:hover{background:rgba(110,214,154,.08);border-color:var(--lily-2)}
.extras-news-title{
  font-size:.9rem;font-weight:600;color:var(--text);
  margin-bottom:.15rem;line-height:1.35;
}
.extras-news-meta{
  display:flex;align-items:center;gap:.5rem;
  font-size:.72rem;color:var(--text-mute);
}
.extras-news-date{color:var(--lily-2);font-weight:600}
.extras-news-source{color:var(--text-mute)}
.extras-news-snippet{
  margin-top:.35rem;font-size:.82rem;color:var(--text-soft);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}

.step-sources{
  display:flex;flex-direction:column;gap:.35rem;margin-top:.7rem;
  padding-top:.7rem;border-top:1px solid var(--border-soft);
}
.step-sources-title{
  font-size:.68rem;text-transform:uppercase;color:var(--text-mute);
  font-weight:700;letter-spacing:.06em;margin-bottom:.2rem;
}
.step-source{
  display:block;padding:.5rem .7rem;border-radius:7px;
  background:rgba(110,214,154,.03);border:1px solid var(--border-soft);
  font-size:.82rem;color:var(--text-soft);text-decoration:none;transition:all .13s;
}
.step-source:hover{background:rgba(110,214,154,.08);border-color:var(--border);color:var(--text)}
.step-source-title{font-weight:600;color:var(--text);margin-bottom:.1rem;font-size:.85rem}
.step-source-url{font-size:.72rem;color:var(--text-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.step-loading{
  align-self:flex-start;
  display:flex;align-items:center;gap:.6rem;
  padding:.3rem .2rem;color:var(--lily-2);font-size:.9rem;font-weight:500;
}
.step-loading svg{animation:spin 1s linear infinite}
.step-loading .dots span{animation:blink 1.4s infinite both}
.step-loading .dots span:nth-child(2){animation-delay:.2s}
.step-loading .dots span:nth-child(3){animation-delay:.4s}

.step-error{
  padding:.8rem 1rem;border-radius:10px;
  background:rgba(231,76,60,.08);border:1px solid rgba(231,76,60,.3);
  color:var(--error);font-size:.9rem;
}

/* === REFINE BAR (footer) === */
.refine-bar{
  flex-shrink:0;
  padding:.9rem clamp(1rem, 4vw, 4rem) calc(1.2rem + env(safe-area-inset-bottom, 0px));
  background:linear-gradient(to bottom,transparent,rgba(7,17,12,.9) 30%);
  display:flex;justify-content:center;
}
.refine-inner{
  width:100%;
  display:flex;align-items:center;gap:.4rem;
  background:rgba(15,31,23,.88);border:1px solid var(--border);
  border-radius:24px;padding:.3rem .3rem .3rem 1.1rem;
  transition:all .2s;backdrop-filter:blur(12px);
  box-shadow:0 6px 22px rgba(0,0,0,.25);
}
.refine-inner:focus-within{
  border-color:var(--lily-2);
  box-shadow:0 8px 28px rgba(63,168,116,.25), 0 0 0 3px rgba(63,168,116,.1);
}
.refine-inner .ic{color:var(--lily-2);font-size:1rem;flex-shrink:0;display:flex;align-items:center;pointer-events:none;user-select:none}
.refine-inner textarea{
  flex:1;min-width:0;resize:none;background:transparent;border:none;outline:none;
  color:var(--text);font-family:inherit;font-size:16px;
  padding:.55rem 0;line-height:1.35;max-height:120px;
}
.refine-inner textarea::placeholder{color:var(--text-mute)}
.btn-refine{
  width:38px;height:38px;border-radius:50%;border:none;
  background:linear-gradient(135deg,var(--lily-1),var(--lily-3));color:#06140c;
  cursor:pointer;font-size:.95rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  transition:all .18s;flex-shrink:0;
  box-shadow:0 3px 10px rgba(45,212,160,.3);
}
.btn-refine:hover{filter:brightness(1.12);transform:scale(1.05)}
.btn-refine:disabled{opacity:.35;cursor:not-allowed;transform:none}
.btn-refine.loading{animation:pulse 1.2s ease-in-out infinite}

/* === ANIMATIONS === */
@keyframes floatIn{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{
  from{opacity:0;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes blink{0%,80%,100%{opacity:.2}40%{opacity:1}}
@keyframes shimmer{
  0%{background-position:-600px 0}
  100%{background-position:600px 0}
}

/* === RESPONSIVE === */

/* Scrim qui apparait quand la sidebar est ouverte en mobile */
.sidebar-scrim{
  display:none;position:fixed;inset:0;z-index:25;
  background:rgba(0,0,0,.45);backdrop-filter:blur(2px);
  animation:fadeIn .2s ease;
}

@media(max-width:820px){
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;z-index:30;
    width:min(290px, 86vw);
    box-shadow:8px 0 24px rgba(0,0,0,.5);
  }
  .sidebar.collapsed{margin-left:-320px}
  body.sidebar-open .sidebar-scrim{display:block}

  .app-header{padding:.6rem .8rem}
  .brand-logo{height:28px}
  .btn-icon{padding:.35rem .55rem}

  .session-stream{padding:1rem .9rem .7rem;gap:.8rem}
  .refine-bar{
    padding:.6rem .7rem calc(.9rem + env(safe-area-inset-bottom, 0px));
  }
  .refine-inner{border-radius:20px;padding:.25rem .25rem .25rem .9rem}

  .home-wrap{padding:1.2rem .9rem;gap:1.3rem}
  .home-logo-img{width:160px}
  .search-field{border-radius:26px;padding:.3rem .35rem .3rem 1rem}
  .search-field textarea{padding:.65rem 0}

  .step-prompt{max-width:88%;padding:.6rem .85rem}
  .step-prompt-body{font-size:.95rem}
  .step-query{max-width:88%}
  .step-result{max-width:100%;padding:.3rem 0;font-size:.93rem}
  .step-query-text{font-size:.75rem}

  /* Boutons plus gros en tactile */
  .btn-search-go{width:42px;height:42px}
  .btn-refine{width:40px;height:40px}
  .btn-depth{width:40px;height:40px}
  .btn-depth-sm{width:40px;height:40px}
  .btn-depth-sm .depth-bars{height:13px}
  .btn-depth-sm .b1{height:5px}
  .btn-depth-sm .b2{height:9px}
  .btn-depth-sm .b3{height:13px}

  /* Depth menu plus lisible au doigt */
  .depth-menu{min-width:180px}
  .depth-menu-item{padding:.6rem .8rem;font-size:.92rem}

  /* Auth overlay */
  .auth-box{padding:1.8rem 1.4rem 1.5rem;gap:1rem}
  .auth-logo{width:170px}
}

/* Très petit écran : optimisations supplémentaires */
@media(max-width:380px){
  .sidebar{width:88vw}
  .sidebar.collapsed{margin-left:-90vw}
  .home-logo-img{width:140px}
  .step-prompt-body{font-size:.88rem}
  .step-result{font-size:.88rem}
}
