/* Lina extends the existing LangNation navy/gold identity; no separate theme state. */
.lina{--ln-bg:#101827;--ln-card:#1c2433;--ln-line:#353c49;--ln-text:#f1eee6;--ln-muted:#a8b0c0;--ln-gold:var(--brand-gold,#D4AF37);--lina-gap:22px;position:fixed;right:calc(var(--lina-gap) + env(safe-area-inset-right,0px) + var(--lina-shift,0px));bottom:calc(var(--lina-gap) + var(--lina-keyboard-inset,0px) + var(--lina-lift,0px));z-index:900;font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ln-text);color-scheme:dark;transition:opacity .18s ease}
.lina *{box-sizing:border-box}.lina [hidden]{display:none!important}.lina button,.lina input,.lina a{font:inherit}.lina button{cursor:pointer}.lina button:focus-visible,.lina a:focus-visible,.lina input:focus-visible,.lina-body:focus-visible{outline:2px solid var(--ln-gold);outline-offset:3px}
.lina-launch{display:flex;align-items:center;gap:10px;padding:9px 18px 9px 9px;background:var(--ln-bg);border:1px solid var(--ln-gold);border-radius:50px;color:var(--ln-text);box-shadow:0 8px 30px #0003;font-weight:700!important;transition:padding .18s ease,gap .18s ease;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.lina-launch img,.lina-launch span{pointer-events:none}
.lina-launch span{white-space:nowrap}
/* Gone while a text field on the page has focus, or while the on-screen
   keyboard is up. Opacity and visibility only: `transform` belongs to the
   drag, which writes it inline, and animating both would fight. visibility is
   switched at the end of the fade out and at the start of the fade in, so the
   pill is untabbable while invisible and never flashes on the way back. */
.lina-away{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility 0s linear .15s}
/* The pill once Lina has been met: the portrait on its own, no label. */
.lina-compact .lina-launch{padding:5px;gap:0}
.lina-compact .lina-launch span{display:none}
/* No transition mid-drag: it would lag a finger. */
.lina-armed,.lina-dragging{will-change:transform}
.lina-armed .lina-launch,.lina-dragging .lina-launch{transition:none!important}
/* While the chat is open the widget sits in its usual corner: the panel opens
   upwards and inwards, so a pill parked at the top-left would give it nowhere
   to go. The pill returns to the dragged spot when the chat is minimised. */
.lina-open{--lina-shift:0px!important;--lina-lift:0px!important}
.lina-dragging .lina-launch{box-shadow:0 14px 38px #0005;cursor:grabbing}
@media (prefers-reduced-motion:reduce){.lina-launch{transition:none}}
.lina-avatar{width:44px;height:44px;object-fit:cover;border:2px solid var(--ln-gold);border-radius:50%;flex:none}.lina-launch .lina-avatar{width:42px;height:42px}
.lina-panel{width:350px;max-width:calc(100vw - 24px - var(--lina-shift,0px));height:520px;max-height:min(calc(var(--lina-viewport-height,100dvh) - 2 * var(--lina-gap) - var(--lina-lift,0px)),calc(100dvh - 2 * var(--lina-gap) - var(--lina-keyboard-inset,0px) - var(--lina-lift,0px)));display:flex;flex-direction:column;overflow:hidden;background:var(--ln-bg);border:1px solid var(--ln-line);border-radius:20px;box-shadow:0 18px 60px #0004}
.lina-head{display:flex;align-items:center;gap:6px;padding:10px;border-bottom:1px solid var(--ln-line);flex:none}.lina-name{flex:1;min-width:0}.lina-name strong{display:block;font-size:14px;line-height:1.3}.lina-name small,.lina-status{display:block;color:var(--ln-muted);font-size:11px}.lina-status::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ln-gold);margin-right:5px}.lina-status[data-online="true"]::before{background:#4cdb91}
.lina-head .lina-avatar{width:38px;height:38px}
.lina-icon-button{border:0;background:none;color:var(--ln-muted);padding:6px;min-width:28px;min-height:36px;font-size:20px!important;line-height:1}.lina-icon-button:hover{color:var(--ln-text)}
.lina-scroll-wrap{position:relative;flex:1;min-height:0;display:flex}.lina-body{flex:1;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a9894670 transparent}
.lina-body::-webkit-scrollbar{width:4px}.lina-body::-webkit-scrollbar-track{background:transparent}.lina-body::-webkit-scrollbar-thumb{border-radius:8px;background:#a9894670}.lina-body::-webkit-scrollbar-thumb:hover{background:var(--ln-gold)}
.lina-message{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px;animation:lina-reveal .18s ease-out}.lina-message .lina-avatar{width:30px;height:30px;border:0;margin-top:4px}.lina-bubble{padding:8px 10px;background:var(--ln-card);border:1px solid var(--ln-line);border-radius:17px 17px 17px 5px;max-width:calc(100% - 39px);white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.lina-message.user{justify-content:flex-end}.lina-message.user .lina-bubble{background:#302b21;border-color:#695638;border-radius:17px 17px 5px 17px}.lina-message.error .lina-bubble{border-color:#8c634b}
.lina-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin:8px 0}.lina-action{display:flex;align-items:center;gap:7px;text-align:left;padding:7px;background:var(--ln-card);color:var(--ln-text);border:1px solid var(--ln-line);border-radius:13px;text-decoration:none;min-height:57px;min-width:0}.lina-action:hover{border-color:var(--ln-gold);background:#252e3d}.lina-action svg{width:19px;height:19px;color:var(--ln-gold);flex:none}.lina-action span{min-width:0;overflow-wrap:anywhere}.lina-action strong{display:block;font-size:12px}.lina-action small{display:block;line-height:1.3;font-size:10px;color:var(--ln-muted)}
.lina-continue{border-top:1px solid var(--ln-line);padding:8px 0 0}.lina-continue>strong{font-size:11px;color:var(--ln-muted);font-weight:500}.lina-continue>div,.lina-context-actions,.lina-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.lina-continue button,.lina-context-actions button,.lina-suggestions button{border:1px solid var(--ln-line);background:var(--ln-card);color:var(--ln-text);border-radius:20px;padding:6px 10px;font-size:11px;max-width:100%;overflow-wrap:anywhere}.lina-continue button:hover,.lina-context-actions button:hover,.lina-suggestions button:hover{border-color:var(--ln-gold)}.lina-suggestions{padding-bottom:6px}.lina-current{margin-top:10px}.lina-context-label{font-size:11px;color:var(--ln-gold)}
.lina-credit strong{color:var(--ln-gold)}
.lina-home .lina-bubble{line-height:1.4}
.lina-resume{display:block;margin:8px 0 0;border:0;background:none;color:var(--ln-gold);padding:4px 0;font-size:12px!important;text-align:left}
.lina-new-message{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid var(--ln-gold);background:var(--ln-bg);color:var(--ln-text);border-radius:20px;padding:7px 12px;font-size:11px!important;box-shadow:0 4px 18px #0005}
.lina-dots{display:inline-flex;gap:3px;margin-left:7px}.lina-dots i{width:4px;height:4px;background:var(--ln-gold);border-radius:50%;animation:lina-dot 1.2s ease-in-out infinite}.lina-dots i:nth-child(2){animation-delay:.15s}.lina-dots i:nth-child(3){animation-delay:.3s}
.lina-footer{position:relative;border-top:1px solid var(--ln-line);padding:8px 10px;flex:none}.lina-compose{display:flex;align-items:center;gap:8px}.lina-input{flex:1;min-width:0;height:46px;background:var(--ln-card);color:var(--ln-text);border:1px solid var(--ln-line);border-radius:28px;padding:0 14px;font-size:16px!important}.lina-input::placeholder{color:var(--ln-muted);font-size:13px}.lina-send{display:grid;place-items:center;width:42px;height:42px;flex:none;border:0;border-radius:50%;background:var(--ln-gold);color:var(--ln-bg)}.lina-send svg{width:20px;height:20px}.lina-send:disabled{opacity:.5;cursor:wait}.lina-credit{display:block;text-align:center;font-size:10px;color:var(--ln-muted);margin-top:6px}
.lina-commands{position:absolute;bottom:calc(100% + 5px);left:12px;right:12px;max-height:min(290px,40dvh);overflow:auto;background:var(--ln-bg);border:1px solid var(--ln-line);border-radius:12px;box-shadow:0 10px 35px #0005;padding:5px}.lina-commands button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--ln-text);padding:10px 9px;border-radius:8px;font-size:12px}.lina-commands button[aria-selected="true"]{background:var(--ln-card);color:var(--ln-gold)}
@keyframes lina-dot{0%,70%,100%{opacity:.4;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
@keyframes lina-reveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:480px){.lina{--lina-gap:10px;right:calc(10px + env(safe-area-inset-right,0px) + var(--lina-shift,0px));bottom:calc(max(10px,env(safe-area-inset-bottom)) + var(--lina-keyboard-inset,0px) + var(--lina-lift,0px))}.lina-panel{width:calc(var(--lina-viewport-width,100vw) - 20px - var(--lina-shift,0px));max-width:calc(var(--lina-viewport-width,100vw) - 20px - var(--lina-shift,0px));border-radius:16px}.lina-panel{height:min(410px,60dvh)}
 .lina-head{gap:4px;padding:7px 8px}.lina-head .lina-avatar{width:30px;height:30px}.lina-name strong{font-size:12px}.lina-name small{display:none}.lina-status{font-size:10px}.lina-icon-button{min-width:24px;min-height:28px;padding:3px;font-size:17px!important}
 .lina-body{padding:8px}.lina-message{gap:6px;margin-bottom:6px}.lina-message .lina-avatar{width:24px;height:24px}.lina-bubble{padding:7px 9px;font-size:12.5px}
 /* The per-card descriptions cost a second line each and repeat the title. */
 .lina-action small{display:none!important}
 .lina-actions{gap:5px;margin:6px 0}.lina-action{padding:7px 8px;gap:7px;min-height:0;border-radius:10px}.lina-action strong{font-size:12px}.lina-action svg{width:17px;height:17px}
 .lina-continue{padding:6px 0 0}.lina-continue>div{margin-top:5px}
 .lina-footer{padding:6px 8px}.lina-input{height:38px;padding:0 12px}.lina-send{width:36px;height:36px}.lina-send svg{width:17px;height:17px}.lina-credit{font-size:9.5px;margin-top:3px}}
@media(prefers-reduced-motion:reduce){.lina *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.lina{display:none}}

