/* Lynn chatbot is intentionally isolated from the approved site layout. */
.lynn-chat{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:120;
  font-family:var(--sans);
  color:var(--ink);
  pointer-events:none;
}
.lynn-launcher,.lynn-panel{pointer-events:auto}
.lynn-launcher{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:10px 18px 10px 10px;
  border:1px solid var(--gold);
  border-radius:999px;
  background:var(--navy);
  color:var(--ink);
  box-shadow:var(--shadow-lift);
  cursor:pointer;
  font:600 15px/1.2 var(--sans);
  transition:transform .28s ease,background .2s ease;
}
.lynn-launcher:hover{background:var(--panel-2);transform:translateY(-2px)}
.lynn-chat.lynn-footer-visible:not(.lynn-open) .lynn-launcher{
  opacity:0;
  pointer-events:none;
  transform:translateY(-72px);
}
.lynn-launcher-mark{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  flex:none;
  border-radius:50%;
  background:var(--gold);
  color:var(--chrome);
  font:600 18px/1 var(--serif);
  overflow:hidden;
}
.lynn-launcher-mark img,.lynn-avatar img,.lynn-welcome-avatar img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.lynn-panel{
  position:absolute;
  right:0;
  bottom:68px;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:min(380px,calc(100vw - 32px));
  height:min(570px,calc(100vh - 118px));
  overflow:hidden;
  border:1px solid var(--line-2);
  border-radius:10px;
  background:var(--panel);
  box-shadow:var(--shadow-lift);
  transform-origin:bottom right;
}
.lynn-panel[hidden]{display:none}
.lynn-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 14px 13px 16px;
  border-bottom:1px solid var(--line);
  background:var(--navy);
}
.lynn-avatar{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:none;
  border:1px solid var(--gold);
  border-radius:50%;
  color:var(--gold-soft);
  background:var(--navy-deep);
  font:600 21px/1 var(--serif);
  overflow:hidden;
}
.lynn-heading{min-width:0;flex:1}
.lynn-heading strong{display:block;font:600 18px/1.2 var(--serif);color:var(--ink)}
.lynn-heading span{display:block;margin-top:2px;font-size:12.5px;color:var(--ink-2)}
.lynn-new-chat{
  display:inline-block;
  margin-top:4px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--gold-soft);
  cursor:pointer;
  font:600 12px/1.25 var(--sans);
  text-decoration:underline;
  text-underline-offset:2px;
}
.lynn-new-chat:hover{color:var(--gold)}
.lynn-new-chat:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.lynn-window-actions{display:flex;align-items:center;gap:2px;flex:none}
.lynn-window-button{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:none;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--ink-2);
  cursor:pointer;
  font:400 26px/1 var(--sans);
}
.lynn-window-button:hover{background:var(--panel-2);color:var(--gold-soft)}
.lynn-minimise span{transform:translateY(-2px)}
.lynn-messages{
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:18px 16px 12px;
  scroll-behavior:smooth;
}
.lynn-welcome-avatar{
  width:92px;
  height:92px;
  margin:2px auto 15px;
  overflow:hidden;
  border:1px solid rgba(199,161,90,.86);
  border-radius:50%;
  background:rgba(199,161,90,.72);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.lynn-panel:not([hidden]) .lynn-welcome-avatar img{
  animation:lynn-greeting 1.35s cubic-bezier(.22,.72,.3,1) .18s both;
  transform-origin:50% 78%;
}
.lynn-chat.lynn-reacting .lynn-welcome-avatar img{
  animation:lynn-react .76s cubic-bezier(.22,.68,.3,1);
  transform-origin:50% 78%;
}
@keyframes lynn-greeting{
  0%{transform:translateY(4px) rotate(0deg) scale(.98);opacity:.72}
  32%{transform:translateY(-1px) rotate(-2.5deg) scale(1.01);opacity:1}
  52%{transform:translateY(0) rotate(2deg) scale(1)}
  70%{transform:translateY(0) rotate(-1.2deg) scale(1.004)}
  100%{transform:translateY(0) rotate(0deg) scale(1);opacity:1}
}
@keyframes lynn-react{
  0%,100%{transform:translateY(0) rotate(0deg) scale(1)}
  38%{transform:translateY(1px) rotate(1.2deg) scale(.992)}
  68%{transform:translateY(-.5px) rotate(-.8deg) scale(1.006)}
}
.lynn-message{display:flex;margin:0 0 13px}
.lynn-message[data-role="user"]{justify-content:flex-end}
.lynn-bubble{
  max-width:88%;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:4px 12px 12px 12px;
  background:var(--panel-2);
  color:var(--ink);
  font-size:15px;
  line-height:1.45;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.lynn-message[data-role="user"] .lynn-bubble{
  border-color:var(--navy);
  border-radius:12px 4px 12px 12px;
  background:var(--navy);
}
.lynn-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:2px 0 16px;
}
.lynn-action{
  min-height:38px;
  padding:8px 11px;
  border:1px solid var(--line-2);
  border-radius:999px;
  background:transparent;
  color:var(--ink-2);
  cursor:pointer;
  font:600 13.5px/1.25 var(--sans);
  text-align:left;
}
.lynn-action:hover{border-color:var(--gold);color:var(--gold-soft);background:var(--gold-wash)}
.lynn-action.is-selected{
  border-color:var(--gold);
  background:var(--gold-wash);
  color:var(--gold-soft);
  box-shadow:inset 0 0 0 1px rgba(210,176,117,.2);
}
.lynn-action-with-icon{display:inline-flex;align-items:center;gap:7px}
.lynn-action-icon{width:17px;height:17px;flex:none}
.lynn-input-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.lynn-input-actions .lynn-action{
  width:100%;
  min-width:0;
  min-height:36px;
  justify-content:center;
  padding:7px 9px;
  font-size:12.5px;
  text-align:center;
  white-space:normal;
}
.lynn-action-link{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 2px;border:0;background:transparent;color:var(--ink-2);cursor:pointer;font:600 13.5px/1.25 var(--sans);text-align:left}
.lynn-action-link span:first-child{color:var(--gold);font-size:19px;line-height:1;transition:transform .18s ease}
.lynn-action-link:hover{color:var(--gold-soft)}
.lynn-action-link:hover span:first-child{transform:translateX(-2px)}
.lynn-composer{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:9px;
  padding:12px;
  border-top:1px solid var(--line);
  background:var(--chrome);
}
.lynn-voice-panel{
  grid-column:1/-1;
  padding:11px;
  border:1px solid var(--line-2);
  border-radius:7px;
  background:rgba(255,255,255,.025);
}
.lynn-voice-panel[hidden]{display:none}
.lynn-voice-hint{margin:0 0 9px;color:var(--ink-2);font-size:12.5px;line-height:1.4}
.lynn-voice-status-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;color:var(--ink);font-size:13px}
.lynn-voice-status-row strong{color:var(--gold-soft);font-variant-numeric:tabular-nums;font-size:12.5px}
.lynn-voice-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.lynn-voice-panel[data-state="consent"] .lynn-voice-dot,.lynn-voice-panel[data-state="consent"] [data-lynn-voice-timer]{display:none}
.lynn-voice-panel[data-state="recording"] .lynn-voice-dot{background:#d96b63;box-shadow:0 0 0 4px rgba(217,107,99,.13);animation:lynn-recording-pulse 1.5s ease-in-out infinite}
.lynn-voice-panel[data-state="ready"] .lynn-voice-dot{background:var(--gold)}
.lynn-voice-consent{display:flex;align-items:flex-start;gap:9px;margin:10px 0 0;padding:10px;border:1px solid rgba(58,70,87,.56);border-radius:6px;background:rgba(255,255,255,.025);color:var(--ink-2);font-size:12.5px;line-height:1.4}
.lynn-voice-consent[hidden]{display:none}
.lynn-voice-consent input{width:17px;height:17px;flex:none;margin:1px 0 0;accent-color:var(--gold)}
.lynn-voice-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.lynn-voice-actions button{min-height:34px;padding:7px 10px;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--ink-2);cursor:pointer;font:600 12.5px/1.2 var(--sans)}
.lynn-voice-actions button:hover{border-color:var(--gold);color:var(--gold-soft)}
.lynn-voice-actions button:disabled{opacity:.46;cursor:not-allowed}
.lynn-voice-actions [data-lynn-voice-consent-start],.lynn-voice-actions [data-lynn-voice-stop],.lynn-voice-actions [data-lynn-voice-use]{border-color:var(--gold);background:var(--gold);color:var(--chrome)}
.lynn-voice{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid var(--line-2);
  border-radius:50%;
  background:transparent;
  color:var(--gold-soft);
  cursor:pointer;
}
.lynn-voice[hidden]{display:none}
.lynn-voice:hover{border-color:var(--gold);background:var(--gold-wash)}
.lynn-voice:disabled{opacity:.46;cursor:not-allowed}
.lynn-voice svg{width:19px;height:19px}
@keyframes lynn-recording-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.82);opacity:.65}}
.lynn-input{
  width:100%;
  min-height:44px;
  max-height:116px;
  resize:none;
  padding:10px 12px;
  border:1px solid var(--line-2);
  border-radius:6px;
  background:var(--panel);
  color:var(--ink);
  font:400 15px/1.4 var(--sans);
}
.lynn-input::placeholder{color:var(--ink-3)}
.lynn-input:disabled{opacity:.55;cursor:not-allowed}
.lynn-send{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid var(--gold);
  border-radius:50%;
  background:var(--gold);
  color:var(--chrome);
  cursor:pointer;
}
.lynn-send:hover{background:var(--gold-soft)}
.lynn-send:disabled{opacity:.46;cursor:not-allowed}
.lynn-send svg{width:18px;height:18px}
.lynn-card{
  width:100%;
  margin:2px 0 15px;
  padding:14px;
  border:1px solid var(--line-2);
  border-radius:8px;
  background:var(--navy-deep);
}
.lynn-card h3{margin:0 0 12px;font:600 18px/1.25 var(--serif)}
.lynn-card-grid{display:grid;gap:10px}
.lynn-card label{display:grid;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2)}
.lynn-card input,.lynn-card textarea,.lynn-card select{
  width:100%;
  min-height:39px;
  padding:8px 9px;
  border:1px solid var(--line-2);
  border-radius:4px;
  background:var(--panel);
  color:var(--ink);
  font:400 14px/1.35 var(--sans);
}
.lynn-card textarea{min-height:70px;resize:vertical}
.lynn-card input:disabled,.lynn-card textarea:disabled,.lynn-card select:disabled{
  border-color:transparent;
  padding-left:0;
  background:transparent;
  color:var(--ink);
  opacity:1;
  -webkit-text-fill-color:var(--ink);
}
.lynn-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lynn-card-button{
  min-height:38px;
  padding:8px 12px;
  border:1px solid var(--gold);
  border-radius:4px;
  background:var(--gold);
  color:var(--chrome);
  cursor:pointer;
  font:600 13.5px/1.2 var(--sans);
}
.lynn-card-button.secondary{background:transparent;color:var(--gold-soft)}
.lynn-card-button:hover{background:var(--gold-soft);color:var(--chrome)}
.lynn-card-button:disabled{opacity:.46;cursor:not-allowed;background:var(--gold);color:var(--chrome)}
.lynn-privacy-consent{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;margin-top:13px;padding:11px;border:1px solid rgba(58,70,87,.56);border-radius:6px;background:rgba(255,255,255,.025);font-size:12.5px!important;font-weight:400!important;line-height:1.45;color:var(--ink-2)!important;cursor:pointer}
.lynn-card .lynn-privacy-consent input{width:17px;height:17px;min-height:0;flex:none;margin:1px 0 0;padding:0;accent-color:var(--gold)}
.lynn-privacy-link{display:inline;padding:0;border:0;background:none;color:var(--gold-soft);font:inherit;text-decoration:underline;cursor:pointer}
.lynn-privacy-link:hover{color:var(--gold)}
.lynn-card-copy{display:grid;gap:8px;font-size:14px;line-height:1.4}
.lynn-card-copy div{padding-bottom:7px;border-bottom:1px solid var(--line)}
.lynn-card-copy div:last-child{border-bottom:0}
.lynn-card-copy b{display:block;font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.lynn-card-copy span{display:block;margin-top:2px;color:var(--ink)}
.lynn-form-status{min-height:19px;margin-top:9px;color:var(--gold-soft);font-size:12.5px}
.lynn-sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@media (max-width:600px){
  .lynn-chat{right:10px;bottom:10px}
  .lynn-panel{
    position:fixed;
    top:auto;
    right:14px;
    bottom:68px;
    left:14px;
    width:auto;
    height:min(54svh,440px);
    max-height:calc(100svh - 150px);
    border-radius:8px;
  }
  .lynn-header{gap:9px;padding:10px 10px 9px 12px}
  .lynn-avatar{width:32px;height:32px}
  .lynn-heading strong{font-size:16px}
  .lynn-heading span{font-size:11.5px}
  .lynn-window-button{width:32px;height:32px}
  .lynn-launcher{min-height:44px;padding:7px 13px 7px 7px;font-size:13.5px}
  .lynn-launcher-mark{width:29px;height:29px}
  .lynn-chat.lynn-footer-visible:not(.lynn-open) .lynn-launcher{transform:translateY(-64px)}
  .lynn-messages{padding:11px 11px 8px}
  .lynn-message{margin-bottom:10px}
  .lynn-bubble{padding:8px 10px;font-size:14px;line-height:1.4}
  .lynn-bubble{max-width:92%}
  .lynn-input-actions{gap:6px}
  .lynn-input-actions .lynn-action{padding:7px 6px;font-size:11.5px}
  .lynn-welcome-avatar{width:66px;height:66px;margin-bottom:10px}
  .lynn-composer{gap:7px;padding:9px}
  .lynn-input{min-height:40px;max-height:88px;padding:8px 10px;font-size:14px}
  .lynn-voice,.lynn-send{width:40px;height:40px}
  .lynn-card{padding:11px;margin-bottom:11px}
  .lynn-card h3{font-size:16px;margin-bottom:9px}
}
@media (prefers-reduced-motion:reduce){
  .lynn-launcher,.lynn-panel{transition:none}
  .lynn-messages{scroll-behavior:auto}
  .lynn-panel:not([hidden]) .lynn-welcome-avatar img,
  .lynn-chat.lynn-reacting .lynn-welcome-avatar img,
  .lynn-voice-panel[data-state="recording"] .lynn-voice-dot{animation:none}
}
