.assistant-widget[data-v-6b868658]{position:fixed;right:24px;bottom:24px;z-index:900;display:flex;flex-direction:column;align-items:flex-end;gap:14px}.backdrop[data-v-6b868658]{position:fixed;top:0;right:0;bottom:0;left:0;background:#080b168c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:-1}.fab[data-v-6b868658]{width:56px;height:56px;border-radius:50%;padding:0;display:grid;place-items:center;position:relative;box-shadow:0 10px 30px #00000047;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s}.fab[data-v-6b868658]:hover:not(:disabled){transform:translateY(-3px) scale(1.04);box-shadow:0 16px 36px #00000057}.fab[data-v-6b868658]:active:not(:disabled){transform:scale(.95)}.fab-ring[data-v-6b868658]{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid var(--primary);opacity:0}.fab.busy .fab-ring[data-v-6b868658]{animation:ripple-6b868658 1.6s ease-out infinite}@keyframes ripple-6b868658{0%{opacity:.5;transform:scale(.9)}to{opacity:0;transform:scale(1.35)}}.dot[data-v-6b868658]{position:absolute;top:11px;right:11px;width:10px;height:10px;border-radius:50%;background:#22c55e;border:2px solid var(--primary);animation:pop-dot-6b868658 .3s cubic-bezier(.34,1.56,.64,1)}@keyframes pop-dot-6b868658{0%{transform:scale(0)}to{transform:scale(1)}}.swap-enter-active[data-v-6b868658],.swap-leave-active[data-v-6b868658]{transition:opacity .14s,transform .14s}.swap-enter-from[data-v-6b868658]{opacity:0;transform:rotate(-90deg) scale(.6)}.swap-leave-to[data-v-6b868658]{opacity:0;transform:rotate(90deg) scale(.6)}.panel[data-v-6b868658]{position:relative;max-width:calc(100vw - 48px);max-height:calc(100vh - 110px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 28px 70px #0000004d;overflow:hidden}.panel.full[data-v-6b868658]{position:fixed;top:24px;right:24px;bottom:24px;left:24px;width:auto;height:auto;max-width:none;max-height:none;border-radius:20px}.grip[data-v-6b868658]{position:absolute;z-index:5}.grip-n[data-v-6b868658]{top:0;left:14px;right:14px;height:6px;cursor:ns-resize}.grip-w[data-v-6b868658]{left:0;top:14px;bottom:14px;width:6px;cursor:ew-resize}.grip-nw[data-v-6b868658]{top:0;left:0;width:18px;height:18px;cursor:nwse-resize;display:grid;place-items:center;opacity:.35;transition:opacity .15s}.grip-nw[data-v-6b868658]:hover{opacity:.9}.grip-nw svg[data-v-6b868658]{width:10px;height:10px;fill:none;stroke:var(--muted);stroke-width:1.4;stroke-linecap:round}.panel-head[data-v-6b868658]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);flex:0 0 auto}.title[data-v-6b868658]{display:flex;align-items:center;gap:10px;min-width:0}.orb[data-v-6b868658]{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--primary);color:var(--primary-contrast, #fff);flex:0 0 32px}.orb.busy[data-v-6b868658]{animation:breathe-6b868658 1.5s ease-in-out infinite}@keyframes breathe-6b868658{50%{transform:scale(1.08)}}.title-text[data-v-6b868658]{display:flex;flex-direction:column;line-height:1.25;min-width:0}.title-text strong[data-v-6b868658]{font-size:13.5px}.title-text small[data-v-6b868658]{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}.pulse[data-v-6b868658]{width:6px;height:6px;border-radius:50%;background:#22c55e;display:inline-block}.pulse.busy[data-v-6b868658]{background:#f59e0b;animation:blink-6b868658 .9s ease-in-out infinite}@keyframes blink-6b868658{50%{opacity:.25}}.head-actions[data-v-6b868658]{display:flex;gap:4px;flex:0 0 auto}.icon-btn[data-v-6b868658]{width:30px;height:30px;padding:0;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:9px;color:var(--muted);box-shadow:none;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.icon-btn[data-v-6b868658]:after{display:none}.icon-btn[data-v-6b868658]:hover:not(:disabled){color:var(--text);border-color:var(--border);background:var(--surface);transform:none;box-shadow:none}.icon-btn.danger[data-v-6b868658]:hover:not(:disabled){color:#d64545;border-color:#d64545;background:#d645451a}.warn[data-v-6b868658]{padding:9px 14px;font-size:12.5px;color:#d64545;background:#d6454514;border-bottom:1px solid var(--border);flex:0 0 auto}.panel-body[data-v-6b868658]{flex:1;min-height:0;overflow-y:auto;padding:18px;display:flex;flex-direction:column}.stream[data-v-6b868658]{display:flex;flex-direction:column;gap:14px}.empty[data-v-6b868658]{margin:auto;text-align:center;color:var(--muted);max-width:460px;padding:12px 0}.empty-orb[data-v-6b868658]{width:60px;height:60px;margin:0 auto 14px;border-radius:18px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);color:var(--text-soft);animation:float-6b868658 3.4s ease-in-out infinite}@keyframes float-6b868658{50%{transform:translateY(-7px)}}.empty h3[data-v-6b868658]{margin:0 0 5px;color:var(--text);font-size:16px}.empty p[data-v-6b868658]{margin:0 0 18px;font-size:13px}.quick-head[data-v-6b868658]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}.quick-tools[data-v-6b868658]{display:flex;gap:6px}.mini[data-v-6b868658]{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-soft);box-shadow:none;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.mini[data-v-6b868658]:after{display:none}.mini[data-v-6b868658]:hover:not(:disabled){color:var(--text);border-color:var(--primary);background:var(--surface);transform:none;box-shadow:none}.mini.remove[data-v-6b868658]{flex:0 0 auto;width:30px;height:30px;padding:0;justify-content:center;align-self:stretch;height:auto}.mini.remove[data-v-6b868658]:hover:not(:disabled){color:#d64545;border-color:#d64545}.suggestions[data-v-6b868658]{display:flex;flex-direction:column;gap:8px}.suggestion-row[data-v-6b868658]{display:flex;gap:6px;align-items:stretch}.suggestion[data-v-6b868658]{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-soft);border-radius:11px;padding:11px 13px;font-size:12.8px;font-weight:500;line-height:1.45;text-align:left;white-space:normal;box-shadow:none;cursor:pointer;transition:border-color .18s,color .18s,background .18s,transform .18s}.suggestion[data-v-6b868658]:after{display:none}.suggestion[data-v-6b868658]:disabled{opacity:1;cursor:default}.suggestion svg[data-v-6b868658]{opacity:0;transform:translate(-4px);transition:.18s;flex:0 0 auto}.suggestion[data-v-6b868658]:hover:not(:disabled){background:var(--surface-hover, var(--surface-2));border-color:var(--primary);color:var(--text);transform:translate(3px);box-shadow:none}.suggestion:hover:not(:disabled) svg[data-v-6b868658]{opacity:.7;transform:none}.prompt-add[data-v-6b868658]{display:flex;gap:6px;margin-top:10px}.prompt-add input[data-v-6b868658]{flex:1;min-width:0;font-size:12.5px;padding:8px 11px;border-radius:10px}.prompt-add .add[data-v-6b868658]{flex:0 0 auto;padding:0 12px}@keyframes rise-6b868658{0%{opacity:0;transform:translateY(10px)}}.msg[data-v-6b868658]{display:flex;gap:10px;align-items:flex-start}.msg.user[data-v-6b868658]{flex-direction:row-reverse}.avatar[data-v-6b868658]{width:28px;height:28px;flex:0 0 28px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);font-size:10.5px;font-weight:600;color:var(--text-soft)}.bubble-wrap[data-v-6b868658]{position:relative;max-width:86%}.msg.user .bubble-wrap[data-v-6b868658]{display:flex;justify-content:flex-end}.bubble[data-v-6b868658]{border:1px solid var(--border);border-radius:13px;padding:11px 13px;background:var(--surface);font-size:13.5px;line-height:1.55;overflow-x:auto}.msg.user .bubble[data-v-6b868658]{background:var(--surface-2);border-radius:13px 13px 4px}.msg.assistant .bubble[data-v-6b868658]{border-radius:13px 13px 13px 4px}.copy[data-v-6b868658]{position:absolute;top:-7px;right:-7px;width:24px;height:24px;padding:0;display:grid;place-items:center;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);box-shadow:none;opacity:0;cursor:pointer;transition:opacity .15s,color .15s,border-color .15s}.copy[data-v-6b868658]:after{display:none}.msg:hover .copy[data-v-6b868658]{opacity:1}.copy[data-v-6b868658]:hover:not(:disabled){color:var(--text);border-color:var(--primary);background:var(--surface);transform:none;box-shadow:none}.thinking[data-v-6b868658]{display:flex;align-items:center;gap:9px;color:var(--muted)}.wave[data-v-6b868658]{display:inline-flex;gap:3px}.wave i[data-v-6b868658]{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:bounce-6b868658 1.1s ease-in-out infinite}.wave i[data-v-6b868658]:nth-child(2){animation-delay:.15s}.wave i[data-v-6b868658]:nth-child(3){animation-delay:.3s}@keyframes bounce-6b868658{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}.spin[data-v-6b868658]{animation:spin-6b868658 1s linear infinite}@keyframes spin-6b868658{to{transform:rotate(360deg)}}.steps[data-v-6b868658]{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--border)}.step[data-v-6b868658]{display:inline-flex;align-items:center;gap:5px;max-width:100%;font-size:11px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 9px;white-space:normal;overflow-wrap:anywhere;line-height:1.4}.step svg[data-v-6b868658]{flex:0 0 auto}.step em[data-v-6b868658]{font-style:normal;opacity:.7}.step.mutating[data-v-6b868658]{border-color:var(--primary);color:var(--text-soft)}.step.bad[data-v-6b868658]{border-color:#d64545;color:#d64545}.md[data-v-6b868658] p{margin:0 0 7px}.md[data-v-6b868658] p:last-child{margin-bottom:0}.md[data-v-6b868658] ul{margin:0 0 7px;padding-left:19px}.md[data-v-6b868658] h3,.md[data-v-6b868658] h4,.md[data-v-6b868658] h5{margin:11px 0 5px;font-size:13.5px}.md[data-v-6b868658] code{background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:12px}.md[data-v-6b868658] .md-table-wrap{overflow-x:auto;margin:8px 0}.md[data-v-6b868658] .md-table{border-collapse:collapse;font-size:12.5px}.md[data-v-6b868658] .md-table th,.md[data-v-6b868658] .md-table td{border:1px solid var(--border);padding:5px 9px;text-align:left;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.md[data-v-6b868658] .md-table th{background:var(--surface-2);font-weight:600}.panel-foot[data-v-6b868658]{flex:0 0 auto;padding:12px 14px;border-top:1px solid var(--border);background:var(--surface-2)}.composer[data-v-6b868658]{display:flex;gap:10px;align-items:flex-end}.input-shell[data-v-6b868658]{flex:1;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:3px 12px;transition:border-color .18s,box-shadow .18s}.input-shell[data-v-6b868658]:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input-shell textarea[data-v-6b868658]{display:block;width:100%;resize:none;border:none;background:transparent;padding:8px 0;font-size:13.5px;line-height:1.5;max-height:160px;outline:none;box-shadow:none}.send[data-v-6b868658]{width:42px;height:42px;flex:0 0 42px;padding:0;display:grid;place-items:center;border-radius:12px;transition:transform .16s,box-shadow .16s,opacity .16s}.send[data-v-6b868658]:not(:disabled):hover{transform:translateY(-2px) scale(1.05)}.send[data-v-6b868658]:not(:disabled):active{transform:scale(.95)}.pin[data-v-6b868658]{width:42px;height:42px;flex:0 0 42px;padding:0;display:grid;place-items:center;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--muted);box-shadow:none;transition:color .15s,border-color .15s}.pin[data-v-6b868658]:after{display:none}.pin[data-v-6b868658]:hover:not(:disabled){color:var(--text);border-color:var(--primary);background:var(--surface);transform:none;box-shadow:none}.hint[data-v-6b868658]{display:block;margin-top:7px;font-size:11px;color:var(--muted);text-align:center}.pop-enter-active[data-v-6b868658]{transition:opacity .24s,transform .28s cubic-bezier(.22,1,.36,1);transform-origin:bottom right}.pop-leave-active[data-v-6b868658]{transition:opacity .16s,transform .16s ease-in;transform-origin:bottom right}.pop-enter-from[data-v-6b868658],.pop-leave-to[data-v-6b868658]{opacity:0;transform:translateY(16px) scale(.94)}.backdrop-enter-active[data-v-6b868658],.backdrop-leave-active[data-v-6b868658]{transition:opacity .22s}.backdrop-enter-from[data-v-6b868658],.backdrop-leave-to[data-v-6b868658]{opacity:0}.msg-in-enter-active[data-v-6b868658]{transition:opacity .3s,transform .34s cubic-bezier(.22,1,.36,1)}.msg-in-enter-from[data-v-6b868658]{opacity:0;transform:translateY(12px)}.msg-in-move[data-v-6b868658]{transition:transform .3s}.fade-enter-active[data-v-6b868658],.fade-leave-active[data-v-6b868658]{transition:opacity .2s}.fade-enter-from[data-v-6b868658],.fade-leave-to[data-v-6b868658]{opacity:0}.slide-enter-active[data-v-6b868658],.slide-leave-active[data-v-6b868658]{transition:opacity .2s,max-height .24s;overflow:hidden}.slide-enter-from[data-v-6b868658],.slide-leave-to[data-v-6b868658]{opacity:0;max-height:0}.slide-enter-to[data-v-6b868658],.slide-leave-from[data-v-6b868658]{max-height:60px}.chip-enter-active[data-v-6b868658]{transition:opacity .26s,transform .3s cubic-bezier(.22,1,.36,1)}.chip-leave-active[data-v-6b868658]{transition:opacity .18s,transform .18s;position:absolute;width:100%}.chip-enter-from[data-v-6b868658]{opacity:0;transform:translateY(8px)}.chip-leave-to[data-v-6b868658]{opacity:0;transform:translate(-14px)}.chip-move[data-v-6b868658]{transition:transform .26s}@media(max-width:720px){.assistant-widget[data-v-6b868658]{right:14px;bottom:14px}.panel[data-v-6b868658]{width:calc(100vw - 28px)!important;height:min(72vh,calc(100vh - 100px))!important}.panel.full[data-v-6b868658]{top:10px;right:10px;bottom:10px;left:10px}.grip[data-v-6b868658]{display:none}.bubble-wrap[data-v-6b868658]{max-width:92%}}@media(prefers-reduced-motion:reduce){.orb.busy[data-v-6b868658],.empty-orb[data-v-6b868658],.fab.busy .fab-ring[data-v-6b868658],.wave i[data-v-6b868658],.pulse.busy[data-v-6b868658]{animation:none}}.sidebar.collapsed .foot-actions button[data-v-0b403670]{padding:9px 0}.sidebar.collapsed .foot-actions button .label[data-v-0b403670]{display:none}.clock[data-v-0b403670]{font-size:13px;font-weight:600;color:var(--text-soft);font-variant-numeric:tabular-nums}.clock em[data-v-0b403670]{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.5px;color:var(--muted)}:root{--bg: #eef1f8;--bg-soft: #f7f9fd;--surface: #ffffff;--surface-2: #f8fafc;--surface-hover: #f1f5fd;--border: #e4e9f2;--border-strong: #d3dae8;--text: #131829;--text-soft: #4a5268;--muted: #8791a7;--primary: #16192a;--primary-dark: #05070f;--primary-soft: rgba(19, 24, 41, .07);--accent: #3a4058;--danger: #ef4451;--danger-soft: rgba(239, 68, 81, .11);--success: #12b981;--success-soft: rgba(18, 185, 129, .12);--warning: #f59d0b;--warning-soft: rgba(245, 157, 11, .14);--grad-primary: linear-gradient(135deg, #2b3040 0%, #12151f 100%);--grad-success: linear-gradient(135deg, #12b981 0%, #0ea5a4 100%);--grad-danger: linear-gradient(135deg, #ef4451 0%, #f0793a 100%);--grad-dark: linear-gradient(135deg, #2b3040 0%, #12151f 100%);--grad-dark-hover: linear-gradient(135deg, #3a4055 0%, #1c2030 100%);--shadow-dark: 0 4px 14px rgba(15, 18, 28, .28);--shadow-dark-hover: 0 8px 22px rgba(15, 18, 28, .38);--shadow-brand: 0 6px 16px rgba(15, 18, 28, .3);--shadow-brand-hover: 0 8px 22px rgba(15, 18, 28, .42);--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--sidebar-w: 244px;--sidebar-w-min: 74px;--shadow-xs: 0 1px 2px rgba(19, 24, 41, .05);--shadow: 0 2px 8px rgba(19, 24, 41, .06), 0 1px 2px rgba(19, 24, 41, .04);--shadow-md: 0 8px 24px rgba(19, 24, 41, .09);--shadow-lg: 0 20px 48px rgba(19, 24, 41, .16);--ring: 0 0 0 3px rgba(19, 24, 41, .13);--ease: cubic-bezier(.32, .72, 0, 1);--fast: .15s var(--ease);--base: .25s var(--ease);--slow: .4s var(--ease)}html[data-theme=dark]{--bg: #0c1020;--bg-soft: #10152a;--surface: #151b33;--surface-2: #1a2140;--surface-hover: #1e2749;--border: #262f52;--border-strong: #354067;--text: #eaeefb;--text-soft: #b6c0dc;--muted: #7b86a8;--primary: #f2f5ff;--primary-dark: #ffffff;--primary-soft: rgba(234, 238, 251, .11);--grad-primary: linear-gradient(135deg, #39415e 0%, #1e2439 100%);--grad-dark: linear-gradient(135deg, #39415e 0%, #1e2439 100%);--grad-dark-hover: linear-gradient(135deg, #495273 0%, #2a3150 100%);--shadow-dark: 0 4px 14px rgba(0, 0, 0, .45);--shadow-dark-hover: 0 8px 22px rgba(0, 0, 0, .55);--shadow-brand: 0 6px 16px rgba(0, 0, 0, .5);--shadow-brand-hover: 0 8px 22px rgba(0, 0, 0, .6);--ring: 0 0 0 3px rgba(234, 238, 251, .14);--danger-soft: rgba(239, 68, 81, .16);--success-soft: rgba(18, 185, 129, .16);--warning-soft: rgba(245, 157, 11, .18);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 2px 10px rgba(0, 0, 0, .32);--shadow-md: 0 10px 28px rgba(0, 0, 0, .42);--shadow-lg: 0 24px 56px rgba(0, 0, 0, .55)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:14px;line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;transition:background var(--base),color var(--base)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(720px circle at 12% -10%,rgba(19,24,41,.05),transparent 60%),radial-gradient(620px circle at 96% 4%,rgba(19,24,41,.04),transparent 60%)}a{color:var(--primary);text-decoration:none;transition:color var(--fast)}a:hover{color:var(--primary-dark)}::selection{background:var(--primary-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:20px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}.shell{display:flex;min-height:100vh;position:relative;z-index:1}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;transition:width var(--base);z-index:30}.sidebar.collapsed{width:var(--sidebar-w-min)}.brand{display:flex;align-items:center;gap:11px;padding:18px 18px 14px;overflow:hidden}.brand-mark{width:38px;height:38px;flex-shrink:0;border-radius:12px;background:var(--grad-primary);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-brand);transition:transform var(--base),box-shadow var(--base)}.brand-mark svg{display:block}.brand:hover .brand-mark{transform:rotate(-6deg) scale(1.06);box-shadow:var(--shadow-brand-hover)}.brand-text{display:flex;flex-direction:column;white-space:nowrap}.brand-text b{font-size:15px;letter-spacing:.2px}.brand-text small{font-size:11px;color:var(--muted)}.nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:6px 12px 16px;display:flex;flex-direction:column;gap:3px}.nav-group{padding:14px 10px 6px;font-size:10px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--muted);white-space:nowrap}.sidebar.collapsed .nav-group{opacity:0;height:12px;padding:0}.nav a{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--radius-sm);color:var(--text-soft);font-weight:500;font-size:13.5px;white-space:nowrap;position:relative;transition:background var(--fast),color var(--fast),transform var(--fast)}.nav a .ico{width:20px;height:20px;flex-shrink:0;display:grid;place-items:center;opacity:.75;transition:opacity var(--fast),transform var(--fast)}.nav a .ico svg{width:18px;height:18px}.nav a:hover .ico{opacity:1;transform:scale(1.08)}.nav a.router-link-active .ico{opacity:1}.nav a:hover{background:var(--surface-hover);color:var(--text);transform:translate(2px)}.nav a.router-link-active{background:var(--primary-soft);color:var(--primary);font-weight:600}.nav a.router-link-active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--grad-primary)}.sidebar.collapsed .nav a{justify-content:center;padding:10px}.sidebar.collapsed .nav a .label{display:none}.sidebar.collapsed .nav a:after{content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%) scale(.9);background:var(--text);color:var(--surface);padding:5px 10px;border-radius:7px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--fast),transform var(--fast);box-shadow:var(--shadow-md)}.sidebar.collapsed .nav a:hover:after{opacity:1;transform:translateY(-50%) scale(1)}.sidebar-foot{border-top:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:8px}.user-chip{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);overflow:hidden}.avatar{width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--grad-primary);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}.user-meta{display:flex;flex-direction:column;overflow:hidden}.user-meta b{font-size:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-meta small{font-size:11px;color:var(--muted)}.sidebar.collapsed .user-meta,.sidebar.collapsed .brand-text,.sidebar.collapsed .foot-actions .label{display:none}.sidebar.collapsed .user-chip{justify-content:center;padding:4px}.foot-actions{display:flex;gap:6px}.sidebar.collapsed .foot-actions{flex-direction:column}.content{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:62px;padding:0 26px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);border-bottom:1px solid var(--border)}.topbar h1{font-size:18px;margin:0;font-weight:650;letter-spacing:-.2px}.topbar .spacer{flex:1}.icon-btn{width:36px;height:36px;padding:0;display:grid;place-items:center;border-radius:10px;background:transparent;border:1px solid var(--border);color:var(--text-soft);font-size:15px;cursor:pointer;transition:all var(--fast)}.icon-btn:hover{background:var(--surface);color:var(--text);border-color:var(--border-strong);transform:translateY(-1px)}.icon-btn:active{transform:scale(.94)}.icon-btn svg{width:17px;height:17px}.page{padding:22px 26px 48px;max-width:1720px;margin:0 auto;width:100%}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-head h1{font-size:24px;margin:0;font-weight:700;letter-spacing:-.5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:18px;margin-bottom:16px;transition:box-shadow var(--base),border-color var(--base),transform var(--base)}.card:hover{box-shadow:var(--shadow-md)}.card.narrow{max-width:660px}.card-title{margin:0 0 16px;font-size:15px;font-weight:650;letter-spacing:-.2px}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:13px;align-items:end}.filters>.btn-row{grid-column:1 / -1;justify-content:flex-end;margin-top:3px;padding-top:14px;border-top:1px solid var(--border)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:11.5px;color:var(--muted);font-weight:650;letter-spacing:.2px}input,select,textarea{padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:var(--surface-2);color:var(--text);width:100%;transition:border-color var(--fast),box-shadow var(--fast),background var(--fast)}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;background:var(--surface);border-color:var(--primary);box-shadow:var(--ring)}input::placeholder,textarea::placeholder{color:var(--muted)}textarea{resize:vertical;min-height:74px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%238791a7' d='M6 8.5 1.8 4.3l.9-.9L6 6.7l3.3-3.3.9.9z'/></svg>");background-repeat:no-repeat;background-position:right 11px center;padding-right:32px}.checkbox,.check{flex-direction:row;align-items:center;gap:9px;cursor:pointer}.checkbox input,.check input{width:17px;height:17px;accent-color:var(--primary);cursor:pointer}.req{color:var(--danger)}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 17px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;font-family:inherit;cursor:pointer;background:var(--grad-dark);color:#fff;white-space:nowrap;position:relative;overflow:hidden;transition:transform var(--fast),box-shadow var(--fast),background var(--fast),opacity var(--fast);box-shadow:var(--shadow-dark)}button:hover:not(:disabled){background:var(--grad-dark-hover);transform:translateY(-1px);box-shadow:var(--shadow-dark-hover)}button:active:not(:disabled){transform:translateY(0) scale(.98)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button svg,.btn-link svg{width:16px;height:16px;flex-shrink:0}button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translate(-100%);transition:transform var(--slow)}button:hover:not(:disabled):after{transform:translate(100%)}button.ghost{background:var(--surface-2);border-color:var(--border);color:var(--text-soft);box-shadow:none}button.ghost:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong);color:var(--text);box-shadow:var(--shadow-xs)}button.ghost:after{display:none}button.danger{background:var(--grad-danger);box-shadow:0 3px 10px #ef445147}button.danger:hover:not(:disabled){background:var(--grad-danger);box-shadow:0 6px 18px #ef445161}button.icon{padding:7px 10px;font-size:13px}.btn-row{display:flex;gap:9px;flex-wrap:wrap}.btn-link{display:inline-flex;align-items:center;gap:7px;padding:9px 17px;border-radius:var(--radius-sm);background:var(--grad-dark);color:#fff;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-dark);transition:transform var(--fast),box-shadow var(--fast),background var(--fast)}.btn-link:hover{color:#fff;background:var(--grad-dark-hover);transform:translateY(-1px);box-shadow:var(--shadow-dark-hover)}.table-wrap{overflow-x:auto;border-radius:var(--radius);margin:-4px;padding:4px}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}th{text-align:left;padding:11px 13px;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);white-space:nowrap;position:sticky;top:0;z-index:2}th:first-child{border-radius:var(--radius-sm) 0 0 0}th:last-child{border-radius:0 var(--radius-sm) 0 0}td{padding:11px 13px;border-bottom:1px solid var(--border);white-space:nowrap;color:var(--text-soft)}tbody tr{transition:background var(--fast),transform var(--fast)}tbody tr:hover{background:var(--surface-hover)}tbody tr:hover td{color:var(--text)}tbody tr{animation:row-in .32s var(--ease) backwards}tbody tr:nth-child(1){animation-delay:.01s}tbody tr:nth-child(2){animation-delay:.03s}tbody tr:nth-child(3){animation-delay:.05s}tbody tr:nth-child(4){animation-delay:.07s}tbody tr:nth-child(5){animation-delay:.09s}tbody tr:nth-child(6){animation-delay:.11s}tbody tr:nth-child(7){animation-delay:.13s}tbody tr:nth-child(8){animation-delay:.15s}tbody tr:nth-child(n+9){animation-delay:.17s}@keyframes row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}tfoot td{font-weight:700;color:var(--text);background:var(--surface-2);border-top:2px solid var(--border-strong);border-bottom:none}.num{text-align:right;font-variant-numeric:tabular-nums}.pos{color:var(--success);font-weight:650}.neg{color:var(--danger);font-weight:650}.muted-metric{color:var(--muted);font-weight:650}tr.row-pos>td{background:var(--success-soft)}tr.row-neg>td{background:var(--danger-soft)}tr.row-pos:hover>td{background:color-mix(in srgb,var(--success) 18%,transparent)}tr.row-neg:hover>td{background:color-mix(in srgb,var(--danger) 18%,transparent)}tr.row-pos>td:first-child{box-shadow:inset 3px 0 0 0 var(--success)}tr.row-neg>td:first-child{box-shadow:inset 3px 0 0 0 var(--danger)}.money-in{color:var(--success);font-weight:600}.money-out{color:var(--danger);font-weight:600}.money-neutral{color:var(--text-muted)}.pill-num{display:inline-block;padding:2px 9px;border-radius:999px;font-weight:700;font-variant-numeric:tabular-nums}.pill-num.pos{background:var(--success-soft);color:var(--success)}.pill-num.neg{background:var(--danger-soft);color:var(--danger)}.row-actions{display:flex;gap:6px;white-space:nowrap}.row-actions button{opacity:.55;transition:opacity var(--fast),transform var(--fast)}tbody tr:hover .row-actions button{opacity:1}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:650;letter-spacing:.2px;background:var(--surface-hover);color:var(--muted);border:1px solid transparent}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.on{background:var(--success-soft);color:var(--success)}.badge.off{background:var(--danger-soft);color:var(--danger)}.badge.status-pending{background:var(--warning-soft);color:var(--warning)}.badge.status-paid{background:var(--success-soft);color:var(--success)}.badge.status-blocked{background:var(--danger-soft);color:var(--danger)}.badge.status-cancelled{background:#8c96af29;color:var(--muted)}.badge.status-pending:before{animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.status-select{width:auto;min-width:128px;border-radius:20px;font-size:12px;font-weight:650;padding:5px 28px 5px 12px;border:1px solid transparent;background-position:right 9px center;cursor:pointer}.status-select:hover{transform:translateY(-1px)}.status-select.status-pending{background-color:var(--warning-soft);color:var(--warning)}.status-select.status-paid{background-color:var(--success-soft);color:var(--success)}.status-select.status-blocked{background-color:var(--danger-soft);color:var(--danger)}.status-select.status-cancelled{background-color:#8c96af29;color:var(--muted)}.cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px}.card.metric{display:flex;flex-direction:column;gap:7px;padding:17px 19px;margin:0;position:relative;overflow:hidden;animation:card-in .4s var(--ease) backwards}.card.metric:hover{transform:translateY(-3px)}.card.metric:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-primary);opacity:0;transition:opacity var(--base)}.card.metric:hover:before{opacity:1}.card.metric span{color:var(--muted);font-size:12px;font-weight:600}.card.metric strong{font-size:25px;font-weight:750;letter-spacing:-.8px;font-variant-numeric:tabular-nums}.cards-row .card:nth-child(1){animation-delay:.02s}.cards-row .card:nth-child(2){animation-delay:.07s}.cards-row .card:nth-child(3){animation-delay:.12s}.cards-row .card:nth-child(4){animation-delay:.17s}.cards-row .card:nth-child(5){animation-delay:.22s}.cards-row .card:nth-child(6){animation-delay:.27s}@keyframes card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.tl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:13px;margin-bottom:20px}.tl-metric{display:flex;flex-direction:column;gap:6px;padding:17px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);transition:transform var(--fast),box-shadow var(--fast)}.tl-metric:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.tl-metric.accent{border-color:transparent;background:var(--grad-primary);color:#fff;box-shadow:var(--shadow-brand)}.tl-metric.accent .tl-label{color:#ffffffd1}.tl-label{font-size:12px;color:var(--muted);font-weight:600}.tl-value{font-size:24px;font-weight:750;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e1c80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:flex-end;z-index:100;animation:fade-in .2s ease}.modal{background:var(--surface);width:480px;max-width:100%;height:100%;overflow-y:auto;padding:22px 24px 32px;box-shadow:var(--shadow-lg);animation:slide-in .32s var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{transform:translate(100%)}to{transform:none}}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border);position:sticky;top:-22px;background:var(--surface);z-index:2;padding-top:4px}.modal-head h2{margin:0;font-size:17px;font-weight:680;letter-spacing:-.3px}.modal .field{margin-bottom:15px}.modal .btn-row{margin-top:22px}.modal .btn-row button{flex:1}.alert{display:flex;align-items:center;gap:9px;padding:11px 15px;border-radius:var(--radius-sm);margin-bottom:14px;background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 26%,transparent);font-weight:550;animation:shake .35s var(--ease)}.alert:before{content:"⚠";font-size:15px}.alert.ok{background:var(--success-soft);color:var(--success);border-color:color-mix(in srgb,var(--success) 26%,transparent);animation:card-in .3s var(--ease)}.alert.ok:before{content:"✓"}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.empty{padding:44px 20px;text-align:center;color:var(--muted);font-size:13.5px}.hint{display:block;margin-top:5px;font-size:11.5px;color:var(--muted);line-height:1.55}.note{margin:14px 0 0;font-size:12px;color:var(--muted);line-height:1.65}.muted{color:var(--muted)}.tabs{display:flex;gap:4px;margin:18px 0 4px;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);width:fit-content;max-width:100%;overflow-x:auto}.tab{background:transparent;border:none;border-radius:var(--radius-sm);padding:8px 17px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;box-shadow:none;transition:all var(--fast)}.tab:after{display:none}.tab:hover:not(.active){color:var(--text);background:var(--surface-hover);transform:none}.tab.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-xs)}.table-wrap.compact{margin-top:20px}.table-wrap.compact table{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}.kv{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;margin:16px 0;font-size:13px}.kv dt{color:var(--muted);font-weight:600}.kv dd{margin:0}.copy{background:none;border:none;color:var(--muted);cursor:pointer;padding:0 5px;box-shadow:none;transition:color var(--fast),transform var(--fast)}.copy:after{display:none}.copy svg{width:14px;height:14px}.copy:hover{background:none;box-shadow:none;color:var(--primary);transform:scale(1.15)}.page-fade-enter-active{transition:opacity .26s var(--ease),transform .26s var(--ease)}.page-fade-leave-active{transition:opacity .14s ease}.page-fade-enter-from{opacity:0;transform:translateY(10px)}.page-fade-leave-to{opacity:0}.loadbar{position:fixed;top:0;left:0;right:0;height:2px;z-index:200;overflow:hidden;background:transparent}.loadbar span{display:block;height:100%;width:40%;background:var(--grad-primary);animation:loadbar 1.1s var(--ease) infinite}@keyframes loadbar{0%{transform:translate(-100%)}to{transform:translate(350%)}}.sidebar-backdrop{display:none}@media(max-width:900px){.sidebar{position:fixed;left:0;top:0;transform:translate(-100%);transition:transform var(--base);box-shadow:var(--shadow-lg)}.sidebar.mobile-open{transform:none}.sidebar.collapsed{width:var(--sidebar-w)}.sidebar.collapsed .brand-text,.sidebar.collapsed .user-meta,.sidebar.collapsed .nav a .label{display:unset}.sidebar.collapsed .nav a{justify-content:flex-start;padding:9px 11px}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e1c80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:29;animation:fade-in .2s ease}.page{padding:16px 14px 40px}.topbar{padding:0 14px}.page-head h1{font-size:20px}.modal{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
