:root{--ink: #14171d;--ink-2: #3a3c48;--ink-3: #62657a;--line: #d6d8e0;--line-2: #e9eaf0;--bg: #f2f3f6;--panel: #ffffff;--brand: #0e2a4d;--brand-2: #163a66;--brass: #c2912a;--brass-bright: #e7b948;--brass-glow: #f6efd9;--accent: #2d6cdf;--accent-ink: #1f7a50;--blue: #2d6cdf;--ok: #1f7a50;--ok-bg: #e4f4ed;--warn: #8a6416;--warn-bg: #f6efd9;--bad: #b3392f;--bad-bg: #fbe9e5;--info-bg: #eef4fe;--radius: 11px;--serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;--shadow: 0 1px 3px rgba(16, 30, 60, .05), 0 2px 10px rgba(16, 30, 60, .04);--shadow-lg: 0 14px 44px rgba(14, 42, 77, .2);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--brand-2)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}h1,h2,h3{margin:0;letter-spacing:-.01em}h1{font-size:26px;font-family:var(--serif);font-weight:600;letter-spacing:-.01em}h2{font-family:var(--serif);font-weight:600}h2{font-size:16px}h3{font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--ink-3)}.small{font-size:12.5px}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.stack{display:flex;flex-direction:column;gap:12px}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.shell.compact{grid-template-columns:64px minmax(0,1fr)}.side{background:var(--brand);color:#d5deeb;display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;color:#fff;font-weight:700;font-size:17px;text-decoration:none}.brand img{width:28px;height:28px}.brand{font-family:var(--serif)}.brand small{display:block;font-family:Inter,sans-serif;font-weight:500;font-size:11.5px;color:#a9b8cc}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#c9d4e3;text-decoration:none;font-weight:500}.nav a:hover{background:#ffffff12;color:#fff}.nav a.active{background:#ffffff1a;color:#fff;box-shadow:inset 3px 0 0 var(--brass-bright)}.side-foot{margin-top:auto;padding:10px;font-size:12px;color:#a9b8cc;line-height:1.5;border-top:1px solid rgba(255,255,255,.08)}.side-foot strong{color:#fff;font-weight:600}.main{min-width:0}.page{padding:28px 36px 56px;width:100%}.page-head{display:flex;align-items:flex-end;gap:12px;margin-bottom:18px}.page-head p{margin:4px 0 0;color:var(--ink-3)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 12px;font-weight:600;cursor:pointer;line-height:1.2;text-decoration:none;color:var(--ink);white-space:nowrap}.btn:hover{border-color:#c4ced3;background:#fafbfb}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-2)}.btn.accent{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.btn.danger{color:var(--bad)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--line-2)}.btn.sm{padding:4px 9px;font-size:12.5px}.btn.icon{padding:6px}.input,.select,.textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px}.input:focus,.select:focus,.textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #2d6cdf2e}.textarea{min-height:84px;resize:vertical}.textarea.code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;min-height:120px}.field{display:flex;flex-direction:column;gap:5px}.field>label,.label{font-weight:600;font-size:12.5px;color:var(--ink-2)}.help{font-size:12px;color:var(--ink-3);line-height:1.4}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:34px;height:20px;border-radius:999px;background:#c9d3d8;position:relative;cursor:pointer;transition:background .15s;margin:0;flex:none}.toggle input:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px #0003}.toggle input:checked{background:var(--accent-ink)}.toggle input:checked:after{left:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:16px 18px}.card-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line-2)}.grid{display:grid;gap:14px}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:1000px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{padding:14px 16px}.stat .n{font-size:26px;font-weight:700;letter-spacing:-.02em}.stat .l{color:var(--ink-3);font-size:12.5px;margin-top:2px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--line);background:#fafbfc}.table td{padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr.click{cursor:pointer}.table tr.click:hover td{background:#f7f8fb}.table .name{font-weight:600;color:var(--ink);text-decoration:none}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;background:var(--line-2);color:var(--ink-2);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.badge.plain:before{display:none}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.partial,.badge.untested,.badge.queued{background:var(--warn-bg);color:var(--warn)}.badge.failed,.badge.error{background:var(--bad-bg);color:var(--bad)}.badge.running{background:var(--info-bg);color:var(--brand-2)}.badge.skipped{background:var(--line-2);color:var(--ink-3)}.empty{text-align:center;padding:40px 20px;color:var(--ink-3)}.empty h3,.empty .empty-title{color:var(--ink);margin-bottom:6px;font-family:inherit;font-size:14px;font-weight:700}.notice{border-radius:8px;padding:10px 12px;background:var(--info-bg);color:var(--ink-2);font-size:13px;line-height:1.45}.notice.bad{background:var(--bad-bg);color:var(--bad)}.notice.warn{background:var(--warn-bg);color:var(--warn)}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:2px 9px 2px 3px;font-size:12px;background:#fff}.dot{width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-size:10px;font-weight:700;flex:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1d246b;display:grid;place-items:center;z-index:50;padding:20px}.modal{background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);width:min(640px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column}.modal.wide{width:min(880px,100%)}.modal-head{display:flex;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line-2)}.modal-body{padding:18px;overflow:auto;display:flex;flex-direction:column;gap:14px}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--line-2)}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--brand);color:#fff;border-radius:10px;padding:10px 16px;box-shadow:var(--shadow-lg);z-index:60;font-weight:500;max-width:80vw}.toast.bad{background:var(--bad)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.tile{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px;cursor:pointer;display:flex;flex-direction:column;gap:6px}.tile:hover{border-color:var(--brass);box-shadow:0 0 0 3px #c2912a24}.tile .t{font-weight:600;display:flex;align-items:center;gap:8px}.tile p{margin:0;color:var(--ink-3);font-size:12.5px;line-height:1.4}.logo{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;flex:none}.editor{display:grid;grid-template-rows:auto 1fr;height:100vh}.editor-top{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line)}.editor-top .title{font-size:16px;font-weight:700;border:1px solid transparent;border-radius:6px;padding:4px 6px;flex:1 1 auto;min-width:200px;max-width:560px;background:transparent;text-overflow:ellipsis}.editor-top .title:hover{border-color:var(--line)}.editor-top .title:focus{border-color:var(--accent);outline:none;background:#fff}.editor-body{display:grid;grid-template-columns:236px 1fr 400px;min-height:0}.editor-body.no-inspector{grid-template-columns:236px 1fr 0}.palette{border-right:1px solid var(--line);background:#fff;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.palette h4,.palette h2{margin:0 0 6px;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.pal-item{display:flex;align-items:center;gap:9px;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:grab;margin-bottom:6px;font-weight:500;font-size:13px;width:100%;text-align:left}.pal-item:hover{border-color:#b9c6cc;box-shadow:var(--shadow)}.pal-item:active{cursor:grabbing}.pal-icon{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:#fff;flex:none}.canvas-wrap{position:relative;min-width:0;min-height:0}.canvas-wrap .react-flow{background:#f4f5f8}.inspector{border-left:1px solid var(--line);background:#fff;overflow:auto;display:flex;flex-direction:column;min-width:0}.inspector-head{padding:14px 16px 10px;border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:8px}.inspector-body{padding:14px 16px 24px;display:flex;flex-direction:column;gap:14px}.step{width:220px;background:#fff;border:1.5px solid var(--line);border-radius:12px;box-shadow:var(--shadow);font-size:13px}.step.selected{border-color:var(--brass);box-shadow:0 0 0 3px #c2912a40,var(--shadow)}.step.problem{border-color:#f0b4b4}.step-head{display:flex;align-items:center;gap:9px;padding:9px 10px}.step-head .pal-icon{width:28px;height:28px}.step-title{font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.step-kind{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.step-sub{border-top:1px solid var(--line-2);padding:6px 10px;font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-run{border-top:1px solid var(--line-2);padding:6px 10px;font-size:12px;display:flex;align-items:center;gap:6px}.step-run.failed{background:var(--bad-bg);color:var(--bad);border-radius:0 0 11px 11px}.step-run.skipped{color:var(--ink-3)}.react-flow__handle{width:14px;height:14px;border:2px solid #fff;background:#8aa0a9;box-shadow:0 0 0 1px #8aa0a9}.react-flow__handle:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%}.react-flow__handle.connectingto,.react-flow__handle.valid,.react-flow__handle:hover{background:var(--brass)}.handle-label{position:absolute;right:-6px;white-space:nowrap;line-height:1.3;transform:translate(100%,-50%);font-size:11px;font-weight:600;color:var(--ink-3);background:#f4f5f8;padding:0 4px;border-radius:4px;pointer-events:none}.react-flow__edge-path{stroke:#8aa0a9;stroke-width:2}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent-ink)}.edge-label{font-size:11px;font-weight:700;background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 7px;color:var(--ink-2)}.canvas-hint{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);text-align:center;color:var(--ink-3);pointer-events:none}.drawer{position:absolute;left:0;right:0;bottom:0;height:42%;min-height:200px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px #0f1d2414;display:flex;flex-direction:column;z-index:5}.drawer-head{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line-2)}.drawer-body{display:grid;grid-template-columns:260px 1fr;min-height:0;flex:1}.drawer-steps{border-right:1px solid var(--line-2);overflow:auto}.drawer-step{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-bottom:1px solid var(--line-2);background:#fff;cursor:pointer;text-align:left}.drawer-step:hover,.drawer-step.on{background:#eef1f7}.drawer-detail{overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:12px}.json{background:#0e2a4d;color:#e3e9f2;border-radius:8px;padding:10px 12px;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.5;overflow:auto;margin:0;max-height:260px;white-space:pre}.records{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rows{display:flex;flex-direction:column;gap:8px}.rowsrow,.rowshead{display:grid;gap:6px;align-items:start}.rowshead{font-size:11.5px;font-weight:600;margin-bottom:-4px}.step-in-label{position:absolute;left:-6px;transform:translate(-100%,-50%);font-size:11px;font-weight:700;color:var(--ink-3);background:#f4f5f8;padding:0 4px;border-radius:4px;pointer-events:none}.step-totals{display:flex;flex-wrap:wrap;gap:4px 10px;padding:6px 12px 8px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-2)}.step-totals strong{color:var(--ink)}.totals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:4px}.totals-grid div{border:1px solid var(--line);border-radius:8px;padding:3px 8px;background:#fbfcfc}.totals-grid span{display:block;font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.totals-grid strong{font-size:14px;font-variant-numeric:tabular-nums}.maprow{display:grid;grid-template-columns:1fr 18px 1fr 30px;gap:6px;align-items:start}.maprow .arrow{color:var(--ink-3);padding-top:8px;text-align:center}.condrow{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fbfcfc}.condrow .full{grid-column:1 / -1;display:flex;gap:6px}.kvrow{display:grid;grid-template-columns:1fr 1fr 30px;gap:6px}.suggest{position:relative}.suggest-list{position:absolute;z-index:20;top:calc(100% + 2px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-lg);max-height:220px;overflow:auto}.suggest-list button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:6px 10px;cursor:pointer;font-family:ui-monospace,Menlo,monospace;font-size:12px}.suggest-list button:hover,.suggest-list button.on{background:#eef1f7}.presets{display:flex;flex-wrap:wrap;gap:6px}.presets button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer}.presets button.on{background:var(--brand);color:#fff;border-color:var(--brand)}.timeline{display:flex;flex-direction:column}.tl-step{display:grid;grid-template-columns:34px 1fr auto;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line-2);align-items:start}.tl-step:last-child{border-bottom:0}.idlist{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.idlist code{background:var(--line-2);border-radius:5px;padding:1px 6px}.tpl{display:flex;flex-direction:column;gap:10px;padding:16px}.tpl p{margin:0;color:var(--ink-2);line-height:1.45}.flowline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.drawer.big{height:78%}.drawer-detail{min-width:0}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.seg button{border:0;background:transparent;padding:5px 10px;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:5px;border-right:1px solid var(--line)}.seg button:last-child{border-right:0}.seg button.on{background:var(--brand);color:#fff}.grid-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;flex:1;min-height:120px;background:#fff}.datagrid{border-collapse:separate;border-spacing:0;font-size:12.5px;width:max-content;min-width:100%}.datagrid th{position:sticky;top:0;background:#f4f5f8;text-align:left;font-weight:600;padding:6px 10px;border-bottom:1px solid var(--line);border-right:1px solid var(--line-2);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--ink-2);z-index:1}.datagrid td{padding:5px 10px;border-bottom:1px solid var(--line-2);border-right:1px solid var(--line-2);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.datagrid tr:hover td{background:#f7f8fb}.datagrid td.num{text-align:right;font-variant-numeric:tabular-nums}.datagrid td.nil{color:#a3a6b4;font-style:italic}.datagrid .rownum{color:#9092a0;text-align:right;background:#fafbfc;position:sticky;left:0}.datagrid td.warncell{color:var(--warn);font-weight:600}.json.grow{flex:1;max-height:none;min-height:120px}.json.light{background:#fafbfc;color:var(--ink);border:1px solid var(--line)}.react-flow__edge-text{font-weight:700;font-size:11px;fill:var(--brand)}.react-flow__edge.has-count .react-flow__edge-path{stroke:var(--brand-2);stroke-width:2.5}.react-flow__edge.zero .react-flow__edge-path{stroke:#c4c7d2;stroke-dasharray:5 4}.react-flow__edge{cursor:pointer}.condrow.rule{border-left:3px solid var(--blue)}.condrow.rule.check{border-left-color:var(--brass)}.side{background:linear-gradient(180deg,#0b1f3a,#0e2a4d);padding:18px 14px 14px;gap:6px;border-right:1px solid rgba(255,255,255,.04)}.shell.compact .side{padding:14px 10px;align-items:center}.brand{padding:2px 6px 14px;gap:11px;font-family:Inter,sans-serif}.brand img{width:34px;height:34px;border-radius:9px;box-shadow:0 2px 8px #00000040}.wordmark{font-size:19px;font-weight:600;letter-spacing:-.02em;color:#fff}.wordmark b{font-weight:800;color:var(--brass-bright)}.nav{gap:14px;margin-top:6px}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#7f93ad;padding:0 10px 4px}.nav a{font-size:13.5px;padding:8px 10px}.shell.compact .nav a{justify-content:center;padding:10px}.ws{position:relative;margin:2px 0 8px}.ws-btn{width:100%;display:flex;align-items:center;gap:10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:8px 10px;color:#fff;cursor:pointer;text-align:left}.ws-btn:disabled{cursor:default}.ws-btn:not(:disabled):hover{background:#ffffff1a}.ws-icon{width:28px;height:28px;border-radius:7px;background:#e7b94829;color:var(--brass-bright);display:grid;place-items:center;flex:none}.ws-name{flex:1;min-width:0;font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-name small{display:block;font-size:10.5px;font-weight:600;color:#8ea2bb;text-transform:uppercase;letter-spacing:.07em}.ws-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);padding:6px;z-index:40;max-height:360px;overflow:auto;display:flex;flex-direction:column;gap:2px}.ws-menu .input{margin-bottom:4px}.ws-menu button{display:flex;align-items:center;gap:8px;border:0;background:#fff;border-radius:7px;padding:8px 10px;cursor:pointer;text-align:left;color:var(--ink);font-weight:600}.ws-menu button span{flex:1}.ws-menu button small{color:var(--ink-3);font-weight:500;text-transform:capitalize}.ws-menu button:hover{background:var(--line-2)}.ws-menu button.on{background:var(--brass-glow)}.side-foot{display:flex;flex-direction:column;gap:8px;padding:12px 6px 2px}.who{display:flex;align-items:center;gap:10px;color:#fff}.who strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who small{display:block;color:#8ea2bb;font-size:11.5px;text-transform:capitalize}.avatar{width:32px;height:32px;border-radius:50%;background:var(--brass);color:#0b1f3a;display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}.signout{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid rgba(255,255,255,.1);color:#c9d4e3;border-radius:8px;padding:6px 10px;cursor:pointer;font-size:12.5px;font-weight:600;justify-content:center}.signout:hover{background:#ffffff0f;color:#fff}.banner{padding:9px 36px;font-weight:600;font-size:13px}.banner.bad{background:var(--bad-bg);color:var(--bad)}.boot{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.page-head h1{font-size:28px}.page-head{padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--line)}.card{border-color:#e1e3ea}.stat{position:relative;overflow:hidden}.stat:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brass);opacity:.85}.table th{background:#f7f8fb}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(380px,44%) 1fr;background:#f6f7fa}.auth-side{position:relative;overflow:hidden;background:radial-gradient(900px 520px at 0% 0%,#1d4f88 0%,transparent 62%),linear-gradient(160deg,#0b1f3a,#0e2a4d 62%,#163a66);color:#c9d5e5;padding:44px 56px;display:flex;flex-direction:column;gap:20px}.auth-side:after{content:"";position:absolute;right:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;border:1px solid rgba(231,185,72,.18);box-shadow:0 0 0 60px #e7b9480a,0 0 0 120px #e7b94806;pointer-events:none}.auth-side h2{color:#fff;font-size:38px;line-height:1.12;margin:56px 0 0;font-family:var(--serif);letter-spacing:-.01em;max-width:460px}.auth-side p{font-size:16px;line-height:1.6;max-width:440px;margin:0}.auth-side ul{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;max-width:440px}.auth-side li{padding-left:32px;position:relative;line-height:1.45;color:#e3eaf4}.auth-side li:before{content:"";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:6px;background:#e7b94829 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23e7b948' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}.auth-side small{margin-top:auto;color:#8ea2bb;font-size:12px;line-height:1.5;max-width:440px;position:relative;z-index:1}.brand-lg{display:flex;align-items:center;gap:12px;color:#fff;font-weight:700;font-size:22px;letter-spacing:-.02em}.brand-lg img{width:40px;height:40px;border-radius:10px}.brand-lg b{color:var(--brass-bright);font-weight:700}.auth-main{display:grid;place-items:center;padding:40px 24px}.auth-card{width:min(400px,100%);display:flex;flex-direction:column;gap:14px}.auth-card h1{font-size:30px;font-family:var(--serif);letter-spacing:-.01em;margin:0}.auth-card>p{margin:0 0 8px;line-height:1.5}.auth-brand-sm{display:none;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--ink);margin-bottom:18px}.auth-brand-sm img{width:32px;height:32px;border-radius:8px}.auth-brand-sm b{color:#b8891f}.auth-foot{margin-top:22px;font-size:12px;color:var(--ink-3);line-height:1.5}.auth-foot a{color:var(--ink-3);white-space:nowrap}.auth-card .cl-rootBox,.auth-card .cl-cardBox{width:100%;max-width:none;box-shadow:none;border:0}@media(max-width:860px){.auth{grid-template-columns:1fr}.auth-side{display:none}.auth-brand-sm{display:flex}.auth-main{place-items:start center;padding-top:48px}}.editor-body.readonly .palette{opacity:.45;pointer-events:none}.dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:26px;border:2px dashed #c7cbd8;border-radius:12px;background:#fafbfd;cursor:pointer;color:var(--ink-2)}.dropzone:hover{border-color:var(--brass);background:var(--brass-glow)}.import-tile{border-style:dashed;border-color:#b9a6d6;background:#faf7fd}label.btn{cursor:pointer}.history{display:grid;grid-template-columns:280px 1fr;gap:16px;min-height:360px}.vlist{list-style:none;margin:0;padding:0 10px 0 0;overflow:auto;max-height:60vh;border-right:1px solid var(--line-2);display:flex;flex-direction:column;gap:4px}.vlist button{width:100%;text-align:left;border:1px solid transparent;background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.vlist button:hover{background:var(--line-2)}.vlist button.on{border-color:var(--brass);background:var(--brass-glow)}.changes{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.changes li{padding:4px 8px;border-radius:6px;border-left:3px solid}.changes li.added{border-color:var(--ok);background:var(--ok-bg)}.changes li.removed{border-color:var(--bad);background:var(--bad-bg)}.changes li.changed{border-color:var(--brass);background:var(--brass-glow)}.btn.icon.lit{color:var(--brass)}.trace{list-style:none;margin:0;padding:0}.trace li{display:grid;grid-template-columns:34px 1fr auto;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-2);align-items:start;position:relative}.trace li:last-child{border-bottom:0}.trace-ic{width:30px;height:30px;border-radius:50%;background:var(--line-2);display:grid;place-items:center}.trace-body{display:flex;flex-direction:column;gap:3px;min-width:0}.trace code,.idlink code{background:var(--line-2);border-radius:5px;padding:1px 6px}.idlink{text-decoration:none;color:inherit}.idlink:hover code{background:var(--brass-glow)}.chart{position:relative}.legend{display:flex;gap:14px;font-size:12.5px;color:var(--ink-2);flex-wrap:wrap}.legend span,.tip .row{display:inline-flex;align-items:center;gap:6px}.legend i,.tip i{width:10px;height:10px;border-radius:3px;display:inline-block}.tip{position:absolute;top:4px;transform:translate(-50%);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-lg);padding:8px 10px;font-size:12.5px;min-width:150px;pointer-events:none;z-index:3;display:flex;flex-direction:column;gap:3px}.meter{width:70px;height:6px;border-radius:999px;background:var(--line-2);overflow:hidden;display:inline-block}.meter i{display:block;height:100%;background:var(--ok);border-radius:999px}.attn{list-style:none;margin:0;padding:0}.attn li{display:flex;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line-2);align-items:flex-start}.attn li:last-child{border-bottom:0}.navcount{margin-left:auto;background:var(--brass-bright);color:#0b1f3a;border-radius:999px;font-size:11px;font-weight:800;padding:1px 7px}.badge.waiting,.badge.pending{background:var(--info-bg);color:var(--brand-2)}.badge.approved{background:var(--ok-bg);color:var(--ok)}.badge.rejected{background:var(--bad-bg);color:var(--bad)}.badge.expired{background:var(--line-2);color:var(--ink-3)}.banner.info{background:var(--brass-glow);color:var(--ink);padding:8px 14px;gap:8px;border-bottom:1px solid #ecdcb4}.status-page{min-height:100vh;background:var(--bg);padding:48px 20px}.sp-wrap{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.sp-head{display:flex;align-items:baseline;gap:12px}.sp-overall{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-left:5px solid;border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);font-size:17px}.sp-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.sp-list li{padding:16px 18px;border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:8px}.sp-list li:last-child{border-bottom:0}.sp-list p{margin:0}.sp-bars{display:grid;grid-template-columns:repeat(30,1fr);gap:3px;height:30px}.sp-bars i{border-radius:3px;display:block}.ai-steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:4px}.presets button{text-align:left}.grid.cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:1200px){.grid.cols-6{grid-template-columns:repeat(3,minmax(0,1fr))}}.tabbar{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabbar button{border:0;background:none;padding:9px 14px;font:inherit;font-weight:600;font-size:14px;color:var(--ink-3);cursor:pointer;display:inline-flex;align-items:center;gap:7px;border-bottom:2px solid transparent;margin-bottom:-1px}.tabbar button:hover{color:var(--ink)}.tabbar button.on{color:var(--ink);border-bottom-color:var(--brass, #c8a046)}.skip-link{position:absolute;left:8px;top:-60px;z-index:1000;background:#fff;color:var(--brand);padding:8px 14px;border-radius:8px;font-weight:600;box-shadow:0 2px 10px #0003}.skip-link:focus{top:8px}.main:focus{outline:none}@media(max-width:700px){.shell,.shell.compact{grid-template-columns:minmax(0,1fr)}.side{position:static;height:auto}.page{padding:18px 14px 40px}.page-head{flex-wrap:wrap}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:minmax(0,1fr)}.card:has(>.table){overflow-x:auto;position:relative}}.shell.console .side{background:#17191f}.side .wordmark .console-tag{display:inline-block;margin-left:8px;line-height:1.5;color:#17191f!important;letter-spacing:.06em;padding:1px 7px;border-radius:999px;background:#e7b948;color:#17191f;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:3px}.console-note{margin:2px 14px 10px;font-size:11.5px;color:#c9b27a}.console-app{display:flex;align-items:center;gap:6px;color:#c9d4e3;font-size:12.5px;font-weight:600;padding:6px 10px;border-radius:8px;text-decoration:none;border:1px dashed rgba(255,255,255,.18)}.console-app:hover,.console-app:focus-visible{color:#fff;background:#ffffff0f}.console-login .login-brand:after{content:" Console"}.explain-sum{font-size:15px;line-height:1.55;margin:0}.explain-ai{gap:8px;align-items:center;padding:10px 12px;background:var(--bg-2, #f4f5f8);border-radius:10px}.explain-steps{margin:0;padding-left:22px;display:grid;gap:10px;line-height:1.5}.explain-steps .linkish{background:none;border:0;padding:0;color:var(--ink);cursor:pointer;font:inherit;text-align:left}.explain-steps .linkish:hover,.explain-steps .linkish:focus-visible{text-decoration:underline}.react-flow__handle{background:#62757d;box-shadow:0 0 0 1px #62757d}.react-flow__edge-path{stroke:#62757d}.react-flow__edge.zero .react-flow__edge-path{stroke:#80869a}.react-flow__edge:focus-visible .react-flow__edge-path{stroke:var(--blue);stroke-width:3}.react-flow__node:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:12px}.step{border-color:#80869a}.step.selected{border-color:#946b16}.step.problem{border-color:var(--bad)}.btn.on{background:var(--brand);border-color:var(--brand);color:#fff}.inspector-title{font-family:inherit;font-size:14px;font-weight:700;margin:0}.inspector-title:focus{outline:none}.outline{height:100%;overflow:auto;padding:16px 18px 120px;background:var(--bg)}.outline-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;flex-wrap:wrap}.outline-head h2{font-size:18px}.outline-head h2:focus,.outline-title:focus{outline:none}.outline-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-width:860px}.outline-step{background:#fff;border:1.5px solid #80869a;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.outline-step.selected{border-color:#946b16;box-shadow:0 0 0 3px #c2912a40}.outline-step.problem{border-left:4px solid var(--bad)}.outline-step:focus-within{box-shadow:0 0 0 3px #2d6cdf2e}.outline-step-head{display:flex;align-items:center;gap:10px}.outline-title{font-family:inherit;font-size:15px;font-weight:700;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;overflow-wrap:anywhere}.outline-num{color:var(--ink-3);font-variant-numeric:tabular-nums}.outline-kind{font-size:11.5px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.outline-sum{margin:0;color:var(--ink-2);line-height:1.45;overflow-wrap:anywhere}.outline-problem{margin:0;display:flex;gap:6px;align-items:flex-start;color:var(--bad);background:var(--bad-bg);border-radius:8px;padding:6px 10px;font-size:13px}.outline-problem svg{flex:none;margin-top:2px}.outline-result{margin:0;font-size:13px;color:var(--ink-2)}.outline-result.failed{color:var(--bad)}.outline-actions{display:flex;flex-wrap:wrap;gap:4px}.outline-add{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfcfc;display:flex;flex-direction:column;gap:8px}.outline-add h4{margin:0;font-size:13px}.outline-end{margin-top:14px;max-width:860px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.outline-end .outline-add{align-self:stretch}@media(max-width:760px){.editor{height:auto;min-height:100vh;grid-template-rows:auto auto minmax(70vh,1fr)}.editor-top{flex-wrap:wrap}.editor-top .title{flex:1 1 100%;min-width:0;order:-1}.editor-top .spacer{display:none}.editor-body,.editor-body.no-inspector{grid-template-columns:minmax(0,1fr);position:relative}.editor-body .palette{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);z-index:30;box-shadow:var(--shadow-lg)}.editor-body .inspector{position:fixed;inset:0 0 0 auto;width:min(440px,100vw);z-index:31;box-shadow:var(--shadow-lg)}.canvas-wrap{min-height:70vh}.outline{padding:12px 10px 120px}.drawer-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.drawer-steps{max-height:30vh;border-right:0;border-bottom:1px solid var(--line-2)}.shell.compact .side{padding:8px}.shell.compact .nav,.shell.compact .nav-group{flex-direction:row;flex-wrap:wrap}}.palette[hidden]{display:none}.outline-head{max-width:860px}.sugg-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px 8px;border-radius:8px;background:var(--info-bg);font-size:12.5px}.sugg-row .sugg-why{flex:1 1 160px;min-width:0;color:var(--ink-2)}.sugg-row.sugg-history .badge{background:var(--ok-bg);color:var(--ok)}.sugg-row.sugg-ai .badge{background:#eee8f8;color:#5b3a94}.sugg-row.sugg-shared .badge{background:var(--warn-bg);color:var(--warn)}.sugg-row .btn.sm{padding:2px 8px}.req-status{text-transform:none}.print-only{display:none}.usage-banner{display:flex;align-items:center;gap:8px}.banner.warn{background:var(--warn-bg);color:var(--warn)}.table tbody th[scope=row],.table tfoot th[scope=row]{text-transform:none;letter-spacing:0;font-size:13.5px;color:var(--ink);background:transparent;font-weight:600}.usage-meter{height:8px;border-radius:4px;background:#e9eaf0;overflow:hidden;min-width:120px}.usage-meter i{display:block;height:100%;background:#163a66;border-radius:4px}.usage-meter.warn i{background:#c2912a}.usage-meter.over i{background:#b3392f}.compact-table th,.compact-table td{padding:8px;font-size:12.5px}.compact-table thead th{font-size:11px}.invoice-sheet{background:#fff;max-width:820px;margin:0 auto;padding:40px 48px;color:#1c1f2e}.invoice-sheet table{width:100%;border-collapse:collapse;font-size:13.5px}.invoice-sheet th,.invoice-sheet td{text-align:left;padding:8px 6px;border-bottom:1px solid #e3e5ec}.invoice-sheet td.num,.invoice-sheet th.num{text-align:right;font-variant-numeric:tabular-nums}.invoice-sheet tfoot td{font-weight:700;border-bottom:0}@media print{.side,.skip-link,.no-print,.banner,.toast,.tabbar{display:none!important}.print-only,.shell{display:block!important}.main{overflow:visible!important;padding:0!important}.page{padding:0!important;max-width:none!important}.card{box-shadow:none!important;border:1px solid #ccc!important;break-inside:avoid}.grid.cols-4{grid-template-columns:repeat(4,1fr)!important}.grid.cols-2{grid-template-columns:1fr 1fr!important}.invoice-sheet{padding:0;max-width:none}a{color:inherit;text-decoration:none}body{background:#fff!important}}@media(max-width:760px){.canvas-wrap .drawer,.canvas-wrap .drawer.big{position:fixed;height:75vh;z-index:29}.drawer-head,.drawer-detail .row{flex-wrap:wrap}.drawer-detail{padding:10px}}.test-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--ok)}.test-count{min-width:18px;height:18px;border-radius:9px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;background:var(--bad);color:#fff}.btn.on .test-count{background:#fff;color:var(--bad)}.test-badge{font-size:11px;padding:1px 7px}.test-badge.none{color:var(--ink-3)}.ok-ink{color:var(--ok);flex:none}.bad-ink{color:var(--bad);flex:none}.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.check-list li{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:8px;border:1px solid var(--line-2);background:#fff;font-size:13px}.check-list li.fail{border-color:#efc9c5;background:var(--bad-bg)}.check-list .check-icon{flex:none;margin-top:1px}.check-list li.pass .check-icon{color:var(--ok)}.check-list li.fail .check-icon{color:var(--bad)}.diff-table{margin-top:6px;font-size:12px;background:#fff}.diff-exp{color:var(--ok)}.diff-got{color:var(--bad);font-weight:600}.expect-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 8px;border:1px solid var(--line-2);border-radius:8px;background:#fff}.expect-row .select,.expect-row .input{width:auto;min-width:120px;padding:5px 8px}.expect-row .narrow{min-width:0;width:70px}.tests-drawer .textarea.mono{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.toggle.small{font-size:12.5px}h2.h3{font-family:inherit;font-size:14px;font-weight:700}.tests-drawer .drawer-detail>*{flex-shrink:0}.gs-head{flex-wrap:wrap;row-gap:8px}.gs-progress{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-weight:600}.gs-bar{width:140px;height:8px;border-radius:999px;background:var(--line-2);overflow:hidden}.gs-bar span{display:block;height:100%;background:var(--ok);border-radius:999px;transition:width .3s}.gs-steps{list-style:none;margin:0;padding:0}.gs-steps li{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line-2)}.gs-steps li:last-child{border-bottom:0}.gs-steps li.next{background:var(--info-bg)}.gs-mark{flex:none;color:var(--ink-3)}.gs-steps li.done .gs-mark{color:var(--ok)}.gs-text{flex:1;min-width:0}.gs-text strong{margin-right:8px}.gs-steps li.done .gs-text strong{color:var(--ink-2);font-weight:600}.gs-text p{margin:2px 0 0;color:var(--ink-2);font-size:13px;line-height:1.4}.gs-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex:none;max-width:50%}.gs-done{display:flex;align-items:center;gap:12px;background:var(--ok-bg);border-color:#bfe3d2}.gs-done svg{flex:none;color:var(--ok)}.gs-back{margin:0}.linklike{border:0;background:none;padding:0;color:var(--brand-2);text-decoration:underline;cursor:pointer;font:inherit}@media(max-width:700px){.gs-steps li{flex-wrap:wrap}.gs-text{flex-basis:calc(100% - 40px)}.gs-act{max-width:none;margin-left:32px;justify-content:flex-start}}.starter-cols{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center}.starter-side{border:1px solid var(--line);border-radius:10px;padding:10px;margin:0;min-width:0;display:flex;flex-direction:column;gap:8px}.starter-side legend{font-weight:700;padding:0 6px}.starter-list{height:230px;overflow:auto;border:1px solid var(--line-2);border-radius:8px;background:#fff}.starter-group{position:sticky;top:0;background:var(--bg);color:var(--ink-2);font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:4px 10px;z-index:1}.starter-opt{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--line-2)}.starter-opt:hover{background:var(--info-bg)}.starter-opt.on{background:var(--info-bg);font-weight:600;box-shadow:inset 3px 0 0 var(--blue)}.starter-opt:focus-within{outline:2px solid var(--blue);outline-offset:-2px}.starter-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.starter-next{border-top:1px solid var(--line-2);padding-top:12px}.starter-tpls{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.starter-tpls li{display:flex;align-items:center;gap:12px;padding:10px 12px;box-shadow:none}.starter-tpls li>div{flex:1}.starter-tpls p{margin:2px 0;color:var(--ink-2);line-height:1.4}.starter-notes{margin:0;padding:10px 12px 10px 28px;background:var(--info-bg);border-radius:8px;line-height:1.5;display:flex;flex-direction:column;gap:6px}.starter-tile{width:100%;border-color:var(--brass)}.or-line{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:12.5px}.or-line:before,.or-line:after{content:"";flex:1;height:1px;background:var(--line)}@media(max-width:700px){.starter-cols{grid-template-columns:minmax(0,1fr)}.starter-arrow{display:none}.starter-list{height:170px}.starter-tpls li{flex-wrap:wrap}}.editor:has(>.guide-bar){grid-template-rows:auto auto 1fr}.editor:has(>.banner):has(>.guide-bar){grid-template-rows:auto auto auto 1fr}.guide-bar{display:flex;align-items:center;gap:12px;padding:6px 14px;background:var(--info-bg);border-bottom:1px solid #d5e2f8;font-size:13px;min-width:0}.guide-title{flex:none;color:var(--brand)}.guide-bar ol{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:14px;flex:1;min-width:0}.guide-bar li{display:flex;align-items:center;gap:7px;color:var(--ink-2);min-width:0}.guide-bar li.now{color:var(--ink);flex:0 1 auto}.guide-n{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;background:#fff;border:1px solid #9aa3b8;color:var(--ink-2)}.guide-bar li.now .guide-n{background:var(--brand);border-color:var(--brand);color:#fff}.guide-bar li.done .guide-n{background:var(--ok);border-color:var(--ok);color:#fff}.guide-bar li b{white-space:nowrap}.guide-hint{color:var(--ink-2)}.guide-bar li .btn{flex:none}.guide-hide{flex:none;white-space:nowrap}@media(max-width:1100px){.guide-bar{flex-wrap:wrap;row-gap:4px}.guide-bar ol{flex-wrap:wrap;row-gap:4px;flex-basis:100%;order:3}}@media(max-width:760px){.editor:has(>.guide-bar){grid-template-rows:auto auto auto minmax(70vh,1fr)}.guide-bar li:not(.now) b{display:none}}
