/* Rehmansoft extras: assistant, command palette, confetti */
.xa-fab{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:60;width:64px;height:64px;border-radius:50%;border:0;cursor:pointer;background:#fff;box-shadow:0 14px 34px -8px rgba(59,31,184,.55),0 0 0 3px rgba(255,255,255,.9);display:grid;place-items:center;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.xa-fab:hover{transform:scale(1.1) rotate(-6deg)}
.xa-fab img{width:34px;height:auto}
.xa-fab::before,.xa-fab::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #7a5cff;opacity:0;animation:xaring 2.8s ease-out infinite}
.xa-fab::after{animation-delay:1.4s;border-color:#13a24a}
@keyframes xaring{0%{scale:1;opacity:.7}100%{scale:1.9;opacity:0}}
.xa-dot{position:absolute;right:2px;top:2px;width:15px;height:15px;border-radius:50%;background:#13a24a;border:2px solid #fff}
.xa-tip{position:fixed;right:max(92px,calc(env(safe-area-inset-right) + 92px));bottom:max(30px,calc(env(safe-area-inset-bottom) + 30px));z-index:60;padding:10px 16px;border-radius:18px 18px 4px 18px;background:#14112e;color:#fff;font:700 .86rem/1.3 var(--f-body,system-ui);box-shadow:0 14px 30px -10px rgba(20,17,46,.6);opacity:0;translate:10px 0;pointer-events:none;transition:.5s cubic-bezier(.2,.8,.2,1)}
.xa-tip.on{opacity:1;translate:0 0}
.xa{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(94px,calc(env(safe-area-inset-bottom) + 94px));z-index:61;width:min(390px,calc(100vw - 24px));height:min(580px,calc(100vh - 130px));display:flex;flex-direction:column;border-radius:28px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #fff;box-shadow:0 40px 80px -24px rgba(20,17,46,.55);overflow:hidden;transform-origin:100% 100%;transition:opacity .35s,transform .45s cubic-bezier(.2,.8,.2,1),visibility .35s}
.xa[hidden]{display:flex;opacity:0;visibility:hidden;transform:scale(.85) translateY(20px);pointer-events:none}
.xa-h{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(110deg,#e8261b,#7a3cff 60%,#13a24a);color:#fff}
.xa-h .av{width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none}
.xa-h .av img{width:24px}
.xa-h b{display:block;font:800 1rem/1.1 var(--f-display,system-ui)}
.xa-h small{font:600 .74rem/1 var(--f-body,system-ui);opacity:.9}
.xa-h small::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#5dff9a;margin-right:6px}
.xa-x{margin-left:auto;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.2);color:#fff;font:700 1.3rem/1 system-ui;cursor:pointer}
.xa-x:hover{background:rgba(255,255,255,.4)}
.xa-b{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth;background:linear-gradient(#faf9ff,#f3f0ff)}
.xa-m{max-width:86%;padding:11px 15px;border-radius:18px;font:500 .92rem/1.5 var(--f-body,system-ui);animation:xain .4s cubic-bezier(.2,.8,.2,1);overflow-wrap:anywhere}
.xa-m.bot{align-self:flex-start;background:#fff;border:1px solid #e7e3fa;border-bottom-left-radius:5px;color:#14112e}
.xa-m.me{align-self:flex-end;background:#14112e;color:#fff;border-bottom-right-radius:5px}
.xa-m a{color:#5a3df0;font-weight:800}
.xa-m b{font-weight:800}
@keyframes xain{from{opacity:0;translate:0 10px;scale:.96}}
.xa-t{align-self:flex-start;display:flex;gap:5px;padding:13px 16px;background:#fff;border:1px solid #e7e3fa;border-radius:18px;border-bottom-left-radius:5px}
.xa-t i{width:7px;height:7px;border-radius:50%;background:#7a5cff;animation:xadot 1s infinite}
.xa-t i:nth-child(2){animation-delay:.15s}.xa-t i:nth-child(3){animation-delay:.3s}
@keyframes xadot{0%,60%,100%{translate:0 0;opacity:.4}30%{translate:0 -5px;opacity:1}}
.xa-c{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 4px}
.xa-c button,.xa-c a{padding:9px 14px;border-radius:999px;border:2px solid #14112e;background:#fff;color:#14112e;font:800 .8rem/1 var(--f-body,system-ui);cursor:pointer;text-decoration:none;transition:.25s cubic-bezier(.2,.8,.2,1);animation:xain .45s cubic-bezier(.2,.8,.2,1) both}
.xa-c button:hover,.xa-c a:hover{background:#14112e;color:#fff;translate:0 -2px}
.xa-c .go{background:linear-gradient(100deg,#7a3cff,#13a24a);color:#fff;border-color:transparent}
.xa-f{display:flex;gap:8px;padding:12px;border-top:1px solid #ece9fb;background:#fff}
.xa-f input{flex:1;min-width:0;padding:12px 16px;border-radius:999px;border:2px solid #e7e3fa;background:#faf9ff;font:600 .92rem var(--f-body,system-ui);color:#14112e}
.xa-f input:focus{outline:0;border-color:#7a5cff;box-shadow:0 0 0 4px rgba(122,92,255,.15)}
.xa-f button{width:46px;height:46px;border-radius:50%;border:0;background:#14112e;color:#fff;font:700 1.1rem/1 system-ui;cursor:pointer;transition:.25s}
.xa-f button:hover{background:#7a3cff;scale:1.08}
/* command palette */
.xk-hint{position:fixed;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:10px;padding:9px 14px 9px 16px;border-radius:999px;border:1px solid #fff;background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 26px -12px rgba(59,31,184,.5);font:700 .8rem/1 var(--f-body,system-ui);color:#14112e;cursor:pointer;transition:.3s cubic-bezier(.2,.8,.2,1)}
.xk-hint:hover{translate:0 -3px}
.xk-hint kbd{font:700 .72rem/1 ui-monospace,Consolas,monospace;padding:5px 7px;border-radius:7px;background:#14112e;color:#fff}
.xk{position:fixed;inset:0;z-index:99990;display:grid;align-items:start;justify-items:center;padding:12vh 16px 16px;background:rgba(20,17,46,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:xk .3s ease}
.xk[hidden]{display:none}
@keyframes xk{from{opacity:0}}
.xk-box{width:min(560px,100%);border-radius:26px;background:#fff;box-shadow:0 50px 90px -30px rgba(20,17,46,.8);overflow:hidden;animation:xkb .4s cubic-bezier(.2,.8,.2,1)}
@keyframes xkb{from{opacity:0;translate:0 -16px;scale:.97}}
.xk-box input{width:100%;padding:20px 24px;border:0;border-bottom:1px solid #ece9fb;font:700 1.1rem var(--f-body,system-ui);color:#14112e;background:#fff}
.xk-box input:focus{outline:0}
.xk-l{max-height:min(52vh,380px);overflow:auto;padding:8px}
.xk-l button{width:100%;display:flex;align-items:center;gap:14px;padding:13px 16px;border:0;border-radius:14px;background:transparent;text-align:left;cursor:pointer;font:700 .96rem var(--f-body,system-ui);color:#14112e}
.xk-l button span.i{flex:none;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;font:800 .85rem/1 var(--f-display,system-ui);background:linear-gradient(135deg,#8b6cff,#3b1fb8)}
.xk-l button small{margin-left:auto;font-weight:600;color:#7a7899;font-size:.76rem}
.xk-l button[aria-selected="true"]{background:#f1edff}
.xk-e{padding:22px;text-align:center;color:#7a7899;font-weight:600}
.xk-f{display:flex;gap:16px;padding:11px 18px;border-top:1px solid #ece9fb;background:#faf9ff;font:600 .74rem var(--f-body,system-ui);color:#7a7899}
/* confetti + toast */
.xc{position:fixed;inset:0;z-index:99995;pointer-events:none}
.xt{position:fixed;left:50%;bottom:max(96px,calc(env(safe-area-inset-bottom) + 96px));translate:-50% 20px;z-index:99996;padding:14px 22px;border-radius:999px;background:#14112e;color:#fff;font:800 .92rem/1.2 var(--f-body,system-ui);box-shadow:0 20px 40px -14px rgba(20,17,46,.7);opacity:0;transition:.5s cubic-bezier(.2,.8,.2,1);max-width:calc(100vw - 32px);text-align:center}
.xt.on{opacity:1;translate:-50% 0}
@media (max-width:640px){
  .xk-hint{display:none}
  .xa{inset:auto 10px 90px 10px;width:auto;height:min(74vh,560px)}
  .xa-tip{display:none}
}
@media (prefers-reduced-motion:reduce){
  .xa-fab::before,.xa-fab::after,.xa-t i{animation:none}
  .xa,.xk,.xk-box,.xa-m,.xa-c *{animation:none!important;transition:none!important}
}
