.cat-assistant { --cat-bg:#111a2d; --cat-ink:#eff4ff; --cat-muted:#b9c5db; --cat-line:#34415d; position:fixed; right:max(16px,env(safe-area-inset-right)); bottom:calc(max(14px,env(safe-area-inset-bottom)) + var(--cat-keyboard,0px)); z-index:100010; color:var(--cat-ink); font:400 16px/1.45 system-ui,sans-serif; }
.cat-assistant *, .cat-tour * { box-sizing:border-box; }
.cat-assistant [hidden],.cat-tour[hidden],.cat-tour [hidden],.cat-tour-focus[hidden] { display:none !important; }
.cat-assistant button,.cat-tour button { font:inherit; cursor:pointer; touch-action:manipulation; }
.cat-launcher { position:relative; display:flex; flex-direction:column; align-items:center; width:80px; height:84px; padding:0; border:0; background:transparent; color:#fff; }
.cat-launcher img { width:76px; height:76px; object-fit:contain; transition:transform .2s; transform:translateY(8px); filter:drop-shadow(0 4px 8px #0006); }
.cat-launcher span { position:absolute; bottom:0; padding:4px 12px; border:1px solid #8f78dc; border-radius:12px; background:#342456; font-size:12px; font-weight:700; }
.cat-launcher:hover img,.cat-launcher:focus-visible img { transform:translateY(0); }
.cat-panel { position:absolute; right:0; bottom:96px; width:min(390px,calc(100vw - 28px)); height:min(590px,calc(var(--cat-vh,100dvh) - 120px)); min-height:260px; display:flex; flex-direction:column; overflow:hidden; background:var(--cat-bg); border:1px solid var(--cat-line); border-radius:20px; box-shadow:0 20px 60px #0006; }
.cat-panel-head { display:flex; align-items:center; gap:10px; padding:14px 14px 10px; }
.cat-panel-head strong,.cat-panel-head small { display:block; }
.cat-panel-head small { font-size:12px; color:var(--cat-muted); }
.cat-icon { margin-left:auto; border:0; border-radius:10px; min-width:42px; min-height:42px; background:transparent; color:inherit; font-size:26px !important; }
.cat-switch { display:flex; gap:6px; padding:0 12px 10px; }
.cat-switch button,.cat-suggestions button,.cat-guide-view button,.cat-tour-actions button { padding:9px 12px; min-height:42px; color:inherit; border:1px solid var(--cat-line,#485776); border-radius:10px; background:transparent; font-size:14px; }
.cat-switch button { flex:1; }
.cat-switch [aria-pressed=true],.cat-tour-actions #cat-tour-next { background:#7252d6; border-color:#9679e5; color:white; }
.cat-chat-view { min-height:0; flex:1; display:flex; flex-direction:column; }
.cat-messages { overflow-y:auto; overscroll-behavior:contain; padding:4px 14px 12px; flex:1; min-height:70px; }
.cat-message { background:#202c43; border-radius:14px 14px 14px 3px; padding:11px 13px; margin:0 20px 12px 0; overflow-wrap:anywhere; white-space:pre-wrap; }
.cat-message--user { margin:0 0 12px 24px; border-radius:14px 14px 3px 14px; background:#493779; }
.cat-message small { display:block; margin-bottom:5px; color:var(--cat-muted); font-size:12px; }
.cat-message a { display:inline-block; margin:8px 10px 0 0; color:#94e6ff; text-decoration:underline; font-size:14px; }
.cat-suggestions { display:flex; flex-wrap:wrap; gap:6px; padding:0 12px; }
.cat-suggestions button { padding:5px 9px; min-height:36px; font-size:12px; }
.cat-note { font-size:12px; color:var(--cat-muted); margin:7px 14px; }
.cat-chat-form { display:flex; gap:8px; padding:0 12px; }
.cat-chat-form textarea { flex:1; min-width:0; max-height:90px; resize:none; border:1px solid var(--cat-line); border-radius:12px; background:transparent; color:inherit; padding:10px; font:inherit; }
.cat-chat-form button { width:44px; align-self:stretch; border:0; border-radius:12px; background:#7657db; color:white; font-size:25px; }
.cat-assistant button:disabled { opacity:.55; cursor:wait; }
.cat-panel-foot { display:flex; flex-wrap:wrap; gap:8px 14px; padding:10px 14px; border-top:1px solid var(--cat-line); }
.cat-panel-foot a,.cat-panel-foot button { border:0; background:none; color:var(--cat-muted); padding:0; font-size:12px; text-decoration:underline; }
.cat-guide-view { flex:1; overflow:auto; padding:0 14px 14px; overscroll-behavior:contain; }
#cat-guide-list { display:grid; gap:8px; }
.cat-guide-view button { text-align:left; }
.cat-guide-view button small { display:block; color:var(--cat-muted); font-size:12px; margin-top:3px; }
.cat-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.cat-tour { position:fixed; z-index:2147483646; width:min(360px,calc(100vw - 24px)); padding:14px 18px 18px; border:1px solid #a294d6; border-radius:18px; background:#16213a; color:#f5f7ff; font:400 16px/1.5 system-ui,sans-serif; box-shadow:0 12px 48px #0008; overflow-y:auto; overscroll-behavior:contain; }
.cat-tour-top { display:flex; align-items:center; font-size:12px; color:#c5cfe2; }
.cat-tour h2 { font-size:18px; line-height:1.3; margin:4px 0 8px; color:inherit; }
.cat-tour p { margin:0 0 12px; }
.cat-tour a { color:#9de5ff; text-decoration:underline; display:inline-block; margin-bottom:12px; }
.cat-tour-actions { display:flex; justify-content:space-between; gap:10px; }
.cat-tour-focus { position:fixed; z-index:2147483640; border:3px solid #b29bff; border-radius:12px; pointer-events:none; box-shadow:0 0 0 9999px #050b1866; transition:top .15s,left .15s,width .15s,height .15s; }
.cat-assistant :focus-visible,.cat-tour :focus-visible { outline:3px solid #8cdbef; outline-offset:2px; }
html[data-theme=light] .cat-assistant { --cat-bg:#fff; --cat-ink:#172137; --cat-muted:#56647a; --cat-line:#cfd7e7; }
html[data-theme=light] .cat-message { background:#eef2f9; }
html[data-theme=light] .cat-message--user { background:#e9e1fc; }
html[data-theme=light] .cat-message a { color:#2855a4; }
@media(max-width:600px) { .cat-assistant { right:10px; bottom:calc(max(10px,env(safe-area-inset-bottom)) + var(--cat-keyboard,0px)); } .cat-launcher { width:62px; height:69px; } .cat-launcher img { width:62px; height:62px; } .cat-panel { bottom:78px; width:calc(100vw - 20px); height:min(570px,calc(var(--cat-vh,100dvh) - 100px)); } }
.cat-assistant.cat-suppressed,.is-mobile-menu-open .cat-assistant,.toolbar-menu-mobile-open .cat-assistant { visibility:hidden; }
.cat-compact .cat-panel { bottom:0; height:calc(var(--cat-vh,100dvh) - 24px); min-height:0; overflow-y:auto; }
.cat-compact.cat-panel-open .cat-launcher { visibility:hidden; }
.cat-compact .cat-panel-head { padding:6px 12px; }
.cat-compact .cat-panel-head img { width:30px; height:30px; }
.cat-compact .cat-suggestions,.cat-compact .cat-panel-foot { display:none; }
.cat-compact .cat-note { font-size:11px; margin:4px 12px; }
.cat-compact .cat-chat-form textarea { height:44px; }
@media(prefers-reduced-motion:reduce) { .cat-launcher img,.cat-tour-focus { transition:none; } }
@media print { .cat-assistant,.cat-tour,.cat-tour-focus { display:none !important; } }
