:root{--bg:#f7f7f8;--card:#fff;--text:#1c1c1e;--muted:#6b6b70;--border:#e4e4e7;--accent:#2563eb}@media (prefers-color-scheme:dark){:root{--bg:#111113;--card:#1c1c1f;--text:#ececef;--muted:#9a9aa2;--border:#2e2e33;--accent:#60a5fa}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif}main{max-width:1100px;margin:0 auto;padding:32px 16px}h1{margin:0 0 4px;font-size:24px}h2{margin:32px 0 12px;font-size:16px}.muted{color:var(--muted);font-size:14px}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px}.card h3{margin:0 0 8px;font-size:15px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:12px}:root{--ok:#15803d;--warn:#b45309;--danger:#b91c1c}@media (prefers-color-scheme:dark){:root{--ok:#4ade80;--warn:#fbbf24;--danger:#f87171}}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;overflow-x:auto}.nav{border-bottom:1px solid var(--border);background:var(--card);z-index:1;align-items:center;gap:4px;height:52px;padding:0 16px;display:flex;position:sticky;top:0;overflow-x:auto}.nav a{color:var(--muted);white-space:nowrap;border-radius:6px;padding:6px 10px;font-size:14px}.nav a:hover{background:var(--bg);text-decoration:none}.nav a.active{color:var(--text);background:var(--bg);font-weight:600}.nav .brand{color:var(--text);margin-right:12px;font-weight:700}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.stats{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.stat{color:inherit;display:block}.stat:hover{border-color:var(--accent);text-decoration:none}.stat-value{font-variant-numeric:tabular-nums;margin-top:6px;font-size:22px;font-weight:700}.stat-value.warn,td.warn{color:var(--warn)}.button{white-space:nowrap;font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;padding:7px 14px;font-size:14px}.button.small{color:var(--accent);background:0 0;padding:4px 10px;font-size:13px}.sync{align-items:center;gap:8px;display:flex}.note{text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-size:12px;overflow:hidden}.note.ok{color:var(--ok)}.note.error,.error-text{color:var(--danger);font-size:12px}.error-text{overflow-wrap:anywhere;max-width:360px;margin-top:4px}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.filters select,.filters input[type=search]{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;padding:6px 10px;font-size:14px}.filters input[type=search]{min-width:180px}.check{align-items:center;gap:4px;font-size:14px;display:flex}.table-wrap{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:9px 12px}th{color:var(--muted);background:var(--bg);white-space:nowrap;font-size:12px;font-weight:600}tr:last-child td{border-bottom:none}.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}td.title{min-width:220px}td.empty{text-align:center;color:var(--muted);padding:32px}.item{white-space:nowrap}.badge{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px;display:inline-block}.badge.active,.badge.order-delivered,.badge.product-active{color:var(--ok);border-color:currentColor}.badge.error,.badge.order-cancelled,.badge.order-refunded{color:var(--danger);border-color:currentColor}.badge.order-paid{color:var(--warn);border-color:currentColor}.badge.order-shipped{color:var(--accent);border-color:currentColor}.pager{justify-content:flex-end;align-items:center;gap:12px;margin-top:12px;font-size:14px;display:flex}.small{font-size:12px}td.command{overflow-wrap:anywhere;max-width:360px}.badge.run-succeeded{color:var(--ok);border-color:currentColor}.badge.run-failed{color:var(--danger);border-color:currentColor}.badge.run-running{color:var(--accent);border-color:currentColor}.form{flex-direction:column;gap:14px;max-width:760px;display:flex}.form label{flex-direction:column;flex:1;gap:4px;font-size:13px;font-weight:600;display:flex}.form label.check{flex-direction:row;font-weight:400}.form input:not([type=checkbox]),.form select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:7px 10px;font-size:14px;font-weight:400}.form .row{flex-wrap:wrap;gap:12px;display:flex}.hint{color:var(--muted);font-size:12px;font-weight:400}.split{grid-template-columns:minmax(240px,320px) 1fr;align-items:start;gap:12px;display:grid}@media (max-width:760px){.split{grid-template-columns:1fr}}.runs tr.selected td{background:var(--bg)}.log pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--card);max-height:520px;margin:6px 0 0;overflow:auto}.button.danger{color:var(--danger);border-color:var(--danger);background:0 0}.danger-zone{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}a.button{display:inline-block}a.button:hover{text-decoration:none}.button.secondary{color:var(--accent);background:0 0}.button:disabled{opacity:.6;cursor:default}.chat-layout{grid-template-columns:220px 1fr;align-items:start;gap:20px;display:grid}@media (max-width:760px){.chat-layout{grid-template-columns:1fr}}.chat-sessions{flex-direction:column;gap:10px;display:flex;position:sticky;top:68px}.chat-sessions .button{text-align:center}.chat-sessions ul{flex-direction:column;gap:2px;max-height:70vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.chat-sessions li a{color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:6px 8px;font-size:14px;display:block;overflow:hidden}.chat-sessions li a:hover{background:var(--card);text-decoration:none}.chat-sessions li a.active{background:var(--card);border:1px solid var(--border)}.chat-main{min-width:0}.chat{flex-direction:column;gap:12px;max-width:880px;display:flex}.chat-log{flex-direction:column;gap:10px;display:flex}.bubble{overflow-wrap:anywhere;border-radius:12px;max-width:100%;padding:10px 14px}.bubble.user{background:var(--accent);color:#fff;white-space:pre-wrap;align-self:flex-end;max-width:80%}.bubble.assistant{background:var(--card);border:1px solid var(--border)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md table{border-collapse:collapse;margin:8px 0;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);text-align:left;padding:4px 8px}.md pre{background:var(--bg);border-radius:6px;padding:8px;overflow-x:auto}.tool{border:1px solid var(--border);background:var(--card);border-radius:10px;padding:8px 12px;font-size:14px}.tool.confirm{border-color:var(--warn);box-shadow:0 0 0 1px var(--warn)}.tool-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-name{font-weight:600}.tool-summary{color:var(--muted);overflow-wrap:anywhere}.tool pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);border-radius:6px;max-height:320px;margin:8px 0 0;padding:8px;overflow:auto}.tool details summary{cursor:pointer;margin-top:4px}.diff pre.del{border-left:3px solid var(--danger)}.diff pre.add{border-left:3px solid var(--ok)}.confirm-actions{gap:8px;margin-top:10px;display:flex}.badge.risk-low{color:var(--muted)}.badge.risk-medium,.badge.status-awaiting{color:var(--warn);border-color:currentColor}.badge.risk-high,.badge.status-failed,.badge.result-failed{color:var(--danger);border-color:currentColor}.badge.status-succeeded,.badge.result-succeeded{color:var(--ok);border-color:currentColor}.badge.status-running{color:var(--accent);border-color:currentColor}.badge.status-rejected,.badge.result-rejected{color:var(--muted)}.notice{color:var(--muted);text-align:center;font-size:13px}.composer{flex-direction:column;gap:8px;display:flex}.composer textarea{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);resize:vertical;border-radius:10px;padding:10px 12px;font-size:15px}.composer-actions{justify-content:flex-end;gap:8px;display:flex}.examples{flex-wrap:wrap;gap:6px;display:flex}.examples .tag{cursor:pointer;font:inherit;background:0 0;font-size:12px}.badge.task-queued{color:var(--muted)}.badge.task-running{color:var(--accent);border-color:currentColor}.badge.task-done,.badge.task-nothing{color:var(--ok);border-color:currentColor}.badge.task-failed{color:var(--danger);border-color:currentColor}.badge.task-needs_decision,.badge.attention{color:var(--warn);border-color:currentColor}.badge.task-cancelled,.badge.event-unmatched{color:var(--muted)}.badge.event-matched{color:var(--accent);border-color:currentColor}.badge.event-pending{color:var(--warn)}.rule-errors{border-color:var(--danger)}.rule-errors li{color:var(--danger);font-size:13px}.login{max-width:360px;margin:12vh auto 0;padding:0 16px}.login h1{margin-bottom:20px;font-size:20px}.login-form{flex-direction:column;gap:14px;display:flex}.login-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-form input{font:inherit;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:15px}.login-form .button{padding:9px 14px;font-size:15px}.nav .logout{margin-left:auto}.nav .logout button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:14px}.decision-form{flex-direction:column;gap:10px;max-width:560px;margin-top:8px;display:flex}.decision-form textarea,.decision-form select,.decision-more textarea,.decision-more select{font:inherit;border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:14px}.decision-buttons{flex-wrap:wrap;gap:8px;display:flex}.decision-list{padding-left:18px}.decision-list li{margin:4px 0}.decision-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.decision-card p{margin:0 0 6px}.option-list{margin:6px 0 4px;padding-left:18px}.decision-more{margin-bottom:2px}.decision-more[open]{flex-direction:column;gap:8px;display:flex}.flow{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.flow-step{color:inherit;position:relative}.flow-step:hover{border-color:var(--accent);text-decoration:none}.flow-step:not(:last-child):after{content:"→";color:var(--muted);font-size:13px;position:absolute;top:50%;right:-8px;transform:translate(50%,-50%)}.stat-value.ok{color:var(--ok)}.flow-lists{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.flow-lists h3{margin-top:0;font-size:15px}.task-list{margin:0;padding:0;list-style:none}.task-list li{border-top:1px solid var(--border);padding:6px 0}.task-list li:first-child{border-top:none}@media (max-width:720px){.flow{grid-template-columns:repeat(2,1fr)}.flow-step:after{display:none}.flow-lists,.decision-cards{grid-template-columns:1fr}}.task-list li,.task-list a{font-size:14px}h2 .button.small,h2 form{vertical-align:middle;margin-left:8px}
