.oc-l{position:fixed;right:24px;bottom:24px;z-index:900;width:52px;height:52px;border-radius:50%;background:#000;border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;cursor:pointer;transition:border-color .2s,transform .2s}
.oc-l:hover{border-color:#fff;transform:scale(1.04)}.oc-l svg{width:26px;height:26px}
.oc-p{position:fixed;right:24px;bottom:88px;z-index:901;width:360px;height:520px;max-height:calc(100vh - 120px);background:#000;border:1px solid rgba(255,255,255,.14);border-radius:22px;display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s,transform .25s;font-family:"Inter Tight Local","Inter Tight",-apple-system,"Hiragino Sans","Noto Sans JP Local",system-ui,sans-serif}
.oc-p.on{opacity:1;transform:none;pointer-events:auto}
.oc-h{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.1)}
.oc-h b{font-family:"Jost Local","Jost",Futura,sans-serif;font-weight:300;font-size:17px;color:#fff;letter-spacing:-.01em}
.oc-h small{display:block;font-size:10px;color:#8e8e93;letter-spacing:.2em;text-transform:uppercase;margin-top:2px;font-family:"Jost Local","Jost",sans-serif}
.oc-x{background:none;border:0;color:#8e8e93;font-size:22px;cursor:pointer;line-height:1}.oc-x:hover{color:#fff}
.oc-m{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}
.oc-b{max-width:82%;padding:10px 14px;border-radius:18px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word;animation:ocIn .25s ease}
.oc-a{align-self:flex-start;background:#fff;color:#000;border-bottom-left-radius:6px}
.oc-u{align-self:flex-end;background:#A8E6E2;color:#0b1f1e;border-bottom-right-radius:6px}
.oc-t{align-self:flex-start;color:#8e8e93;font-size:13px;padding:4px 2px}
.oc-c{display:flex;flex-wrap:wrap;gap:6px;padding:0 20px 10px}
.oc-c button{background:none;border:1px solid rgba(255,255,255,.28);color:#f5f5f7;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;font-family:inherit}.oc-c button:hover{border-color:#fff}
.oc-f{display:flex;gap:8px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.1)}
.oc-f input{flex:1;background:#1c1c1e;border:0;border-radius:999px;padding:10px 16px;color:#fff;font-size:16px;font-family:inherit;outline:none}
.oc-f button{width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:#000;font-size:16px;cursor:pointer}
@keyframes ocIn{from{opacity:0;transform:translateY(4px)}}
@media(max-width:520px){.oc-l{right:16px;bottom:16px;width:48px;height:48px}.oc-p{right:0;left:0;bottom:0;width:auto;height:calc(100dvh - 64px);max-height:none;border-radius:22px 22px 0 0}}
@font-face{font-family:"Marker Local";src:url(fonts/marker-chat.woff2) format("woff2");font-display:swap}
.oc-tag{position:fixed;right:24px;bottom:78px;width:52px;z-index:899;display:flex;flex-direction:column;align-items:center;font-family:"Marker Local","Permanent Marker","Comic Sans MS",cursive;font-size:24px;line-height:1;color:#A8E6E2;pointer-events:none;transition:opacity .25s,transform .25s;text-shadow:0 0 12px rgba(168,230,226,.25);animation:ocBob 2.4s ease-in-out infinite}
.oc-tag span{transform:rotate(-8deg)}.oc-tag svg{width:20px;height:24px;margin-top:2px;display:block}
.oc-tag.off{opacity:0;animation:none;transform:translateY(8px)}
@keyframes ocBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media(max-width:520px){.oc-tag{right:16px;width:48px;bottom:66px;font-size:21px}}
@media(prefers-reduced-motion:reduce){.oc-tag{animation:none}}
.oc-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.oc-hot .oc-tag:not(.off){animation:ocHop 1.6s cubic-bezier(.3,.7,.4,1) infinite}
.oc-hot .oc-l{border-color:#A8E6E2;box-shadow:0 0 calc(10px + 34px*var(--gi,0)) calc(2px + 12px*var(--gi,0)) rgba(168,230,226,calc(.3 + .35*var(--gi,0))),0 0 calc(40px + 90px*var(--gi,0)) calc(10px*var(--gi,0)) rgba(168,230,226,calc(.12 + .22*var(--gi,0)));animation:ocGlow 2.4s ease-in-out infinite}
@keyframes ocHop{0%,100%{transform:translateY(0) scale(1.18)}40%{transform:translateY(-9px) scale(1.26)}60%{transform:translateY(-2px) scale(1.2)}}
@keyframes ocGlow{50%{filter:brightness(1.25)}}
.oc-rip{position:fixed;right:24px;bottom:24px;width:52px;height:52px;z-index:898;pointer-events:none;opacity:0;transition:opacity .5s}
.oc-rip i{position:absolute;inset:0;border-radius:50%;border:1.5px solid #A8E6E2;box-shadow:0 0 18px rgba(168,230,226,.55),inset 0 0 12px rgba(168,230,226,.35);opacity:0}
.oc-hot .oc-rip{opacity:calc(.25 + .75*var(--gi,0))}
.oc-hot .oc-rip i{animation:ocRip 3s cubic-bezier(.2,.6,.35,1) infinite}
.oc-hot .oc-rip i:nth-child(2){animation-delay:1s}.oc-hot .oc-rip i:nth-child(3){animation-delay:2s}
@keyframes ocRip{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.8);opacity:0}}
@media(max-width:520px){.oc-rip{right:16px;bottom:16px;width:48px;height:48px}}
.oc-tag{transform-origin:50% 100%}
@media(prefers-reduced-motion:reduce){.oc-hot .oc-tag:not(.off),.oc-hot .oc-l,.oc-hot .oc-rip i{animation:none}.oc-hot .oc-rip i:first-child{opacity:.5;transform:scale(1.6)}}
/* v3: AI replies, typing dots, note, primary chip */
.oc-t{display:flex;gap:5px;align-items:center;padding:12px 4px}
.oc-t i{width:6px;height:6px;border-radius:50%;background:#A8E6E2;opacity:.25;animation:ocDot 1.2s ease-in-out infinite}
.oc-t i:nth-child(2){animation-delay:.18s}.oc-t i:nth-child(3){animation-delay:.36s}
@keyframes ocDot{0%,80%,100%{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.oc-ait{display:inline-block;font-family:"Jost Local","Jost",sans-serif;font-size:9px;font-weight:500;letter-spacing:.18em;line-height:1;color:#0b1f1e;background:#A8E6E2;border-radius:999px;padding:3px 6px 2px 7px;margin:0 8px 0 0;vertical-align:2px}
.oc-n{display:none;margin:0;padding:0 20px 8px;font-size:11px;color:#8e8e93;line-height:1.5}
.oc-aion .oc-n{display:block}
.oc-c button.oc-go{border-color:#A8E6E2;color:#A8E6E2}.oc-c button.oc-go:hover{background:rgba(168,230,226,.1);border-color:#A8E6E2}
.oc-f.busy button{opacity:.4;pointer-events:none}
.oc-f input{min-width:0}
@media(prefers-reduced-motion:reduce){.oc-t i{animation:none;opacity:.6}}
