:root{--blue:#0d6efd;--blue-dark:#084298;--green:#198754;--red:#dc3545;--amber:#b76a00;--ink:#233247;--muted:#66788a;--line:#dde5ed;--surface:#fff;--bg:#f5f7fa;--shadow:0 8px 24px rgba(31,57,86,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--blue)}.mono,code,pre{font-family:Consolas,Monaco,monospace}code{overflow-wrap:anywhere}.muted{color:var(--muted);font-weight:400}.navbar{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 14px rgba(23,54,88,.04)}.navbar-inner{max-width:1500px;margin:auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:12px;color:#1c334f;text-decoration:none;letter-spacing:.05em;font-size:17px;font-weight:750}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:var(--blue);color:white;border-radius:11px;letter-spacing:0;font-weight:800}.brand strong{color:var(--blue)}.brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:0;font-weight:500}.navbar-actions{display:flex;align-items:center;gap:12px}.status-pill{padding:6px 11px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;white-space:nowrap}.status-pill.live{background:#e8f7ef;border-color:#bce9cd;color:#17613d}.container{max-width:1500px;margin:auto;padding:30px 28px 45px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-heading h1{font-size:29px;letter-spacing:-.03em;margin:2px 0 4px}.page-heading p:last-child{color:var(--muted);margin:0}.eyebrow{color:#38649c;font-size:10px;letter-spacing:.16em;font-weight:800;margin:0}.layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}.left-column{display:grid;gap:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.card-header{display:flex;gap:12px;align-items:center;border-bottom:1px solid #edf1f5;padding:16px 18px}.card-header h2{font-size:15px;margin:0}.card-header p{font-size:12px;color:var(--muted);margin:2px 0 0}.step{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:8px;background:#e8f1ff;color:var(--blue);font-weight:800}.card-body{padding:18px}.card-body>label:not(.check){display:block;margin:0 0 6px;font-size:12px;font-weight:700}.card-body>label:not(.check):not(:first-child){margin-top:15px}.form-control,.form-select{width:100%;min-height:37px;padding:8px 10px;border:1px solid #cbd6e2;border-radius:7px;color:#233247;background:#fff;outline:none}.form-control:focus,.form-select:focus{border-color:#80b5ff;box-shadow:0 0 0 3px #0d6efd24}.input-group{display:flex;gap:7px}.input-group .form-select{min-width:0;flex:1}.check{display:flex;align-items:center;gap:9px;font-size:12px;margin:16px 0}.check input{accent-color:var(--blue)}.field-hint{font-size:11px;color:var(--muted);margin:6px 0 14px}.btn{border:1px solid transparent;border-radius:7px;padding:9px 14px;min-height:37px;white-space:nowrap;font-weight:650;transition:background .15s,border-color .15s,transform .15s}.btn:not(:disabled):active{transform:translateY(1px)}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:#0b5ed7}.btn-success{background:var(--green);color:#fff}.btn-success:hover:not(:disabled){background:#146c43}.btn-outline{background:#fff;border-color:#cbd6e2;color:#294465}.btn-outline:hover:not(:disabled){background:#f0f5fb;border-color:#a8bdd6}.btn-block{width:100%}.button-stack{display:grid;gap:9px}.tree{border:1px solid var(--line);border-radius:8px;background:#fbfcfe;min-height:110px;max-height:310px;overflow:auto;margin-bottom:14px;padding:7px}.tree-item{width:100%;display:flex;align-items:center;text-align:left;border:0;background:transparent;color:#334962;padding:7px 8px;border-radius:6px;gap:7px;font-size:12px}.tree-item:hover{background:#edf4ff}.tree-item.active{background:#e7f0ff;color:#074ca4;font-weight:750}.tree-item .tree-icon{width:17px;text-align:center;color:#6a88a5}.tree-indent{padding-left:16px}.tree-indent.two{padding-left:30px}.tree-label{overflow-wrap:anywhere}.empty-small{font-size:12px;color:var(--muted);padding:10px}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px 18px;box-shadow:var(--shadow)}.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:12px}.stat-card strong{display:block;font-size:29px;line-height:1.25;margin:3px 0;color:#183a61}.workspace-heading{display:flex;justify-content:space-between;align-items:start;gap:15px;padding:21px 22px 17px}.workspace-heading h2{font-size:20px;margin:3px 0}.workspace-heading p:last-child{color:var(--muted);margin:0}.badge{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.badge-muted{background:#e9edf2;color:#56687a}.badge-passed{background:#dff4e8;color:#157347}.badge-failed{background:#fbe1e4;color:#a52832}.badge-pending{background:#fff2d1;color:#8b630a}.tabs{display:flex;gap:2px;padding:0 17px;overflow-x:auto;border-bottom:1px solid var(--line)}.tab{position:relative;white-space:nowrap;border:0;background:transparent;color:#61748a;padding:12px 13px;font-size:12px;font-weight:700}.tab:hover{color:#0b5ed7}.tab.active{color:#0b5ed7}.tab.active:after{content:"";position:absolute;height:3px;left:8px;right:8px;bottom:0;border-radius:3px 3px 0 0;background:var(--blue)}.tab-tools{display:flex;align-items:center;gap:10px;padding:14px 19px 5px}.tab-tools label{font-size:12px;font-weight:700;white-space:nowrap}.tab-tools input{max-width:320px;min-height:32px}.tab-tools span{margin-left:auto;font-size:12px}.view-content{padding:12px 20px 24px;min-height:360px}.empty-state{text-align:center;padding:55px 20px;color:var(--muted)}.empty-state h3{color:#334a63;margin:3px 0}.empty-icon{font-size:35px;color:#87a9d2}.alert{padding:12px 15px;border-radius:9px;margin-bottom:18px;border:1px solid #f2c9ce;background:#fff0f1;color:#8c252e}.alert.success{border-color:#bce9cd;background:#e8f7ef;color:#17613d}.alert.info{border-color:#bed8f8;background:#edf5ff;color:#245c9b}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:3px 0 12px}.section-title h3{margin:0;font-size:16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:9px 10px;text-align:left;vertical-align:top;border-bottom:1px solid #e6ebf0}th{background:#f2f5f9;color:#425d78;position:sticky;top:0;z-index:1;font-weight:750}tr:last-child td{border-bottom:0}tbody tr:nth-child(even){background:#fafbfd}.value{max-width:260px;overflow-wrap:anywhere;word-break:break-word}.explanation{min-width:210px;max-width:370px}.summary-list{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 15px;margin:0}.summary-list dt{color:var(--muted)}.summary-list dd{margin:0;overflow-wrap:anywhere}.panel{padding:16px;border:1px solid var(--line);border-radius:9px;background:#fbfcfe;margin:12px 0}.panel h3{margin:0 0 10px;font-size:15px}.panel p{margin:6px 0}.app-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.app-overview button{border:1px solid var(--line);background:#fff;border-radius:9px;text-align:left;padding:14px}.app-overview button:hover{border-color:#90b8ed;box-shadow:0 4px 12px #0d6efd18}.app-overview strong,.app-overview code,.app-overview small{display:block}.app-overview code{font-size:11px;margin:6px 0}.app-overview small{color:var(--muted)}.note{background:#fff8e6;border-left:3px solid #deb653;padding:8px 10px;margin:7px 0;color:#5d4b22}.flow-group,.test-group{margin:12px 0;border:1px solid var(--line);border-radius:9px;background:#fff}.flow-group>summary,.test-group>summary{padding:12px 14px;font-weight:750;cursor:pointer}.flow-group[open]>summary,.test-group[open]>summary{border-bottom:1px solid var(--line)}.flow-group .inner,.test-group .inner{padding:12px}.test-row{border:1px solid var(--line);border-radius:7px;margin:6px 0}.test-row>summary{display:flex;align-items:center;gap:10px;padding:9px 11px;cursor:pointer;flex-wrap:wrap}.test-row .details{padding:7px 13px;border-top:1px solid var(--line);background:#fbfcfe}.test-row .details p{margin:7px 0}.trace{background:#101b2a;color:#d8e8f6;padding:17px;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.55 Consolas,monospace}.loading{position:relative;opacity:.75}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:spin .8s linear infinite;margin-right:7px}@keyframes spin{to{transform:rotate(360deg)}}footer{font-size:11px;color:#8191a3;text-align:center;margin:30px 0 0}
.brand-logo{display:block;width:106px;height:50px;object-fit:contain;flex:none}.pin-control{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.pin-control label{display:block;margin:0 0 6px;font-size:12px;font-weight:700}.pin-control .field-hint{line-height:1.45;margin:8px 0 12px}
@media(max-width:1160px){.layout{grid-template-columns:280px minmax(0,1fr)}.summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.layout{grid-template-columns:1fr}.left-column{grid-template-columns:repeat(2,minmax(0,1fr))}.export-card{grid-column:1/-1}.summary-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:650px){.container{padding:20px 14px}.navbar-inner{padding:11px 14px}.brand-logo{width:82px;height:40px}.navbar-actions #export-zip{display:none}.page-heading{display:block}.page-heading .btn{margin-top:14px}.left-column{grid-template-columns:1fr}.export-card{grid-column:auto}.summary-grid{grid-template-columns:repeat(2,1fr)}.stat-card{padding:12px}.workspace-heading{display:block}.workspace-heading .badge{display:inline-block;margin-top:12px}.tab-tools{display:block}.tab-tools label,.tab-tools input{display:block;max-width:none;width:100%;margin-bottom:6px}.tab-tools span{display:block;text-align:right}.view-content{padding:10px}.summary-list{grid-template-columns:1fr}.summary-list dt{font-size:11px}}
