:root{--ink:#142033;--muted:#667085;--line:#e4e8ef;--soft:#f5f7fa;--nav:#111a2b;--nav2:#172238;--blue:#2463eb;--blue2:#174fc7;--green:#15945e;--red:#d63b3b;--amber:#b66b00;--shadow:0 16px 48px rgba(17,28,48,.14);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--soft)}*{box-sizing:border-box}body{margin:0;min-width:1100px;background:var(--soft)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--nav);color:#d6dfed;display:flex;flex-direction:column;padding:24px 16px 16px;z-index:10}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 22px;color:#fff}.brand-mark{width:38px;height:38px;border-radius:10px;background:var(--blue);display:grid;place-items:center;color:#fff;font-weight:800;letter-spacing:-1px;box-shadow:0 8px 20px rgba(36,99,235,.3)}.brand strong,.brand small{display:block}.brand strong{font-size:17px}.brand small{font-size:12px;color:#8190a7;letter-spacing:.12em;text-transform:uppercase;margin-top:1px}.workspace-picker{border-top:1px solid #27344a;border-bottom:1px solid #27344a;padding:16px 4px;position:relative}.workspace-picker>label{font-size:11px;color:#7f8da4;letter-spacing:.08em;padding:0 7px}.workspace-button{width:100%;margin-top:8px;padding:10px 8px;border:0;border-radius:7px;color:#eef4ff;background:#1b2942;display:flex;align-items:center;gap:9px;cursor:pointer;text-align:left}.workspace-button #workspaceName{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;font-weight:600}.workspace-dot{width:9px;height:9px;border-radius:50%;background:var(--blue)}.chevron{color:#8795ab}.workspace-menu{position:absolute;left:0;top:79px;width:300px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:7px;z-index:20}.workspace-menu button{display:flex;width:100%;align-items:center;gap:10px;border:0;background:transparent;border-radius:7px;padding:10px;cursor:pointer;text-align:left}.workspace-menu button:hover{background:var(--soft)}.workspace-menu .add-workspace{border-top:1px solid var(--line);margin-top:5px;color:var(--blue);font-weight:650}nav{padding-top:15px;display:grid;gap:3px}nav button,.sidebar-bottom>button{width:100%;background:transparent;border:0;color:#aab7ca;border-radius:7px;padding:10px 12px;text-align:left;display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:540}nav button span,.sidebar-bottom>button span{font-size:15px;width:18px;text-align:center;color:#8190a7}nav button:hover,.sidebar-bottom>button:hover{background:#17243a;color:#fff}nav button.active{background:#20304a;color:#fff;box-shadow:inset 3px 0 var(--blue)}nav button.active span{color:#7da4ff}.sidebar-bottom{margin-top:auto;border-top:1px solid #27344a;padding-top:10px}.admin-row{margin-top:11px;display:flex;align-items:center;gap:9px;padding:10px 5px 0}.avatar{width:32px;height:32px;border-radius:50%;background:#2a3a54;display:grid;place-items:center;font-weight:700}.admin-row div{flex:1}.admin-row strong,.admin-row small{display:block}.admin-row strong{font-size:13px;color:#fff}.admin-row small{font-size:11px;color:#78879e}.admin-row button{border:0;background:transparent;color:#8290a5;cursor:pointer;font-size:16px}.main{grid-column:2;min-height:100vh}.topbar{height:106px;background:#fff;border-bottom:1px solid var(--line);padding:21px 36px 18px;display:flex;justify-content:space-between;align-items:flex-end;position:sticky;top:0;z-index:5}.breadcrumb{font-size:12px;color:#8a94a4;margin-bottom:7px}.topbar h1{font-size:25px;line-height:1.1;margin:0;letter-spacing:-.025em}.top-actions{display:flex;align-items:center;gap:16px}.health{font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:center}.health i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #e3f6ed}.content{padding:28px 36px 54px;max-width:1600px;margin:auto}.btn{border:1px solid #d7dde6;border-radius:7px;background:#fff;color:#27364c;min-height:38px;padding:8px 14px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{border-color:#aeb9c9;background:#fbfcfe}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue2)}.btn.danger{color:var(--red);border-color:#f1c8c8}.btn.small{min-height:30px;padding:5px 10px;font-size:12px}.btn.wide{width:100%}.icon-btn{border:0;background:transparent;font-size:25px;color:#7e8998;cursor:pointer}.section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.section-head h2{font-size:18px;margin:0 0 5px}.section-head p{margin:0;color:var(--muted);font-size:13px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:26px}.metric{padding:21px 24px;border-right:1px solid var(--line)}.metric:last-child{border:0}.metric label{font-size:12px;color:var(--muted);display:block;margin-bottom:10px}.metric strong{font-size:28px;letter-spacing:-.04em}.metric small{font-size:11px;color:#8a94a4;margin-left:7px}.surface{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:22px;overflow:hidden}.surface-head{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.surface-head h2{font-size:15px;margin:0}.surface-head p{font-size:12px;color:var(--muted);margin:4px 0 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;background:#f9fafb;color:#687386;font-size:11px;letter-spacing:.04em;font-weight:700;text-transform:uppercase;padding:11px 15px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 15px;border-bottom:1px solid #edf0f4;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}.table-title{font-weight:670;color:#1b2a3f}.table-sub{font-size:11px;color:#8791a0;margin-top:4px;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mono{font-family:"Cascadia Code",Consolas,monospace;font-size:12px}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:100px;padding:4px 8px;background:#eef2f7;color:#59677a;font-size:11px;font-weight:650;white-space:nowrap}.pill.active,.pill.completed,.pill.passed,.pill.published{color:#087a48;background:#e4f7ee}.pill.running{color:#1557cc;background:#e6efff}.pill.failed,.pill.stopped{color:#bd2e2e;background:#fdeaea}.pill.draft,.pill.paused{color:#9b5b00;background:#fff2dc}.actions{display:flex;gap:7px;justify-content:flex-end}.link-btn{border:0;background:transparent;color:var(--blue);font-weight:650;cursor:pointer;padding:4px}.empty{padding:54px 24px;text-align:center;color:var(--muted)}.empty strong{display:block;color:#344257;font-size:16px;margin-bottom:6px}.empty-icon{width:52px;height:52px;margin:0 auto 13px;border:1px dashed #b9c4d3;border-radius:13px;display:grid;place-items:center;color:#8090a6;font-size:22px}.two-col{display:grid;grid-template-columns:1.3fr .7fr;gap:22px}.detail-list{display:grid}.detail-row{display:grid;grid-template-columns:160px 1fr;padding:13px 20px;border-bottom:1px solid #edf0f4}.detail-row:last-child{border:0}.detail-row label{font-size:12px;color:var(--muted)}.callout{padding:16px 18px;background:#eef4ff;border-left:3px solid var(--blue);font-size:13px;line-height:1.7;margin-bottom:20px}.toolbar{display:flex;gap:9px;align-items:center;margin-bottom:16px}.toolbar input,.toolbar select{height:38px;border:1px solid #d7dde6;border-radius:7px;background:#fff;padding:0 11px}.toolbar input{min-width:280px}.toolbar .spacer{flex:1}.form-stack{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-stack label,.form-grid label{display:grid;gap:7px;font-size:12px;color:#4d596a;font-weight:620}.form-stack input,.form-stack select,.form-stack textarea,.form-grid input,.form-grid select,.form-grid textarea{border:1px solid #d4dbe5;border-radius:7px;padding:10px 11px;color:var(--ink);background:#fff;outline:none}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus,.form-grid input:focus,.form-grid select:focus{border-color:#7ba2f9;box-shadow:0 0 0 3px #eaf0ff}.form-stack textarea{min-height:96px;resize:vertical}.check-row{display:flex!important;align-items:center;gap:8px!important}.check-row input{width:16px;height:16px}.form-error{font-size:12px;color:var(--red);min-height:16px}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center}.modal-backdrop{position:absolute;inset:0;background:rgba(10,18,31,.5);backdrop-filter:blur(2px)}.modal-panel{position:relative;width:min(720px,calc(100vw - 80px));max-height:calc(100vh - 70px);background:#fff;border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;animation:modalIn .16s ease-out}.modal-panel.wide{width:min(1100px,calc(100vw - 60px))}.modal-panel>header{padding:20px 23px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.modal-panel h2{margin:3px 0 0;font-size:20px}.modal-kicker{font-size:10px;letter-spacing:.1em;color:var(--blue);font-weight:750}.modal-body{padding:22px 23px;overflow:auto}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:18px}.toast{position:fixed;right:26px;bottom:26px;background:#19263a;color:#fff;padding:13px 17px;border-radius:8px;box-shadow:var(--shadow);z-index:80;font-size:13px;animation:toastIn .18s ease-out}.toast.error{background:#a72424}.login-view{min-height:100vh;background:#101a2b;color:#fff;display:grid;place-items:center;position:relative;overflow:hidden}.login-view:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 20% 45%,rgba(36,99,235,.18),transparent 26%),linear-gradient(120deg,transparent 49.8%,rgba(255,255,255,.025) 50%,transparent 50.2%);background-size:auto,52px 52px}.login-brand{position:absolute;left:38px;top:30px;display:flex;align-items:center;gap:12px;font-weight:700;font-size:17px}.login-panel{position:relative;width:420px;background:#fff;color:var(--ink);padding:40px 42px 36px;border-radius:13px;box-shadow:0 30px 90px rgba(0,0,0,.32)}.login-panel h1{font-size:27px;margin:7px 0 9px;letter-spacing:-.03em}.login-panel>p{font-size:13px;color:var(--muted);margin:0 0 27px}.login-kicker{font-size:10px;letter-spacing:.16em;color:var(--blue);font-weight:800}.login-foot{position:absolute;bottom:25px;font-size:10px;letter-spacing:.15em;color:#62728b}.dropzone{border:1.5px dashed #a9b6c8;border-radius:10px;padding:42px;text-align:center;background:#fafbfd;transition:.15s}.dropzone.drag{border-color:var(--blue);background:#eef4ff}.dropzone strong{display:block;margin-bottom:6px}.dropzone p{font-size:12px;color:var(--muted);margin:0 0 14px}.preflight{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.code-editor{position:relative;height:430px;border:1px solid #25344c;border-radius:8px;background:#0e1726;overflow:hidden}.code-editor pre,.code-editor textarea{position:absolute;inset:0;margin:0;padding:16px 18px;border:0;font:12.5px/1.65 "Cascadia Code",Consolas,monospace;white-space:pre;overflow:auto;tab-size:4}.code-editor pre{color:#d8e4f2;pointer-events:none}.code-editor textarea{resize:none;background:transparent;color:transparent;caret-color:#fff;outline:none;-webkit-text-fill-color:transparent}.code-editor .kw{color:#7ca7ff}.code-editor .str{color:#8fd69c}.code-editor .com{color:#65758c;font-style:italic}.tabs{display:flex;border-bottom:1px solid var(--line);gap:20px;padding:0 20px}.tabs button{border:0;background:transparent;padding:13px 1px;color:var(--muted);font-weight:650;cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--blue);border-color:var(--blue)}.json-view{font:12px/1.65 "Cascadia Code",Consolas,monospace;background:#111a29;color:#d9e5f3;padding:15px;border-radius:7px;white-space:pre-wrap;max-height:360px;overflow:auto}.record-data{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.record-data div{padding:12px 14px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:125px 1fr;gap:10px}.record-data label{font-size:11px;color:var(--muted)}.record-data span{font-size:13px;word-break:break-word}@keyframes modalIn{from{transform:translateY(10px);opacity:0}}@keyframes toastIn{from{transform:translateY(8px);opacity:0}}@media(max-width:1200px){.content{padding-left:24px;padding-right:24px}.topbar{padding-left:24px;padding-right:24px}.metrics{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}}
