:root{--bg:#f3f5fc;--bg2:#e7eaf7;--surface:#fff;--surface-2:#f8f9fe;--glass:#fffc;--ink:#12142e;--ink-2:#3b4066;--muted:#5a6086;--line:#dde1f2;--accent:#2b35e8;--accent-ink:#fff;--accent-soft:#e4e6ff;--accent-text:#2530c9;--cyan:#0a7f9c;--cyan-soft:#d8f2f8;--green:#0b8a57;--green-soft:#d8f4e6;--amber:#b86e00;--amber-soft:#fcefcf;--violet:#6d3fe0;--violet-soft:#ece6ff;--red:#c9283f;--red-soft:#fde2e7;--pink:#c21f6b;--pink-soft:#fde1ee;--sb-bg:#0f1230;--sb-ink:#d3d7f5;--sb-muted:#a4a9d6;--sb-line:#ffffff17;--sb-hover:#ffffff12;--shadow:0 1px 2px #1418500f, 0 10px 28px #14185012;--shadow-lg:0 28px 70px #0f12463d;--r:20px;--sidebar:252px;--ease:cubic-bezier(.2,.8,.2,1);--dots:#323caa26;--wire:#2b35e838;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0a0c1a;--bg2:#141830;--surface:#131730;--surface-2:#181d3a;--glass:#131730cc;--ink:#eef0ff;--ink-2:#cdd1f2;--muted:#a2a8d2;--line:#2a3060;--accent:#8b93ff;--accent-ink:#0b0e33;--accent-soft:#232b6e;--accent-text:#b4baff;--cyan:#4cc9e6;--cyan-soft:#0f3340;--green:#3fd08f;--green-soft:#113527;--amber:#f2b13c;--amber-soft:#3a2d12;--violet:#b199ff;--violet-soft:#2a2257;--red:#ff7088;--red-soft:#3d1b26;--pink:#ff7fb8;--pink-soft:#43192f;--sb-bg:#070919;--sb-line:#ffffff12;--shadow:0 1px 2px #0006, 0 10px 30px #00000059;--shadow-lg:0 28px 70px #000000a6;--dots:#a0aaff1a;--wire:#8b93ff40;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;overflow-x:clip}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:-.02em;line-height:1.2}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.muted{color:var(--muted)}.small{font-size:12px}.bold{font-weight:700}.right{text-align:right}.center{text-align:center}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.col{flex-direction:column;gap:10px;display:flex}.grow{flex:1;min-width:0}.show-sm{display:none!important}.clamp1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clamp2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.app{grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100%;transition:grid-template-columns .4s var(--ease);display:grid;position:relative}.app.collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar{z-index:5;background:var(--sb-bg);height:100vh;color:var(--sb-ink);flex-direction:column;gap:6px;padding:16px 12px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar:before{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 38px,#ffffff06 38px 39px),repeating-linear-gradient(0deg,#0000 0 38px,#ffffff06 38px 39px);position:absolute;inset:0}.sidebar>*{position:relative}.brand{align-items:center;gap:10px;padding:6px 8px 14px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent), #6a5cff);color:#fff;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 6px 18px #2b35e880}:root[data-theme=dark] .brand-mark{background:linear-gradient(135deg,#3a44f0,#6a5cff)}.brand-txt{flex-direction:column;min-width:0;display:flex}.brand-txt b{color:#fff;font-size:16px}.brand-txt small{color:var(--sb-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.nav{scrollbar-width:thin;flex-direction:column;flex:1;gap:2px;padding-right:2px;display:flex;position:relative;overflow-y:auto}.nav-pill{pointer-events:none;z-index:0;background:linear-gradient(90deg,#3c48ffb3,#6a5cff66);border-radius:12px;height:40px;position:absolute;top:0;left:0;right:2px}.nav a{z-index:1;min-height:40px;color:var(--sb-ink);border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-weight:600;display:flex;position:relative}.nav a.active{color:#fff}.nav-sec-btn{letter-spacing:.08em;text-transform:uppercase;min-height:36px;color:var(--sb-muted);text-align:left;z-index:1;border-radius:10px;justify-content:space-between;align-items:center;width:100%;margin-top:8px;padding:0 12px;font-size:12px;font-weight:800;display:flex;position:relative}.nav-sec-btn .chev{transition:transform .25s var(--ease)}.nav-sec-btn[aria-expanded=false] .chev{transform:rotate(-90deg)}.nav a[data-shut="1"]{display:none}.nav-tools{z-index:1;gap:6px;padding:2px 4px 6px;display:flex;position:relative}.nav-tools button{color:var(--sb-muted);border-radius:8px;min-height:40px;padding:6px 8px;font-size:12px;font-weight:700}@media (hover:hover){.nav a:hover{background:var(--sb-hover)}.nav a.active:hover{background:0 0}.nav-tools button:hover{background:var(--sb-hover);color:#fff}}.cnt{background:var(--accent);min-width:22px;height:20px;color:var(--accent-ink);border-radius:99px;place-items:center;margin-left:auto;padding:0 7px;font-size:12px;font-weight:800;display:grid}:root:not([data-theme=dark]) .cnt{color:#2530c9;background:#fff}.cnt.warn{background:var(--amber);color:#1b1200}.side-foot{border-top:1px solid var(--sb-line);flex-direction:column;gap:4px;padding-top:10px;display:flex}.side-foot .btn{color:var(--sb-ink)}.app.collapsed .sidebar:not(.as-drawer) .lbl,.app.collapsed .sidebar:not(.as-drawer) .brand-txt,.app.collapsed .sidebar:not(.as-drawer) .nav-sec-btn,.app.collapsed .sidebar:not(.as-drawer) .nav-tools,.app.collapsed .sidebar:not(.as-drawer) .hide-collapsed,.app.collapsed .sidebar:not(.as-drawer) .cnt{display:none}.app.collapsed .sidebar:not(.as-drawer) .nav a[data-shut]{display:flex}.app.collapsed .sidebar:not(.as-drawer) .nav a{justify-content:center;padding:0}.main{background-image:radial-gradient(var(--dots) 1px, transparent 1.2px);background-size:22px 22px;min-width:0;padding-bottom:28px;position:relative}.demo-banner{background:var(--accent-soft);color:var(--ink);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 20px;font-size:12px;display:flex}.demo-banner svg{color:var(--accent-text);flex:none}.topbar{z-index:10;background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 24px;display:flex;position:sticky;top:0}.search{border:1px solid var(--line);background:var(--surface);min-width:0;max-width:460px;min-height:44px;color:var(--muted);border-radius:14px;flex:1;align-items:center;gap:8px;padding:0 14px;display:flex;overflow:hidden}.search input{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:16px}.kbd{border:1px solid var(--line);background:var(--bg2);color:var(--muted);border-radius:7px;padding:2px 7px;font-family:ui-monospace,monospace;font-size:12px}.icon-btn{width:44px;height:44px;color:var(--ink-2);border-radius:14px;flex:none;place-items:center;display:grid;position:relative}@media (hover:hover){.icon-btn:hover{background:var(--bg2)}}.icon-btn .dot{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:9px;height:9px;position:absolute;top:9px;right:10px}.avatar{background:linear-gradient(135deg, var(--accent), #6a5cff);width:44px;height:44px;color:var(--accent-ink);border-radius:13px;flex:none;place-items:center;font-weight:800;display:grid}:root:not([data-theme=dark]) .avatar{color:#fff}.menu-btn{display:none}.page{max-width:1480px;margin:0 auto;padding:26px 28px 40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1{align-items:center;gap:12px;font-size:27px;display:flex}.page-head h1 .ph-ic{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:13px;flex:none;place-items:center;display:grid}.page-head p{color:var(--muted);max-width:64ch;margin-top:4px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0;padding:18px;position:relative}.card.tight{padding:12px}.card.pad0{padding:0;overflow:hidden}.card h3{font-size:16px}.card-h{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-h h3{align-items:center;gap:8px;display:flex}.card-h h3 svg{color:var(--accent-text)}.g2,.g3,.g4{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;display:grid}.g-main>*,.g2>*,.g3>*,.g4>*{min-width:0}.stack{flex-direction:column;gap:16px;display:flex}.kpi{flex-direction:column;gap:6px;display:flex;overflow:hidden}.kpi .k-ic{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-text);border-radius:12px;place-items:center;display:grid}.kpi .k-v{letter-spacing:-.03em;font-size:30px;font-weight:800;line-height:1.1}.kpi .k-l{color:var(--muted);font-size:13px;font-weight:600}.delta{border-radius:99px;align-items:center;gap:3px;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.delta.up{background:var(--green-soft)}.delta.down{background:var(--red-soft)}.spark{display:block}.btn{border:1px solid var(--line);background:var(--surface);min-height:44px;transition:transform .15s var(--ease), background .2s, box-shadow .2s;white-space:nowrap;border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:inline-flex}.btn:active{transform:scale(.97)}@media (hover:hover){.btn:hover{background:var(--bg2)}.btn.primary:hover{filter:brightness(1.1);background:var(--accent)}}.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 20px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--red)}.btn.block{width:100%;display:flex}.btn.lg{min-height:52px;font-size:15px}.btn.sm{min-height:40px;padding:0 12px;font-size:13px}.btn[disabled]{opacity:.5;cursor:not-allowed}@media (pointer:coarse){.btn.sm{min-height:44px}}.input,select.input,textarea.input{border:1px solid var(--line);background:var(--surface);border-radius:12px;outline:0;width:100%;min-height:44px;padding:10px 14px;font-size:16px;transition:border-color .2s,box-shadow .2s}textarea.input{resize:vertical;min-height:88px;line-height:1.45}textarea.input.mono{font-size:14px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 24%, transparent)}.input.bad{border-color:var(--red)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label,.lab{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:800}.hint{color:var(--muted);font-size:12px}.hint.err{color:var(--red);font-weight:600}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--accent);flex:none}input[type=range]{width:100%;accent-color:var(--accent);min-height:32px}.switch{background:var(--bg2);border:1px solid var(--line);border-radius:99px;flex:none;width:48px;height:28px;transition:background .25s;position:relative}.switch i{background:var(--ink-2);width:20px;height:20px;transition:transform .3s var(--ease), background .2s;border-radius:50%;position:absolute;top:3px;left:3px}.switch.on{background:var(--accent);border-color:#0000}.switch.on i{background:var(--accent-ink);transform:translate(20px)}.switch:after{content:"";position:absolute;inset:-8px -2px}.seg{background:var(--bg2);scrollbar-width:none;border-radius:14px;max-width:100%;padding:4px;display:inline-flex;position:relative;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg .thumb{background:var(--surface);width:0;box-shadow:var(--shadow);border-radius:11px;position:absolute;top:4px;bottom:4px;left:0}.seg button{z-index:1;min-height:40px;color:var(--ink-2);white-space:nowrap;border-radius:11px;padding:0 14px;font-weight:700;position:relative}.seg button.on{color:var(--ink)}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{min-height:44px;color:var(--muted);white-space:nowrap;border-bottom:3px solid #0000;padding:0 16px;font-weight:700}.tabs button.on{color:var(--ink);border-color:var(--accent)}.badge,.chip{background:var(--bg2);color:var(--ink-2);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.chip i.d{background:var(--muted);border-radius:50%;width:8px;height:8px}.chip.green i.d{background:var(--green)}.chip.amber i.d{background:var(--amber)}.chip.red i.d{background:var(--red)}.chip.accent i.d{background:var(--accent)}button.chip{border:1px solid var(--line);min-height:40px;padding:0 14px}button.chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.tag{background:var(--accent-soft);color:var(--accent-text);border-radius:8px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-flex}.bar{background:var(--bg2);border-radius:99px;height:9px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--accent), var(--violet));border-radius:99px;width:0;height:100%;display:block}.bar.green i{background:var(--green)}.bar.amber i{background:var(--amber)}.bar.red i{background:var(--red)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.av{color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid}.empty{text-align:center;color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:34px 16px;display:flex}.empty-ic{background:var(--accent-soft);width:60px;height:60px;color:var(--accent-text);border-radius:18px;place-items:center;margin-bottom:6px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:12px;font-weight:800}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}tbody tr:last-child td{border-bottom:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable button{font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;align-items:center;gap:4px;min-height:32px;display:inline-flex}@media (hover:hover){tbody tr.click:hover{background:var(--surface-2);cursor:pointer}}.list-row{text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px;display:flex}@media (hover:hover){.list-row:hover{background:var(--surface-2)}}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filters .input{flex:0 200px;width:auto;min-width:140px}.filters .search-f{flex:220px;max-width:360px}.code{color:#e1e5ff;white-space:pre;background:#0d1030;border-radius:14px;max-height:360px;padding:14px;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.55;overflow:auto}.code.wrapc{white-space:pre-wrap;overflow-wrap:anywhere}.copyline{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;align-items:center;gap:8px;min-width:0;padding:6px 6px 6px 12px;font-family:ui-monospace,monospace;font-size:12px;display:flex}.copyline span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a2894;place-items:center;padding:16px;animation:.25s both fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:min(520px,100%);max-height:92vh;box-shadow:var(--shadow-lg);animation:pop .4s var(--ease) both;border:1px solid var(--line);border-radius:22px;padding:24px;overflow-y:auto}.modal h3{margin-bottom:4px;font-size:19px}.sheet{background:var(--surface);width:100%;padding:18px 16px calc(96px + env(safe-area-inset-bottom));animation:rise .35s var(--ease) both;border-radius:24px 24px 0 0;grid-template-columns:repeat(3,1fr);gap:8px;max-height:80vh;display:grid;overflow-y:auto}.sheet a{background:var(--bg2);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:76px;padding:4px;font-size:12px;font-weight:700;display:flex}.sheet a.active{background:var(--accent);color:var(--accent-ink)}.toasts{z-index:80;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);animation:slidein .45s var(--ease) both;border-radius:14px;align-items:center;gap:10px;max-width:360px;padding:12px 16px;font-weight:600;display:flex}.wipe{z-index:100;pointer-events:none;position:fixed;inset:0}.tour-mask{z-index:90;pointer-events:none;transition:all .45s var(--ease);border-radius:14px;position:fixed;box-shadow:0 0 0 9999px #080a28ad}.tour-tip{z-index:91;background:var(--surface);width:min(330px,100vw - 24px);box-shadow:var(--shadow-lg);border:1px solid var(--line);animation:pop .4s var(--ease) both;border-radius:20px;padding:16px;position:fixed}.tour-tip h4{margin-bottom:4px;font-size:15px}.tour-dots{gap:5px;display:flex}.tour-dots i{background:var(--line);border-radius:99px;width:6px;height:6px}.tour-dots i.on{background:var(--accent);width:18px}.drag-ghost{z-index:200;pointer-events:none;background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-lg);white-space:nowrap;text-overflow:ellipsis;border-radius:12px;max-width:240px;padding:8px 12px;font-size:13px;font-weight:700;position:fixed;top:0;left:0;overflow:hidden}body.is-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing}.palette-pop{z-index:70;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);width:min(320px,100vw - 24px);max-height:60vh;animation:pop .25s var(--ease) both;border-radius:18px;padding:8px;position:fixed;overflow-y:auto}.bottomnav{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:61;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:22px;justify-content:space-around;padding:6px;display:none;position:fixed}.bottomnav a,.bottomnav button{min-width:52px;min-height:48px;color:var(--muted);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 8px;font-size:12px;font-weight:700;display:flex}.bottomnav a.active{color:var(--accent-ink);background:var(--accent)}.scrim{z-index:69;background:#080a2894;animation:.25s both fade;position:fixed;inset:0}.sidebar.as-drawer{z-index:70;width:min(300px,86vw);height:100%;box-shadow:var(--shadow-lg);animation:drawerin .35s var(--ease) both;position:fixed;top:0;bottom:0;left:0}.login{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100%;display:grid}.login-hero{color:#fff;background:radial-gradient(900px 600px at 80% 10%,#5a4cff 0%,#0000 60%),radial-gradient(700px 500px at 0 100%,#2b35e8 0%,#0000 62%),#0c0f30;flex-direction:column;justify-content:space-between;gap:24px;min-height:100vh;padding:38px 46px;display:flex;position:relative;overflow:hidden}.login-hero h1{max-width:15ch;margin-bottom:14px;font-size:clamp(30px,3.6vw,46px)}.login-hero p{opacity:.92;max-width:46ch;font-size:16px}.login-hero .art{opacity:.8;pointer-events:none;width:100%;height:36%;position:absolute;bottom:0;left:0;right:0}.float{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2;background:#ffffff24;border:1px solid #ffffff47;border-radius:16px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;display:flex;position:absolute}.login-form{background:var(--bg);place-items:center;padding:28px 20px;display:grid}.login-card{flex-direction:column;gap:14px;width:min(430px,100%);display:flex}.login-card h2{font-size:26px}.roles{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.role{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:64px;font-size:12px;font-weight:700;display:flex}.role.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent)}.otp{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.otp input{text-align:center;padding:0}.or{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.floaty{animation:6s ease-in-out infinite floaty}.feed-item{border-bottom:1px solid var(--line);animation:msgin .5s var(--ease) both;align-items:flex-start;gap:10px;padding:9px 0;display:flex}.feed-item:last-child{border:0}.feed-ic{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-text);border-radius:10px;flex:none;place-items:center;display:grid}.feed-ic.green{background:var(--green-soft);color:var(--green)}.feed-ic.red{background:var(--red-soft);color:var(--red)}.feed-ic.amber{background:var(--amber-soft);color:var(--amber)}.hero-card{color:#fff;background:radial-gradient(500px 300px at 100% 0,#6a5cffe6,#0000 70%),linear-gradient(135deg,#2b35e8,#151a73);border:0;border-radius:24px;padding:24px;position:relative;overflow:hidden}.hero-card h2{max-width:18ch;font-size:24px}.hero-card p{opacity:.94;max-width:44ch;margin-top:6px}.hero-card .hero-art{opacity:.75;pointer-events:none;width:46%;height:100%;position:absolute;bottom:0;right:0}.hero-card .btn{color:#151a73;background:#fff;border:0;position:relative}.hero-card>:not(.hero-art){z-index:1;position:relative}.attn{background:var(--surface-2);border:1px solid var(--line);text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;min-width:0;padding:12px;display:flex}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.tpl-art{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;height:120px;margin-bottom:12px;padding:8px;position:relative;overflow:hidden}.thumb-wire{stroke-dasharray:20 14;animation:1.2s linear infinite dash;stroke:var(--accent)!important}.perm{grid-template-columns:minmax(150px,1.6fr) repeat(5,minmax(60px,1fr));align-items:center;min-width:520px;display:grid}.perm>*{border-bottom:1px solid var(--line);padding:10px 8px}.perm .hd{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center;font-size:12px;font-weight:800}.meter-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px 12px;display:grid}.tl{padding-left:30px;position:relative}.tl:before{content:"";background:repeating-linear-gradient(var(--wire) 0 6px, transparent 6px 10px);width:2px;position:absolute;top:6px;bottom:6px;left:11px}.tl-item{padding:4px 0 14px;position:relative}.tl-dot{background:var(--surface);border:2px solid var(--line);width:24px;height:24px;color:var(--muted);border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;left:-30px}.tl-dot.success{border-color:var(--green);color:var(--green)}.tl-dot.failed{border-color:var(--red);color:var(--red)}.tl-dot.waiting,.tl-dot.retried{border-color:var(--amber);color:var(--amber)}.step-btn{text-align:left;border:1px solid #0000;border-radius:12px;width:100%;min-height:44px;padding:8px 10px;display:block}.step-btn.on{background:var(--accent-soft);border-color:var(--accent)}.cell-input{background:0 0;border:1px solid #0000;border-radius:8px;width:100%;min-height:40px;padding:6px 8px;font-size:16px}.cell-input:focus{border-color:var(--accent);background:var(--surface);outline:0}.cronbox{letter-spacing:.04em;text-align:center;font-family:ui-monospace,monospace;font-size:22px}.cron-cell{flex-direction:column;align-items:center;gap:4px;display:flex}.cron-cell small{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.nextrun{background:var(--surface-2);border:1px solid var(--line);animation:msgin .4s var(--ease) both;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;display:flex}.nextrun .n{background:var(--accent-soft);width:24px;height:24px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.app-tile{flex-direction:column;gap:10px;display:flex}.app-ic{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:13px;flex:none;place-items:center;display:grid}.diff-ok{color:var(--green)}.diff-bad{color:var(--red)}.sim-badge{background:var(--pink-soft);color:var(--ink);border:1px dashed var(--pink);border-radius:99px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:800;display:inline-flex}.sim-badge svg{color:var(--pink)}.map-row{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr) 70px auto;align-items:center;gap:8px;padding:10px;display:grid}.circuit-bg{pointer-events:none;position:absolute;inset:0}.ed{grid-template-columns:188px minmax(0,1fr) 340px;gap:12px;height:calc(100vh - 200px);min-height:540px;display:grid}.ed>*{min-width:0;min-height:0}.ed-pal{flex-direction:column;gap:6px;display:flex;overflow-y:auto}.pal-btn{border:1px solid var(--line);background:var(--surface);text-align:left;touch-action:none;cursor:grab;border-radius:12px;flex:none;align-items:center;gap:10px;min-height:44px;padding:0 10px;font-weight:700;display:flex}@media (hover:hover){.pal-btn:hover{border-color:var(--accent)}}.pal-sub{color:var(--muted);font-size:12px;font-weight:600;display:block}.nico{color:#fff;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;display:grid}.canvas{border-radius:var(--r);border:1px solid var(--line);background-color:var(--surface-2);background-image:radial-gradient(var(--dots) 1.4px, transparent 1.6px);cursor:grab;touch-action:none;background-size:24px 24px;position:relative;overflow:hidden}.canvas.panning{cursor:grabbing}.layer{will-change:transform;transform-origin:0 0;width:0;height:0;position:absolute;top:0;left:0}.wires{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.wires path.edge{fill:none;stroke:var(--muted);stroke-width:2.4px;opacity:.8;pointer-events:none}.wires path.edge.sel{stroke:var(--accent);stroke-width:3.6px;opacity:1}.wires path.edge.done{stroke:var(--green);opacity:1;stroke-width:3px}.wires path.edge.flow{stroke:var(--wire);stroke-dasharray:3 9;stroke-width:3px;animation:1.4s linear infinite dash}.wires path.hit{fill:none;stroke:#0000;stroke-width:24px;pointer-events:stroke;cursor:pointer}.wires path.ghost{fill:none;stroke:var(--accent);stroke-width:3px;stroke-dasharray:6 6}.pulse{fill:var(--accent);filter:drop-shadow(0 0 5px var(--accent))}.fnode{background:var(--surface);border:1.5px solid var(--line);width:236px;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;touch-action:none;border-radius:16px;transition:box-shadow .2s,border-color .2s;position:absolute}.fnode.sel{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent), var(--shadow)}.fnode.live{border-color:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 35%, transparent), var(--shadow)}.fnode.done{border-color:var(--green)}.fnode.fail{border-color:var(--red);box-shadow:0 0 0 5px color-mix(in srgb, var(--red) 30%, transparent), var(--shadow)}.fnode.wait{border-color:var(--amber);box-shadow:0 0 0 5px color-mix(in srgb, var(--amber) 30%, transparent), var(--shadow)}.fnode-h{cursor:grab;border-bottom:1px solid var(--line);border-radius:14px 14px 0 0;align-items:center;gap:8px;height:46px;padding:0 6px 0 10px;font-weight:800;display:flex}.fnode-b{height:54px;color:var(--ink-2);-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;padding:8px 12px;font-size:13px;line-height:1.35;display:-webkit-box;overflow:hidden}.fnode-o{height:30px;color:var(--muted);text-align:right;justify-content:flex-end;align-items:center;padding:0 22px 0 12px;font-size:12px;font-weight:700;display:flex;position:relative}.vbadge{color:#fff;z-index:4;min-width:24px;height:24px;box-shadow:var(--shadow);border-radius:99px;place-items:center;font-size:12px;font-weight:800;display:grid;position:absolute;top:-10px;right:-8px}.vbadge.error{background:var(--red)}.vbadge.warn{background:var(--amber);color:#1b1200}.vbadge.ok{background:var(--green)}.port{background:var(--surface);border:3px solid var(--accent);z-index:3;touch-action:none;cursor:crosshair;border-radius:50%;width:16px;height:16px;position:absolute}.port:after{content:"";border-radius:50%;position:absolute;inset:-14px}.port.out{top:7px;right:-9px}.port.in{border-color:var(--cyan);top:15px;left:-9px}.port.armed{background:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 30%, transparent)}.port.in.target{background:var(--cyan);box-shadow:0 0 0 6px color-mix(in srgb, var(--cyan) 35%, transparent)}.port.linked{background:var(--accent)}.cv-tools{z-index:5;flex-wrap:wrap;gap:6px;max-width:calc(100% - 180px);display:flex;position:absolute;bottom:10px;left:10px}.cv-top{z-index:5;pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:10px;left:10px;right:10px}.cv-top>*{pointer-events:auto}.cv-hint{z-index:5;max-width:250px;position:absolute;top:10px;right:10px}.mini{z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);cursor:pointer;touch-action:none;border-radius:12px;width:160px;height:100px;position:absolute;bottom:10px;right:10px;overflow:hidden}.edge-x{z-index:6;place-items:center;width:44px;height:44px;margin:-22px 0 0 -22px;display:grid;position:absolute}.edge-x span{background:var(--red);color:#fff;width:30px;height:30px;box-shadow:var(--shadow);border-radius:50%;place-items:center;display:grid}.ed-side{flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.ed-side-body{flex:1;min-height:0;padding:14px;overflow-y:auto}.ed-sheet-x{display:none}.rule{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;grid-template-columns:minmax(0,1fr);gap:6px;padding:10px;display:grid}.varpick{position:relative}.varpop{z-index:30;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:14px;min-width:240px;max-height:260px;margin-top:4px;padding:6px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.varpop button.vp{text-align:left;border-radius:8px;align-items:center;gap:8px;width:100%;min-height:40px;padding:4px 8px;font-size:13px;display:flex}@media (hover:hover){.varpop button.vp:hover{background:var(--accent-soft)}}.varpop .grp{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:8px 8px 2px;font-size:12px;font-weight:800}.json{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;max-height:220px;padding:8px 10px;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.5;overflow:auto}.run-step{border:1px solid var(--line);background:var(--surface);animation:msgin .3s var(--ease) both;border-radius:12px;overflow:hidden}.run-step.failed{border-color:var(--red)}.run-step.waiting{border-color:var(--amber)}.run-step>button{text-align:left;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 10px;display:flex}.run-step .body{flex-direction:column;gap:8px;padding:0 10px 10px;display:flex}.ed-mobile-bar{display:none}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(16px)scale(.96)}}@keyframes rise{0%{transform:translateY(100%)}}@keyframes slidein{0%{opacity:0;transform:translate(30px)}}@keyframes drawerin{0%{transform:translate(-100%)}}@keyframes msgin{0%{opacity:0;transform:translateY(8px)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes dash{to{stroke-dashoffset:-24px}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.check{width:84px;height:84px}.check circle{fill:none;stroke:var(--green);stroke-width:4px;stroke-dasharray:240;stroke-dashoffset:240px;animation:.7s .1s forwards draw}.check path{fill:none;stroke:var(--green);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60px;animation:.5s .6s forwards draw}@keyframes draw{to{stroke-dashoffset:0}}@media (width<=1360px){.ed{grid-template-columns:172px minmax(0,1fr)}.ed-side{display:none}.ed.side-open{grid-template-columns:minmax(0,1fr) 340px}.ed.side-open .ed-pal{display:none}.ed.side-open .ed-side{display:flex}.ed-sheet-x{display:grid}.cv-hint{display:none}.ed-mobile-bar{flex-wrap:wrap;gap:6px;display:flex}}@media (width<=1100px){.ed.side-open{grid-template-columns:minmax(0,1fr)}.ed.side-open .ed-side{z-index:40;width:min(360px,100vw - 24px);box-shadow:var(--shadow-lg);position:fixed;top:120px;bottom:12px;right:12px}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1fr)}.login{grid-template-columns:1fr}.login-hero{min-height:0;padding:28px 24px 36px}.login-hero .art,.login-hero .float{display:none}}@media (width>=721px) and (width<=1100px){.app{grid-template-columns:76px minmax(0,1fr)!important}.sidebar:not(.as-drawer) .lbl,.sidebar:not(.as-drawer) .brand-txt,.sidebar:not(.as-drawer) .nav-sec-btn,.sidebar:not(.as-drawer) .nav-tools,.sidebar:not(.as-drawer) .hide-collapsed,.sidebar:not(.as-drawer) .cnt{display:none}.sidebar:not(.as-drawer) .nav a[data-shut]{display:flex}.sidebar:not(.as-drawer) .nav a{justify-content:center;padding:0}.sidebar:not(.as-drawer) .brand{justify-content:center;padding:6px 0 14px}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.page{padding:22px 20px 36px}.topbar{padding:10px 16px}.map-row{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 60px auto}}@media (width<=720px){.app,.app.collapsed{grid-template-columns:minmax(0,1fr)}.sidebar:not(.as-drawer){display:none}.bottomnav{display:flex}.hide-sm{display:none!important}.show-sm{display:inline-flex!important}.menu-btn{display:grid}.page{padding:16px 14px 120px}.topbar{gap:6px;padding:8px 12px}.search{max-width:none}.demo-banner{padding:8px 14px}.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}.g4.keep2{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head h1{font-size:22px}.kpi .k-v{font-size:25px}.page-head p:not(.keep){display:none}.ed{grid-template-columns:minmax(0,1fr);height:auto}.ed-pal{display:none}.canvas{height:62vh;min-height:400px}.cv-hint{display:none}.mini{width:110px;height:70px}.ed.side-open .ed-side{z-index:60;left:8px;right:8px;bottom:calc(80px + env(safe-area-inset-bottom));border-radius:22px;width:auto;height:70dvh;max-height:min(70dvh,100dvh - 160px);display:flex;position:fixed;top:auto}.ed-mobile-bar{flex-wrap:wrap;gap:6px;display:flex}.cv-tools{max-width:calc(100% - 130px)}.toasts{bottom:96px;left:12px;right:12px}.toast{max-width:none}.roles{grid-template-columns:repeat(2,1fr)}.hero-card .hero-art{opacity:.35}.modal{padding:18px}.perm{min-width:460px}.map-row{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}.map-row>:nth-child(n+4){grid-column:1/-1}.filters .input{flex:140px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (pointer:coarse),(width<=1100px){.btn.sm,.seg button,button.chip,.nav-tools button,.demo-banner button{min-height:44px}.pal-btn{min-height:48px}}.nx{width:40px;height:40px;margin-left:auto}@media (pointer:coarse){.nx{width:44px;height:44px}}.panel-btn{display:none}@media (width<=1360px){.panel-btn{display:inline-flex}}@media (prefers-reduced-motion:reduce){.pulse.amb{display:none}}.canvas button.btn:disabled{opacity:.45}.cv-top .btn,.cv-tools .btn{background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.g5{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}.g5>*{min-width:0}@media (width<=1100px){.g5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){.g5{grid-template-columns:repeat(2,minmax(0,1fr))}.g5 .k-v{font-size:22px}}:root[data-still="1"] *,:root[data-still="1"] :before,:root[data-still="1"] :after{transition:none!important;animation:none!important}:root[data-still="1"] .pulse.amb{display:none}.page-head.compact{margin-bottom:10px}@media (width<=720px){.cv-top .panel-btn{display:none}.page-head.compact h1{font-size:20px}}
