:root{--bg: #e8eaed;--panel: #ffffff;--panel-2: #f4f6f8;--border: #e7eaee;--text: #1b2430;--muted: #8b93a0;--accent: #1c8055;--accent-2: #2fa96a;--accent-deep: #0f5c39;--warn: #d9962a;--err: #e5556a;--info: #3f7fd6;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--shadow: 0 1px 2px rgba(16,24,40,.04), 0 2px 6px rgba(16,24,40,.06);--radius: 16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}.app{max-width:1200px;margin:0 auto;padding:24px 20px 60px}.head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 20px;margin-bottom:20px}.head h1{margin:0;font-size:26px;letter-spacing:-.4px;font-weight:700}.sub{margin:4px 0 0;color:var(--muted);font-size:13px}.envchip{font-weight:700;font-size:12px;padding:7px 16px;border-radius:999px;letter-spacing:.5px}.envchip.uat{background:#e7f4ec;color:var(--accent);border:1px solid #cfe9db}.envchip.prod{background:#fdecef;color:var(--err);border:1px solid #f7d3da}.statusbar{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-bottom:16px}.indicator{flex:1;min-width:200px;display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow)}.indicator.online{border-color:#cfe9db}.indicator.busy{border-color:#f2e3c2}.indicator.offline{border-color:#f7d3da}.dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;background:var(--muted);box-shadow:0 0 0 4px #8b93a01f}.dot.online{background:var(--accent-2);box-shadow:0 0 0 4px #2fa96a2e}.dot.busy{background:var(--warn);box-shadow:0 0 0 4px #d9962a2e;animation:pulse 1.2s infinite}.dot.offline{background:var(--err);box-shadow:0 0 0 4px #e5556a2e}.dot.checking{background:var(--muted);animation:pulse 1s infinite}.dot.unknown{background:#c3c9d1}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.indBody{min-width:0}.indName{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px}.indState{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:var(--panel-2);padding:2px 8px;border-radius:6px}.indicator.online .indState{color:var(--accent);background:#e7f4ec}.indicator.busy .indState{color:var(--warn);background:#fbf1dc}.indicator.offline .indState{color:var(--err);background:#fdecef}.indSub{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.indMeta{opacity:.85}.refresh{align-self:center;white-space:nowrap}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.grid.two{grid-template-columns:1fr 1fr}@media(max-width:900px){.grid,.grid.two{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card h2{margin:0 0 16px;font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}.badge{font-size:11px;font-weight:600;color:var(--muted);background:var(--panel-2);border:1px solid var(--border);padding:2px 8px;border-radius:6px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}.field>span{font-size:12px;color:var(--muted);font-weight:600}.field em{color:var(--accent);font-style:normal}.hint{color:var(--muted);font-size:11px}.hint code,.field code{font-family:var(--mono);color:var(--accent);font-size:11px}input,select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font-size:13px;font-family:inherit;width:100%}input::placeholder{color:#b3bac3}input:focus,select:focus{outline:none;background:#fff;border-color:var(--accent-2);box-shadow:0 0 0 3px #2fa96a2e}.row{display:flex;gap:10px}.row .field{flex:1}.row.tight{gap:6px;align-items:stretch}.row.tight input{flex:1}button{font-family:inherit;font-size:13px;font-weight:600;border-radius:10px;padding:10px 15px;cursor:pointer;border:1px solid transparent;transition:filter .12s ease,box-shadow .12s ease}button:disabled{opacity:.5;cursor:not-allowed}button:not(:disabled):hover{filter:brightness(1.05)}.primary{background:linear-gradient(135deg,#23925f 0%,var(--accent) 55%,var(--accent-deep) 100%);color:#fff;box-shadow:0 2px 8px #1c805547}.ghost{background:#fff;color:var(--text);border-color:var(--border)}.ghost:not(:disabled):hover{background:var(--panel-2)}.danger{background:#fdecef;color:var(--err);border-color:#f7d3da}.small{padding:10px 12px}.actions{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}.actions button{flex:1}.card>button.ghost{width:100%;margin-top:4px}.summary{margin-top:14px;padding:13px;border-radius:12px;border:1px solid var(--border);background:var(--panel-2)}.summary.ok{border-color:#cfe9db;background:#eef8f2}.summary.warn{border-color:#f2e3c2;background:#fdf7ea}.summary.err{border-color:#f7d3da;background:#fdeef1}.summary p{margin:8px 0 0}.summary.ok p strong{color:var(--accent)}.summaryTop{display:flex;align-items:center;justify-content:space-between}.dur{color:var(--muted);font-size:12px}.pill{font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px}.pill.ok{background:#e7f4ec;color:var(--accent)}.pill.warn{background:#fbf1dc;color:var(--warn)}.pill.err{background:#fdecef;color:var(--err)}.pill.info{background:#e8f0fb;color:var(--info)}.code{background:#f6f8fa;border:1px solid var(--border);border-radius:12px;padding:14px;font-family:var(--mono);font-size:12px;color:#2b3440;overflow:auto;max-height:320px;margin:0;white-space:pre}.tableWrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12.5px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px}tbody tr:hover{background:var(--panel-2)}td.msg{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td.mono,.mono{font-family:var(--mono);font-size:12px}.muted{color:var(--muted)}.foot{margin-top:24px;color:var(--muted);font-size:12px;text-align:center}.foot code{font-family:var(--mono);color:var(--accent)}
