:root{--bg: #F5F6F8;--surface: #FFFFFF;--ink: #161A21;--ink-2: #3A424E;--muted: #545D69;--faint: #A9B1BB;--line: #DDE1E6;--line-2: #C9CFD6;--row: #EEF0F3;--accent: #1D5FD6;--accent-ink: #174BA8;--accent-bg: #E8F0FD;--ok: #1B6B44;--ok-bg: #E6F4EC;--warn: #8A5A00;--warn-bg: #FDF3DC;--bad: #A12A2A;--bad-bg: #FBE9E9;--mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 IBM Plex Sans,system-ui,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-ink);text-decoration:underline}h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em}h2{margin:0 0 12px;font-size:17px;font-weight:600}code,.mono{font-family:var(--mono);font-size:13px}button{font:inherit}.topbar{display:flex;align-items:center;gap:16px;padding:10px 24px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--ink)}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:13px;letter-spacing:.02em}.env{font-size:12px;font-weight:600;color:var(--warn);background:var(--warn-bg);border-radius:999px;padding:2px 10px}.spacer{flex:1}.who{color:var(--muted);font-size:14px}.shell{display:flex;align-items:flex-start}.nav{width:210px;flex:none;padding:20px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:51px}.nav a{display:flex;align-items:center;min-height:40px;padding:0 12px;border-radius:8px;color:var(--ink-2)}.nav a:hover{background:var(--row);text-decoration:none}.nav a.on{background:var(--accent-bg);color:var(--accent-ink);font-weight:600}.main{flex:1;min-width:0;padding:24px 32px 64px;display:flex;flex-direction:column;gap:20px}.crumbs{font-size:13px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.crumbs a{color:var(--muted)}.pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}.meta{color:var(--muted);font-size:14px;display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px}.card.flush{padding:0;overflow:hidden}.card.flush>h2{padding:16px 20px 0}.note{color:var(--muted);font-size:14px;margin:0 0 12px}.btn{min-height:38px;padding:0 16px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-ink)}.btn:disabled{opacity:.55;cursor:default}input,select{font:inherit;min-height:38px;padding:0 12px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--ink)}input:focus,select:focus,.btn:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:10px 12px;border-bottom:1px solid var(--row);vertical-align:top}tr:last-child td{border-bottom:0}tr.click{cursor:pointer}tr.click:hover td{background:#fafbfc}tr.weak td{background:#fffcf4}td.num,th.num{text-align:right;white-space:nowrap}.sub{color:var(--muted);font-size:13px}.why{color:var(--ink-2);font-size:13px;max-width:520px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:999px;padding:2px 10px;white-space:nowrap}.badge.ready{color:var(--ok);background:var(--ok-bg)}.badge.needs_review{color:var(--warn);background:var(--warn-bg)}.badge.failed{color:var(--bad);background:var(--bad-bg)}.badge.processing,.badge.received{color:var(--accent-ink);background:var(--accent-bg)}.conf{font-family:var(--mono);font-size:12px;font-weight:500;border-radius:6px;padding:1px 6px}.conf.hi{color:var(--ok);background:var(--ok-bg)}.conf.mid{color:var(--warn);background:var(--warn-bg)}.conf.lo{color:var(--bad);background:var(--bad-bg)}.step{font-family:var(--mono);font-size:12px;color:var(--ink-2);background:var(--row);border-radius:6px;padding:1px 6px;white-space:nowrap}.pass{color:var(--ok);font-weight:600}.fail{color:var(--bad);font-weight:600}.review{border-left:4px solid #E0A526;background:var(--warn-bg);border-radius:8px;padding:12px 16px}.review ul{margin:6px 0 0;padding-left:20px}.error{border-left:4px solid var(--bad);background:var(--bad-bg);border-radius:8px;padding:12px 16px}.split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:20px;align-items:start}.viewer{position:sticky;top:72px;height:calc(100vh - 96px);padding:0;overflow:hidden;display:flex;flex-direction:column}.viewer .bar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:14px}.viewer iframe,.viewer pre{flex:1;width:100%;border:0;margin:0}.viewer pre{padding:14px;overflow:auto;white-space:pre-wrap;font-family:var(--mono);font-size:12px}.stack{display:flex;flex-direction:column;gap:20px;min-width:0}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--row);font-size:14px}.timeline li:last-child{border-bottom:0}.stage{font-family:var(--mono);font-size:12px;color:var(--muted);padding-top:2px}.change{font-family:var(--mono);font-size:12px}.change del{color:var(--bad);text-decoration:line-through}.change ins{color:var(--ok);text-decoration:none}.steps{list-style:none;margin:0;padding:0;counter-reset:s}.steps li{counter-increment:s;display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--row)}.steps li:last-child{border-bottom:0}.steps li:before{content:counter(s);width:24px;height:24px;border-radius:50%;background:var(--row);color:var(--ink-2);font-size:12px;font-weight:600;display:grid;place-items:center}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px;padding:28px}.login label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink-2)}.empty{color:var(--muted);padding:24px;text-align:center}details summary{cursor:pointer;color:var(--accent);font-size:14px}details pre{font-family:var(--mono);font-size:12px;white-space:pre-wrap;background:var(--bg);border-radius:8px;padding:12px;overflow:auto;max-height:420px}@media(max-width:900px){.shell{flex-direction:column}.nav{width:100%;flex-direction:row;overflow-x:auto;position:static;padding:8px 12px}.main{padding:16px 16px 48px}.split{grid-template-columns:1fr}.viewer{position:static;height:70vh}.topbar{padding:10px 16px}.who{display:none}}.ws{height:100vh;display:flex;flex-direction:column;background:var(--bg)}.ws-head{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.ws-title{display:flex;flex-direction:column;line-height:1.25;min-width:0}.ws-title strong{font-size:16px}.ws-meta{color:var(--muted);font-size:13px;white-space:nowrap}.ws-body{flex:1;min-height:0;display:grid;padding:10px}.ws-center{display:grid;min-height:0;min-width:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.panel-head{display:flex;align-items:center;gap:10px;padding:6px 12px;border-bottom:1px solid var(--line);min-height:42px}.panel-body{flex:1;min-height:0;overflow:auto}.panel-body.pad{padding:12px 14px 24px}.ws .viewer{position:static;top:auto;height:auto;padding:0}.ws .viewer iframe{flex:1;width:100%;border:0}.ws .viewer pre{flex:1;margin:0;padding:16px;overflow:auto;white-space:pre-wrap;font-family:var(--mono);font-size:13px}.splitter{position:relative}.splitter:after{content:"";position:absolute;border-radius:2px;background:transparent;transition:background .15s}.splitter.col{cursor:col-resize}.splitter.col:after{top:0;bottom:0;left:3px;width:2px}.splitter.row{cursor:row-resize}.splitter.row:after{left:0;right:0;top:3px;height:2px}.splitter:hover:after,body.dragging .splitter:after{background:var(--accent)}body.dragging{user-select:none}body.dragging iframe{pointer-events:none}.btn.small{min-height:30px;padding:0 10px;font-size:13px}.linkish{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit}.tabs{display:flex;border-bottom:1px solid var(--line)}.tabs button{flex:1;background:none;border:0;border-bottom:2px solid transparent;padding:11px 8px;font:inherit;font-size:14px;color:var(--muted);cursor:pointer}.tabs button.on{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:600}.ws-side h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 6px}.review.compact{padding:8px 12px;margin-bottom:12px;font-size:14px}.review.compact ul{margin:4px 0 0;padding-left:18px}.testline{font-size:14px;border-radius:8px;padding:8px 12px;margin-bottom:12px}.testline.ok{background:var(--ok-bg);color:var(--ok)}.testline.bad{background:var(--bad-bg);color:var(--bad)}.fsec{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;overflow:hidden}.fsec-head{width:100%;display:flex;gap:8px;align-items:center;background:#f8f9fa;border:0;border-bottom:1px solid var(--line);padding:9px 12px;font:inherit;font-weight:600;font-style:italic;color:var(--ink);cursor:pointer;text-align:left}.fsec-head span{font-style:normal;color:var(--muted);width:12px}.fsec-body{padding:4px 12px 8px}.field{padding:8px 0;border-bottom:1px solid var(--row)}.field:last-child{border-bottom:0}.field.weak{background:#fffcf4;margin:0 -12px;padding:8px 12px}.field-label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:3px}.field-how{display:inline-flex;gap:4px;align-items:center}.field-value{font-family:var(--mono);font-size:14px;color:var(--ink);word-break:break-word}.field-raw{font-size:12px;color:var(--muted);margin-top:2px}.field-id{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);margin-top:4px}.field-id .mono{color:var(--ink);font-size:13px}.thresholds{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:4px}.thresholds label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}.thresholds .pct{display:flex;align-items:center;gap:6px}.thresholds input{width:76px}.checkline{display:flex;gap:8px;align-items:flex-start;font-size:14px;margin:4px 0 12px}.checkline input{margin-top:3px;min-height:0}.field .why{margin-top:4px}table.grid{font-size:13px}table.grid th{position:sticky;top:0;background:var(--surface);z-index:1;font-size:11px;padding:8px 10px}table.grid td{padding:7px 10px}table.grid td.why{min-width:220px;max-width:420px}table.mini{font-size:13px}table.mini th,table.mini td{padding:6px}@media(max-width:900px){.ws{height:auto;min-height:100vh}.ws-body,.ws-center{display:flex!important;flex-direction:column;gap:10px}.ws .viewer{height:65vh}.ws-center>.panel:last-child{max-height:60vh}.splitter{display:none}.ws-side{max-height:none}.ws-meta{display:none}}.field-empty{font-size:12px;color:var(--muted);padding:8px 0 2px}.badge.held{color:#5b3fa8;background:#efeafb}.badge.delivered,.badge.wf-live{color:var(--ok);background:var(--ok-bg)}.badge.wf-review{color:#5b3fa8;background:#efeafb}.badge.wf-paused{color:var(--muted);background:var(--row)}.subnav{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}.subnav a{padding:10px 14px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.subnav a:hover{color:var(--ink);text-decoration:none}.subnav a.on{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:600}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:10px;overflow:hidden}.seg button{border:0;background:var(--surface);padding:8px 14px;font:inherit;font-size:14px;cursor:pointer;color:var(--ink-2);border-right:1px solid var(--line)}.seg button:last-child{border-right:0}.seg button.on{background:var(--ink);color:#fff}.seg button:disabled{color:var(--faint);cursor:not-allowed}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end}.form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}.addr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--row)}.addr:last-child{border-bottom:0}.addr code{background:var(--row);border-radius:6px;padding:4px 8px;font-size:13px}.drop{border:2px dashed var(--line-2);border-radius:12px;padding:22px;text-align:center;color:var(--muted)}.drop.over{border-color:var(--accent);background:var(--accent-bg)}.choice{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.choice label{flex:1 1 220px;display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;cursor:pointer}.choice label.on{border-color:var(--accent);background:var(--accent-bg)}.choice input{margin-top:4px}.ok-note{border-left:4px solid var(--ok);background:var(--ok-bg);border-radius:8px;padding:10px 14px}.plan{color:var(--muted);font-size:14px;border:1px dashed var(--line-2);border-radius:10px;padding:14px 16px}.fix{margin-top:6px;display:flex;flex-direction:column;gap:8px}.fix textarea{width:100%;min-height:64px;font-family:var(--mono);font-size:13px;padding:8px;border:1px solid var(--line-2);border-radius:8px;box-sizing:border-box;resize:vertical}.fix .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.checkline.small{font-size:13px;margin:0}.field-how .linkish{font-size:12px}.rule-actions{display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.ruleform .preview{display:flex;flex-direction:column;gap:4px;font-size:13px}.ruleform .preview .mono{font-size:15px;color:var(--ink)}.ruleform .row{display:flex;gap:8px}.notes{display:flex;flex-direction:column;gap:10px}.notes label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}.notes textarea{font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--line-2);border-radius:8px;resize:vertical}.rule-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}@media(max-width:900px){.rule-editor{grid-template-columns:minmax(0,1fr)}}.ruleform{display:flex;flex-direction:column;gap:14px}.stack{display:flex;flex-direction:column;gap:8px}.stacked{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}.stacked textarea,.stacked input{font:inherit;font-size:14px;padding:7px 9px;border:1px solid var(--line-2);border-radius:8px}.stacked textarea.mono{font-family:var(--mono);font-size:13px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline input{flex:1 1 200px;min-width:0}.formula-line{font-size:12px;color:var(--ink-2);background:var(--row);border-radius:6px;padding:3px 6px;margin-top:4px;word-break:break-all}.rule-preview{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;min-width:0}.preview-head{display:flex;align-items:center;gap:10px}.preview-table td{word-break:break-word}.preview-table tr.changed td:last-child{color:var(--ok)}.fnlist summary,.answers summary{cursor:pointer;font-size:13px;color:var(--accent)}.fnlist table,.answers,.answers table{margin-top:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}td.fixed{box-shadow:inset 0 -2px 0 var(--accent)}tr.line-edit-row>td{background:var(--bg);padding:12px}.line-editor{position:sticky;left:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;width:min(900px,calc(100vw - 560px));min-width:300px;white-space:normal}.le-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.le-head .spacer{flex:1}.le-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 18px}.picker{margin-top:8px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:8px}.picker .row,.search .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.search input{flex:1;min-width:160px}.results{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px}.results li+li{border-top:1px solid var(--line)}.results button{display:block;width:100%;text-align:left;background:var(--surface);border:0;padding:8px 10px;cursor:pointer;font:inherit;color:var(--ink)}.results button:hover{background:var(--row)}.results button.on{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}.checks{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.checks legend{font-size:13px;font-weight:600;margin-bottom:4px;padding:0}.notes label.checkline{flex-direction:row;align-items:flex-start;color:var(--ink)}
