/* TSUBOMI — Assistant local adaptatif */
.tsubomi-assistant-launcher{position:fixed;z-index:10050;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:9px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));background:rgba(13,13,20,.96);color:#fff;border-radius:999px;padding:11px 15px;font:inherit;font-weight:800;cursor:pointer;-webkit-box-shadow:0 14px 44px rgba(0,0,0,.36);box-shadow:0 14px 44px rgba(0,0,0,.36);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);-webkit-transition:border-color .18s ease,opacity .18s ease,-webkit-transform .18s ease;transition:border-color .18s ease,opacity .18s ease,-webkit-transform .18s ease;transition:transform .18s ease,border-color .18s ease,opacity .18s ease;transition:transform .18s ease,border-color .18s ease,opacity .18s ease,-webkit-transform .18s ease}
.tsubomi-assistant-launcher:hover,.tsubomi-assistant-launcher:focus-visible{-webkit-transform:translateY(-2px);-ms-transform:translateY(-2px);transform:translateY(-2px);border-color:var(--accent);outline:none}.tsubomi-assistant-launcher-dot{width:12px;height:12px;border-radius:50%;background:var(--accent);-webkit-box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 14%,transparent)}
.tsubomi-assistant-greeting{position:fixed;z-index:10040;right:max(18px,env(safe-area-inset-right));bottom:calc(max(18px,env(safe-area-inset-bottom)) + 62px);width:min(330px,calc(100vw - 28px));padding:14px 42px 14px 15px;border-radius:17px;background:#15151d;border:1px solid var(--line);-webkit-box-shadow:0 16px 50px rgba(0,0,0,.38);box-shadow:0 16px 50px rgba(0,0,0,.38);-webkit-animation:tsubomiAssistantIn .25s ease;animation:tsubomiAssistantIn .25s ease}
.tsubomi-assistant-greeting strong{display:block;margin-bottom:4px}.tsubomi-assistant-greeting p{margin:0;color:var(--muted);line-height:1.45;font-size:.92rem}.tsubomi-assistant-greeting button{position:absolute;right:8px;top:8px;width:30px;height:30px;border:0;border-radius:10px;background:#22222d;color:#fff;cursor:pointer}
.tsubomi-assistant-panel{position:fixed;z-index:10060;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:min(430px,calc(100vw - 28px));height:min(720px,calc(100dvh - 32px));display:grid;grid-template-rows:auto auto 1fr auto auto;background:#0e0e14;border:1px solid var(--line);border-radius:22px;-webkit-box-shadow:0 30px 90px rgba(0,0,0,.56);box-shadow:0 30px 90px rgba(0,0,0,.56);overflow:hidden;-webkit-transform-origin:bottom right;-ms-transform-origin:bottom right;transform-origin:bottom right;-webkit-animation:tsubomiAssistantIn .2s ease;animation:tsubomiAssistantIn .2s ease}.tsubomi-assistant-panel[hidden]{display:none!important}
@-webkit-keyframes tsubomiAssistantIn{from{opacity:0;-webkit-transform:translateY(12px) scale(.985);transform:translateY(12px) scale(.985)}to{opacity:1;-webkit-transform:none;transform:none}}
@keyframes tsubomiAssistantIn{from{opacity:0;-webkit-transform:translateY(12px) scale(.985);transform:translateY(12px) scale(.985)}to{opacity:1;-webkit-transform:none;transform:none}}
.tsubomi-assistant-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;padding:14px 14px 12px;border-bottom:1px solid var(--line);background:-webkit-gradient(linear,left top, left bottom,from(color-mix(in srgb,var(--accent) 8%,#111119)),to(#111119));background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,#111119),#111119)}.tsubomi-assistant-headmark{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 17%,#181820);border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line));font-weight:900;color:var(--accent)}.tsubomi-assistant-headtext{min-width:0;-webkit-box-flex:1;-ms-flex:1;flex:1}.tsubomi-assistant-headtext strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tsubomi-assistant-headtext span{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}.tsubomi-assistant-head button{border:0;background:#22222d;color:#fff;border-radius:11px;min-width:38px;height:38px;cursor:pointer;font-size:1rem}
.tsubomi-assistant-context{padding:9px 12px;border-bottom:1px solid var(--line);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;min-width:0;background:#111118}.tsubomi-assistant-context span:first-child{font-size:.75rem;color:var(--muted);white-space:nowrap}.tsubomi-assistant-context strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsubomi-assistant-messages{overflow:auto;padding:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:11px;-ms-scroll-chaining:none;overscroll-behavior:contain;scrollbar-gutter:stable}.tsubomi-assistant-msg{max-width:88%;padding:10px 12px;border-radius:15px;line-height:1.48;font-size:.94rem;word-wrap:break-word}.tsubomi-assistant-msg.user{-ms-flex-item-align:end;align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px}.tsubomi-assistant-msg.assistant{-ms-flex-item-align:start;align-self:flex-start;background:#191923;border:1px solid var(--line);border-bottom-left-radius:5px}.tsubomi-assistant-msg p{margin:.2em 0 .55em}.tsubomi-assistant-msg p:last-child{margin-bottom:0}.tsubomi-assistant-msg .assistant-links{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:7px;margin-top:9px}.tsubomi-assistant-msg .assistant-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:34px;padding:6px 9px;border-radius:10px;background:#242431;color:#fff;border:1px solid var(--line);font-size:.82rem;text-decoration:none}.tsubomi-assistant-msg .assistant-link.primary{background:var(--accent);border-color:var(--accent)}.tsubomi-assistant-msg .assistant-mini{display:block;color:var(--muted);font-size:.78rem;margin-top:6px}
.tsubomi-assistant-typing{-ms-flex-item-align:start;align-self:flex-start;color:var(--muted);font-size:.82rem;padding:0 4px}.tsubomi-assistant-typing::after{content:'…';-webkit-animation:tsubomiBlink 1s steps(2,end) infinite;animation:tsubomiBlink 1s steps(2,end) infinite}@-webkit-keyframes tsubomiBlink{50%{opacity:.28}}@keyframes tsubomiBlink{50%{opacity:.28}}
.tsubomi-assistant-suggestions{display:-webkit-box;display:-ms-flexbox;display:flex;gap:7px;overflow:auto;padding:8px 12px 10px;border-top:1px solid var(--line);scrollbar-width:none}.tsubomi-assistant-suggestions::-webkit-scrollbar{display:none}.tsubomi-assistant-chip{white-space:nowrap;border:1px solid var(--line);background:#171720;color:#fff;border-radius:999px;padding:7px 10px;font:inherit;font-size:.8rem;cursor:pointer}.tsubomi-assistant-chip:hover{border-color:var(--accent)}
.tsubomi-assistant-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px 12px max(11px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#111118}.tsubomi-assistant-compose textarea{resize:none;min-height:44px;max-height:110px;border:1px solid var(--line);background:#09090d;color:#fff;border-radius:13px;padding:11px 12px;font:inherit;line-height:1.35;outline:none}.tsubomi-assistant-compose textarea:focus{border-color:var(--accent)}.tsubomi-assistant-send{-ms-flex-item-align:end;align-self:end;min-width:46px;height:44px;border:0;border-radius:13px;background:var(--accent);color:#fff;font:inherit;font-weight:900;cursor:pointer}.tsubomi-assistant-send:disabled{opacity:.5;cursor:not-allowed}
.tsubomi-assistant-menu{position:absolute;right:52px;top:58px;z-index:3;width:min(270px,calc(100% - 34px));padding:8px;border-radius:14px;border:1px solid var(--line);background:#171720;-webkit-box-shadow:0 16px 50px rgba(0,0,0,.45);box-shadow:0 16px 50px rgba(0,0,0,.45)}.tsubomi-assistant-menu[hidden]{display:none}.tsubomi-assistant-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#fff;border-radius:9px;padding:9px 10px;cursor:pointer;font:inherit;font-size:.84rem}.tsubomi-assistant-menu button:hover{background:#232330}.tsubomi-assistant-menu .danger{color:#ff8aa8}
.tsubomi-assistant-tour{position:fixed;z-index:10030;border:3px solid var(--accent);border-radius:14px;-webkit-box-shadow:0 0 0 9999px rgba(0,0,0,.58),0 0 0 5px color-mix(in srgb,var(--accent) 20%,transparent);box-shadow:0 0 0 9999px rgba(0,0,0,.58),0 0 0 5px color-mix(in srgb,var(--accent) 20%,transparent);pointer-events:none;-webkit-transition:.2s ease;transition:.2s ease}.tsubomi-assistant-tour-note{position:fixed;z-index:10035;max-width:min(360px,calc(100vw - 24px));background:#15151d;border:1px solid var(--line);border-radius:14px;padding:12px;-webkit-box-shadow:0 16px 44px rgba(0,0,0,.42);box-shadow:0 16px 44px rgba(0,0,0,.42)}.tsubomi-assistant-tour-note strong{display:block;margin-bottom:5px}.tsubomi-assistant-tour-note p{margin:0;color:var(--muted);line-height:1.4;font-size:.88rem}.tsubomi-assistant-tour-actions{display:-webkit-box;display:-ms-flexbox;display:flex;gap:7px;margin-top:10px}.tsubomi-assistant-tour-actions button{border:1px solid var(--line);background:#242431;color:#fff;border-radius:9px;padding:7px 9px;cursor:pointer}.tsubomi-assistant-tour-actions button:last-child{background:var(--accent);border-color:var(--accent)}
html[data-input="touch"] .tsubomi-assistant-launcher{min-height:50px;padding-inline:16px}html[data-input="touch"] .tsubomi-assistant-chip{min-height:42px}html[data-input="touch"] .tsubomi-assistant-send{min-width:50px;height:50px}
@media (max-width:640px){.tsubomi-assistant-launcher{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));padding:11px 13px}.tsubomi-assistant-launcher-label{display:none}.tsubomi-assistant-panel{left:0;right:0;bottom:0;width:100%;height:min(86dvh,760px);border-radius:22px 22px 0 0;border-left:0;border-right:0;border-bottom:0}.tsubomi-assistant-msg{max-width:92%}.tsubomi-assistant-greeting{right:12px;bottom:70px;width:min(310px,calc(100vw - 24px))}}
@media (max-height:520px) and (orientation:landscape){.tsubomi-assistant-panel{height:100dvh;right:0;bottom:0;border-radius:0;width:min(470px,55vw)}.tsubomi-assistant-suggestions{display:none}.tsubomi-assistant-head{padding-block:8px}.tsubomi-assistant-compose{padding-block:7px}.tsubomi-assistant-messages{padding:9px}}
@media (prefers-reduced-motion:reduce){.tsubomi-assistant-panel,.tsubomi-assistant-greeting{-webkit-animation:none;animation:none}.tsubomi-assistant-launcher,.tsubomi-assistant-tour{-webkit-transition:none;transition:none}}

/* Adaptation locale v3 — prioritaire sur les anciens seuils fixes. */
.tsubomi-assistant-launcher{bottom:calc(max(18px,env(safe-area-inset-bottom)) + var(--rgpd-space,0px))}
.tsubomi-assistant-greeting{bottom:calc(max(80px,env(safe-area-inset-bottom) + 62px) + var(--rgpd-space,0px))}
html[data-important-open="true"] .tsubomi-assistant-launcher,
html[data-important-open="true"] .tsubomi-assistant-greeting{opacity:0!important;pointer-events:none!important}

html[data-assistant-mode="docked"] .tsubomi-assistant-panel{
  width:var(--assistant-width)!important;height:auto!important;left:auto!important;
  right:max(16px,env(safe-area-inset-right))!important;top:max(16px,env(safe-area-inset-top))!important;
  bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--rgpd-space,0px))!important;border-radius:22px!important;
}
html[data-assistant-mode="floating"] .tsubomi-assistant-panel{
  width:min(var(--assistant-width),calc(100vw - 24px))!important;
  height:min(720px,calc(var(--visual-vh,100dvh) - 28px - var(--rgpd-space,0px)))!important;
  left:auto!important;right:max(12px,env(safe-area-inset-right))!important;top:auto!important;
  bottom:calc(max(12px,env(safe-area-inset-bottom)) + var(--rgpd-space,0px))!important;border-radius:22px!important;
}
html[data-assistant-mode="sheet"] .tsubomi-assistant-panel{
  width:auto!important;left:max(0px,env(safe-area-inset-left))!important;right:max(0px,env(safe-area-inset-right))!important;
  top:auto!important;bottom:var(--rgpd-space,0px)!important;
  height:min(84dvh,calc(var(--visual-vh,100dvh) - var(--rgpd-space,0px)))!important;
  max-height:calc(var(--visual-vh,100dvh) - var(--rgpd-space,0px))!important;border-radius:22px 22px 0 0!important;
}
html[data-assistant-mode="side-sheet"] .tsubomi-assistant-panel{
  width:min(var(--assistant-width),62vw)!important;height:calc(var(--visual-vh,100dvh) - var(--rgpd-space,0px))!important;
  left:auto!important;right:max(0px,env(safe-area-inset-right))!important;top:var(--visual-offset-top,0px)!important;
  bottom:var(--rgpd-space,0px)!important;border-radius:18px 0 0 18px!important;
}
.tsubomi-assistant-panel{max-height:calc(var(--visual-vh,100dvh) - var(--rgpd-space,0px))}
.tsubomi-assistant-messages{min-height:0}

@media(max-width:420px){
  .tsubomi-assistant-head{padding:10px}.tsubomi-assistant-headtext span{display:none}
  .tsubomi-assistant-context{padding:7px 10px}.tsubomi-assistant-messages{padding:10px}
  .tsubomi-assistant-suggestions{padding:7px 8px 8px}
  .tsubomi-assistant-compose{padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
}
@media(max-height:520px) and (orientation:landscape){
  html[data-assistant-mode="side-sheet"] .tsubomi-assistant-panel{width:min(var(--assistant-width),58vw)!important;height:calc(var(--visual-vh,100vh) - var(--rgpd-space,0px))!important}
  .tsubomi-assistant-context,.tsubomi-assistant-suggestions{display:none}
  .tsubomi-assistant-headtext span{display:none}
}
