:root{--bg:#0A1220;--bg2:#0E1A2C;--panel:#12243C;--panel2:#162C48;--line:#22405F;--cyan:#22D3EE;--cyan2:#7FE3FF;--gold:#F5C445;--green:#34D399;--red:#F87171;--text:#E8F1FA;--muted:#8FA9C4;--dim:#829BB5;--cyan-rgb:34,211,238;--gold-rgb:245,196,69;--green-rgb:52,211,153;--red-rgb:248,113,113;--line-rgb:34,64,95;--cyan-ink:#7FE3FF;--gold-ink:#F5C445;--green-ink:#7CE6B8;--red-ink:#F8A0A0;--ink-soft:#A8CBE0;--ink-strong:#C4D9EB;--cyan-deep:#0FB5CE;--gold-deep:#D9A520;--on-accent:#042028;--on-gold:#2A2000;--shadow-md:0 10px 30px rgba(0,0,0,.45);--shadow-lg:0 12px 32px rgba(0,0,0,.5);--fs-1:11px;--fs-2:12px;--fs-3:13px;--fs-4:14px;--fs-5:16px;--fs-6:20px;--fs-7:26px;--r-1:6px;--r-2:9px;--r-3:13px;--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--font-ui:"PingFang SC","HarmonyOS Sans SC","MiSans","Source Han Sans SC","Noto Sans CJK SC", "Microsoft YaHei","Helvetica Neue",Roboto,"Droid Sans",sans-serif;--hero-a:#0E7490;--hero-b:#155E75;--hero-c:#0C4A6E;--font-mono:ui-monospace,"SF Mono",Menlo,"Cascadia Mono",Consolas,monospace;--bg2-rgb:14,26,44;--danger-rgb:224,92,74;--mask:rgba(3,9,17,.74);--cyan-lite:#9FEBFF;--gold-lite:#FFDE8A;--green-lite:#8DF0C4;--panel-deep:#081426;--danger-1:#C0392B;--danger-2:#E05C4A;--danger-line:#5B2B2B;--danger-ink:#D98080;--on-danger:#fff}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--fs-4)}.app{display:flex;height:100vh;overflow:hidden}.side{width:216px;flex:none;background:var(--bg2);border-right:1px solid var(--line);display:flex;flex-direction:column}.side .lg{padding:20px 20px 16px;border-bottom:1px solid var(--line)}.side .lg b{font-size:var(--fs-5);display:block;color:var(--cyan2);font-weight:700}@supports (-webkit-background-clip:text){.side .lg b{background:linear-gradient(96deg,var(--cyan-lite),var(--cyan) 50%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}}.side .lg span{font-size:var(--fs-1);color:var(--dim);display:block;margin-top:3px}.side nav{padding:12px 10px;flex:1;overflow:auto}.side a{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-2);color:var(--muted);text-decoration:none;cursor:pointer;font-size:var(--fs-4);margin-bottom:3px}.side a:hover{background:var(--panel);color:var(--text)}.side a.on{background:var(--panel2);color:var(--cyan2);font-weight:600}.side a.off{opacity:.34;cursor:not-allowed}.side a.off:hover{background:none;color:var(--muted)}.side a .sf{margin-left:auto;font-size:var(--fs-1);border:1px solid var(--line);padding:1px 6px;border-radius:var(--r-1)}.side .acct{padding:11px 18px;border-top:1px solid var(--line)}.side .acct>b{display:flex;align-items:center;gap:6px;font-size:var(--fs-3);color:var(--text);font-weight:600;min-width:0}.side .acct>b i{font-style:normal;font-size:var(--fs-1);font-weight:500;color:var(--cyan);border:1px solid rgba(var(--cyan-rgb),.35);background:rgba(var(--cyan-rgb),.1);border-radius:var(--r-pill);padding:1px 7px;flex:none}.side .acct-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px}.side .acct-row>span{font-size:var(--fs-1);color:var(--dim);white-space:nowrap}.side .acct-act{display:flex;gap:10px;flex:none}.side .acct-act button{background:none;border:none;padding:0;cursor:pointer;font-size:var(--fs-1);color:var(--dim);font-family:inherit}.side .acct-act button:hover{color:var(--cyan2)}.side .ft{padding:14px 18px;border-top:1px solid var(--line);font-size:var(--fs-1);color:var(--dim);line-height:1.7}.side .eg{color:var(--green)}.side .eg.mock{color:var(--gold)}.main{flex:1;overflow:auto;padding:26px 32px}.hd{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.hd h1{font-size:var(--fs-7);font-weight:600}.hd p{font-size:var(--fs-3);color:var(--muted);margin-top:5px}.row{display:flex;gap:10px;align-items:center}.btn{padding:9px 18px;border-radius:var(--r-2);border:none;background:linear-gradient(96deg,var(--cyan-deep),var(--cyan));color:var(--on-accent);font-weight:700;font-size:var(--fs-4);cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.38;cursor:default}.btn.gh{background:none;border:1px solid var(--line);color:var(--muted);font-weight:500}.btn.gh:hover{border-color:var(--cyan);color:var(--cyan2)}.btn.gd{background:linear-gradient(96deg,var(--gold-deep),var(--gold));color:var(--on-gold)}.btn.dg{background:none;border:1px solid var(--danger-line);color:var(--danger-ink);font-weight:500}.btn.sm{padding:5px 12px;font-size:var(--fs-2);border-radius:var(--r-1)}input,select,textarea{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:9px 12px;border-radius:var(--r-1);font-size:var(--fs-4);font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cyan)}textarea{resize:vertical;min-height:90px;line-height:1.7}label{display:block;font-size:var(--fs-2);color:var(--muted);margin-bottom:6px}.fld{margin-bottom:15px}.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-3)}.pad{padding:20px 22px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:var(--fs-2);color:var(--muted);font-weight:500;padding:11px 14px;border-bottom:1px solid var(--line)}td{padding:12px 14px;border-bottom:1px solid rgba(var(--line-rgb),.45);font-size:var(--fs-4)}tr:last-child td{border-bottom:none}tr:hover td{background:rgba(var(--line-rgb),.22)}.av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--on-accent);font-size:var(--fs-4);flex:none}.tag{display:inline-block;font-size:var(--fs-1);padding:2px 9px;border-radius:var(--r-pill);margin:1px 4px 1px 0;border:1px solid rgba(var(--cyan-rgb),.36);color:var(--cyan2);background:rgba(var(--cyan-rgb),.07)}.tag.g{border-color:rgba(var(--green-rgb),.4);color:var(--green-ink);background:rgba(var(--green-rgb),.08)}.tag.y{border-color:rgba(var(--gold-rgb),.4);color:var(--gold);background:rgba(var(--gold-rgb),.08)}.tag.m{border-color:var(--line);color:var(--muted);background:none}.num,.st .v,.mcell .v,.pt-kpi .v{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"lnum" 1}.gold{color:var(--gold)}.cyan{color:var(--cyan)}.green{color:var(--green)}.muted{color:var(--muted)}.empty{padding:56px;text-align:center;color:var(--dim)}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:22px}.st{padding:15px 18px}.st .v{font-size:var(--fs-7);font-weight:700;color:var(--gold)}.st .k{font-size:var(--fs-2);color:var(--muted);margin-top:3px}.mask{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--mask);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-3);width:100%;max-width:620px;max-height:88vh;overflow:auto;padding:26px 28px}.modal h3{font-size:var(--fs-6);margin-bottom:20px}.mfoot{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.trace{background:var(--panel-deep);border:1px solid var(--line);border-radius:var(--r-2);padding:16px 18px;max-height:330px;overflow:auto;font-size:var(--fs-3);line-height:1.75}.tl{color:var(--cyan2);margin-bottom:7px}.tt{font-family:var(--font-mono);font-size:var(--fs-2);color:var(--muted);background:rgba(var(--line-rgb),.3);border-left:2px solid var(--cyan);padding:6px 11px;border-radius:0 var(--r-1) var(--r-1) 0;margin-bottom:7px;word-break:break-all}.tt b{color:var(--cyan)}.tr2{color:var(--green-ink);padding-left:12px;border-left:2px solid var(--green);margin-bottom:7px;font-size:var(--fs-3)}.te{color:var(--red);margin-bottom:7px}.pill{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-2);color:var(--green)}.pill b{width:7px;height:7px;border-radius:50%;background:var(--green);animation:bk 1.3s infinite}@keyframes bk{50%{opacity:.2}}.task{border:1px solid var(--line);border-radius:var(--r-2);padding:15px 17px;margin-bottom:11px;background:var(--panel2)}.task.done{border-color:rgba(var(--green-rgb),.42)}.task .t1{font-size:var(--fs-5);margin:6px 0 8px}.task .mt{display:flex;gap:16px;font-size:var(--fs-3);color:var(--muted)}.task .as{margin-top:11px;padding-top:11px;border-top:1px dashed var(--line);display:flex;align-items:center;gap:10px}.task .rs{font-size:var(--fs-2);color:var(--dim);margin-top:7px;line-height:1.55}.bc{color:var(--muted);cursor:pointer;font-size:var(--fs-3);margin-bottom:14px;display:inline-block}.bc:hover{color:var(--cyan2)}.drawer{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-3);width:100%;max-width:760px;height:86vh;display:flex;flex-direction:column;overflow:hidden}.dhd{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);flex:none}.dctx{padding:11px 22px;background:var(--bg);border-bottom:1px solid var(--line);font-size:var(--fs-3);color:var(--muted);flex:none}.tabs{display:flex;gap:4px;padding:10px 18px 0;border-bottom:1px solid var(--line);flex:none}.tabs span{padding:9px 18px;font-size:var(--fs-4);color:var(--muted);cursor:pointer;border-radius:var(--r-2) var(--r-2) 0 0;border-bottom:2px solid transparent}.tabs span:hover{color:var(--text)}.tabs span.on{color:var(--cyan2);border-bottom-color:var(--cyan);background:rgba(var(--line-rgb),.3)}.dbody{flex:1;overflow:auto;padding:20px 22px}.lk{cursor:pointer;border-bottom:1px dashed var(--line)}.lk:hover{color:var(--cyan2);border-bottom-color:var(--cyan)}.ck{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-2);color:var(--muted);margin:0;cursor:pointer}.ck input{width:auto;padding:0}.cnd{display:flex;align-items:center;gap:13px;padding:13px 15px;border:1px solid var(--line);border-radius:var(--r-2);margin-bottom:10px;background:var(--panel2)}.cnd:hover{border-color:rgba(var(--cyan-rgb),.4)}.pfi{padding:13px 16px;border:1px solid var(--line);border-radius:var(--r-2);margin-bottom:10px;background:var(--panel2)}.chat{display:flex;flex-direction:column;height:100%;min-height:380px}.clist{flex:1;overflow:auto;padding-right:4px;margin-bottom:12px}.msg{margin-bottom:14px;display:flex;flex-direction:column;align-items:flex-end}.msg.opc{align-items:flex-start}.mctx{font-size:var(--fs-1);color:var(--dim);margin-bottom:4px}.bub{max-width:82%;padding:10px 14px;border-radius:var(--r-3);font-size:var(--fs-4);line-height:1.65;white-space:pre-wrap;background:linear-gradient(96deg,var(--cyan-deep),var(--cyan));color:var(--on-accent)}.msg.opc .bub{background:var(--panel2);border:1px solid var(--line);color:var(--text)}.mts{font-size:var(--fs-1);color:var(--dim);margin-top:4px}.quick{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}.quick span{font-size:var(--fs-2);padding:5px 11px;border-radius:var(--r-pill);border:1px dashed var(--line);color:var(--muted);cursor:pointer}.quick span:hover{border-color:var(--cyan);color:var(--cyan2)}.cin textarea{min-height:64px}.crow{display:flex;justify-content:space-between;align-items:center;margin-top:9px}.cnote{font-size:var(--fs-1);color:var(--dim);margin-top:10px;line-height:1.6;padding-top:10px;border-top:1px dashed var(--line)}.demotag{display:inline-block;font-size:var(--fs-1);font-weight:400;padding:3px 10px;border-radius:var(--r-pill);border:1px solid rgba(var(--gold-rgb),.45);color:var(--gold);background:rgba(var(--gold-rgb),.08);margin-left:10px;vertical-align:middle}.notice{background:rgba(var(--cyan-rgb),.06);border:1px solid rgba(var(--cyan-rgb),.24);border-radius:var(--r-2);padding:11px 15px;font-size:var(--fs-3);color:var(--ink-soft);margin-bottom:16px;line-height:1.65}.tag.r{border-color:rgba(var(--red-rgb),.45);color:var(--red-ink);background:rgba(var(--red-rgb),.08)}.msrow{display:flex;align-items:center;gap:13px;padding:11px 0;border-bottom:1px dashed rgba(var(--line-rgb),.5)}.msrow:last-child{border-bottom:none}.msdot{width:28px;height:28px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:var(--fs-3);font-weight:700;border:1.5px solid var(--line);color:var(--dim);background:var(--bg)}.msdot.g{border-color:var(--green);color:var(--green);background:rgba(var(--green-rgb),.12)}.msdot.y{border-color:var(--gold);color:var(--gold);background:rgba(var(--gold-rgb),.12)}.ch{font-size:var(--fs-4);font-weight:600;margin-bottom:14px;display:flex;justify-content:space-between;align-items:baseline}.ch .muted{font-size:var(--fs-2);font-weight:400}.barrow{display:flex;align-items:center;gap:11px;padding:7px 0}.bl{width:132px;flex:none;font-size:var(--fs-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bt{flex:1;height:9px;background:rgba(var(--line-rgb),.55);border-radius:var(--r-pill);overflow:hidden}.bf{height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--cyan-deep),var(--cyan))}.bf.gd{background:linear-gradient(90deg,var(--gold-deep),var(--gold))}.bv{width:118px;flex:none;text-align:right;font-size:var(--fs-2);color:var(--muted)}.toasts{position:fixed;top:18px;right:20px;z-index:200;display:flex;flex-direction:column;gap:9px}.toast{padding:11px 18px;border-radius:var(--r-2);font-size:var(--fs-4);background:var(--panel2);border:1px solid var(--line);box-shadow:var(--shadow-md);animation:tin .22s ease-out;max-width:380px}.toast.ok{border-color:rgba(var(--green-rgb),.5);color:var(--green-ink)}.toast.warn{border-color:rgba(var(--gold-rgb),.5);color:var(--gold)}.toast.err{border-color:rgba(var(--red-rgb),.5);color:var(--red-ink)}@keyframes tin{0%{opacity:0;transform:translate(18px)}}.modal.narrow{max-width:460px}.cfline{font-size:var(--fs-4);line-height:1.75;color:var(--ink-strong);margin-bottom:8px}.cfline b{color:var(--gold)}.btn.dgs{background:linear-gradient(96deg,var(--danger-1),var(--danger-2));color:var(--on-danger);box-shadow:0 0 22px rgba(var(--danger-rgb),.3)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--cyan2)}th .arr{margin-left:5px;font-size:var(--fs-1);color:var(--cyan)}.mask.side{padding:0}.mask.side .drawer{position:fixed;top:0;right:0;bottom:0;width:min(820px,94vw);max-width:none;height:100vh;max-height:none;border-radius:0;border-right:none;animation:slide .24s ease-out}@keyframes slide{0%{transform:translate(48px);opacity:.5}}.drawer{max-height:86vh;height:auto}.mrow{display:flex;gap:0;border:1px solid var(--line);border-radius:var(--r-3);overflow:hidden;margin-bottom:18px}.mcell{flex:1;padding:14px 18px;border-right:1px solid var(--line)}.mcell:last-child{border-right:none}.mcell .k{font-size:var(--fs-2);color:var(--muted);margin-bottom:5px}.mcell .v{font-size:var(--fs-7);font-weight:700}.mcell.warn{background:rgba(var(--red-rgb),.07)}.mcell.good .v{color:var(--green)}.alertbar{display:flex;align-items:center;gap:10px;padding:10px 15px;border-radius:var(--r-2);font-size:var(--fs-3);background:rgba(var(--red-rgb),.08);border:1px solid rgba(var(--red-rgb),.3);color:var(--red-ink);margin-bottom:14px}.alertbar.y{background:rgba(var(--gold-rgb),.08);border-color:rgba(var(--gold-rgb),.32);color:var(--gold)}.engmark{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-2);padding:4px 12px;border-radius:var(--r-pill);margin-left:10px}.engmark.real{border:1px solid rgba(var(--green-rgb),.45);color:var(--green-ink);background:rgba(var(--green-rgb),.08)}.engmark.mock{border:1px solid rgba(var(--gold-rgb),.45);color:var(--gold);background:rgba(var(--gold-rgb),.08)}.more{position:relative;display:inline-block}.more>button{background:none;border:1px solid var(--line);color:var(--muted);border-radius:var(--r-1);padding:4px 10px;cursor:pointer;font-size:var(--fs-4);line-height:1}.more>button:hover{border-color:var(--cyan);color:var(--cyan2)}.menu{position:absolute;right:0;top:110%;z-index:30;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-2);box-shadow:var(--shadow-lg);min-width:132px;padding:5px;white-space:nowrap}.menu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:8px 12px;border-radius:var(--r-1);cursor:pointer;font-size:var(--fs-3)}.menu button:hover{background:var(--panel)}.menu button.dg{color:var(--red-ink)}.filters{display:flex;gap:9px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.filters select,.filters input{width:auto;min-width:148px;padding:7px 11px;font-size:var(--fs-3)}.filters .cnt{font-size:var(--fs-2);color:var(--muted);margin-left:auto}.stt{display:inline-block;font-size:var(--fs-1);padding:2px 9px;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--muted)}.stt.wait{border-color:rgba(var(--gold-rgb),.45);color:var(--gold);background:rgba(var(--gold-rgb),.08)}.stt.done{border-color:rgba(var(--green-rgb),.45);color:var(--green-ink);background:rgba(var(--green-rgb),.08)}.stt.no{border-color:rgba(var(--red-rgb),.45);color:var(--red-ink);background:rgba(var(--red-rgb),.08)}@media (pointer:coarse){input,select,textarea,.filters select,.filters input{font-size:var(--fs-5)}}:root[data-theme=light]{--bg:#F5F7FA;--bg2:#FFFFFF;--panel:#FFFFFF;--panel2:#F7F9FC;--line:#B6C4D4;--cyan:#0369A1;--cyan2:#075985;--gold:#A16207;--green:#15803D;--red:#B91C1C;--text:#0F172A;--muted:#475569;--dim:#5E6E82;--cyan-rgb:3,105,161;--gold-rgb:161,98,7;--green-rgb:21,128,61;--red-rgb:185,28,28;--line-rgb:148,163,184;--bg2-rgb:255,255,255;--danger-rgb:185,28,28;--cyan-ink:#075985;--gold-ink:#854D0E;--green-ink:#166534;--red-ink:#991B1B;--ink-soft:#475569;--ink-strong:#1E293B;--cyan-deep:#0284C7;--gold-deep:#CA8A04;--on-accent:#FFFFFF;--on-gold:#FFFFFF;--cyan-lite:#0EA5E9;--gold-lite:#CA8A04;--green-lite:#16A34A;--panel-deep:#F1F5F9;--mask:rgba(15,23,42,.45);--shadow-md:0 6px 20px rgba(15,23,42,.08);--shadow-lg:0 12px 32px rgba(15,23,42,.12);--danger-1:#B91C1C;--danger-2:#DC2626;--danger-line:#FCA5A5;--danger-ink:#B91C1C;color-scheme:light}:root[data-theme=light] .card,:root[data-theme=light] .pt-card,:root[data-theme=light] .pt-pkg,:root[data-theme=light] .pt-item{box-shadow:0 1px 2px #0f172a0a}
