:root{--bg:#fff;--surface:#fff;--surface-2:#f2f2f7;--surface-3:#e5e5ea;--line:#e5e5ea;--line-soft:#f0f0f3;--side:#f5f5f7;--bar:#ffffffc7;--fg:#1d1d1f;--fg-2:#6e6e73;--fg-3:#8e8e93;--accent:#007aff;--accent-ink:#0062cc;--accent-soft:#007aff1a;--ok:#248a3d;--ok-soft:#34c75924;--warn:#c93400;--warn-soft:#ff950024;--crit:#d70015;--crit-soft:#ff3b301f;--dot-ok:#34c759;--dot-warn:#ff9500;--dot-crit:#ff3b30;--brand:#0e9f6e;--hud:#1d1d1feb;--on-hud:#fff;--shadow:0 10px 30px #0000001f, 0 1px 3px #0000000f;--shadow-lift:0 14px 34px #0000001a, 0 2px 6px #0000000d;--thumb:0 1px 3px #0000001f, 0 1px 1px #0000000a;--shimmer:#ffffffbf;--f-body:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, system-ui, sans-serif;--f-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Segoe UI", Roboto, system-ui, sans-serif;--f-mono:"SF Mono", ui-monospace, Menlo, "JetBrains Mono", monospace;--ease:cubic-bezier(.22, 1, .36, 1);--radius:8px;--ink:var(--fg);--muted:var(--fg-2);--panel:var(--surface);--primary:var(--accent);--primary-ink:var(--accent-ink);--danger:var(--crit);--info:var(--accent-ink);--info-bg:var(--accent-soft);--ok-bg:var(--ok-soft);--warn-bg:var(--warn-soft);--danger-bg:var(--crit-soft);--accent-green:var(--ok);font-family:var(--f-body);color:var(--fg);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.4}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#000;--surface:#1c1c1e;--surface-2:#2c2c2e;--surface-3:#3a3a3c;--line:#38383a;--line-soft:#2c2c2e;--side:#161617;--bar:#161617c7;--fg:#f5f5f7;--fg-2:#98989d;--fg-3:#6e6e73;--accent:#0a84ff;--accent-ink:#409cff;--accent-soft:#0a84ff2e;--ok:#30d158;--ok-soft:#30d15829;--warn:#ff9f0a;--warn-soft:#ff9f0a29;--crit:#ff453a;--crit-soft:#ff453a29;--dot-ok:#30d158;--dot-warn:#ff9f0a;--dot-crit:#ff453a;--hud:#3a3a3cf2;--shadow:0 10px 30px #0009;--shadow-lift:0 14px 34px #0000008c;--thumb:0 1px 3px #00000080;--shimmer:#ffffff0f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#000;--surface:#1c1c1e;--surface-2:#2c2c2e;--surface-3:#3a3a3c;--line:#38383a;--line-soft:#2c2c2e;--side:#161617;--bar:#161617c7;--fg:#f5f5f7;--fg-2:#98989d;--fg-3:#6e6e73;--accent:#0a84ff;--accent-ink:#409cff;--accent-soft:#0a84ff2e;--ok:#30d158;--ok-soft:#30d15829;--warn:#ff9f0a;--warn-soft:#ff9f0a29;--crit:#ff453a;--crit-soft:#ff453a29;--dot-ok:#30d158;--dot-warn:#ff9f0a;--dot-crit:#ff453a;--hud:#3a3a3cf2;--shadow:0 10px 30px #0009;--shadow-lift:0 14px 34px #0000008c;--thumb:0 1px 3px #00000080;--shimmer:#ffffff0f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);min-width:1200px;margin:0}h1{font-family:var(--f-display);letter-spacing:-.022em;margin:0;font-size:28px;font-weight:700;line-height:1.15}h2{font-family:var(--f-display);letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600}h3{margin:14px 0 6px;font-size:14px;font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{background:var(--surface-2);color:var(--accent);white-space:nowrap;cursor:pointer;min-height:32px;transition:background .15s, transform .15s var(--ease), box-shadow .2s, filter .15s;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;display:inline-flex}button:hover:not(:disabled){background:var(--surface-3)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:linear-gradient(180deg, #1e90ff, var(--accent));color:#fff;box-shadow:0 1px 2px #0062cc4d}button.primary:hover:not(:disabled){background:linear-gradient(180deg, #1e90ff, var(--accent));filter:brightness(1.08);box-shadow:0 6px 16px #0062cc4d}button.danger{color:var(--crit)}button.link{min-height:0;color:var(--accent);background:0 0;padding:0;font-weight:500}button.link:hover:not(:disabled){background:0 0;text-decoration:underline}input,select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:0;min-height:32px;padding:6px 10px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--fg-2)}select{appearance:none;text-overflow:ellipsis;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%238e8e93' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:12px;padding-right:32px}select:disabled{cursor:default}input[type=date]{padding-right:8px}input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;margin-left:6px}input[type=checkbox]{width:15px;height:15px;min-height:0;accent-color:var(--accent);margin:0}.mono{font-family:var(--f-mono);font-size:12.5px}.muted{color:var(--fg-2)}.strong{font-weight:600}.sub{color:var(--fg-2);font-size:12px}.spacer{flex:1}ul.plain{margin:0;padding:0;list-style:none}.shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--side);border-right:1px solid var(--line);z-index:20;flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.brand{color:var(--fg);align-items:center;gap:10px;padding:18px 18px 12px;font-size:14px;font-weight:600;display:flex}.brand small{color:var(--fg-2);font-size:12px;font-weight:400;display:block}.logo{background:linear-gradient(135deg, #16c784, var(--brand));color:#fff;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font-size:15px;font-weight:700;display:grid;box-shadow:0 4px 12px #0e9f6e59}.sidebar nav{flex:1;padding:4px 10px 12px;overflow-y:auto}.nav-group{margin-bottom:10px}.nav-title{color:var(--fg-3);padding:10px 10px 4px;font-size:12px;font-weight:600}.nav-link{min-height:32px;color:var(--fg);border-radius:8px;align-items:center;gap:10px;padding:5px 10px;text-decoration:none;transition:background .15s;display:flex}.nav-link:hover{background:#7878801f;text-decoration:none}.nav-link .ic{background:var(--surface);width:24px;height:24px;color:var(--fg-2);box-shadow:inset 0 0 0 1px var(--line);transition:background .2s, color .2s, transform .25s var(--ease);border-radius:6px;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.nav-link:hover .ic{transform:scale(1.08)}.nav-link.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.nav-link.active .ic{background:var(--accent);color:#fff;box-shadow:0 3px 8px #007aff59}.sidebar-footer{border-top:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px;display:flex}.avatar{background:linear-gradient(135deg, #5e5ce6, var(--accent));color:#fff;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:grid}.user{flex:1;min-width:0}.user-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.user-role{color:var(--fg-2);font-size:12px}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:15;background:var(--bar);-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:52px;padding:8px 28px;display:flex;position:sticky;top:0}.crumbs{color:var(--fg-2);align-items:center;gap:6px;font-size:13px;display:flex}.crumbs .cur{color:var(--fg);font-weight:600}.iconbtn{width:34px;height:34px;min-height:34px;color:var(--fg-2);background:0 0;padding:0;font-size:16px}.iconbtn:hover:not(:disabled){color:var(--fg);background:#7878801f}.content{min-width:0;padding:24px 28px 96px}.page-enter{animation:pageIn .45s var(--ease) both}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}}.splash{min-height:100vh;color:var(--fg-2);place-items:center;display:grid}.splash:before{content:"";border:3px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-header{margin-bottom:16px}.page-header-row{align-items:center;gap:16px;display:flex}.page-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.toolbar select{min-width:190px}.toolbar+.panel,.toolbar+.table-wrap,.toolbar+.banner,.page-header+.panel,.page-header+.table-wrap{margin-top:14px}.search{width:300px}.check{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.more{justify-content:center;padding:14px;display:flex}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;color:var(--fg-2);border-bottom:1px solid var(--line);background:var(--surface);white-space:nowrap;z-index:1;padding:10px 14px;font-size:12px;font-weight:500;position:sticky;top:0}.table td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 14px;transition:background .15s}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{animation:rowIn .4s var(--ease) both}.table tbody tr:nth-child(2){animation-delay:20ms}.table tbody tr:nth-child(3){animation-delay:40ms}.table tbody tr:nth-child(4){animation-delay:60ms}.table tbody tr:nth-child(5){animation-delay:80ms}.table tbody tr:nth-child(6){animation-delay:.1s}.table tbody tr:nth-child(7){animation-delay:.12s}.table tbody tr:nth-child(8){animation-delay:.14s}.table tbody tr:nth-child(9){animation-delay:.16s}.table tbody tr:nth-child(10){animation-delay:.18s}.table tbody tr:nth-child(n+11){animation-delay:.2s}@keyframes rowIn{0%{opacity:0;transform:translateY(4px)}}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .center{text-align:center}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td,.table tbody tr:hover td{background:var(--accent-soft)}.table tr.row-muted td{color:var(--fg-2);background:var(--surface-2)}.table-empty{text-align:center;color:var(--fg-2);padding:40px 12px!important}.skeleton td{padding:14px}.sk{background:var(--surface-2);border-radius:6px;height:12px;display:block;position:relative;overflow:hidden}.sk:after{content:"";background:linear-gradient(90deg, transparent, var(--shimmer), transparent);animation:1.3s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.tree-cell{align-items:center;gap:8px;display:flex}.tree-toggle{width:18px;min-height:0;color:var(--fg-3);text-align:center;background:0 0;border:none;flex:none;padding:0;display:inline-block}.tree-toggle:hover:not(:disabled){color:var(--fg);background:0 0}.badge{background:var(--surface-2);color:var(--fg-2);white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:1px 9px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--crit-soft);color:var(--crit)}.badge-info{background:var(--accent-soft);color:var(--accent-ink)}.badge-info:before{animation:1.6s ease-in-out infinite blink}@keyframes blink{50%{opacity:.3}}.banner{animation:pageIn .35s var(--ease) both;border-radius:10px;margin-bottom:12px;padding:10px 14px;font-size:13px}.banner-error{background:var(--crit-soft);color:var(--crit)}.banner-warn{background:var(--warn-soft);color:var(--warn)}.side-form{background:var(--surface);width:520px;max-width:100vw;height:100vh;max-height:100vh;color:var(--fg);box-shadow:var(--shadow);border:none;margin:0 0 0 auto;padding:0}.side-form[open]{animation:slideIn .35s var(--ease)}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}}.side-form::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000040}.side-form form{flex-direction:column;height:100%;display:flex}.side-form header,.side-form footer{align-items:center;gap:8px;padding:16px 20px;display:flex}.side-form header{border-bottom:1px solid var(--line)}.side-form footer{border-top:1px solid var(--line)}.side-form-body{flex:1;padding:16px 20px;overflow-y:auto}.side-form fieldset{border:none;gap:12px;margin:0;padding:0;display:grid}.icon-btn{width:30px;min-height:30px;color:var(--fg-2);background:0 0;border-radius:50%;margin-left:auto;padding:0;font-size:20px;line-height:1}.field{gap:4px;min-width:0;display:grid}.field-label{color:var(--fg-2);font-size:12px;font-weight:500}.field-hint{color:var(--fg-3);margin:0;font-size:12px}.field-error{color:var(--crit);font-size:12px}.field-invalid input,.field-invalid select{border-color:var(--crit)}.row{grid-auto-columns:1fr;grid-auto-flow:column;gap:12px;display:grid}.row.tight{grid-auto-columns:auto;justify-content:start;gap:8px}.row.tight input:first-child{width:200px}.w-currency{width:72px}.w-rate{width:90px}.checks{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.inset{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;gap:8px;padding:12px;display:grid}.inset h3{margin:0}.login{background:#05070d;place-items:center;min-height:100vh;display:grid;position:relative;overflow:hidden}.login:before,.login:after{content:"";filter:blur(90px);opacity:.55;border-radius:50%;width:640px;height:640px;animation:18s ease-in-out infinite alternate drift;position:absolute}.login:before{background:radial-gradient(circle,#0a84ff,#0000 65%);top:-180px;left:-120px}.login:after{background:radial-gradient(circle,#0e9f6e,#0000 65%);animation-delay:-6s;bottom:-220px;right:-140px}@keyframes drift{to{transform:translate(120px,80px)scale(1.15)}}.login-card{z-index:1;-webkit-backdrop-filter:blur(24px)saturate(160%);color:#f5f5f7;width:380px;animation:pop .6s var(--ease) both;background:#1c1c1e99;border:1px solid #ffffff1f;border-radius:18px;gap:14px;padding:32px;display:grid;position:relative;box-shadow:0 30px 80px #00000080}@keyframes pop{0%{opacity:0;transform:translateY(16px)scale(.96)}}.login-card .brand{color:#fff;padding:0 0 6px;font-size:18px}.login-card .brand small,.login-card .field-label{color:#98989d}.login-card input{color:#fff;background:#ffffff14;border-color:#ffffff24;min-height:38px}.login-card button{min-height:40px;font-size:14px}.login-tagline{color:#98989d;margin:-4px 0 6px;font-size:13px}.panel{background:var(--surface);border:1px solid var(--line);transition:box-shadow .25s, transform .25s var(--ease);border-radius:12px;margin-bottom:14px;padding:14px 18px}.panel>p:first-child{margin-top:0}.hint-line{margin:0 0 10px;font-size:13px}.stat{min-width:100px;padding-right:18px}.stat+.stat{border-left:1px solid var(--line);padding-left:18px}.stat-value{font-family:var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.stat-label{color:var(--fg-2);margin-top:2px;font-size:12px}.stat-warn .stat-value{color:var(--warn)}.stat-danger .stat-value{color:var(--crit)}.stat-ok .stat-value{color:var(--ok)}.tabs{background:var(--surface-2);border-radius:9px;gap:2px;padding:2px;display:inline-flex}.tab{color:var(--fg);background:0 0;border-radius:7px;align-items:center;min-height:28px;padding:4px 13px;font-size:13px;text-decoration:none;transition:background .2s,box-shadow .2s;display:inline-flex}.tab:hover:not(:disabled){background:#7878801f;text-decoration:none}.tab.active,.tab.active:hover:not(:disabled){background:var(--surface);box-shadow:var(--thumb);font-weight:600}:root[data-theme=dark] .tab.active{background:var(--surface-3)}.page-header .tabs a{color:var(--fg)}.clip{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.amount-in,.amount-out{white-space:nowrap;font-variant-numeric:tabular-nums}.amount-in{color:var(--ok)}.amount-out{color:var(--fg)}.diff{color:var(--crit);font-size:12px}.sticky-actions{background:var(--bar);-webkit-backdrop-filter:saturate(180%)blur(20px);box-shadow:var(--shadow);z-index:5;margin-top:14px;position:sticky;bottom:16px}.bar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.bar .field{min-width:320px}.bar.tight{flex-wrap:nowrap;gap:4px}.bar.tight select{max-width:250px}.report-wrap{overflow-x:auto}.report th,.report td{white-space:nowrap}.report .report-label{background:var(--surface);white-space:normal;z-index:1;min-width:320px;position:sticky;left:0}.report .tree-toggle{width:18px}.rk-section td,.rk-section td.report-label{background:var(--surface-2);font-weight:600}.rk-group td,.rk-subtotal td{font-weight:600}.rk-total td,.rk-balance_opening td,.rk-balance_closing td{border-top:2px solid var(--line);font-weight:700}.rk-hidden td{color:var(--fg-2);font-style:italic}.rk-unallocated td{color:var(--warn)}td.drill{cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}td.drill:hover{color:var(--accent)}td.unconfirmed{color:var(--fg-3)}.ask{background:radial-gradient(1200px 200px at 0% 0%, #0a84ff14, transparent 60%), radial-gradient(900px 200px at 100% 0%, #0e9f6e14, transparent 60%), var(--surface)}.ask-input{flex:1;min-width:360px;font-size:15px;border-radius:21px!important;min-height:42px!important;padding-inline:18px!important}.examples{flex-wrap:wrap;gap:6px;margin:12px 0 4px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);min-height:28px;color:var(--accent);border-radius:16px;padding:4px 12px;font-size:12px}.chip:hover:not(:disabled){background:var(--accent-soft);border-color:#0000}.chart-preview{border-top:1px solid var(--line);animation:pop .45s var(--ease) both;margin-top:14px;padding-top:14px}.chart-tools{align-items:center;gap:12px;margin:6px 0;display:flex}.legend{color:var(--fg-2);flex-wrap:wrap;gap:4px 14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.legend-col{flex-direction:column}.chart-svg{width:100%;height:auto;display:block}.chart-svg .tick{fill:var(--fg-2);font-size:11px}.chart-svg .value{fill:var(--fg);font-size:11px}.chart-svg .grid{stroke:var(--line);stroke-dasharray:2 4}.chart-svg .axis{stroke:var(--surface-3)}.mark-h{transform-box:fill-box;transform-origin:0;animation:growX .8s var(--ease) both}.mark-v{transform-box:fill-box;transform-origin:bottom;animation:growY .8s var(--ease) both}@keyframes growX{0%{transform:scaleX(0)}}@keyframes growY{0%{transform:scaleY(0)}}.mark-line{stroke-dasharray:3000;stroke-dashoffset:3000px;animation:draw 1.4s var(--ease) forwards}@keyframes draw{to{stroke-dashoffset:0}}.mark-dot{animation:.4s .8s both fadeIn}.mark-slice{transform-box:view-box;transform-origin:130px 130px;animation:slice .7s var(--ease) both}@keyframes slice{0%{opacity:0;transform:scale(.6)rotate(-30deg)}}@keyframes fadeIn{0%{opacity:0}}.chart-svg rect:hover,.chart-svg path:hover,.chart-svg circle:hover{filter:brightness(1.12)}.chart-empty{text-align:center;padding:40px}.pie{align-items:center;gap:24px;display:flex}.pie-total{font-family:var(--f-display);fill:var(--fg);font-size:20px;font-weight:600}.chart-table{max-height:320px;overflow:auto}.dashboard{grid-template-columns:repeat(auto-fill,minmax(560px,1fr));gap:14px;display:grid}.chart-card{animation:pop .5s var(--ease) both}.chart-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.chart-card h3{margin:0}.toasts{z-index:60;pointer-events:none;gap:8px;display:grid;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--hud);color:var(--on-hud);box-shadow:var(--shadow);animation:toastIn .4s var(--ease) both;border-radius:22px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:500;display:flex}.toast-ok:before{content:"✓";color:var(--dot-ok);font-weight:700}.toast-error:before{content:"!";color:var(--dot-crit);font-weight:700}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)scale(.95)}}.fab{z-index:31;color:#fff;height:56px;transition:transform .25s var(--ease), box-shadow .25s;background:linear-gradient(#1e90ff,#0062cc);border-radius:28px;align-items:center;gap:10px;padding:0 20px 0 16px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 24px #0062cc73,0 1px 3px #00000026}.fab:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 28px #0062cc80,0 2px 6px #00000026}.fab:after{content:"";pointer-events:none;border-radius:28px;animation:2.4s infinite ring;position:absolute;inset:0}.fab svg{width:24px;height:24px}@keyframes ring{0%{box-shadow:0 0 #007aff73}70%{box-shadow:0 0 0 14px #007aff00}to{box-shadow:0 0 #007aff00}}.fab.open{background:var(--fg);width:56px;color:var(--bg);box-shadow:var(--shadow);justify-content:center;padding:0}.fab.open:after{animation:none}.fab-x{font-size:28px;font-weight:300;line-height:1}.agent-tile{background:linear-gradient(135deg, #5e5ce6, var(--accent));color:#fff;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:grid;box-shadow:0 3px 10px #5e5ce659}.agent-panel{z-index:30;background:var(--surface);border:1px solid var(--line);width:440px;height:min(640px,100vh - 120px);box-shadow:var(--shadow);transform-origin:100% 100%;animation:panelIn .35s var(--ease) both;border-radius:16px;flex-direction:column;display:flex;position:fixed;bottom:92px;right:24px;overflow:hidden}@keyframes panelIn{0%{opacity:0;transform:translateY(16px)scale(.94)}}.agent-panel>header,.agent-chat>header{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px;display:flex}.agent-panel>header .icon-btn{margin-left:4px}.conv{flex-direction:column;flex:1;min-height:0;display:flex}.conv-scroll{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.msg{max-width:85%;animation:msgIn .35s var(--ease) both;border-radius:16px;padding:10px 14px;font-size:13.5px;line-height:1.45}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}}.msg-user{background:var(--accent);color:#fff;border-bottom-right-radius:5px;align-self:flex-end}.msg-agent{background:var(--surface-2);border-bottom-left-radius:5px;align-self:flex-start}.msg-chart{background:var(--surface);border:1px solid var(--line);width:100%;max-width:100%}.msg-error{background:var(--crit-soft);color:var(--crit)}.msg-from{color:var(--fg-2);margin-bottom:2px;font-size:11px;font-weight:600}.msg-title{margin-bottom:2px;font-weight:600}.msg-actions{margin-top:8px}.typing{gap:4px;padding:14px 16px;display:flex}.typing i{background:var(--fg-3);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite bounce}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.conv-chips{margin:0 0 8px;padding:0 16px}.conv-input{border-top:1px solid var(--line);gap:8px;padding:10px 14px 14px;display:flex}.conv-input input{border-radius:18px;flex:1;min-height:36px;padding-inline:14px}.conv-input .send{background:var(--accent);color:#fff;border-radius:50%;width:36px;height:36px;min-height:36px;padding:0;font-size:18px;font-weight:700}.conv-input .send:hover:not(:disabled){background:var(--accent);filter:brightness(1.1)}.agent-page{grid-template-columns:300px 1fr;gap:14px;height:calc(100vh - 100px);display:grid}.topics{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;min-height:0;padding:12px;display:flex}.topic-list{align-content:start;gap:2px;display:grid;overflow-y:auto}.topic{text-align:left;color:var(--fg);white-space:normal;background:0 0;border-radius:8px;justify-items:start;gap:2px;padding:8px 10px;display:grid}.topic b{font-size:13px;font-weight:600}.topic span{color:var(--fg-2);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:12px;font-weight:400;display:-webkit-box;overflow:hidden}.topic.active,.topic.active:hover:not(:disabled){background:var(--accent-soft)}.topic.active b{color:var(--accent-ink)}.agent-chat{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.agent-chat .msg{max-width:70%}.agent-chat .msg-chart{max-width:900px}.progress{background:var(--surface-2);border-radius:3px;min-width:120px;height:6px;overflow:hidden}.progress i{background:linear-gradient(90deg, #5e5ce6, var(--accent), #16c784);height:100%;transition:width .4s var(--ease);background-size:200% 100%;border-radius:3px;animation:1.6s linear infinite flow;display:block}@keyframes flow{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.mark-line{stroke-dashoffset:0}}.drawer{width:560px}.drawer-in{flex-direction:column;height:100%;display:flex}.drawer header{align-items:flex-start}.drawer header h2{font-size:17px}.facts{margin-bottom:18px}.facts h3{color:var(--fg-2);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}.facts dl{border:1px solid var(--line);border-radius:10px;margin:0;overflow:hidden}.facts dl>div{border-bottom:1px solid var(--line);grid-template-columns:170px 1fr;gap:12px;padding:9px 12px;font-size:13px;display:grid}.facts dl>div:last-child{border-bottom:none}.facts dt{color:var(--fg-2)}.facts dd{word-break:break-word;margin:0}.line-card{border:1px solid var(--line);border-radius:10px;gap:4px;margin-bottom:8px;padding:10px 12px;font-size:13px;display:grid}.line-card .head{align-items:center;gap:8px;font-weight:600;display:flex}.row-open{width:28px;height:28px;min-height:28px;color:var(--fg-3);background:0 0;border-radius:50%;padding:0;font-size:16px}.table tbody tr:hover .row-open{background:var(--surface);color:var(--accent);box-shadow:var(--thumb)}.link-cell{cursor:pointer}.link-cell:hover{color:var(--accent)}.readonly-action{align-items:center;gap:8px;display:inline-flex}
