.chat-launcher-anchor{position:sticky;top:0;z-index:40;height:0}
.chat-launcher{position:absolute;right:clamp(1rem,3.7vw,4rem);top:1.5rem;min-height:4.6rem;max-width:calc(100vw - 2rem);padding:.9rem 1.5rem;background:color-mix(in oklch,var(--color-base-200) 94%,transparent);border:1px solid var(--color-secondary);border-radius:1.2rem;color:var(--color-base-content);box-shadow:0 12px 36px color-mix(in oklch,var(--color-base-100) 65%,transparent),0 0 28px color-mix(in oklch,var(--color-secondary) 22%,transparent),inset 0 1px 0 color-mix(in oklch,var(--color-secondary) 22%,transparent);backdrop-filter:blur(12px);gap:.85rem;font-size:1.25rem;white-space:nowrap;animation:chat-launcher-float 4.5s ease-in-out infinite}
.chat-launcher>span:not(.chat-launcher-label){color:var(--color-secondary);font-size:1.8rem}.chat-launcher .chat-launcher-arrow{font-size:1.3rem;margin-left:.3rem}
.chat-launcher:hover,.chat-launcher:focus-visible{animation-play-state:paused;background:var(--color-base-300);border-color:var(--color-primary)}
.chat-launcher:focus-visible{outline:2px solid var(--color-secondary);outline-offset:5px}
@keyframes chat-launcher-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:1000px){.chat-launcher-anchor{height:6rem}.chat-launcher{top:1rem;min-height:4rem;font-size:1.1rem}}
@media(prefers-reduced-motion:reduce){.chat-launcher{animation:none}}
.cyber-chat{padding:1rem;align-items:center;justify-items:center;background:transparent}
.cyber-chat[open]{background:#02061080;backdrop-filter:blur(4px)}
.cyber-chat:not([open]){display:none}
.cyber-chat>.modal-backdrop{position:absolute;inset:0}
.chat-panel{width:min(1040px,100%);max-width:1040px;height:80dvh;max-height:80dvh;padding:0;border:1px solid var(--color-base-300);border-radius:1.25rem;background:var(--color-base-100);color:var(--color-base-content);box-shadow:0 24px 100px #0009;display:flex;flex-direction:column;overflow:hidden;text-align:left}
.chat-top{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.3rem;gap:.6rem;background:var(--color-base-100);border-bottom:1px solid var(--color-base-300);flex-shrink:0}.chat-identity{display:flex;align-items:center;gap:.7rem;min-width:0}.chat-identity img{border-radius:50%}.chat-identity h2{margin:0;font-size:1.18rem;line-height:1.3;letter-spacing:-.025em}.chat-identity p{margin:.25rem 0 0;font-size:.8rem;color:var(--color-secondary)}
.chat-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.55rem 1.3rem;gap:.5rem}.chat-meta .btn{font-size:.78rem;font-weight:450;color:var(--color-base-content);opacity:.8}.chat-meta #chat-reset{margin-left:auto}
.chat-scroll{flex:1;min-height:0;overflow-y:auto;overflow-anchor:none;scroll-behavior:auto;overscroll-behavior:contain;padding:.8rem 1.3rem 1.4rem;scrollbar-color:var(--color-base-300) transparent}#chat-messages .chat{margin:.4rem 0 1.2rem;grid-template-columns:auto 1fr}.chat-bubble{max-width:100%;font-size:1rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;padding:.9rem 1rem;background:var(--color-base-200);color:var(--color-base-content)}.chat-end .chat-bubble{background:var(--color-base-300);max-width:90%}.chat-header{font-size:.75rem;color:var(--color-secondary);margin-bottom:.35rem}.chat-footer{opacity:1;width:100%;margin-top:.6rem}.chat-sources{display:grid;gap:.4rem;list-style:none;padding:0;margin:.4rem 0 0}.chat-sources a{display:block;padding:.55rem .7rem;background:var(--color-base-200);border:1px solid var(--color-base-300);border-radius:.5rem;font-size:.8rem;line-height:1.4;color:var(--color-secondary);text-decoration:none;overflow-wrap:anywhere}.chat-sources a:hover{border-color:var(--color-secondary)}.chat-source-label{font-size:.72rem;letter-spacing:.04em;color:var(--color-secondary)}.chat-retry{margin-top:.5rem}.chat-note{color:var(--color-warning);font-size:.85rem;line-height:1.5;margin:.6rem 0 0}
.chat-compose{flex-shrink:0;max-height:65%;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--color-base-300);background:var(--color-base-100);padding:.85rem 1.3rem 1rem}.chat-input-label{display:block;font-size:.8rem;font-weight:600;margin:.35rem 0}.chat-compose .textarea{width:100%;height:7.5rem;min-height:7.5rem;max-height:12rem;resize:vertical;font-size:1rem;line-height:1.5;padding:.7rem;background:var(--color-base-100);color:var(--color-base-content);border-color:var(--color-base-300)}.chat-compose .textarea:focus{outline:2px solid var(--color-secondary);outline-offset:2px}.chat-send-row{position:sticky;bottom:0;z-index:1;background:var(--color-base-100);padding-block:.4rem;display:flex;align-items:center;justify-content:flex-end;gap:.6rem;margin-top:.6rem}.chat-send-row>span{margin-right:auto;font-size:.72rem;color:var(--color-secondary)}.chat-send-row .btn{font-size:.85rem;min-height:2.5rem}.chat-send-row #chat-send{background:var(--color-secondary);color:var(--color-secondary-content);border-color:var(--color-secondary)}.chat-status{font-size:.75rem;line-height:1.4;margin:0;color:var(--color-secondary)}.chat-privacy{font-size:.72rem;line-height:1.5;opacity:.75;margin:.65rem 0}.chat-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}.chat-links a{font-size:.78rem;text-decoration:underline;text-underline-offset:3px;color:var(--color-secondary)}.chat-share{display:flex;gap:.65rem;align-items:flex-start;margin:0 0 .75rem;font-size:.8rem;line-height:1.4}.chat-share input{flex-shrink:0;margin-top:.1rem}.chat-share small{display:block;font-size:.7rem;margin-top:.2rem;opacity:.75}.chat-share[hidden],.chat-send-row [hidden]{display:none}
/* Edge-to-edge on phones, including iPhone landscape. Desktop retains its 80dvh panel. */
@media(max-width:600px), (max-width:1000px) and (max-height:600px){
  html:has(.cyber-chat[open]){overflow:hidden;scrollbar-gutter:auto}
  .cyber-chat{padding:0;border:0;margin:0;inset:auto;top:var(--chat-viewport-top,0px);left:var(--chat-viewport-left,0px);width:var(--chat-viewport-width,100%);height:var(--chat-viewport-height,100dvh);max-width:none;max-height:none}
  .cyber-chat[open]{backdrop-filter:none}
  .chat-panel{width:100%;max-width:none;height:100%;max-height:100%;min-height:0;border-radius:0;border:0;box-shadow:none;transition:none}
  .chat-top{flex-shrink:0;padding:.55rem 1rem;padding-top:max(.55rem,env(safe-area-inset-top))}
  .chat-meta{flex-shrink:0;padding:.2rem 1rem}
  .chat-scroll{padding:.6rem 1rem 1.2rem}
  .chat-compose{max-height:60%;padding:.5rem 1rem max(.5rem,env(safe-area-inset-bottom))}
  .chat-top,.chat-meta,.chat-scroll,.chat-compose{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}
  .chat-compose .textarea{height:7.5rem;max-height:10rem}
  .chat-send-row{margin-top:.35rem}
  .chat-launcher{right:1rem;top:max(.9rem,env(safe-area-inset-top));padding-inline:1rem;gap:.65rem;font-size:1.1rem}
  .chat-launcher>span:not(.chat-launcher-label){font-size:1.5rem}
  .chat-identity h2{font-size:1.1rem}
  .chat-identity p{font-size:.75rem}
  .chat-privacy{font-size:.75rem}
  .chat-links a{font-size:.8rem}
  .chat-bubble{font-size:1rem}
  .chat-sources a{font-size:.85rem}
  /* Keep the input and send action together when Safari's keyboard reduces the view. */
  .cyber-chat[data-chat-compact] .chat-compose{max-height:55%}
  .cyber-chat[data-chat-compact] .chat-identity p{display:none}
  .cyber-chat[data-chat-compact] .chat-top{padding-block:max(.25rem,env(safe-area-inset-top)) .25rem}
  .cyber-chat[data-chat-compact] .chat-meta{padding-block:0}
  .cyber-chat[data-chat-compact] .chat-compose .textarea{min-height:3rem;height:3rem;max-height:4rem}
  .cyber-chat[data-chat-compact] #chat-form{display:flex;flex-direction:column}
  .cyber-chat[data-chat-compact] .chat-verification{order:1}
  .cyber-chat[data-chat-compact] .chat-send-row{flex-shrink:0}
}
@media print{.chat-launcher-anchor,.cyber-chat{display:none!important}}
/* daisyUI's compact chat footer is expanded here for readable source cards. */
#chat-messages .chat-footer{display:block;grid-column:2;min-width:0}
#chat-messages .chat-sources{width:100%}
.chat-verification{margin-top:.6rem;min-width:0}.chat-verification>p{font-size:.72rem;line-height:1.4;margin:.3rem 0;color:var(--color-secondary)}.chat-verification [hidden]{display:none}#chat-turnstile{min-width:300px;width:100%;max-width:340px}.chat-verification .btn{margin-top:.3rem}

