@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(/static/media/montserrat-cyrillic-ext-400-normal.98c6748b7d590ea7b980.woff2) format("woff2"),url(/static/media/montserrat-cyrillic-ext-400-normal.f6089642713132ee161e.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(/static/media/montserrat-cyrillic-400-normal.f1372c6da10f0872f256.woff2) format("woff2"),url(/static/media/montserrat-cyrillic-400-normal.fdfc849048f4ae886918.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(/static/media/montserrat-vietnamese-400-normal.08d11513a3457d97615f.woff2) format("woff2"),url(/static/media/montserrat-vietnamese-400-normal.b8cc86df02e09d41231f.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(/static/media/montserrat-latin-ext-400-normal.2d8121b81156105f33b9.woff2) format("woff2"),url(/static/media/montserrat-latin-ext-400-normal.89d9bb7d8d46019bbb7b.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(/static/media/montserrat-latin-400-normal.be11f029bc2fff5574a8.woff2) format("woff2"),url(/static/media/montserrat-latin-400-normal.907a356a92ed8599f660.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(/static/media/montserrat-cyrillic-ext-500-normal.cbcff3f88179fd473dfc.woff2) format("woff2"),url(/static/media/montserrat-cyrillic-ext-500-normal.408c9c42da47511f7e74.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(/static/media/montserrat-cyrillic-500-normal.a85d5b9d1327aec3bfe7.woff2) format("woff2"),url(/static/media/montserrat-cyrillic-500-normal.50a297a662d0e723af53.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(/static/media/montserrat-vietnamese-500-normal.f7be89f6e03059fb9189.woff2) format("woff2"),url(/static/media/montserrat-vietnamese-500-normal.e8417c6c86cec1596ca8.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(/static/media/montserrat-latin-ext-500-normal.434c6c04df63cf570f12.woff2) format("woff2"),url(/static/media/montserrat-latin-ext-500-normal.3fdb8a9d01d93cc3aa42.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(/static/media/montserrat-latin-500-normal.51397ece37782604acef.woff2) format("woff2"),url(/static/media/montserrat-latin-500-normal.62a3b58bc873c986c703.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/static/media/montserrat-cyrillic-ext-600-normal.1adec53821288420fa58.woff2) format("woff2"),url(/static/media/montserrat-cyrillic-ext-600-normal.73b71516e1b651d93f88.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/static/media/montserrat-cyrillic-600-normal.696cbeb08b07560a1138.woff2) format("woff2"),url(/static/media/montserrat-cyrillic-600-normal.9e23f3e41a5108d1719f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/static/media/montserrat-vietnamese-600-normal.6f3697c077c5571c3225.woff2) format("woff2"),url(/static/media/montserrat-vietnamese-600-normal.8e587580b2a37ad95b51.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/static/media/montserrat-latin-ext-600-normal.59cbad7e098210c7d556.woff2) format("woff2"),url(/static/media/montserrat-latin-ext-600-normal.c468c922c2cde6cb0a42.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/static/media/montserrat-latin-600-normal.d30160b75e24bbce5e90.woff2) format("woff2"),url(/static/media/montserrat-latin-600-normal.9e40599e76894a843191.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(/static/media/montserrat-cyrillic-ext-700-normal.aa1797fac03c6e24eb82.woff2) format("woff2"),url(/static/media/montserrat-cyrillic-ext-700-normal.278a4a363f6a14e1e20f.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(/static/media/montserrat-cyrillic-700-normal.fb5901ff68b69d36cf9c.woff2) format("woff2"),url(/static/media/montserrat-cyrillic-700-normal.ce7516d6f5439c262592.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(/static/media/montserrat-vietnamese-700-normal.c89be44b3523010a55de.woff2) format("woff2"),url(/static/media/montserrat-vietnamese-700-normal.22844b0b3c839b97f476.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(/static/media/montserrat-latin-ext-700-normal.c0d2b38cae15093d94be.woff2) format("woff2"),url(/static/media/montserrat-latin-ext-700-normal.7ce254c30a28da090e0f.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(/static/media/montserrat-latin-700-normal.9ced692b9436db6be1ff.woff2) format("woff2"),url(/static/media/montserrat-latin-700-normal.fb35cb0bfa0f7f420a5c.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--bg:#f2f3f7;--surface:#fff;--surface-raised:#f7f8fa;--surface-hover:#eceef3;--border:#dfe2e9;--border-strong:#c8ccd6;--text:#0d233a;--text-dim:#4a5a6c;--text-faint:#878789;--muted:#878789;--brand:#175289;--brand-deep:#0d233a;--brand-dim:#1752891a;--on-brand:#f2f3f7;--grad:linear-gradient(135deg,#175289,#0d233a);--grad-side:linear-gradient(95deg,#0d233a,#175289);--grad-text:linear-gradient(90deg,#175289,#0d233a);--canvas-line:#0d233a1f;--cell-line:#1752894d;--sidebar-width:240px;--amber:#b8791f;--amber-dim:#b8791f1a;--red:#c23b2b;--red-dim:#c23b2b1a;--cyan:#175289;--cyan-dim:#1752891a;--green:#3f8a52;--green-dim:#3f8a521a;box-sizing:border-box}*,:after,:before{box-sizing:inherit}#root,body,html{height:100%;width:100%}html{scroll-padding-top:env(
    safe-area-inset-top,0
  )}body{-webkit-font-smoothing:antialiased;background:#f2f3f7;background:var(--bg);color:#0d233a;color:var(--text);font-family:Montserrat,system-ui,sans-serif;font-size:14px;line-height:1.4;margin:0;overflow:hidden}button,input,select,textarea{font-family:inherit}a,button,select{-webkit-tap-highlight-color:transparent}button{color:inherit}select{background:#f2f3f7;background:var(--bg);border:1px solid #c8ccd6;border:1px solid var(--border-strong);border-radius:6px;color:#0d233a;color:var(--text);outline:none;padding:6px 8px}select:focus{border-color:#175289;border-color:var(--cyan)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid #175289;outline:2px solid var(--cyan);outline-offset:1px}.mono{font-family:IBM Plex Mono,ui-monospace,monospace}.app-loading{align-items:center;background:#f2f3f7;background:var(--bg);color:#4a5a6c;color:var(--text-dim);display:flex;height:100%;justify-content:center;width:100%}.shell{height:100%;overflow:hidden;position:relative}header{background:#fff;background:var(--surface);border-bottom:1px solid #dfe2e9;border-bottom:1px solid var(--border);flex:none;padding:0 20px}.header-row{gap:20px;height:52px}.brand,.header-row{align-items:center;display:flex}.brand{font-size:15px;font-weight:700;gap:9px}.brand-mark{border:2px solid #b8791f;border:2px solid var(--amber);border-radius:4px;flex:none;height:20px;position:relative;width:20px}.brand-mark:after{background:#175289;background:var(--cyan);border-radius:2px;content:"";inset:4px;position:absolute}.crumb{align-items:center;color:#4a5a6c;color:var(--text-dim);display:flex;font-size:12.5px;gap:6px;overflow:hidden;white-space:nowrap}.crumb b{color:#0d233a;color:var(--text);font-weight:600}.crumb .sep{color:#878789;color:var(--text-faint)}.header-spacer{flex:1 1}.header-meta{align-items:center;color:#4a5a6c;color:var(--text-dim);display:flex;font-size:12.5px;gap:16px;white-space:nowrap}.clock{color:#0d233a;color:var(--text);font-family:IBM Plex Mono,monospace}.bell{align-items:center;border:1px solid #dfe2e9;border:1px solid var(--border);border-radius:6px;color:#4a5a6c;color:var(--text-dim);cursor:pointer;display:flex;height:30px;justify-content:center;position:relative;width:30px}.bell .dot{background:#c23b2b;background:var(--red);border-radius:8px;color:#fff;font-size:10px;height:15px;min-width:15px;padding:0 3px;position:absolute;right:-4px;top:-4px}.avatar,.bell .dot{align-items:center;display:flex;font-weight:600;justify-content:center}.avatar{background:#f7f8fa;background:var(--surface-raised);border:1px solid #c8ccd6;border:1px solid var(--border-strong);border-radius:6px;color:#4a5a6c;color:var(--text-dim);cursor:pointer;font-size:11.5px;height:28px;width:28px}.avatar:hover{background:#eceef3;background:var(--surface-hover)}.user-menu{position:relative}.user-menu-popover{background:#f7f8fa;background:var(--surface-raised);border:1px solid #c8ccd6;border:1px solid var(--border-strong);border-radius:9px;box-shadow:0 8px 20px #0f172024;padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:220px;z-index:1000}.user-menu-name{color:#0d233a;color:var(--text);font-size:13px;font-weight:600;margin-bottom:3px;word-break:break-word}.user-menu-email{color:#4a5a6c;color:var(--text-dim);font-size:11.5px;margin-bottom:10px;word-break:break-all}.user-menu-id{margin-bottom:8px}.user-menu-id .field-label{margin-bottom:2px;margin-top:0}.user-menu-id-value{color:#878789;color:var(--text-faint);font-size:10.5px;word-break:break-all}.user-menu-logout{width:100%}.status-strip{display:flex;height:38px;overflow-x:auto}.status-item{align-items:baseline;border-right:1px solid #dfe2e9;border-right:1px solid var(--border);display:flex;gap:7px;margin-right:18px;padding-right:18px;white-space:nowrap}.status-num{font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:600}.status-label{color:#4a5a6c;color:var(--text-dim);font-size:11.5px}.status-item.crit .status-num{color:#c23b2b;color:var(--red)}.status-item.pred .status-num{color:#b8791f;color:var(--amber)}.status-item.live .status-num{color:#175289;color:var(--cyan)}.sidebar{background:linear-gradient(95deg,#0d233a,#175289);background:var(--grad-side);bottom:0;box-shadow:4px 0 20px #0d233a40;color:#f2f3f7;color:var(--on-brand);display:flex;flex-direction:column;left:0;position:absolute;top:0;width:240px;width:var(--sidebar-width);z-index:1000}.sidebar :focus-visible{outline:2px solid #fff;outline-offset:2px}.sidebar.collapsed{background:none;bottom:auto;box-shadow:none;left:10px;top:10px;width:auto}.sidebar-orb{background:linear-gradient(135deg,#175289,#0d233a);background:var(--grad);border:none;border-radius:50%;box-shadow:0 0 10px #00000040;cursor:pointer;display:block;height:36px;padding:0;width:36px}.sidebar-orb:hover{box-shadow:0 0 14px #0006}.sidebar-top{flex:none;height:118px;position:relative}.sidebar-logo{color:#f2f3f7;color:var(--on-brand);height:27px;left:23px;position:absolute;top:25px;width:55px}.sidebar-curtain{background:none;border:none;color:#f2f3f7;color:var(--on-brand);cursor:pointer;display:grid;height:28px;padding:0;place-items:center;position:absolute;right:22px;top:28px;width:30px}.sidebar-curtain svg{height:26px;width:28px}.sidebar-curtain:hover{filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}.sidebar-scroll{flex:1 1;min-height:0;overflow-y:auto;padding:0 22px 12px;scrollbar-color:#f2f3f759 #0000;scrollbar-width:thin}.sidebar-nav{display:flex;flex-direction:column;gap:16px}.side-btn{align-items:center;background:#0000;border:2px solid #f2f3f7;border:2px solid var(--on-brand);border-radius:12px;color:#f2f3f7;color:var(--on-brand);cursor:pointer;display:flex;flex:none;font-size:15px;font-weight:500;height:35px;justify-content:center;line-height:1;padding:0 12px;touch-action:none;transition:background .15s,box-shadow .15s;-webkit-user-select:none;user-select:none;width:196px}.side-btn-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-btn.on,.side-btn:focus-visible,.side-btn:hover{background:#f2f3f7;background:var(--on-brand)}.side-btn:focus-visible,.side-btn:hover{box-shadow:0 0 20px #00000080}.side-btn.on .side-btn-text,.side-btn:focus-visible .side-btn-text,.side-btn:hover .side-btn-text{background:linear-gradient(90deg,#175289,#0d233a);background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:#0000}.side-btn.compact{font-size:13px;height:30px}.sidebar-more{display:flex;flex-direction:column;gap:12px;margin-top:16px}.sidebar-more-toggle{align-self:flex-start;background:none;border:none;color:#f2f3f7bf;cursor:pointer;font-size:13px;font-weight:500;padding:0}.sidebar-more-toggle:hover{color:#fff}.sidebar-empty{align-items:flex-start;border:2px dashed #f2f3f759;border-radius:12px;color:#f2f3f7d9;display:flex;flex-direction:column;font-size:13px;gap:10px;line-height:1.4;margin:0;padding:10px 12px;width:196px}.sidebar-empty p{margin:0}.sidebar-empty-retry{background:#0000;border:2px solid #f2f3f7;border:2px solid var(--on-brand);border-radius:12px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:6px 14px}.sidebar-empty-retry:hover{background:#f2f3f7;background:var(--on-brand);color:#0d233a;color:var(--brand-deep)}.sidebar-bottom{align-items:flex-start;display:flex;flex:none;flex-direction:column;padding:12px 22px 0}.overlap-label{color:#fff;font-size:15px;font-weight:500;line-height:1.3;max-width:170px}.overlap-switch{background:#fff;cursor:pointer;margin-top:10px;padding:0;position:relative;width:131px}.overlap-knob,.overlap-switch{border:2px solid #f2f3f7;border:2px solid var(--on-brand);border-radius:14px;height:35px}.overlap-knob{align-items:center;background:linear-gradient(95deg,#0d233a,#175289);background:var(--grad-side);color:#fff;display:flex;font-size:15px;font-weight:500;justify-content:center;left:-2px;position:absolute;top:-2px;transition:left .2s ease;width:68px}.overlap-switch.yes .overlap-knob{left:61px}.stepper{align-items:center;color:#fff;display:flex;gap:8px;margin-top:15px}.stepper.is-hidden{visibility:hidden}.stepper-btn{background:none;border:none;color:#fff;cursor:pointer;display:grid;height:24px;padding:0;place-items:center;width:24px}.stepper-btn svg{height:14px;width:14px}.stepper-btn:hover:not(:disabled) svg{filter:drop-shadow(0 0 1.5px rgba(255,255,255,.9))}.stepper-btn:active:not(:disabled) .icon-inner{fill:#b2b2b2}.stepper-btn:disabled{color:#878789;color:var(--muted);cursor:default}.stepper-value{font-feature-settings:"tnum";font-size:15px;font-variant-numeric:tabular-nums;font-weight:600;min-width:20px;text-align:center}.sidebar-gap{align-items:center;display:flex;height:clamp(40px,10vh,96px);width:100%}.sidebar-hint{background:#ffffff24;border-radius:10px;color:#fff;font-size:12px;line-height:1.35;padding:8px 10px;width:196px}.trash{align-items:center;background:#f2f3f7;background:var(--on-brand);border-radius:12px;color:#175289;color:var(--brand);display:flex;flex-direction:column;gap:6px;height:73px;justify-content:center;transition:height .15s,margin .15s,box-shadow .15s;width:196px}.trash-icon{height:26px;transition:width .15s,height .15s;width:26px}.trash-text{background:linear-gradient(90deg,#175289,#0d233a);background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:13px;font-weight:500}.trash.armed{box-shadow:0 0 0 2px #fff,0 0 20px #0006}.trash.over{height:85px;margin-top:-12px}.trash.over .trash-icon{height:40px;width:40px}.sidebar-user{align-items:center;display:flex;height:75px;width:100%}.sidebar-user .avatar{background:#0000;border:2px solid #f2f3f7;border:2px solid var(--on-brand);border-radius:50%;color:#fff;font-size:13px;height:36px;width:36px}.sidebar-user .avatar:hover{background:#ffffff24}.sidebar-user .user-menu-popover{bottom:calc(100% + 8px);color:#0d233a;color:var(--text);left:0;right:auto;top:auto}.workspace{background-color:#f2f3f7;background-color:var(--bg);background-image:linear-gradient(#0d233a1f 1px,#0000 0),linear-gradient(90deg,#0d233a1f 1px,#0000 0);background-image:linear-gradient(var(--canvas-line) 1px,#0000 1px),linear-gradient(90deg,var(--canvas-line) 1px,#0000 1px);background-size:48px 48px;inset:0;overflow:hidden;position:absolute}.workspace.mode-grid{overflow:auto;padding-left:240px;padding-left:var(--sidebar-width)}.shell.sidebar-collapsed .workspace.mode-grid{padding-left:56px}.grid-canvas{display:grid;height:100%;min-width:fit-content;padding:16px}.grid-cell{align-items:center;background:#ffffff59;border:2px dashed #1752894d;border:2px dashed var(--cell-line);border-radius:12px;display:flex;justify-content:center;min-height:0;min-width:0}.grid-cell-hint{color:#878789;color:var(--muted);font-size:13px;padding:0 12px;text-align:center}.grid-slot{min-height:0;min-width:0;position:relative;z-index:1}.grid-cell.drop-target{background:#1752891a;background:var(--brand-dim);border-color:#175289;border-color:var(--brand)}.grid-slot.drop-target:after{background:#1752891a;background:var(--brand-dim);border-radius:12px;box-shadow:inset 0 0 0 3px #175289;box-shadow:inset 0 0 0 3px var(--brand);content:"";inset:0;pointer-events:none;position:absolute}.grid-divider{background:#0000;border-radius:4px;position:relative;z-index:2}.grid-divider-col{cursor:col-resize}.grid-divider-row{cursor:row-resize}.grid-divider:active,.grid-divider:hover{background:#1752891a;background:var(--brand-dim)}.free-canvas{inset:0;overflow:hidden;position:absolute}.win.win-free{box-shadow:0 10px 30px #0d233a2e;position:absolute}.win-resize{background:linear-gradient(135deg,#0000 55%,#0d233a4d 0,#0d233a4d 62%,#0000 0,#0000 75%,#0d233a4d 0,#0d233a4d 82%,#0000 0);bottom:0;cursor:nwse-resize;height:18px;position:absolute;right:0;touch-action:none;width:18px}.min-tray{bottom:16px;display:flex;flex-direction:column;gap:8px;position:absolute;right:16px;width:280px;z-index:900}.min-strip-row{border-radius:12px;box-shadow:0 6px 18px #0d233a33;display:flex;overflow:hidden}.min-strip{align-items:flex-start;background:linear-gradient(135deg,#175289,#0d233a);background:var(--grad);border:none;color:#fff;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0;padding:8px 14px;text-align:left}.min-strip:hover{filter:brightness(1.12)}.min-title{font-size:13px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.min-ctx{font-size:11px;opacity:.8}.min-close{background:#0d233a;background:var(--brand-deep);border:none;color:#fff;cursor:pointer;flex:none;font-size:18px;width:36px}.min-close:hover{background:#c23b2b;background:var(--red)}.cell-minimized{align-items:flex-start;display:flex;height:100%}.cell-minimized .min-strip{border-radius:12px;box-shadow:0 6px 18px #0d233a33;flex:none;width:100%}.win{background:#f2f3f7;background:var(--bg);border-radius:12px;box-shadow:0 4px 16px #0d233a1f;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.win-head{align-items:center;background:linear-gradient(135deg,#175289,#0d233a);background:var(--grad);color:#fff;cursor:grab;display:flex;flex:none;gap:8px;height:40px;padding:0 8px 0 16px;touch-action:none;-webkit-user-select:none;user-select:none}.win-head:active{cursor:grabbing}.win-title{flex:1 1;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.win-actions{display:flex;gap:2px}.win-btn{background:#0000;border:none;border-radius:8px;color:#fff;cursor:pointer;display:grid;height:26px;padding:0;place-items:center;width:26px}.win-btn svg{height:16px;width:16px}.win-btn:hover{background:#ffffff29}.win-btn.win-close:hover{background:#c23b2b;background:var(--red)}.win-head :focus-visible{outline-color:#fff}.win-body{flex:1 1;min-height:0;overflow:auto}.win.dragging{opacity:.85}.win.to-trash{box-shadow:0 0 0 3px #c23b2b,0 10px 30px #0d233a2e;box-shadow:0 0 0 3px var(--red),0 10px 30px #0d233a2e}.win.to-trash .win-head{background:#c23b2b;background:var(--red)}.drag-ghost{background:linear-gradient(135deg,#175289,#0d233a);background:var(--grad);border-radius:12px;box-shadow:0 6px 16px #0d233a40;color:#fff;font-size:13px;font-weight:600;padding:8px 14px;pointer-events:none;position:fixed;transform:translate(12px,12px);z-index:3000}.drag-ghost.to-trash{background:#c23b2b;background:var(--red)}.win-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px 0}.win-toolbar select{background:#fff;background:var(--surface);border-color:#1752894d;border-color:var(--cell-line);border-radius:10px}.filter-group{display:flex;flex-wrap:wrap;gap:5px}.filter-sep{align-self:stretch;background:#dfe2e9;background:var(--border);width:1px}.chip-filter{background:#fff;background:var(--surface);border:1px solid #1752894d;border:1px solid var(--cell-line);border-radius:12px;color:#0d233a;color:var(--text);cursor:pointer;font-size:12px;padding:5px 11px}.chip-filter:hover{border-color:#175289;border-color:var(--brand)}.chip-filter.active{background:linear-gradient(135deg,#175289,#0d233a);background:var(--grad);border-color:#0000;color:#fff}.queue-item{border-bottom:1px solid #dfe2e9;border-bottom:1px solid var(--border);cursor:pointer;display:block;padding:11px 13px;position:relative;transition:background .12s}.queue-item:hover{background:#fff;background:var(--surface)}.queue-item.active{background:#f7f8fa;background:var(--surface-raised)}.queue-item.active:before{bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.queue-item.active.risk-high:before{background:#c23b2b;background:var(--red)}.queue-item.active.risk-med:before{background:#b8791f;background:var(--amber)}.queue-item.active.risk-low:before{background:#175289;background:var(--cyan)}.queue-item.resolved{opacity:.45}button.queue-item{background:none;border:none;font:inherit;text-align:left;width:100%}.queue-top{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:4px}.queue-obj{font-size:13px;font-weight:600}.queue-desc{color:#4a5a6c;color:var(--text-dim);font-size:12px;margin-bottom:5px}.queue-meta{color:#878789;color:var(--text-faint);font-size:11px}.badge,.queue-meta{font-family:IBM Plex Mono,monospace}.badge{border-radius:3px;font-size:10.5px;font-weight:600;padding:2px 6px;white-space:nowrap}.badge.high{background:#c23b2b1a;background:var(--red-dim);color:#c23b2b;color:var(--red)}.badge.med{background:#b8791f1a;background:var(--amber-dim);color:#b8791f;color:var(--amber)}.badge.low{background:#1752891a;background:var(--cyan-dim);color:#175289;color:var(--cyan)}.empty-note{color:#878789;color:var(--text-faint);font-size:12px;padding:24px 14px;text-align:center}.win-search{align-items:center;display:flex;gap:8px;padding:12px 12px 0}.win-search .btn{flex:none}.search-field{align-items:center;background:#fff;background:var(--surface);border-radius:12px;color:#878789;color:var(--muted);display:flex;flex:1 1;gap:8px;height:36px;min-width:0;padding:0 12px}.search-field:focus-within{box-shadow:0 0 0 2px #175289;box-shadow:0 0 0 2px var(--brand)}.search-icon{flex:none;height:16px;width:16px}.search-field input{background:#0000;border:none;color:#0d233a;color:var(--text);flex:1 1;font-size:14px;min-width:0;outline:none}.search-field input::placeholder{color:#878789;color:var(--muted)}.card-list{display:flex;flex-direction:column;gap:8px;padding:12px}.card-list .queue-item{background:#fff;background:var(--surface);border-bottom:none;border-radius:12px;box-shadow:0 1px 2px #0d233a0f;overflow:hidden;transition:box-shadow .12s}.card-list .queue-item:hover{background:#fff;background:var(--surface);box-shadow:0 4px 12px #0d233a1f}.card-list .queue-item.active{box-shadow:0 0 0 2px #175289;box-shadow:0 0 0 2px var(--brand)}.list-more{align-self:center;background:#0000;border:2px solid #175289;border:2px solid var(--brand);border-radius:12px;color:#175289;color:var(--brand);cursor:pointer;font-size:13px;font-weight:600;padding:8px 18px}.list-more:hover:not(:disabled){background:linear-gradient(135deg,#175289,#0d233a);background:var(--grad);border-color:#0000;color:#fff}.list-more:disabled{cursor:default;opacity:.6}.list-end{color:#878789;color:var(--muted);font-size:12px;padding:4px 0 8px;text-align:center}.link-btn{background:none;border:none;color:#175289;color:var(--brand);cursor:pointer;font:inherit;padding:0;text-align:left;text-decoration:underline;text-underline-offset:2px}.queue-obj.link-btn{color:#0d233a;color:var(--text);text-decoration-color:#1752894d;text-decoration-color:var(--cell-line)}.queue-obj.link-btn:hover{color:#175289;color:var(--brand)}.st-normal{--st:var(--green);--st-dim:var(--green-dim)}.st-watch{--st:var(--amber);--st-dim:var(--amber-dim)}.st-alarm{--st:var(--red);--st-dim:var(--red-dim)}.st-offline{--st:var(--muted);--st-dim:#87878924}.badge.st-alarm,.badge.st-normal,.badge.st-offline,.badge.st-watch{background:var(--st-dim);color:var(--st)}.form-card{background:#fff;background:var(--surface);border-radius:12px;display:flex;flex-direction:column;gap:12px;margin:12px;padding:16px}.form-card label,.form-field{color:#4a5a6c;color:var(--text-dim);display:flex;flex-direction:column;font-size:12px;gap:6px}.form-card input,.form-card select,.form-card textarea{background:#f2f3f7;background:var(--bg);border:1px solid #c8ccd6;border:1px solid var(--border-strong);border-radius:10px;color:#0d233a;color:var(--text);font-size:14px;outline:none;padding:9px 11px;width:100%}.form-card textarea{resize:vertical}.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:#175289;border-color:var(--brand)}.btn{background:#f7f8fa;background:var(--surface-raised);border:1px solid #c8ccd6;border:1px solid var(--border-strong);border-radius:7px;color:#0d233a;color:var(--text);cursor:pointer;flex:1 1;font-size:12.5px;font-weight:600;padding:9px 11px}.btn:hover{background:#eceef3;background:var(--surface-hover)}.btn.primary{border-color:#0000;color:#fff}.btn.primary,.btn.primary:hover{background:linear-gradient(135deg,#175289,#0d233a);background:var(--grad)}.btn.primary:hover{filter:brightness(1.12)}.btn:disabled{cursor:default;opacity:.6}.pd-body{padding:15px}.pd-risk-row{margin-bottom:9px}.pd-title{font-size:15px;font-weight:700;margin:0 0 3px}.pd-loc{color:#4a5a6c;color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:11.5px;margin-bottom:14px}.pd-prob{align-items:baseline;display:flex;gap:8px;margin-bottom:4px}.pd-prob .num{color:#b8791f;color:var(--amber);font-family:IBM Plex Mono,monospace;font-size:28px;font-weight:700}.pd-prob .unit{color:#4a5a6c;color:var(--text-dim);font-size:12px}.pd-bar{background:#f7f8fa;background:var(--surface-raised);border-radius:3px;height:5px;margin-bottom:18px;overflow:hidden}.pd-bar i{background:#b8791f;background:var(--amber);display:block;height:100%}.pd-horizon{color:#4a5a6c;color:var(--text-dim);font-size:11.5px;margin-bottom:14px}.pd-horizon b{color:#0d233a;color:var(--text)}.pd-section-title{color:#4a5a6c;color:var(--text-dim);font-size:11px;font-weight:600;margin-bottom:7px}.why-list{list-style:none;margin:0 0 18px;padding:0}.why-list li{border-bottom:1px solid #dfe2e9;border-bottom:1px solid var(--border);display:flex;font-size:12px;gap:8px;padding:6px 0}.why-list li:before{background:#175289;background:var(--cyan);border-radius:50%;content:"";flex:none;height:5px;margin-top:6px;width:5px}.rec-box{background:#b8791f1a;background:var(--amber-dim);border:1px solid #d9922f59;border-radius:8px;margin-bottom:18px;padding:11px}.rec-box .lbl{color:#b8791f;color:var(--amber);font-size:10.5px;font-weight:600;margin-bottom:4px}.rec-box .txt{font-size:12.5px}.pd-actions{display:flex;gap:8px}.status-note{border-radius:7px;font-size:11.5px;margin-top:14px;padding:9px 11px}.status-note.ok{background:#3f8a521a;background:var(--green-dim);color:#3f8a52;color:var(--green)}.status-note.rej{background:#f7f8fa;background:var(--surface-raised);color:#4a5a6c;color:var(--text-dim)}.prediction-open-link{color:#175289;color:var(--cyan);display:block;font-size:11px;margin-top:15px}.field-label{color:#878789;color:var(--text-faint);font-size:10.5px;margin-bottom:3px;margin-top:14px}.hist-item{border-bottom:1px solid #dfe2e9;border-bottom:1px solid var(--border);display:flex;font-size:11.5px;gap:8px;justify-content:space-between;padding:7px 0}.hist-item .d{color:#878789;color:var(--text-faint);font-family:IBM Plex Mono,monospace;font-size:10.5px}.grant-section{border-bottom:1px solid #dfe2e9;border-bottom:1px solid var(--border)}.grant-section-header{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font:inherit;gap:10px;padding:10px 0;text-align:left;width:100%}.grant-summary{color:#878789;color:var(--text-faint);flex:1 1;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grant-table-wrap{margin-bottom:14px;overflow-x:auto}.grant-table{border-collapse:collapse;font-size:11.5px;width:100%}.grant-table td,.grant-table th{border-bottom:1px solid #dfe2e9;border-bottom:1px solid var(--border);padding:6px 8px;text-align:center;white-space:nowrap}.grant-table td:first-child,.grant-table th:first-child{text-align:left}.grant-table th{color:#878789;color:var(--text-faint);font-size:10.5px;font-weight:600}.grant-new-row{display:flex;gap:6px}.grant-new-row select{background:#f2f3f7;background:var(--bg);border:1px solid #c8ccd6;border:1px solid var(--border-strong);border-radius:5px;color:#0d233a;color:var(--text);padding:4px 6px}.login-page{align-items:center;background-color:#f2f3f7;background-color:var(--bg);background-image:linear-gradient(#0d233a1f 1px,#0000 0),linear-gradient(90deg,#0d233a1f 1px,#0000 0);background-image:linear-gradient(var(--canvas-line) 1px,#0000 1px),linear-gradient(90deg,var(--canvas-line) 1px,#0000 1px);background-size:48px 48px;display:flex;height:100%;justify-content:center;overflow-y:auto;padding:16px;width:100%}.login-card{background:#fff;background:var(--surface);border-radius:20px;box-shadow:0 16px 40px #0d233a24;max-width:360px;padding:32px 28px 24px;width:100%}.login-logo{color:#0d233a;color:var(--brand-deep);display:block;height:40px;margin:0 auto 20px;width:82px}.login-title{color:#0d233a;color:var(--text);font-size:22px;font-weight:600;margin:0 0 24px;text-align:center}.login-form{gap:16px}.login-form,.login-form label{display:flex;flex-direction:column}.login-form label{color:#0d233a;color:var(--text);font-size:13px;font-weight:500;gap:6px}.login-form input,.login-form select,.login-form textarea{background:#f2f3f7;background:var(--bg);border:1px solid #0000;border-radius:12px;color:#0d233a;color:var(--text);font-size:15px;outline:none;padding:11px 14px;width:100%}.login-form textarea{resize:vertical}.login-form input:focus,.login-form select:focus,.login-form textarea:focus{border-color:#175289;border-color:var(--brand)}.login-button{border-radius:12px;flex:none;font-size:15px;height:44px;margin-top:8px;width:100%}.login-error{background:#c23b2b1a;background:var(--red-dim);border-radius:10px;color:#c23b2b;color:var(--red);font-size:12px;padding:9px 11px}.login-environment{color:#878789;color:var(--text-faint);font-family:IBM Plex Mono,monospace;font-size:10px;margin-top:20px;text-align:center}.map{display:flex;flex-direction:column;height:100%;min-height:260px}.map-bar{align-items:center;display:flex;font-size:13px;font-weight:600;gap:8px;justify-content:space-between;padding:10px 12px}.map-crumbs{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-back{background:none;border:none;color:#175289;color:var(--brand);cursor:pointer;font:inherit;padding:0}.map-back:hover{text-decoration:underline}.map-fit{background:#fff;background:var(--surface);border:1px solid #1752894d;border:1px solid var(--cell-line);border-radius:10px;color:#0d233a;color:var(--text);cursor:pointer;flex:none;font-size:12px;padding:5px 10px}.map-fit:hover:not(:disabled){border-color:#175289;border-color:var(--brand)}.map-stage{background:#fff;background:var(--surface);border-radius:12px;flex:1 1;margin:0 12px;min-height:0;overflow:hidden;position:relative}.map-note{color:#878789;color:var(--muted);font-size:12px;left:12px;margin:0;position:absolute;right:12px;top:12px;z-index:1}.map-svg{cursor:grab;display:block;height:100%;touch-action:none;width:100%}.map-svg:active{cursor:grabbing}.map-feature path{fill:none;stroke:#175289;stroke:var(--st,var(--brand));stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.map-area path{fill:#1752891a;fill:var(--brand-dim);stroke:#1752894d;stroke:var(--cell-line);stroke-width:1;stroke-dasharray:6 4}.map-branch path{stroke-width:1;stroke-dasharray:4 3;opacity:.7}.map-object path{stroke-width:5;opacity:.9}circle.map-feature{fill:#175289;fill:var(--st,var(--brand));stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}circle.map-picket{fill:#878789;fill:var(--muted);opacity:.6}.map-feature path.map-hit{stroke:#0000;stroke-width:14}.map-clickable{cursor:pointer}.map-clickable:hover path:not(.map-hit){stroke-width:4}.map-selected path:not(.map-hit){stroke-width:5;filter:drop-shadow(0 0 3px rgba(23,82,137,.6))}circle.map-selected{stroke:#0d233a;stroke:var(--brand-deep);stroke-width:3}.map-foot{align-items:center;gap:8px 12px;justify-content:space-between;padding:10px 12px}.map-foot,.map-legend{display:flex;flex-wrap:wrap}.map-legend{color:#4a5a6c;color:var(--text-dim);font-size:12px;gap:12px;list-style:none;margin:0;padding:0}.map-legend li{align-items:center;display:flex;gap:6px}.map-dot{background:var(--st);border-radius:50%;height:10px;width:10px}.map-selection{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.map-selection-name{font-size:13px;font-weight:600}.map-selection .btn{flex:none;padding:6px 12px}@media (max-width:680px){.header-row{flex-wrap:wrap;height:auto;padding:10px 0}.crumb{order:3;width:100%}}
/*# sourceMappingURL=main.c40326da.css.map*/