:root{--bg: #f4f2f8;--surface: #ffffff;--surface-2: #f0ecf8;--page: #f9fbfd;--page-text: #182230;--page-muted: #667085;--page-border: #d6dee8;--border: #e0d8f0;--text: #1a1229;--muted: #7a6d8f;--accent: #4e2a84;--accent-2: #6b3ba8;--accent-dim: rgba(78, 42, 132, .08);--accent-gold: #c9a84c;--accent-gold-light: rgba(201, 168, 76, .12);--danger: #b42318;--warn: #b54708;--ok: #137333;--shadow: 0 4px 24px rgba(78, 42, 132, .09);--shadow-sm: 0 2px 8px rgba(78, 42, 132, .06);--radius: 12px;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:root[data-theme=dark]{--bg: #0b0f14;--surface: #111821;--surface-2: #1a2030;--page: #f9fbfd;--page-text: #182230;--page-muted: #667085;--page-border: #d6dee8;--border: #263241;--text: #e5edf5;--muted: #92a2b3;--accent: #7c4dba;--accent-2: #8f60cc;--accent-dim: rgba(124, 77, 186, .18);--accent-gold: #c9a84c;--accent-gold-light: rgba(201, 168, 76, .14);--danger: #f87171;--warn: #fbbf24;--ok: #34d399;--shadow: 0 4px 24px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5}.app{display:grid;grid-template-rows:auto 1fr auto;height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--accent)}.topbar-brand{display:flex;align-items:center;gap:12px}.scb-logo{width:38px;height:38px;border-radius:9px;background:var(--accent-gold);color:#fff;font-weight:900;font-size:11px;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;flex-shrink:0}.topbar .eyebrow{display:block;color:#fff9;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1px}.topbar h1{margin:0;font-size:15px;font-weight:600;color:#fff;line-height:1.2;letter-spacing:0}.topbar .right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quick-btn{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#ffffffe6;background:#ffffff1a;cursor:pointer;font:inherit;font-size:12px;font-weight:600;white-space:nowrap;transition:background .15s}.quick-btn:hover{background:#fff3}.badge{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:4px 10px;color:#ffffffd9;background:#ffffff1a;font-size:12px;white-space:nowrap}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#fff6;flex-shrink:0}.dot.ok{background:#4caf50}.dot.bad{background:#f44336}.dot.warn{background:var(--warn)}.cols{display:grid;grid-template-columns:260px 1fr 340px;overflow:hidden}.rail,.main,.side{overflow:auto;padding:14px}.rail{border-right:1px solid var(--border);background:var(--surface-2)}.side{border-left:1px solid var(--border);background:var(--surface-2)}.bottom{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding:6px 16px;border-top:1px solid var(--border);background:var(--surface);font-family:var(--mono);font-size:12px;color:var(--muted)}.bottom span{white-space:nowrap}.bottom span:last-child{white-space:normal}.panel{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px;background:var(--surface);box-shadow:var(--shadow-sm)}.panel h2{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px}label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}select,button{font:inherit;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--bg);color:var(--text);padding:8px 10px;width:100%}select:disabled{opacity:.64;cursor:wait}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700;cursor:pointer;margin-top:10px;transition:background .15s}button.primary:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.ghost{width:auto;padding:4px 10px;cursor:pointer}.status-pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);margin:3px 4px 0 0}.timeline{display:flex;flex-wrap:wrap;gap:6px}.step{font-family:var(--mono);font-size:11px;padding:4px 8px;border-radius:var(--radius);border:1px solid var(--border);color:var(--muted)}.step.allow{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.step.deny{border-color:var(--danger);color:var(--danger)}.workflow-live{display:grid;gap:8px}.workflow-step{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:58px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.workflow-index{display:grid;place-items:center;width:28px;height:28px;border:1.5px solid var(--border);border-radius:50%;color:var(--muted);background:var(--surface);font-family:var(--mono);font-size:12px;font-weight:800}.workflow-body{min-width:0}.workflow-title{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}.workflow-title strong{color:var(--text);font-size:13px;line-height:1.3}.workflow-title span{color:var(--muted);font-family:var(--mono);font-size:11px}.workflow-body p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35}.workflow-status{min-width:64px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:var(--surface);font-family:var(--mono);font-size:11px;font-weight:800;text-align:center;white-space:nowrap}.workflow-step.queued{border-color:#fed7aa;background:#fff8ed}.workflow-step.running{border-color:#c4b5e8;background:#ede9f8}.workflow-step.allow{border-color:#86efac;background:#e8f5e9}.workflow-step.deny,.workflow-step.aborted{border-color:#fca5a5;background:#fff1f0}.workflow-step.queued .workflow-index,.workflow-step.queued .workflow-status{border-color:#fb923c;color:var(--warn);background:#fff8ed}.workflow-step.running .workflow-index,.workflow-step.running .workflow-status{border-color:#7c4dba;color:var(--accent);background:#ede9f8}.workflow-step.allow .workflow-index,.workflow-step.allow .workflow-status{border-color:#4ade80;color:var(--ok);background:#e8f5e9}.workflow-step.deny .workflow-index,.workflow-step.deny .workflow-status,.workflow-step.aborted .workflow-index,.workflow-step.aborted .workflow-status{border-color:#f87171;color:var(--danger);background:#fff1f0}.processing-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;min-height:124px;padding:20px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:var(--radius);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent 52%),var(--surface);box-shadow:var(--shadow)}.processing-spinner{width:42px;height:42px;border:3px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-top-color:var(--accent);border-radius:50%;animation:spin .85s linear infinite}.processing-kicker{margin-bottom:4px;color:var(--accent);font-family:var(--mono);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.processing-card h3{margin:0 0 4px;color:var(--text);font-size:18px;line-height:1.25}.processing-card p{margin:0;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.memo-shell{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);max-height:64vh;overflow:auto}.memo-toolbar{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.memo-chip{display:inline-flex;align-items:center;min-height:24px;max-width:100%;border:1px solid var(--border);border-radius:999px;padding:3px 10px;color:var(--muted);background:var(--surface-2);font-family:var(--mono);font-size:11px;white-space:nowrap}.memo-chip.strong{color:var(--text);font-weight:700}.memo-chip.rec-approve{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,var(--border));background:color-mix(in srgb,var(--ok) 10%,var(--surface))}.memo-chip.rec-review{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,var(--border));background:color-mix(in srgb,var(--warn) 10%,var(--surface))}.memo-chip.rec-reject{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,var(--border));background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.memo-page{width:min(100%,900px);margin:16px auto;padding:28px 32px 34px;color:var(--page-text);background:var(--page);border:1px solid var(--page-border);border-radius:var(--radius);box-shadow:0 18px 45px #4e2a841a}.memo-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;padding-bottom:16px;border-bottom:2px solid #1a1229}.memo-eyebrow{margin:0 0 6px;color:var(--page-muted);font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.memo-head h3{margin:0;color:var(--page-text);font-size:22px;line-height:1.2;letter-spacing:0}.memo-stamp{display:grid;gap:2px;min-width:92px;padding:8px 10px;border:1.5px solid #d92d20;border-radius:var(--radius);color:#b42318;font-family:var(--mono);text-align:center;text-transform:uppercase}.memo-stamp span{font-size:10px}.memo-stamp strong{font-size:12px}.memo-doc-meta{margin:14px 0 0;color:var(--page-muted);font-family:var(--mono);font-size:12px}.memo-alert{display:grid;gap:2px;margin:18px 0;padding:10px 12px;border-left:4px solid #f79009;border-radius:var(--radius);background:#fffaeb;color:#7a2e0e;font-size:12.5px}.abort-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;padding:18px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));border-radius:var(--radius);background:linear-gradient(135deg,color-mix(in srgb,var(--danger) 10%,transparent),transparent 46%),var(--surface);box-shadow:var(--shadow-sm)}.abort-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#fff;background:var(--danger);font-family:var(--mono);font-weight:900;line-height:1}.abort-content{min-width:0}.abort-topline{margin-bottom:4px;color:var(--danger);font-family:var(--mono);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.abort-content h3{margin:0 0 6px;color:var(--text);font-size:18px;line-height:1.25;letter-spacing:0}.abort-content p{margin:0 0 14px;color:var(--text)}.abort-grid{display:grid;grid-template-columns:110px minmax(0,1fr);gap:7px 12px;padding-top:12px;border-top:1px dashed color-mix(in srgb,var(--danger) 40%,var(--border));font-size:12.5px}.abort-grid span{color:var(--muted)}.abort-grid strong{color:var(--text);font-weight:700}.memo-section-list{display:grid;gap:18px}.memo-section{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;padding-top:16px;border-top:1px solid var(--page-border)}.memo-section h4{position:sticky;top:56px;align-self:start;margin:0;color:#344054;font-size:12px;font-weight:800;line-height:1.35}.memo-section-body{min-width:0}.memo-line{margin:0 0 8px;color:var(--page-text);font-size:13px;line-height:1.65}.memo-list{display:grid;gap:6px;margin:0 0 12px;padding-left:18px;color:var(--page-text)}.memo-list li{padding-left:4px;line-height:1.55}.memo-list li::marker{color:var(--accent)}.memo-table-wrap{width:100%;margin:4px 0 14px;overflow-x:auto;border:1px solid var(--page-border);border-radius:var(--radius);background:#fff}.memo-table{width:100%;min-width:520px;border-collapse:collapse;font-size:12.5px}.memo-table th,.memo-table td{padding:9px 10px;border-bottom:1px solid var(--page-border);text-align:left;vertical-align:top}.memo-table th{color:#344054;background:#f2f4f7;font-size:11px;font-weight:800;text-transform:uppercase}.memo-table td{color:var(--page-text)}.memo-table tbody tr:last-child td{border-bottom:0}.memo-table tbody tr:nth-child(2n) td{background:#f9fafb}.memo-rule{height:1px;margin:14px 0;background:var(--page-border)}.memo-section strong,.memo-alert strong{font-weight:800}.kv{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:12px}.kv:last-child{border-bottom:0;padding-bottom:0}.kv .k{color:var(--muted)}.rag-codes,.rag-error{min-width:0;overflow-wrap:anywhere}.rag-error{color:var(--danger)}.rag-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);max-width:100%;white-space:nowrap}.rag-badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,var(--border));background:color-mix(in srgb,var(--ok) 8%,var(--surface-2))}.rag-badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 52%,var(--border));background:color-mix(in srgb,var(--warn) 8%,var(--surface-2))}.rag-badge .dot{background:var(--muted)}.rag-badge.ok .dot{background:var(--ok)}.rag-badge.warn .dot{background:var(--warn)}.trace-row{font-family:var(--mono);font-size:11.5px;padding:6px 0;border-bottom:1px dashed var(--border)}.trace-row .r{color:var(--muted)}.error{color:var(--danger);font-family:var(--mono);font-size:12px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--danger) 25%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--danger) 6%,var(--surface));margin-bottom:10px}.muted{color:var(--muted)}.product{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;margin-bottom:8px;background:var(--surface-2)}.product .name{font-weight:600}.product .reason{color:var(--muted);font-size:12px;margin-top:4px}.safety-chip{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:10px;background:var(--accent-dim);font-size:12px;color:var(--accent)}@media (max-width: 1180px){.cols{grid-template-columns:230px 1fr}.side{grid-column:1 / -1;border-left:0;border-top:1px solid var(--border)}}@media (max-width: 820px){.app{height:auto;min-height:100vh}.topbar,.topbar .right,.bottom{align-items:flex-start;flex-direction:column}.cols{display:block;overflow:visible}.rail,.main,.side{overflow:visible}.rail,.side{border:0;border-bottom:1px solid var(--border)}.memo-shell{max-height:none}.memo-page{margin:10px;padding:20px 18px 24px}.abort-card,.abort-grid,.memo-head,.memo-section{grid-template-columns:1fr}.memo-table{min-width:440px}.memo-section h4{position:static}}