/* Optional follow-up view uses the same full-screen dialog, leaving the chat draft intact. */
#chat-followup-toggle{color:var(--color-base-content)}
.cyber-chat[data-followup-open] .chat-meta>:not(#chat-followup-toggle){display:none!important}
.chat-followup{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1.3rem;scrollbar-color:var(--color-base-300) transparent}
.chat-followup>*{max-width:38rem;margin-left:auto;margin-right:auto}
.chat-followup .eyebrow{font-size:.72rem;color:var(--color-secondary);margin-bottom:.65rem}
.chat-followup h3{font-size:clamp(1.65rem,4vw,2.3rem);line-height:1.15;margin-bottom:1rem}
.chat-followup>p{font-size:1rem;line-height:1.6}
.followup-linkedin{display:block;color:var(--color-secondary);font-size:.9rem;line-height:1.5;text-decoration:underline;text-underline-offset:3px;margin-bottom:1.4rem}
#followup-form .input{width:100%;height:3rem;font-size:1rem;background:var(--color-base-200);color:var(--color-base-content);border-color:var(--color-base-300)}
.followup-consent{display:flex;align-items:flex-start;gap:.75rem;margin:1rem 0;font-size:.9rem;line-height:1.5}
.followup-consent .checkbox{flex-shrink:0;margin-top:.15rem}
.followup-privacy{font-size:.8rem;line-height:1.6;opacity:.8}
#followup-turnstile{min-width:300px;width:100%}
#followup-submit{width:100%;margin-top:.8rem;background:var(--color-secondary);color:var(--color-secondary-content);border-color:var(--color-secondary)}
.followup-status:empty{display:none}
.chat-followup .followup-status{margin-block:1.2rem;color:var(--color-secondary)}
#followup-back{display:block;margin-top:1rem}
@media(max-width:600px), (max-width:1000px) and (max-height:600px){
  .chat-followup{padding:1rem max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}
}

.chat-review-action{margin:0 0 1rem}.chat-review-action .btn{height:auto;min-height:2.75rem;white-space:normal;text-align:left;padding:.65rem .8rem;color:var(--color-secondary);border-color:var(--color-secondary)}.chat-review-action p{font-size:.8rem;line-height:1.5;margin:.5rem 0;color:var(--color-base-content);opacity:.8}

body:has(#assessment:not([hidden]),#results:not([hidden])) .chat-launcher{min-height:3rem;padding:.55rem .9rem;font-size:1rem;gap:.5rem;animation:none}
body:has(#assessment:not([hidden]),#results:not([hidden])) .chat-launcher>span:not(.chat-launcher-label){font-size:1.2rem}
#assessment .section-title,#results h1{scroll-margin-top:6rem}

/* Keep the conversation primary; supporting information opens on demand. */
.chat-status:empty,.chat-verification>p:empty{display:none}
.chat-status:not(:empty){margin-bottom:.6rem}
.chat-info summary,.chat-source-details summary{font-size:.78rem;font-weight:450;color:var(--color-secondary);min-height:2rem;display:list-item;line-height:2rem}
.chat-info[open] summary,.chat-source-details[open] summary{margin-bottom:.4rem}
.chat-info>p{font-size:.78rem;line-height:1.5;margin:.4rem 0 .7rem;opacity:.8}
.chat-review-action{margin-bottom:.5rem}
@media(min-width:601px){
  #chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1rem}
  #chat-form>.textarea{grid-column:1 / -1}
  #chat-form>.chat-send-row{align-self:end;margin:0}
}

/* Keep frequently used chat controls easy to hit with a thumb. */
.chat-panel .btn{min-height:44px;min-width:44px}
.chat-info summary,.chat-source-details summary{min-height:44px;line-height:1.6;padding-block:10px}
.chat-sources a{min-height:44px}
.chat-compose .textarea{caret-color:var(--color-secondary)}
