:root{--bg:#0f0d1a;--panel:#fff;--ink:#1a1526;--ink-soft:#5b5470;--ink-faint:#8a83a0;--line:#ece9f2;--line-strong:#ddd8e8;--brand:#6d00cc;--brand-2:#b400ff;--brand-soft:#f4ecff;--brand-ink:#4a00a0;--relay:#ff6a3d;--relay-soft:#fff1ec;--ok:#12a150;--ok-soft:#e7f7ee;--warn:#c47f00;--warn-soft:#fdf4e3;--err:#d23b3b;--err-soft:#fdecec;--radius:14px;--shadow:0 1px 2px #1a15260f,0 12px 40px #1a15261a;--shadow-sm:0 1px 2px #1a15260d,0 4px 14px #1a15260f;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 700px at 15% -10%,#2a1a4d 0%,transparent 55%),radial-gradient(1000px 700px at 100% 0%,#3d0a4d 0%,transparent 50%),var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh}.app{max-width:1120px;margin:0 auto;padding:40px 24px 80px}.topbar{align-items:center;gap:14px;margin-bottom:28px;display:flex}.logo{color:#fff;align-items:center;gap:12px;display:flex}.logo .marks{align-items:center;gap:9px;display:flex}.mark{width:34px;height:34px;box-shadow:var(--shadow-sm);border-radius:9px;display:block}.arrow{color:#ffffff8c;font-size:16px}.logo h1{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.logo p{color:#fff9;margin:2px 0 0;font-size:12.5px}.topbar .spacer{flex:1}.ghost-btn{color:#ffffffbf;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:9px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600}.ghost-btn:hover{color:#fff;background:#ffffff14}.grid{grid-template-columns:264px 1fr;align-items:start;gap:22px;display:grid}.rail{background:#ffffff0a;border:1px solid #ffffff17;border-radius:16px;padding:10px;position:sticky;top:24px}.rail .rail-head{padding:12px 12px 8px}.rail .rail-head .t{color:#fff;letter-spacing:.04em;text-transform:uppercase;opacity:.7;font-size:12px;font-weight:700}.rail .prog{background:#ffffff1f;border-radius:999px;height:5px;margin-top:10px;overflow:hidden}.rail .prog>i{background:linear-gradient(90deg,var(--brand-2),#ff8a5c);border-radius:999px;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1);display:block}.steps{margin:8px 0 4px;padding:0;list-style:none}.steps li{color:#ffffff9e;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:11px;padding:9px 11px;font-size:13.5px;font-weight:500;transition:background .15s;display:flex}.steps li:hover{background:#ffffff0d}.steps li .dot{color:#fff9;border:1.5px solid #ffffff38;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;transition:all .2s;display:grid}.steps li.active{color:#fff;background:#ffffff1a}.steps li.active .dot{color:var(--brand);background:#fff;border-color:#fff}.steps li.done{color:#ffffffd9}.steps li.done .dot{background:var(--ok);border-color:var(--ok);color:#fff}.steps li.locked{opacity:.5;cursor:not-allowed}.panel{background:var(--panel);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;min-height:560px;display:flex;overflow:hidden}.panel-body{flex:1;padding:40px 44px}.panel-foot{border-top:1px solid var(--line);background:#fbfaff;align-items:center;gap:12px;padding:18px 44px;display:flex}.panel-foot .spacer{flex:1}.step-num{color:var(--brand);letter-spacing:.06em;text-transform:uppercase;font-size:12.5px;font-weight:700}h2.title{letter-spacing:-.02em;margin:8px 0;font-size:25px}p.lede{color:var(--ink-soft);max-width:62ch;margin:0 0 24px;font-size:15px;line-height:1.6}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:11px 20px;font-family:inherit;font-size:14px;font-weight:650;transition:transform 80ms,box-shadow .15s,background .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(135deg,var(--brand-2),var(--brand));color:#fff;box-shadow:0 4px 14px #6d00cc52}.btn.primary:hover{box-shadow:0 6px 20px #6d00cc6b}.btn.primary[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}.btn.subtle{color:var(--ink-soft);border-color:var(--line-strong);background:#fff}.btn.subtle:hover{border-color:var(--ink-faint);color:var(--ink)}.btn.subtle[disabled]{opacity:.55;cursor:not-allowed}.btn.ghost{color:var(--ink-soft);background:0 0}.btn.ghost:hover{color:var(--ink)}.field{margin-bottom:18px}.field label{color:var(--ink);margin-bottom:7px;font-size:13px;font-weight:650;display:block}.field .hint{color:var(--ink-faint);margin-top:6px;font-size:12.5px;line-height:1.5}.input,.select{border:1px solid var(--line-strong);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:11px 13px;font-family:inherit;font-size:14px;transition:border .15s,box-shadow .15s}.input:focus,.select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.input.mono{font-family:var(--mono);letter-spacing:.02em}.callout{border:1px solid var(--line);color:var(--ink-soft);background:#fbfaff;border-radius:12px;gap:12px;margin:4px 0 20px;padding:14px 16px;font-size:13.5px;line-height:1.55;display:flex}.callout .i{flex:none;font-size:16px;line-height:1.4}.callout.brand{background:var(--brand-soft);color:var(--brand-ink);border-color:#e4d3ff}.callout.warn{background:var(--warn-soft);color:#7a5200;border-color:#f3e2bf}.callout.ok{background:var(--ok-soft);color:#0c6b38;border-color:#c6ecd5}.callout.err{background:var(--err-soft);color:#a02020;border-color:#f3c9c9}.callout b{color:inherit}.callout a{color:var(--brand);font-weight:650;text-decoration:none}.callout a:hover{text-decoration:underline}.scopes{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.scope{font-family:var(--mono);border:1px solid var(--line-strong);color:var(--brand-ink);background:#f4f2fa;border-radius:7px;padding:5px 10px;font-size:12px}.card-list{flex-direction:column;gap:10px;display:flex}.pick{border:1.5px solid var(--line-strong);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;transition:all .14s;display:flex}.pick:hover{background:#fcfbff;border-color:#c9bce6}.pick.sel{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 3px #6d00cc14}.pick .ava{color:#fff;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;font-size:15px;font-weight:700;display:grid}.pick .meta{flex:1}.pick .meta .n{font-size:14.5px;font-weight:650}.pick .meta .s{color:var(--ink-faint);margin-top:2px;font-size:12.5px}.pick .radio{border:2px solid var(--line-strong);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;display:grid}.pick.sel .radio{border-color:var(--brand)}.pick.sel .radio:after{content:"";background:var(--brand);border-radius:50%;width:10px;height:10px}.drop{border:2px dashed var(--line-strong);text-align:center;cursor:pointer;background:#fbfaff;border-radius:16px;padding:40px 24px;transition:all .15s}.drop:hover,.drop.drag{border-color:var(--brand);background:var(--brand-soft)}.drop .ic{font-size:34px}.drop .t{margin-top:8px;font-size:15px;font-weight:650}.drop .s{color:var(--ink-faint);margin-top:4px;font-size:13px}.filecard{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;display:flex}.filecard .fi{background:var(--relay-soft);width:42px;height:42px;color:var(--relay);border-radius:10px;flex:none;place-items:center;font-size:20px;display:grid}.filecard .fn{font-size:14px;font-weight:650}.filecard .fs{color:var(--ink-faint);margin-top:2px;font-size:12.5px}.filecard .x{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:4px;font-size:20px}.filecard .x:hover{color:var(--err)}.found{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.found .f{border:1px solid var(--line-strong);background:#f4f2fa;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:550;display:flex}.found .f b{color:var(--brand)}.rev{border:1px solid var(--line);border-radius:14px;overflow:hidden}.rev .rev-h{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);background:#faf9fd;padding:11px 16px;font-size:12px;font-weight:700;display:flex}.rev .row{border-bottom:1px solid var(--line);align-items:center;padding:13px 16px;font-size:14px;display:flex}.rev .row:last-child{border-bottom:none}.rev .row .a{flex:1;align-items:center;gap:10px;min-width:0;font-weight:600;display:flex}.rev .row .a .an{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rev .row .a .ti{background:var(--relay-soft);border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font-size:15px;display:grid}.rev .row .c{text-align:right;flex:none;width:150px}.pill{border-radius:999px;align-items:center;gap:5px;padding:4px 9px;font-size:11.5px;font-weight:650;display:inline-flex}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.err{background:var(--err-soft);color:var(--err)}.summary-row{gap:12px;margin:4px 0 22px;display:flex}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;flex:1;padding:14px 16px}.stat .v{letter-spacing:-.02em;font-size:24px;font-weight:750}.stat .l{color:var(--ink-faint);margin-top:2px;font-size:12.5px}.stat.ok .v{color:var(--ok)}.stat.warn .v{color:var(--warn)}.section-title{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;margin:24px 0 10px;font-size:12px;font-weight:750}.table-review{border:1px solid var(--line-strong);background:#fff;border-radius:14px;margin-bottom:12px;overflow:hidden}.table-review.unselected{opacity:.62}.table-review>summary{cursor:pointer;background:#faf9fd;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;list-style:none;display:flex}.table-review>summary::-webkit-details-marker{display:none}.table-toggle{cursor:pointer;align-items:center;gap:10px;min-width:0;display:flex}.table-toggle input{width:17px;height:17px;accent-color:var(--brand);flex:none}.table-toggle b,.table-toggle small{display:block}.table-toggle b{font-size:14px}.table-toggle small{color:var(--ink-faint);margin-top:2px;font-size:12px;font-weight:500}.table-editor{border-top:1px solid var(--line);padding:18px}.editor-grid{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.compact-callout{margin-bottom:14px;padding:10px 12px;font-size:12px}.schema-head,.schema-row{grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:14px;display:grid}.schema-head{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;padding:0 10px 7px;font-size:11px;font-weight:750}.schema-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.schema-row{border-bottom:1px solid var(--line);padding:10px}.schema-row:last-child{border-bottom:none}.schema-name{font-size:13px;font-weight:650}.schema-sample{color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11.5px;overflow:hidden}.select.compact{padding:7px 9px;font-size:12.5px}.runbar{background:var(--line);border-radius:999px;height:8px;margin:6px 0 4px;overflow:hidden}.runbar>i{background:linear-gradient(90deg,var(--brand),var(--brand-2));border-radius:999px;width:0;height:100%;transition:width .5s;display:block}.runmeta{color:var(--ink-soft);justify-content:space-between;margin-bottom:22px;font-size:13px;display:flex}.loglist{font-family:var(--mono);flex-direction:column;gap:2px;max-height:260px;font-size:12.5px;display:flex;overflow:auto}.loglist .ln{color:var(--ink-soft);gap:10px;padding:5px 2px;display:flex}.loglist .ln .ic{flex:none;width:16px}.loglist .ln.ok .ic{color:var(--ok)}.loglist .ln.warn .ic{color:var(--warn)}.loglist .ln.error .ic{color:var(--err)}.assetlink{border:1px solid var(--line);color:inherit;box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;transition:all .14s;display:flex}.assetlink:hover{box-shadow:var(--shadow);border-color:#c9bce6;transform:translateY(-1px)}.assetlink .ai{color:#fff;background:linear-gradient(135deg,#8a2be2,#6d00cc);border-radius:9px;flex:none;place-items:center;width:38px;height:38px;display:grid}.assetlink.muted{cursor:default}.assetlink.muted:hover{border-color:var(--line);box-shadow:var(--shadow-sm);transform:none}.assetlink.muted .ai{color:var(--ink-faint);background:#f1f0f5}.assetlink .an{font-size:14px;font-weight:650}.assetlink .as{color:var(--ink-faint);margin-top:2px;font-size:12.5px}.assetlink .go{color:var(--brand);align-items:center;gap:4px;margin-left:auto;font-size:13px;font-weight:650;display:flex}.hero-check{background:var(--ok-soft);width:60px;height:60px;color:var(--ok);border-radius:50%;place-items:center;margin-bottom:18px;font-size:30px;display:grid}.muted-note{color:var(--ink-faint);align-items:center;gap:7px;margin-top:18px;font-size:12.5px;display:flex}.spin{border:2px solid #6d00cc40;border-top-color:var(--brand);border-radius:50%;width:15px;height:15px;animation:.7s linear infinite sp;display:inline-block}.btn .spin{border-color:#fff #fff6 #fff6}@keyframes sp{to{transform:rotate(360deg)}}@media (max-width:860px){.grid{grid-template-columns:1fr}.rail{position:static}.panel-body{padding:28px 24px}.panel-foot{padding:16px 24px}.editor-grid{grid-template-columns:1fr}.summary-row{flex-wrap:wrap}.stat{min-width:calc(50% - 6px)}}
