.portfolio-assistant { position:fixed; right:28px; bottom:28px; z-index:90; font-family:Arial,sans-serif; color:#f5f3fa; font-size:14px; letter-spacing:0; }
.portfolio-assistant button,.portfolio-assistant input { font:inherit; }
.portfolio-assistant button { cursor:pointer; color:inherit; }
.pa-launcher { display:flex; align-items:center; gap:12px; height:54px; padding:0 19px; border:1px solid #82709f; border-radius:8px; background:#211a30; box-shadow:0 8px 28px #0008; transition:transform .25s,background .25s; }
.pa-launcher>i { font-size:25px; color:#bda7f4; transition:transform .5s; }
.pa-launcher:hover { transform:translateY(-4px); background:#322642; }
.pa-launcher:hover>i { transform:rotate(90deg); }
.pa-status { width:6px; height:6px; border-radius:50%; background:#94dfc5; }
.pa-launcher--robot { width:180px; height:220px; padding:0; border:0; background:transparent; box-shadow:none; justify-content:center; align-items:flex-end; position:relative; }
.pa-launcher--robot canvas { position:absolute; top:0; left:0; width:180px; height:210px; pointer-events:none; filter:drop-shadow(0 12px 12px #0006); }
.pa-robot-fallback { position:absolute; width:100%; height:auto; top:0; left:0; border-radius:50%; pointer-events:none; }
.pa-robot-ready .pa-robot-fallback { display:none; }
.pa-launcher--robot:not(.pa-robot-ready) canvas { visibility:hidden; }
.pa-launcher--robot>i,.pa-launcher--robot>.pa-status { display:none; }
.pa-launcher--robot>span:not(.pa-status) { position:relative; padding:6px 12px; border-radius:6px; background:#211a30; border:1px solid #82709f; font-size:12px; }
.pa-launcher--robot:hover { background:transparent; }
.portfolio-assistant:has(.pa-launcher--robot) .pa-panel { bottom:0; max-height:calc(100dvh - 56px); }
.pa-launcher--robot { transition:transform .45s cubic-bezier(.22,1,.36,1); }
.portfolio-assistant.is-open .pa-launcher--robot { transform:translateX(-400px); }
.portfolio-assistant.is-open .pa-launcher--robot:hover { transform:translate(-400px,-4px); }
@media(max-width:600px) {
  .portfolio-assistant:has(.pa-launcher--robot) .pa-panel { bottom:125px; max-height:calc(100dvh - 160px); }
  .portfolio-assistant.is-open .pa-launcher--robot { transform:translateX(calc(142px - 100vw)); }
  .portfolio-assistant.is-open .pa-launcher--robot:hover { transform:translate(calc(142px - 100vw),-4px); }
  .pa-launcher.pa-launcher--robot { width:110px; height:120px; }
  .pa-launcher--robot canvas { width:110px; height:128px; top:-15px; }
}
.pa-panel { position:absolute; bottom:70px; right:0; width:380px; height:540px; max-height:calc(100dvh - 126px); display:flex; flex-direction:column; background:#141319; border:1px solid #45404f; border-radius:8px; box-shadow:0 24px 70px #0009; overflow:hidden; transform-origin:bottom right; animation:pa-open .32s cubic-bezier(.2,.8,.2,1); }
.pa-panel[hidden] { display:none; }
.pa-header { display:flex; align-items:center; gap:10px; padding:18px 16px; border-bottom:1px solid #35303d; }
.pa-header strong { font-size:16px; }
.pa-header small { display:block; margin-top:5px; font-size:11px; color:#b9b1c4; }
.pa-mark { display:grid; place-items:center; width:36px; height:36px; background:#352b46; border-radius:8px; font-size:23px; color:#c7b3f6; }
.pa-mark { flex-shrink:0; overflow:hidden; }
.pa-mark img { display:block; width:36px; height:36px; object-fit:contain; }
.pa-icon { display:grid; place-items:center; width:32px; height:32px; flex-shrink:0; border:0; border-radius:6px; background:transparent; font-size:20px!important; }
.pa-reset { margin-left:auto; }
.pa-icon:hover { background:#393142; }
.pa-messages { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:20px; scrollbar-width:thin; scrollbar-color:#635777 transparent; }
.pa-message { margin-bottom:22px; animation:pa-message .25s ease-out; }
.pa-message small { display:block; font-size:11px; color:#bba7e9; margin-bottom:8px; }
.pa-message p { margin:0; font-size:14px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; color:#e6e1ec; }
.pa-message--user { padding:12px 14px; background:#292332; margin-left:35px; border-radius:8px; }
.pa-message--user small { color:#b8b3c1; }
.pa-message a { display:inline-block; margin-top:12px; color:#c8b2ff; text-decoration:underline; text-underline-offset:4px; }
.pa-pending p { animation:pa-pulse 1s ease-in-out infinite alternate; }
.pa-suggestions { display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 14px; }
.pa-suggestions button { border:1px solid #51455f; background:transparent; border-radius:6px; padding:7px 9px; font-size:12px; }
.pa-suggestions button:hover { background:#33283f; border-color:#a18aca; }
.pa-form { display:flex; gap:8px; padding:14px 16px; border-top:1px solid #35303d; background:#1c1922; }
.pa-form input { min-width:0; flex:1; background:transparent; border:0; color:#fff; outline:none; }
.pa-form input::placeholder { color:#b1a8bd; }
.pa-form:focus-within { box-shadow:inset 0 -2px #aa8ce6; }
.pa-form .pa-icon { background:#886cda; color:white; }
.pa-form .pa-icon:disabled { opacity:.4; cursor:default; }
.portfolio-assistant button:focus-visible,.portfolio-assistant a:focus-visible { outline:2px solid #ccb6ff; outline-offset:3px; }
@keyframes pa-open { from { opacity:0; transform:translateX(24px) scale(.96); } to { opacity:1; transform:none; } }
@keyframes pa-message { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
@keyframes pa-pulse { to { opacity:.4; } }
@media(max-width:600px) { .portfolio-assistant { right:16px; bottom:16px; } .pa-panel { width:calc(100vw - 32px); max-height:calc(100dvh - 106px); } .pa-launcher { height:48px; } }
@media(prefers-reduced-motion:reduce) { .portfolio-assistant * { animation:none!important; transition:none!important; } }
