:root{color-scheme:light;--orange-50:#FEF5EE;--orange-100:#FFE8D8;--orange-200:#FFD2B4;--orange-300:#FEB583;--orange-400:#FB964E;--orange-500:#F47801;--orange-600:#BF5802;--orange-700:#9F4400;--orange-800:#833400;--orange-900:#6C2700;--orange-950:#4E1700;--navy-50:#F3F7FE;--navy-100:#E4EDFE;--navy-200:#CCDDFC;--navy-300:#ADC8F9;--navy-400:#85ACF3;--navy-500:#5E8EE9;--navy-600:#426FC7;--navy-700:#3258A0;--navy-800:#264581;--navy-900:#1B3668;--navy-950:#0E244F;--bg:#F3F7FC;--surface:#FFFFFF;--surface-2:#F7F9FC;--surface-hover:#F3F7FE;--border:#E3E8F0;--border-strong:#CBD3E1;--text:#1C2534;--text-2:#414B5C;--text-muted:#5B6475;--heading:#1B3668;--primary:#BF5802;--primary-hover:#9F4400;--on-primary:#FFFFFF;--brand:#F47801;--primary-soft:#FEF5EE;--primary-text:#9F4400;--link:#3258A0;--nav-bg:#1B3668;--nav-text:#C4CDE0;--nav-active-bg:#264581;--nav-active:#FFFFFF;--nav-section:#97A7C5;--focus:#426FC7;--success:#146C34;--success-soft:#E7F6EC;--warning:#8A4B00;--warning-soft:#FCF1C4;--danger:#C0322E;--danger-soft:#FDECEC;--info:#23389F;--info-soft:#E4EDFE;--tile-blue:#426FC7;--tile-green:#2F8F46;--tile-orange:#DB6600;--tile-violet:#7954EC;--chart-surface:#FFFFFF;--series-1:#426FC7;--series-2:#F47801;--series-3:#1BAF7A;--series-4:#7954EC;--series-5:#E87BA4;--series-6:#EDA100;--series-7:#0281A0;--series-8:#E34948;--chart-grid:#EEF1F6;--chart-axis:#5B6475;--font-sans:"Be Vietnam Pro","Segoe UI",system-ui,sans-serif;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-kpi:22px;--lh-tight:1.3;--lh-base:1.5;--h-control:32px;--h-control-sm:28px;--h-row:36px;--h-row-list:52px;--h-topbar:56px;--w-sidebar:216px;--w-sidebar-collapsed:64px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-full:999px;--shadow-1:0 1px 2px rgba(27,54,104,.05);--shadow-2:0 6px 16px rgba(27,54,104,.12)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0D1628;--surface:#152238;--surface-2:#1A2942;--surface-hover:#1E2F4B;--border:#263754;--border-strong:#34496B;--text:#E6ECF5;--text-2:#B3BFD3;--text-muted:#8C9AB3;--heading:#E6ECF5;--primary:#F47801;--primary-hover:#FB964E;--on-primary:#1C2534;--brand:#F47801;--primary-soft:#2E2014;--primary-text:#FB964E;--link:#85ACF3;--nav-bg:#0A1322;--nav-text:#B3BFD3;--nav-active-bg:#1B3668;--nav-active:#FFFFFF;--nav-section:#6F7F9B;--focus:#85ACF3;--success:#4ADE80;--success-soft:#12301F;--warning:#FACC15;--warning-soft:#2F2A10;--danger:#F87171;--danger-soft:#3A1A1C;--info:#85ACF3;--info-soft:#1A2B4D;--chart-surface:#152238;--series-1:#5E8EE9;--series-2:#DE6907;--series-3:#199E70;--series-4:#9085E9;--series-5:#D55181;--series-6:#C98500;--series-7:#0097AC;--series-8:#E66767;--chart-grid:#22324D;--chart-axis:#8C9AB3}}:root[data-theme=dark]{color-scheme:dark;--bg:#0D1628;--surface:#152238;--surface-2:#1A2942;--surface-hover:#1E2F4B;--border:#263754;--border-strong:#34496B;--text:#E6ECF5;--text-2:#B3BFD3;--text-muted:#8C9AB3;--heading:#E6ECF5;--primary:#F47801;--primary-hover:#FB964E;--on-primary:#1C2534;--brand:#F47801;--primary-soft:#2E2014;--primary-text:#FB964E;--link:#85ACF3;--nav-bg:#0A1322;--nav-text:#B3BFD3;--nav-active-bg:#1B3668;--nav-active:#FFFFFF;--nav-section:#6F7F9B;--focus:#85ACF3;--success:#4ADE80;--success-soft:#12301F;--warning:#FACC15;--warning-soft:#2F2A10;--danger:#F87171;--danger-soft:#3A1A1C;--info:#85ACF3;--info-soft:#1A2B4D;--chart-surface:#152238;--series-1:#5E8EE9;--series-2:#DE6907;--series-3:#199E70;--series-4:#9085E9;--series-5:#D55181;--series-6:#C98500;--series-7:#0097AC;--series-8:#E66767;--chart-grid:#22324D;--chart-axis:#8C9AB3}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--link)}h1,h2,h3{margin:0;line-height:var(--lh-tight)}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.muted{color:var(--text-muted);font-size:var(--fs-xs)}.num{font-variant-numeric:tabular-nums}.pos{color:var(--success)}.neg{color:var(--danger)}.row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.grow{flex:1}.stack{display:grid;gap:var(--sp-4);align-content:start}.app{display:grid;grid-template-columns:var(--w-sidebar) minmax(0,1fr);min-height:100vh}.app.collapsed{grid-template-columns:var(--w-sidebar-collapsed) minmax(0,1fr)}.side{background:var(--nav-bg);color:var(--nav-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;height:var(--h-topbar);padding:0 var(--sp-4);border-bottom:1px solid rgba(255,255,255,.08);flex:none}.brand img{height:22px;background:#fff;border-radius:var(--r-sm);padding:2px 4px}.brand b{color:#fff;font-size:var(--fs-md);font-weight:600;white-space:nowrap}.nav-sec{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--nav-section);padding:var(--sp-4) var(--sp-4) var(--sp-1);white-space:nowrap}.side a{display:flex;align-items:center;gap:10px;height:36px;padding:0 var(--sp-4);color:var(--nav-text);text-decoration:none;border-left:3px solid transparent;white-space:nowrap}.side a svg{width:16px;height:16px;flex:none}.side a:hover{background:#ffffff0f}.side a.active{background:var(--nav-active-bg);color:var(--nav-active);font-weight:600;border-left-color:var(--brand)}.side a .cnt{margin-left:auto;font-size:var(--fs-2xs);background:#ffffff1f;border-radius:var(--r-full);padding:0 6px}.side-foot{margin-top:auto;padding:var(--sp-2) 0;border-top:1px solid rgba(255,255,255,.08)}.side-foot button{all:unset;display:flex;align-items:center;gap:10px;height:32px;padding:0 var(--sp-4);cursor:pointer;color:var(--nav-section);font-size:var(--fs-xs);width:100%;box-sizing:border-box}.side-foot button:hover{color:var(--nav-text)}.collapsed .brand b,.collapsed .nav-sec,.collapsed .side a span,.collapsed .side a .cnt,.collapsed .side-foot span{display:none}.collapsed .side a{justify-content:center;padding:0}.top{height:var(--h-topbar);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);position:sticky;top:0;z-index:5}.fld{display:flex;flex-direction:column;gap:2px;min-width:0}.fld>label{font-size:var(--fs-2xs);color:var(--text-muted)}.search{flex:1;min-width:260px;max-width:420px}.sbox{position:relative;display:block}.sbox .inp{width:100%;padding-left:32px;padding-right:56px}.sbox svg{position:absolute;left:10px;top:50%;width:14px;height:14px;transform:translateY(-50%);color:var(--brand)}.sbox kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:inherit;font-size:var(--fs-2xs);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--r-sm);padding:0 4px;background:var(--surface-2)}select,.inp{height:var(--h-control);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);padding:0 var(--sp-3);min-width:0;outline:none}select{padding-right:var(--sp-6)}textarea.inp{height:auto;padding:var(--sp-2) var(--sp-3);resize:vertical}.inp:focus,select:focus{border-color:var(--navy-600);box-shadow:0 0 0 3px color-mix(in srgb,var(--navy-600) 18%,transparent)}.icon-btn{all:unset;box-sizing:border-box;flex-shrink:0;width:32px;height:32px;display:grid;place-items:center;border-radius:var(--r-md);cursor:pointer;color:var(--text-2);position:relative}.icon-btn:hover{background:var(--surface-hover)}.icon-btn svg{width:18px;height:18px}.icon-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.dot{position:absolute;top:3px;right:3px;min-width:15px;height:15px;border-radius:var(--r-full);background:var(--danger);color:#fff;font-size:10px;font-weight:600;display:grid;place-items:center;padding:0 3px}.avatar{width:28px;height:28px;border-radius:50%;background:var(--navy-900);color:#fff;display:grid;place-items:center;font-size:var(--fs-xs);font-weight:600;flex:none}.user{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md)}.user:hover{background:var(--surface-hover)}.user:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.user b{display:block;font-size:var(--fs-sm)}.user-menu{position:relative}.um-pop{position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-2);min-width:190px;padding:var(--sp-1);display:grid;z-index:20}.um-pop button{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-sm);color:var(--text-1)}.um-pop button:hover{background:var(--surface-hover)}.um-pop button svg{width:16px;height:16px;color:var(--text-2)}main.page{padding:var(--sp-5);display:grid;gap:var(--sp-4);align-content:start;max-width:1440px;width:100%}.ph{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap}.ph h1{font-size:var(--fs-xl);font-weight:700;color:var(--heading)}.crumb{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:2px}.crumb a{color:var(--text-muted);text-decoration:none}.crumb a:hover{color:var(--link)}.btn{height:var(--h-control);padding:0 var(--sp-4);border-radius:var(--r-md);border:1px solid transparent;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;text-decoration:none;background:none}.btn svg{width:14px;height:14px}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-outline{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-outline:hover{background:var(--surface-hover)}.btn-ghost{color:var(--link)}.btn-ghost:hover{background:var(--surface-hover)}.btn-danger{background:var(--surface);border-color:var(--border-strong);color:var(--danger)}.btn-sm{height:var(--h-control-sm);padding:0 var(--sp-3);font-size:var(--fs-xs)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,select:focus-visible,.chip:focus-visible,.tab:focus-visible,.tpl:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);min-width:0}.card-h{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:48px;padding:0 var(--sp-4);border-bottom:1px solid var(--border)}.card-h h2{font-size:var(--fs-md);font-weight:600;display:flex;align-items:center;gap:8px}.card-h h2 svg{width:16px;height:16px;color:var(--navy-600)}.card-b{padding:var(--sp-4)}.lnk{color:var(--link);font-size:var(--fs-xs);font-weight:500;text-decoration:none;background:none;border:0;cursor:pointer;padding:0}.lnk:hover{text-decoration:underline}.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-4)}.grid-3-2{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--sp-4)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}.kpi{display:flex;gap:var(--sp-3);padding:var(--sp-4)}.tile{width:36px;height:36px;border-radius:var(--r-md);display:grid;place-items:center;color:#fff;flex:none}.tile svg{width:18px;height:18px}.kpi .l{font-size:var(--fs-xs);color:var(--text-2)}.kpi .v{font-size:var(--fs-kpi);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.3;margin:2px 0}.delta{font-size:var(--fs-xs);color:var(--text-muted)}.delta b{font-weight:600}.delta.good b{color:var(--success)}.delta.bad b{color:var(--danger)}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.b-ok{background:var(--primary-soft);color:var(--primary-text)}.b-ok i{display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:var(--brand);color:#fff;font-style:normal;font-size:9px}.b-warn{background:var(--warning-soft);color:var(--warning)}.b-info{background:var(--info-soft);color:var(--info)}.b-success{background:var(--success-soft);color:var(--success)}.b-danger{background:var(--danger-soft);color:var(--danger)}.b-muted{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{height:26px;padding:0 10px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-xs);color:var(--text-2);cursor:pointer;white-space:nowrap}.chip:hover{border-color:var(--navy-300);color:var(--link)}.chip.on{background:var(--info-soft);border-color:var(--navy-300);color:var(--info);font-weight:600}.tabs{display:flex;gap:var(--sp-5);border-bottom:1px solid var(--border);padding:0 var(--sp-4)}.tab{all:unset;cursor:pointer;height:40px;display:flex;align-items:center;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px}.tab.on{color:var(--link);border-bottom-color:var(--navy-600);font-weight:600}.tbl-wrap{overflow:auto;max-width:100%}.tbl-wrap.tall{max-height:560px}table.dt{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.dt th,.dt td{height:var(--h-row);padding:0 var(--sp-3);border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.dt th{font-size:var(--fs-xs);font-weight:600;color:var(--text-2);background:var(--surface-2);position:sticky;top:0;z-index:1;-webkit-user-select:none;user-select:none}.dt th.sortable{cursor:pointer}.dt th.sortable:hover{color:var(--text)}.dt th .arr{font-size:9px;margin-left:3px;color:var(--navy-600)}.dt .n{text-align:right}.dt .c{text-align:center}.dt tbody tr:hover td{background:var(--surface-hover)}.dt tbody tr.click{cursor:pointer}.dt tfoot td{font-weight:700;background:var(--surface-2);position:sticky;bottom:0;border-bottom:0;border-top:1px solid var(--border-strong)}.dt td.grp{font-weight:600;background:var(--surface-2)}.dt td.ind1{padding-left:28px}.dt td.bold{font-weight:600}.dt td a{text-decoration:none;font-weight:500}.dt td a:hover{text-decoration:underline}.tbl-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border);min-height:44px}.pager{display:flex;align-items:center;gap:4px}.chart{width:100%;height:260px}.chart.sm{height:200px}.unit{font-size:var(--fs-xs);color:var(--text-muted)}.filters{display:flex;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--surface-2)}.list-row{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--h-row-list);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.list-row:last-child{border-bottom:0}.list-row:hover{background:var(--surface-hover)}.list-row .ico{width:28px;height:28px;border-radius:var(--r-md);display:grid;place-items:center;flex:none;color:#fff}.list-row .ico svg{width:14px;height:14px}.list-row .t{font-weight:500}.list-row .s{font-size:var(--fs-xs);color:var(--text-muted)}.list-row .val{font-weight:700;font-variant-numeric:tabular-nums;font-size:var(--fs-md)}.list-row .chev{color:var(--text-muted);width:14px;height:14px}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3)}.tpl{all:unset;box-sizing:border-box;display:flex;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;min-height:72px}.tpl:hover{border-color:var(--navy-300);box-shadow:var(--shadow-2)}.tpl .ico{width:32px;height:32px;border-radius:var(--r-md);display:grid;place-items:center;flex:none;background:var(--info-soft);color:var(--info)}.tpl .ico svg{width:16px;height:16px}.tpl b{display:block;font-weight:600;margin-bottom:2px}.tpl .s{font-size:var(--fs-xs);color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.grp-h{font-size:var(--fs-xs);font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin:var(--sp-2) 0}.chat{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--sp-4);align-items:start}.thread{display:grid;gap:var(--sp-4)}.msg-user{justify-self:end;max-width:75%;background:var(--navy-900);color:#fff;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-lg) var(--r-lg) var(--r-sm) var(--r-lg)}[data-theme=dark] .msg-user{background:var(--nav-active-bg)}.msg-ai .meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-2)}.msg-ai p{margin:0 0 var(--sp-3)}.ai-mark{width:24px;height:24px;border-radius:50%;background:var(--primary-soft);color:var(--brand);display:grid;place-items:center;flex:none}.ai-mark svg{width:14px;height:14px}.composer{position:sticky;bottom:0;padding:var(--sp-3) 0 var(--sp-4);background:linear-gradient(transparent,var(--bg) 30%)}.composer .box{display:flex;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:6px;box-shadow:var(--shadow-2)}.composer .box input{flex:1;border:0;outline:none;background:transparent;padding:0 var(--sp-2);height:36px}.composer .box .btn{height:36px}.spec{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);color:var(--text-2);margin-top:var(--sp-3)}.spec summary{cursor:pointer;font-weight:600;color:var(--text-2)}.spec dl{display:grid;grid-template-columns:110px 1fr;gap:2px var(--sp-3);margin:var(--sp-2) 0 0}.spec dt{color:var(--text-muted)}.spec dd{margin:0;color:var(--text)}.spec pre{margin:var(--sp-2) 0 0;white-space:pre-wrap;font-size:11px;font-family:ui-monospace,monospace;color:var(--text)}.typing{display:inline-flex;gap:4px;align-items:center;color:var(--text-muted);font-size:var(--fs-xs)}.typing i{width:6px;height:6px;border-radius:50%;background:var(--navy-400);animation:blink 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.steps{display:grid;gap:4px;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-2)}.steps span:before{content:"✓ ";color:var(--success)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e244f59;display:grid;place-items:center;z-index:50;padding:var(--sp-4)}.modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-2);width:min(520px,100%);max-height:90vh;overflow:auto}.modal .card-h h2{font-size:var(--fs-lg)}.modal .card-b{display:grid;gap:var(--sp-3)}.modal .foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border)}.form-row{display:grid;gap:4px}.form-row>label{font-size:var(--fs-xs);font-weight:600;color:var(--text-2)}.toasts{position:fixed;right:var(--sp-5);bottom:var(--sp-5);display:grid;gap:var(--sp-2);z-index:60}.toast{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--success);box-shadow:var(--shadow-2);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);min-width:260px;animation:in .15s ease-out}.toast.info{border-left-color:var(--navy-600)}@keyframes in{0%{transform:translateY(8px);opacity:0}}.switch{position:relative;width:32px;height:18px;border-radius:9px;background:var(--border-strong);border:0;cursor:pointer;flex:none}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s}.switch.on{background:var(--navy-600)}.switch.on:after{left:16px}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}.login .l{background:var(--nav-bg);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}.login .l h2{font-size:28px;font-weight:700;max-width:420px;line-height:1.25}.login .l p{color:var(--nav-text);max-width:420px}.login .l .feat{display:grid;gap:var(--sp-3);margin-top:var(--sp-6)}.login .l .feat div{display:flex;gap:var(--sp-2);align-items:center;color:var(--nav-text)}.login .l .feat svg{width:16px;height:16px;color:var(--brand)}.login .r{display:grid;place-items:center;padding:var(--sp-6)}.login form{width:min(360px,100%);display:grid;gap:var(--sp-4)}.login form h1{font-size:var(--fs-xl);color:var(--heading)}.login .inp,.login .btn{height:40px}.empty{padding:var(--sp-6);text-align:center;color:var(--text-muted)}.demo-flag{font-size:var(--fs-2xs);font-weight:700;color:var(--primary-text);background:var(--primary-soft);border-radius:var(--r-sm);padding:1px 6px;letter-spacing:.04em}@media (max-width:1200px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2,.grid-3-2,.chat{grid-template-columns:1fr}.chat aside{display:none}.hide-md{display:none!important}}@media (max-width:760px){.app,.app.collapsed{grid-template-columns:1fr}.side{display:none}.top{padding:0 var(--sp-4);overflow-x:auto}main.page{padding:var(--sp-4)}.kpis,.login{grid-template-columns:1fr}.login .l{display:none}}.chat aside .chip{white-space:normal;height:auto;min-height:26px;padding:4px 10px;text-align:left;line-height:1.35}.rmenu{position:fixed;top:0;bottom:0;left:var(--w-sidebar);width:min(560px,calc(100vw - var(--w-sidebar)));background:var(--surface);border-right:1px solid var(--border);box-shadow:var(--shadow-2);z-index:40;display:flex;flex-direction:column;animation:slide .12s ease-out}.collapsed .rmenu{left:var(--w-sidebar-collapsed)}@keyframes slide{0%{transform:translate(-8px);opacity:0}}.rmenu-h{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:var(--h-topbar);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border)}.rmenu-h h2{font-size:var(--fs-lg);font-weight:700;color:var(--heading)}.rmenu-s{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.rmenu-s .inp{width:100%;height:36px}.rmenu-b{flex:1;overflow-y:auto;padding:var(--sp-2) 0 var(--sp-4)}.rm-sec+.rm-sec{margin-top:var(--sp-2);border-top:1px solid var(--border);padding-top:var(--sp-2)}.rm-crumb{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding:var(--sp-2) var(--sp-4)}.rm-item{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 var(--sp-4);color:var(--text);text-decoration:none}.rm-item svg{color:var(--text-muted);flex:none}.rm-item:hover{background:var(--surface-hover);color:var(--link)}.rm-item:hover svg{color:var(--navy-600)}.rm-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.rm-tag{font-size:var(--fs-2xs);font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:28px;text-align:right}.rm-tag.ai{color:var(--primary-text)}.side button.mod{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;height:36px;width:100%;padding:0 var(--sp-3) 0 var(--sp-4);color:var(--nav-text);border-left:3px solid transparent;cursor:pointer;white-space:nowrap}.side button.mod svg{width:16px;height:16px;flex:none}.side button.mod .chv{margin-left:auto;width:12px;height:12px;opacity:.6}.side button.mod:hover{background:#ffffff0f}.side button.mod.open{background:var(--nav-active-bg);color:var(--nav-active);font-weight:600;border-left-color:var(--brand)}.side button.mod:focus-visible{outline:2px solid var(--nav-text);outline-offset:-2px}.collapsed .side button.mod span,.collapsed .side button.mod .chv{display:none}.collapsed .side button.mod{justify-content:center;padding:0}@media (max-width:760px){.rmenu{left:0;width:100vw}}.notice{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid;margin-bottom:var(--sp-3)}.notice .n-ico{flex:none;margin-top:1px}.notice .n-t{font-weight:600}.notice .n-b{color:var(--text-2);margin-top:2px}.notice.compact{padding:var(--sp-2) var(--sp-3)}.n-info{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 25%,transparent)}.n-info .n-ico{color:var(--info)}.n-warn{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 30%,transparent)}.n-warn .n-ico{color:var(--warning)}.n-danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 25%,transparent)}.n-danger .n-ico{color:var(--danger)}.n-muted{background:var(--surface-2);border-color:var(--border)}.n-muted .n-ico{color:var(--text-muted)}.chip:disabled{opacity:.5;cursor:wait}.api-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:var(--sp-4);align-items:start}.api-ctx-list{display:grid;gap:4px}.api-ctx{all:unset;box-sizing:border-box;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);min-height:36px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-sm);color:var(--text)}.api-ctx:hover{background:var(--surface-hover)}.api-ctx:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.api-ctx:disabled{cursor:wait;opacity:.7}.api-answer{margin:0;font-size:var(--fs-md);color:var(--heading);font-weight:600}.api-checks ul{list-style:none;margin:var(--sp-2) 0 0;padding:0;display:grid;gap:2px;font-size:var(--fs-sm)}.api-checks li{display:flex;gap:var(--sp-2);align-items:baseline}.api-checks li span{color:var(--text)}.api-calls{margin:var(--sp-2) 0 0;padding-left:var(--sp-5);display:grid;gap:var(--sp-2)}.api-calls li>code{margin:0 var(--sp-2);word-break:break-all;color:var(--text)}.api-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-3)}.api-form .inp,.api-form select{width:100%}@media (max-width:1200px){.api-grid{grid-template-columns:1fr}}@media (max-width:760px){.top .fld{flex:1 1 0}.top .fld select{width:100%}.top .grow{display:none}}@media (max-width:760px){.pager .btn{height:var(--h-control);min-width:var(--h-control)}}.boot{min-height:100vh;display:grid;place-items:center;color:var(--text-muted);font-size:var(--fs-sm);background:var(--bg)}@media (max-width:760px){.btn-sm,.chip{height:var(--h-control);min-height:var(--h-control)}.lnk{display:inline-flex;align-items:center;min-height:var(--h-control)}}.wa-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:var(--sp-4);align-items:start}.wa-modes{display:grid;gap:var(--sp-3)}.wa-check{display:flex;gap:var(--sp-2);align-items:flex-start;font-size:var(--fs-sm);color:var(--text);cursor:pointer}.wa-check input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--navy-600)}.wa-check.off{cursor:not-allowed;opacity:.6}.wa-units{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);display:grid;gap:var(--sp-2);margin:0}.wa-units legend{font-size:var(--fs-xs);font-weight:600;color:var(--text-2);padding:0 var(--sp-1)}.wa-units:disabled{opacity:.6}.wa-tools select{min-width:150px}.wa-list{display:grid;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.wa-row{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(0,2fr) auto auto;gap:var(--sp-3);align-items:center;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);min-height:52px}.wa-row:last-child{border-bottom:0}.wa-row:hover{background:var(--surface-hover)}.wa-who{display:grid;min-width:0}.wa-who b,.wa-who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-who span{font-size:var(--fs-xs)}.wa-units-text{font-size:var(--fs-sm);color:var(--text-2);min-width:0}.wa-act{justify-self:end;font-size:var(--fs-xs)}.wa-audit{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2);font-size:var(--fs-sm)}.wa-audit li{display:grid;gap:2px;padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.wa-audit li .muted{font-size:var(--fs-xs)}@media (max-width:1200px){.wa-grid{grid-template-columns:1fr}}@media (max-width:760px){.wa-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who st" "units units" "act act"}.wa-who{grid-area:who}.wa-units-text{grid-area:units}.wa-row .badge{grid-area:st}.wa-act{grid-area:act;justify-self:start}.wa-tools{flex-wrap:wrap}.wa-tools select{flex:1}}.pg{flex-wrap:wrap;border-top:1px solid var(--border)}.pg-r{gap:var(--sp-3);flex-wrap:wrap}.pg-size{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs)}.pg-size select{height:var(--h-control-sm)}.pg-n{padding:0 6px;font-size:var(--fs-xs);white-space:nowrap}@media (max-width:760px){.pg-size select{height:var(--h-control)}}.rm-item.locked{cursor:not-allowed;color:var(--text-muted)}.rm-item.locked:hover{background:none}.tpl.locked{cursor:not-allowed;opacity:.65}.tpl.locked:hover{transform:none;box-shadow:none;border-color:var(--border)}.locked-page{display:grid;gap:var(--sp-2);max-width:640px}.locked-page h1{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);color:var(--heading);margin:0}.locked-page p{margin:0}.lg{position:relative;min-height:100vh;display:flex;flex-direction:column;color:#e6ecf5;overflow:hidden;background:#0b1a3a}.lg-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(900px 600px at 18% 8%,rgba(66,111,199,.45),transparent 60%),radial-gradient(700px 500px at 88% 105%,rgba(244,120,1,.22),transparent 60%),radial-gradient(circle at 1px 1px,rgba(255,255,255,.1) 1px,transparent 1.5px) 0 0/22px 22px,linear-gradient(160deg,#1b3668,#0e244f 45%,#0a1530)}.lg-bg:after{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(600px 400px at 50% 50%,rgba(94,142,233,.14),transparent 70%);animation:lgDrift 18s ease-in-out infinite alternate}@keyframes lgDrift{0%{transform:translate(-8%,-4%)}to{transform:translate(8%,6%)}}.lg-top{position:relative;display:flex;justify-content:space-between;align-items:center;padding:24px 56px 0}.lg-brand{display:flex;align-items:center;gap:12px}.lg-brand img{height:36px;background:#fff;border-radius:8px;padding:4px 6px}.lg-brand b{display:block;color:#fff;font-size:16px;font-weight:700;line-height:1.2}.lg-brand span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#97a7c5}.lg-lang{display:flex;background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:2px}.lg-lang button{all:unset;cursor:pointer;font-size:12px;font-weight:600;padding:3px 12px;border-radius:999px;color:#b3bfd3}.lg-lang button.on{background:#fff;color:#1b3668}.lg-lang button:focus-visible{outline:2px solid #FB964E;outline-offset:2px}.lg-main{position:relative;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 400px;column-gap:clamp(40px,6vw,120px);align-items:center;padding:0 56px 12px;width:100%}.lg-form{justify-self:end;width:100%}.lg-left{display:flex;flex-direction:column;justify-content:space-between;gap:16px}.lg-hero{animation:lgUp .7s .15s both}.lg-tag{font-size:11px;font-weight:600;letter-spacing:.12em;color:#fb964e;margin-bottom:10px}.lg-hero h1{font-size:30px;line-height:1.2;font-weight:700;color:#fff;margin:0;letter-spacing:-.01em}.lg-hero h1 span{color:#fb964e}.lg-hero p{max-width:620px;color:#c4cde0;font-size:15px;line-height:1.6;margin:12px 0 16px}.lg-chips{display:flex;flex-wrap:wrap;gap:8px}.lg-chips span{font-size:12px;padding:4px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:#ffffff0d;color:#e6ecf5}.lg-vis{position:relative;width:100%;max-width:min(860px,calc((100vh - 390px)*1.31));margin:0 auto;animation:lgFade .9s both}.lg-svg{display:block;width:100%;height:auto;overflow:visible}.lg-cap{fill:#97a7c5;font-size:11px;font-weight:600;letter-spacing:.1em}.lg-wire{fill:none;stroke:#adc8f959;stroke-width:1.3;stroke-dasharray:4 5;animation:lgDash 1.6s linear infinite}.lg-wire.out{stroke:url(#lg-out);stroke-width:1.6}@keyframes lgDash{to{stroke-dashoffset:-18}}.lg-dot{filter:drop-shadow(0 0 4px currentColor)}.lg-node{animation:lgPop .6s cubic-bezier(.2,.8,.3,1.2) both}.lg-node-bg{fill:#0e244f;stroke-width:1.8}.lg-node-pulse{fill:none;stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center;animation:lgPulse 3s ease-out infinite}@keyframes lgPulse{0%{opacity:.7;transform:scale(1)}70%,to{opacity:0;transform:scale(1.7)}}.lg-label{fill:#e6ecf5;font-size:13px;font-weight:500}.lg-halo{animation:lgBreath 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes lgBreath{50%{transform:scale(1.08);opacity:.8}}.lg-ring{animation:lgSpin 22s linear infinite}.lg-ring.rev{animation-duration:34s;animation-direction:reverse}@keyframes lgSpin{to{transform:rotate(360deg)}}.lg-orbit{fill:none;stroke:#adc8f959;stroke-dasharray:3 6}.lg-orbit.thin{stroke:#adc8f92e}.lg-core{filter:drop-shadow(0 10px 30px rgba(66,111,199,.6))}.lg-core-t{fill:#fff;font-size:26px;font-weight:700;letter-spacing:.04em}.lg-core-s{fill:#e4edfe;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.lg-card-ai{position:absolute;right:0;top:48.3%;transform:translateY(-50%);width:34.2%;min-width:260px;background:#fffffff5;color:#1c2534;border-radius:14px;padding:14px;box-shadow:0 20px 50px #030a1e73,0 0 0 1px #fff6;animation:lgUp .8s .35s both}.lg-q{display:flex;gap:8px;align-items:flex-start;font-size:13px;font-weight:600;line-height:1.35;min-height:54px;background:#f3f7fe;border:1px solid #E3E8F0;border-radius:10px;padding:8px 10px}.lg-q-ico{color:#f47801;margin-top:1px}.lg-caret{display:inline-block;width:1.5px;height:14px;background:#1c2534;margin-left:1px;vertical-align:-2px;animation:lgBlink 1s steps(1) infinite}.lg-caret.off{display:none}@keyframes lgBlink{50%{opacity:0}}.lg-steps{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0}.lg-step{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:#f3f7fe;color:#8c9ab3;border:1px solid #E3E8F0;transition:opacity .25s}.lg-step.run{color:#3258a0;border-color:#adc8f9;background:#e4edfe;animation:lgGlow 1s ease-in-out infinite}.lg-step.ok{color:#146c34;background:#e7f6ec;border-color:#e7f6ec}@keyframes lgGlow{50%{box-shadow:0 0 0 3px #426fc726}}.lg-res{opacity:.25;filter:grayscale(1);transition:opacity .35s,filter .35s}.lg-res.show{opacity:1;filter:none}.lg-res-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.lg-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#9f4400;background:#fef5ee;border-radius:999px;padding:2px 8px}.lg-badge i{display:grid;place-items:center;width:13px;height:13px;border-radius:50%;background:#f47801;color:#fff;font-style:normal;font-size:8px}.lg-src{font-size:10.5px;color:#5b6475}.lg-bars{display:grid;gap:6px;min-height:78px;align-content:start}.lg-bar-row{display:grid;grid-template-columns:78px 1fr 40px;align-items:center;gap:8px;font-size:11.5px;min-height:16px}.lg-bar-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#414b5c}.lg-bar-track{height:10px;background:#eef1f6;border-radius:3px;overflow:hidden}.lg-bar{display:block;height:100%;border-radius:0 3px 3px 0;background:linear-gradient(90deg,#426fc7,#5e8ee9);transition:width .7s cubic-bezier(.2,.8,.2,1)}.lg-bar-row:last-child .lg-bar{background:linear-gradient(90deg,#f47801,#fb964e)}.lg-bar-v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.lg-ans{font-size:12px;color:#414b5c;margin-top:8px;line-height:1.45;min-height:35px}.lg-dots{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:10px;position:relative}.lg-dots button{all:unset;display:block;cursor:pointer;width:6px;height:6px;border-radius:50%;background:#cbd3e1;transition:all .3s}.lg-dots button:hover{background:#97a7c5}.lg-dots button:focus-visible{outline:2px solid #426FC7;outline-offset:2px}.lg-pause{position:absolute;right:0;font-size:10px;color:#8c9ab3}.lg-dots button.on{width:16px;border-radius:3px;background:#f47801}.lg-form{position:relative;background:#fff;color:#1c2534;border-radius:16px;padding:28px 28px 22px;box-shadow:0 30px 70px #030a1e80;display:grid;gap:14px;animation:lgUp .6s .1s both}.lg-form h2{font-size:22px;font-weight:700;color:#1b3668;margin:0}.lg-lead{margin:-8px 0 2px;font-size:13px;color:#5b6475}.lg-f{display:grid;gap:6px;font-size:13px}.lg-f>span:first-child{font-weight:600;color:#414b5c;font-size:12.5px}.lg-f em{font-style:normal;font-size:12px;color:#c0322e}.lg-f em.warn{color:#8a4b00}.lg-in{display:flex;align-items:center;gap:8px;height:42px;border:1px solid #CBD3E1;border-radius:8px;padding:0 12px;background:#fff;color:#5b6475;transition:border-color .15s,box-shadow .15s}.lg-in:focus-within{border-color:#426fc7;box-shadow:0 0 0 3px #426fc72e}.lg-in.bad{border-color:#c0322e;box-shadow:0 0 0 3px #c0322e1f}.lg-in input,.lg-in select{flex:1;min-width:0;border:0;outline:none;background:transparent;height:100%;font:inherit;font-size:14px;color:#1c2534}.lg-in select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.lg-eye{all:unset;cursor:pointer;display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:#5b6475}.lg-eye:hover{background:#f3f7fe}.lg-eye:focus-visible{outline:2px solid #426FC7}.lg-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.lg-check{display:flex;align-items:center;gap:8px;color:#414b5c;cursor:pointer}.lg-check input{width:16px;height:16px;accent-color:#1B3668}.lg-link{all:unset;cursor:pointer;color:#3258a0;font-weight:600}.lg-link:hover{text-decoration:underline}.lg-link:focus-visible{outline:2px solid #426FC7;outline-offset:2px}.lg-submit{height:44px;border:0;border-radius:8px;background:#bf5802;color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 8px 20px #bf580259;transition:background .15s,transform .1s}.lg-submit:hover{background:#9f4400}.lg-submit:active{transform:translateY(1px)}.lg-submit:disabled{cursor:wait;opacity:.85}.lg-submit:focus-visible{outline:2px solid #1B3668;outline-offset:2px}.lg-spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:lgSpin .7s linear infinite}.lg-note{margin:0;text-align:center;font-size:12px;color:#5b6475;line-height:1.5}.lg-demo{margin:-6px 0 0;text-align:center;font-size:11px;color:#9f4400;background:#fef5ee;border-radius:6px;padding:4px 8px}.lg-alert{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.45;padding:10px 12px;border-radius:8px;background:#fdecec;color:#8e1f1c;border:1px solid #F5C2C0;animation:lgShake .35s}.lg-alert.info{background:#e4edfe;color:#23389f;border-color:#ccddfc;animation:none}.lg-alert svg{flex:none;margin-top:1px}@keyframes lgShake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.lg-foot{position:relative;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 56px 18px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#97a7c5}.lg-foot-r{display:flex;gap:18px}.lg-foot a{color:#c4cde0;text-decoration:none}.lg-foot a:hover{color:#fff}@keyframes lgUp{0%{opacity:0;transform:translateY(16px)}}.lg-card-ai{animation-name:lgUpC}@keyframes lgUpC{0%{opacity:0;transform:translateY(calc(-50% + 16px))}to{opacity:1;transform:translateY(-50%)}}@keyframes lgFade{0%{opacity:0}}@keyframes lgPop{0%{opacity:0;transform:scale(.6)}}.lg-node{transform-box:fill-box;transform-origin:center}@media (max-width:1180px){.lg-main{grid-template-columns:1fr;justify-items:center;padding:24px}.lg-left{min-height:0}.lg-vis{display:none}.lg-hero{text-align:center;max-width:620px}.lg-hero p{margin-left:auto;margin-right:auto}.lg-chips{justify-content:center}.lg-form{width:min(420px,100%)}.lg-top,.lg-foot{padding-left:24px;padding-right:24px}}@media (max-width:560px){.lg-hero h1{font-size:26px}.lg-form{padding:22px 18px}}@media (prefers-reduced-motion:reduce){.lg *,.lg *:before,.lg *:after,.lg-bg:after{animation:none!important;transition:none!important}}.lg-bg{overflow:hidden}@media (max-width:760px){.lg-lang button{min-height:32px;box-sizing:border-box;display:inline-flex;align-items:center}.lg-eye{min-width:32px;min-height:32px}.lg-link{min-height:32px}.lg-foot-r a{display:inline-flex;align-items:center;min-height:32px;padding:0 4px}}
