/* Cora: launcher, dialog (sheet on narrow screens), assistant page. Uses the existing .cora__* styles of site.css. */
.cora-launch{position:fixed;z-index:54;inset-inline-end:14px;bottom:calc(var(--bar,0px) + 14px);width:56px;height:56px;border-radius:50%;padding:3px;display:block;
  background:conic-gradient(from 200deg,var(--cyan),var(--blue),var(--violet),var(--cyan));box-shadow:0 6px 18px rgba(0,0,0,.5);transform:perspective(300px) rotateY(-8deg);transition:transform .2s ease-out,box-shadow .2s}
.cora-launch img{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#000;display:block}
.cora-launch:hover,.cora-launch:focus-visible{transform:none;box-shadow:0 8px 24px rgba(0,0,0,.6),0 0 0 3px rgba(255,255,255,.18)}
.cora-launch:focus-visible{outline:2px solid #fff;outline-offset:3px}
.cora-launch[aria-busy=true]{opacity:.7}
[dir=rtl] .cora-launch{transform:perspective(300px) rotateY(8deg)}
/* narrow screens (V7.5.1): Cora sits on the end side, straight above the motion switch, with a clear gap; the start side
   stays free for text and the offer button. Both controls stand above the bottom bar and the safe area. */
@media (max-width:899px){.cora-launch{inset-inline-start:auto;inset-inline-end:8px;width:48px;height:48px;bottom:calc(var(--bar,0px) + 12px + 44px + 12px + env(safe-area-inset-bottom,0px))}}
/* very narrow screens: the smallest allowed size, tight to the edge, so full-width buttons keep as much of their surface as possible */
@media (max-width:360px){.cora-launch{width:44px;height:44px;inset-inline-end:6px}}
@media (prefers-reduced-motion:reduce){.cora-launch,[dir=rtl] .cora-launch{transform:none;transition:none}}
@media print{.cora-launch,.cora-dlg{display:none!important}}

.cora-dlg{border:1px solid var(--line);border-radius:var(--r);background:var(--panel-solid,#0f1312);color:var(--text);padding:0;width:min(440px,calc(100vw - 32px));max-height:min(680px,calc(100dvh - 48px));
  margin:auto 24px 24px auto;overflow:auto;overscroll-behavior:contain;box-shadow:0 20px 60px rgba(0,0,0,.6)}
[dir=rtl] .cora-dlg{margin:auto auto 24px 24px}
.cora-dlg::backdrop{background:rgba(4,6,7,.45)}
.cora-dlg .cora-app{padding:18px 18px 20px}
.cora-dlg__x{position:sticky;top:8px;float:inline-end;margin:8px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(10,12,12,.9);color:var(--text);font:inherit;font-size:1.4rem;line-height:1;cursor:pointer;z-index:2}
.cora-dlg__x:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:640px){.cora-dlg,[dir=rtl] .cora-dlg{width:100%;max-width:100%;max-height:86dvh;margin:auto 0 0;border-radius:var(--r) var(--r) 0 0;border-inline:0;border-block-end:0;padding-block-end:env(safe-area-inset-bottom)}}

.cora-page{padding-block:8px clamp(28px,5vw,56px)}
.cora-page .cora-app{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:18px}
.cora-app__head{display:flex;align-items:center;gap:14px;margin-block-end:.6em}
.cora-app__head .cora__id{margin:0}
.cora-app .cora__halo{width:72px;height:72px;transition:box-shadow .3s}
.cora-app .cora__halo[data-state=listening]{box-shadow:0 0 0 3px rgba(255,255,255,.22),0 0 22px rgba(86,196,255,.45)}
/* the ring moves only while the component says animation is allowed (open, visible, no reduced motion, no data saver) */
.cora-app .cora__halo[data-state=thinking]{box-shadow:0 0 0 3px rgba(255,255,255,.3)}
.cora-app .cora__halo[data-anim=on][data-state=thinking]{animation:cora-think 1.6s linear infinite}
.cora-app .cora__halo[data-state=answered]{box-shadow:0 0 0 3px rgba(255,255,255,.3)}
@keyframes cora-think{to{filter:hue-rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.cora-app .cora__halo[data-state=thinking]{animation:none}.cora-app .cora__halo{transition:none}}
.cora__ask{margin-block:1em;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.04)}
.cora__ask label{display:block;font-weight:700;font-size:.9rem;margin-block:.6em 6px}
.cora__ask textarea{font:inherit;width:100%;min-height:96px;padding:10px 14px;border-radius:12px;border:1.5px solid rgba(246,247,244,.45);background:#0c0f0e;color:var(--text);resize:vertical}
.cora__ask textarea:focus-visible{outline:2px solid #fff;outline-offset:2px}
.cora__ask .fine{margin-block:.4em}
.cora__badge{margin:0}
.cora__badge span{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:99px;border:1px solid rgba(246,247,244,.5)}
.cora__send{cursor:pointer;font:inherit;font-weight:700;color:var(--text)}
.cora__ask[aria-busy=true] .cora__send{opacity:.6;pointer-events:none}
.cora__answer{margin-block:1em;padding:14px;border-radius:12px;background:rgba(255,255,255,.07)}
.cora__answer [data-cora-text]{white-space:pre-line;margin:0 0 .5em;overflow-wrap:anywhere}
.cora__answer .actions{margin-block:.6em 0}
.cora__answer .actions:empty{display:none}
