:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#24364a;background:#f3f6fa;font-synthesis:none;font-size:14px;--blue:#2563eb;--line:#e5eaf1;--muted:#7c8b9d}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:not(:disabled),a,select{transition:background .15s,border-color .15s}button[hidden],[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:218px;background:#14263b;color:#9aacc1;padding:32px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:#f8fafc;font-size:24px;font-weight:750;letter-spacing:1px;margin:0 12px 48px}.brand-mark{display:grid;place-items:center;width:39px;height:42px;background:#3377ee;border-radius:10px;font-size:30px;box-shadow:0 3px 16px #081c3940}.brand-sub{display:block;font-size:8px;letter-spacing:1.8px;color:#a4b4c9;margin-top:4px}.sidebar-caption{font-size:11px;letter-spacing:2px;margin:0 15px 14px;color:#6e859e}.nav-item{display:flex;align-items:center;gap:12px;padding:14px 15px;margin:5px 0;border-radius:7px;font-size:13px}.nav-item>span:first-child{font-size:18px;width:18px}.nav-item.active{color:white;background:#24476d;box-shadow:inset 3px 0 #5292ff}.nav-item:hover{background:#213c58}.nav-tag{margin-left:auto;font-size:9px;color:#a2c7ff;background:#315783;padding:3px 5px;border-radius:3px;letter-spacing:1px}.sidebar-bottom{margin-top:auto;padding:18px 10px;border-top:1px solid #2a3b50;color:#b8c9da;font-size:12px}.sidebar-bottom>span:last-child{display:block;font-size:10px;color:#7e93ab;margin-top:9px}.local-dot,.tiny-dot{display:inline-block;background:#43bc9b;width:6px;height:6px;border-radius:50%;margin-right:6px}main{max-width:1660px;margin-left:218px;padding:34px 36px 0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:11px;color:#8c98a8;letter-spacing:1px}h1{font-size:27px;letter-spacing:.4px;font-weight:650;margin:10px 0}h1 span{font-size:9px;vertical-align:middle;letter-spacing:1px;background:#e4edff;color:#4270b3;border:1px solid #cddfff;border-radius:4px;padding:3px 6px;margin-left:7px}.page-header p{font-size:12px;color:#7d8b9b;margin:9px 0 0}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:14px}time{font-family:Consolas,monospace;color:#8794a5;font-size:11px}.badge{display:flex;align-items:center;gap:8px;border:1px solid #dce2ea;border-radius:20px;padding:7px 12px;font-size:11px;background:white;color:#7b8797}.badge i{width:6px;height:6px;border-radius:50%;background:#98a4b3}.badge.connected{color:#168368;background:#edf9f4;border-color:#bee8d7}.badge.connected i{background:#22ac82}.card{background:white;border:1px solid #dfe6ee;border-radius:10px;box-shadow:0 2px 4px #25385203;overflow:hidden}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 20px;border-bottom:1px solid var(--line);min-height:57px}.section-heading>div{display:flex;align-items:center;gap:10px}h2{font-size:14px;font-weight:650;margin:0;white-space:nowrap}.step{font:11px Consolas,monospace;color:#8a9ab0}.muted{font-size:10px;color:var(--muted)}.small-tag{font:9px Consolas,monospace;background:#f1f4f8;color:#8391a4;padding:4px 6px;border-radius:4px;letter-spacing:.4px}.connection-controls{display:flex;align-items:flex-end;gap:14px;padding:20px}.connection-controls label{flex:1;min-width:65px}.connection-controls .port-field{flex:2.2}.port-field>span{display:flex;align-items:center;height:38px;margin-top:7px;border:1px dashed #d1dbe8;background:#f9fbfd;border-radius:5px;font-size:11px;color:#8d9bac;padding:0 12px}.connection-foot{border-top:1px solid #f0f3f7;display:flex;justify-content:space-between;color:#8c99a9;font-size:10px;padding:11px 20px}.connection-foot>span:last-child{color:#72938a}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;margin-top:22px}.controls-column{display:flex;flex-direction:column;gap:20px}.panel-body{padding:20px}label{display:block;font-size:11px;color:#7b8999}select,input[type=date],textarea{width:100%;color:#374a60;background:#fff;border:1px solid #dbe3ed;border-radius:5px;padding:9px 10px}select,input[type=date]{height:38px;margin-top:7px;font-size:12px}select:hover{border-color:#9ab3d5}select:disabled,input:disabled{background:#f3f5f8;color:#9aa5b2}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 13px;margin-top:18px}.field-help{color:#93a0b0;font-size:10px;line-height:1.8;margin:13px 0}.button{border:1px solid transparent;border-radius:5px;padding:10px 16px;font-size:12px;min-height:38px;font-weight:550}.primary{background:#2865e8;color:white;box-shadow:0 2px 3px #245cdb10}.primary:not(:disabled):hover{background:#1957d6}.secondary{background:white;color:#718096;border-color:#dce3eb}.secondary:not(:disabled):hover{background:#f1f5f9}.full{width:100%;display:flex;justify-content:center;gap:14px}.connect-button{min-width:130px}.button-row{display:flex;gap:10px;margin-top:15px}.button-row .primary{flex:1}.file-picker{position:relative;border:1px dashed #cbd8e9;border-radius:7px;background:#f8faff;display:flex;flex-direction:column;align-items:center;padding:14px 8px;cursor:pointer;overflow:hidden}.file-picker:hover{background:#edf3ff}.upload-icon{display:grid;place-items:center;width:30px;height:30px;background:#e7efff;color:#5482da;border-radius:7px;font-size:23px;margin-bottom:9px}.file-picker strong{font-size:11px;font-weight:500;color:#55739b;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker>span:last-of-type{font-size:9px;margin-top:6px;color:#9ba7b8}.file-picker input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.file-picker:focus-within{outline:2px solid var(--blue)}.progress-label{display:flex;justify-content:space-between;gap:6px;margin-top:15px;font-size:10px;color:#8c9aab}.progress-label>span:first-child{overflow-wrap:anywhere}progress{display:block;width:100%;height:5px;border:0;border-radius:4px;margin-top:9px;background:#edf1f6;overflow:hidden}progress::-webkit-progress-bar{background:#edf1f6}progress::-webkit-progress-value{background:#3674ee;border-radius:4px}progress::-moz-progress-bar{background:#3674ee}.terminal-card{display:flex;flex-direction:column;min-height:700px;min-width:0}.terminal-dot{width:7px;height:7px;border-radius:50%;background:#4cba9a;box-shadow:0 0 0 4px #edf8f4;margin-right:3px}.terminal-actions{display:flex;align-items:center;gap:15px}.text-button{border:0;background:transparent;color:#7b8ba1;font-size:10px;padding:4px 0;white-space:nowrap}.text-button:hover{color:#2563eb}.log-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid #edf1f6}.segmented{display:flex;padding:3px;background:#eef2f7;border-radius:5px}.segmented button{border:0;background:transparent;font-size:10px;color:#8b98aa;padding:5px 13px;border-radius:3px}.segmented .selected{color:#3261a6;background:white;box-shadow:0 1px 4px #233a5815}.checkbox-label{display:flex;align-items:center;gap:5px;font-size:10px;color:#8d9bae}.checkbox-label input{accent-color:var(--blue);width:12px;height:12px}.log-view{background:#fbfcfe;flex:1;min-height:320px;height:380px;max-height:560px;overflow:auto;font-family:Consolas,"Microsoft YaHei",monospace;font-size:11px;position:relative}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;height:100%;color:#9ba8b8}.empty-symbol{border:1px solid #dde7f3;background:#f0f5fc;color:#a1b7d6;border-radius:14px;width:60px;height:60px;display:grid;place-items:center;font-size:30px;margin-bottom:20px}.empty-state strong{font-size:12px;color:#8394a9;font-weight:500}.empty-state p{font-size:10px;margin:10px 0 24px}.empty-state>span{font-size:9px;letter-spacing:1px;color:#a1afc1}.empty-state b{font-weight:normal;margin:0 8px}.log-row{display:grid;grid-template-columns:87px 30px minmax(0,1fr);gap:8px;padding:7px 16px;border-bottom:1px solid #eff3f8;line-height:1.7}.log-time{color:#9aa8b9;font-size:10px}.log-kind{font-size:10px;font-weight:600;color:#919daf}.log-body{white-space:pre-wrap;overflow-wrap:anywhere;color:#556a84}.log-row.rx .log-kind{color:#199b7d}.log-row.tx .log-kind{color:#3778e9}.log-row.err .log-body,.log-row.err .log-kind{color:#dc685e}.terminal-status{padding:10px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;font:10px Consolas,monospace;color:#8a9aad;background:white}.terminal-status b{font-weight:normal;color:#556d89}.terminal-status button{margin-left:auto}.rx-dot,.tx-dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:6px;background:#2bb69a}.tx-dot{background:#4f84e7}.send-panel{padding:16px 20px}.send-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}h3{font-size:12px;font-weight:500;margin:0}.send-heading label{display:flex;align-items:center;gap:8px;font-size:10px}.send-heading select{width:100px;height:28px;margin:0;padding:2px 8px;font-size:10px}textarea{resize:vertical;min-height:73px;font:11px/1.7 Consolas,monospace;background:#fcfdff}textarea::placeholder{color:#a3b0c1}.send-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.send-footer .button{font-size:11px;padding:8px 15px;min-height:34px}.report-card{margin-top:22px}.report-card pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;background:#fbfcfe;padding:20px;max-height:360px;overflow:auto;min-height:82px;font:11px/1.8 Consolas,"Microsoft YaHei",monospace;color:#8394a9}footer{display:flex;justify-content:space-between;font-size:9px;color:#9eabbc;padding:24px 2px;letter-spacing:.4px}footer b{font-weight:400;color:#bdc8d6;margin:0 7px}.notice{padding:14px 18px;border:1px solid #f1dba8;background:#fff8e9;color:#8e6c27;border-radius:7px;line-height:1.8;font-size:12px;margin-bottom:20px}.toast{position:fixed;bottom:24px;left:calc(50% + 109px);transform:translateX(-50%);border:1px solid #dce5f1;border-radius:8px;padding:14px 22px;background:#152941;color:white;box-shadow:0 6px 30px #13243a24;font-size:12px;z-index:10;max-width:80vw}.toast.error{background:#943e38}dialog{border:1px solid #d9e2ee;border-radius:12px;padding:28px;width:min(430px,90vw);color:#304660;box-shadow:0 20px 80px #10213b30}dialog::backdrop{background:#14263b70}dialog h2{margin:15px 0}dialog p{font-size:12px;line-height:1.9;color:#7d8a9a}.dialog-icon{display:grid;place-items:center;width:36px;height:36px;background:#fff3df;color:#bc8525;border-radius:10px;font-weight:bold}dialog .button-row{justify-content:flex-end}dialog .button-row .primary{flex:0 1 auto}html{scroll-behavior:smooth;scroll-padding-top:20px}
@media(min-width:1500px){.workspace{grid-template-columns:370px minmax(0,1fr)}.log-view{height:430px}}@media(max-width:1200px){.sidebar{width:180px;padding:28px 12px}.brand{margin-left:6px;font-size:22px;gap:8px}.brand-sub{font-size:7px}.nav-tag{display:none}main{margin-left:180px;padding:28px 24px 0}.workspace{grid-template-columns:310px minmax(0,1fr);gap:16px}.connection-controls{flex-wrap:wrap}.connection-controls .port-field{flex-basis:40%}.connection-controls .connect-button{flex-basis:100%}.toast{left:calc(50% + 90px)}}@media(max-width:940px){.sidebar{width:70px;padding:25px 8px}.brand{margin:0 6px 30px}.brand>span:last-child,.sidebar-caption,.sidebar-bottom,.nav-item{display:none}.brand-mark{width:40px}main{margin-left:70px;padding:24px 20px 0}.workspace{grid-template-columns:290px minmax(0,1fr)}.panel-body{padding:16px}.section-heading{padding:16px}.log-row{grid-template-columns:67px 25px minmax(0,1fr);gap:5px;padding:6px 9px}.log-time{font-size:9px}.terminal-actions{gap:10px}.report-card .section-heading{flex-wrap:wrap}.toast{left:calc(50% + 35px)}}@media(max-width:760px){.sidebar{position:static;height:64px;width:100%;padding:12px 20px}.brand{margin:0}.brand>span:last-child{display:block}.brand-sub{font-size:7px}.brand-mark{width:31px;height:34px;font-size:25px}.brand{font-size:21px}.sidebar nav{display:none}main{margin-left:0;padding:23px 16px 0}.page-header{align-items:flex-start;gap:10px}h1{font-size:24px}.page-header p{max-width:220px;line-height:1.8}.header-right{gap:12px}time{font-size:9px}.badge{font-size:10px}.workspace{grid-template-columns:1fr}.controls-column{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:14px}.connection-controls .port-field{flex-basis:100%}.connection-controls{gap:12px}.connection-foot>span:last-child{display:none}.section-heading .muted{font-size:9px}.terminal-card{min-height:620px}.log-view{max-height:450px}.toast{left:50%;width:max-content}.report-card .terminal-actions{flex-wrap:wrap}footer{gap:20px;font-size:8px}}@media(max-width:520px){.controls-column{display:flex}.header-right time{display:none}.connection-controls label{flex-basis:40%}.connection-controls .port-field{flex-basis:100%}.section-heading{gap:6px}.section-heading>div{gap:8px}.connection .section-heading .muted{display:none}.terminal-status{gap:15px}footer>span:last-child{max-width:150px;text-align:right;line-height:1.8}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
