:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#242b38;background:#e9ebed;font-synthesis:none;--orange:#ed7139;--muted:#9298a3;--border:#edf0f3}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button,input,select{outline-offset:3px}button:focus-visible,a:focus-visible{outline:2px solid var(--orange)}.desktop{min-height:100vh;background:#f7f8fa}.titlebar{height:39px;background:#f2f3f5;border-bottom:1px solid #e3e6eb;display:flex;align-items:center;justify-content:center;font-size:11px;color:#747b87;position:relative;letter-spacing:.5px}.window-dots{position:absolute;left:19px;display:flex;gap:8px}.window-dots i{height:10px;width:10px;border-radius:50%;background:#ff625a}.window-dots i:nth-child(2){background:#ffbd44}.window-dots i:nth-child(3){background:#00c84e}.title-right{position:absolute;right:21px;font-size:10px;display:flex;gap:9px;align-items:center}.key{padding:2px 5px;border:1px solid #dde0e6;border-radius:4px}.shell{display:flex;min-height:calc(100vh - 39px)}.sidebar{width:220px;flex-shrink:0;background:#fff;border-right:1px solid #e9ecf1;display:flex;flex-direction:column;padding:30px 16px 15px}.brand{display:flex;gap:11px;align-items:center;padding:0 9px 37px}.brand-icon{height:39px;width:39px;background:var(--orange);border-radius:12px;color:white;font-size:21px;font-weight:700;display:grid;place-items:center;box-shadow:0 4px 9px #ed713922}.brand strong{font-size:16px;letter-spacing:.5px}.brand small{display:block;font-size:8px;letter-spacing:1.6px;color:#a0a5ae;margin-top:6px}.workspace-label{font-size:10px;color:#a2a8b2;margin:0 13px 12px;letter-spacing:1px}nav{display:grid;gap:6px}.nav-item{border:0;background:transparent;display:flex;align-items:center;gap:11px;padding:13px 15px;border-radius:8px;font-size:12px;text-align:left;color:#707786}.nav-item:hover{background:#f7f8fa}.nav-item.active{background:#fff1e9;color:#d56633;font-weight:600}.nav-icon{width:17px;height:17px;display:inline-flex}.nav-icon svg,.button-icon svg{width:100%;height:100%}.nav-count{margin-left:auto;font-size:10px;background:#fff;padding:2px 6px;border-radius:4px;color:#cc683b}.sidebar-bottom{margin-top:auto;padding-top:90px}.local-note{padding:14px 10px;display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--border);margin-bottom:15px}.local-icon{color:#99a3b2;font-size:21px}.local-note strong{font-size:10px;color:#737d89;font-weight:500}.local-note small{display:block;font-size:8px;color:#a5abb4;margin-top:5px}.profile{border:0;background:none;display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;text-align:left}.avatar{background:#eff1f5;color:#828c9c;border-radius:50%;width:33px;height:33px;display:grid;place-items:center;font-size:12px}.profile strong{font-size:11px;font-weight:500}.profile small{display:block;color:#a0a7b0;font-size:9px;margin-top:4px}.profile-more{margin-left:auto;color:#969fab}main{flex:1;min-width:0;padding:0 35px;display:flex;flex-direction:column}.topline{height:65px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9ecf1;font-size:10px;color:#9aa1ac}.preview-badge{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #e5e8ee;border-radius:5px;padding:5px 8px;color:#8a939f;font-size:9px}.preview-badge i{width:5px;height:5px;background:#e7a16b;border-radius:50%}#content{width:100%;max-width:1450px;margin:0 auto;flex:1}.page-head{display:flex;align-items:center;justify-content:space-between;margin:31px 0 26px;gap:16px}.eyebrow{font-size:9px;letter-spacing:1.8px;color:#a3aab5;margin-bottom:9px}.page-head h1{font-size:25px;letter-spacing:.2px;margin:0;font-weight:650}.page-head p{font-size:11px;color:#939ba7;margin:11px 0 0;line-height:1.7}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #e1e5eb;background:#fff;color:#616b7a;border-radius:7px;padding:10px 15px;font-size:11px;white-space:nowrap;transition:background .15s}.btn:hover{background:#f3f5f8}.btn.primary{background:var(--orange);border-color:var(--orange);color:white;box-shadow:0 3px 5px #ed713917}.btn.primary:hover{background:#dc642e}.btn.subtle{border-color:transparent;background:transparent}.button-icon{height:15px;width:15px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px}.stat{border:1px solid var(--border);border-radius:10px;background:#fff;padding:19px 21px;display:flex;justify-content:space-between;align-items:flex-start}.stat-label{font-size:11px;color:#858f9d}.stat-value{font-size:29px;font-weight:600;letter-spacing:-1px;margin:10px 0 8px}.stat-foot{font-size:9px;color:#a0a8b3}.stat-icon{height:32px;width:32px;border-radius:9px;display:grid;place-items:center;background:#f4f6f9;color:#8c99ac}.stat-icon.green{background:#eef8f3;color:#58a783}.stat-icon.orange{background:#fff4e9;color:#d7a064}.stat-icon.blue{background:#edf3fe;color:#7696d1}.stat-icon svg{height:16px;width:16px}.panel{background:white;border:1px solid var(--border);border-radius:10px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:20px 21px;gap:14px}.panel-head h2{margin:0;font-size:14px;font-weight:600}.panel-head h2 small{font-size:10px;color:#a3aab5;font-weight:400;margin-left:9px}.tools{display:flex;gap:9px}.search{width:210px;position:relative}.search input{width:100%;border:1px solid #e9ecf1;border-radius:6px;padding:9px 11px 9px 30px;font-size:10px;background:#fafbfc;color:#404b5c}.search>span{position:absolute;top:9px;left:10px;color:#a2aab7}.search svg{height:13px;width:13px}select{border:1px solid #e6e9ef;border-radius:6px;background:#fff;color:#7a8492;padding:8px;font-size:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{font-size:10px;font-weight:400;color:#969eaa;background:#fafbfc;padding:12px 20px;border-top:1px solid #f2f4f7;border-bottom:1px solid #f2f4f7}td{padding:19px 20px;border-bottom:1px solid #f0f2f5;font-size:11px;color:#7f8998}tr:last-child td{border-bottom:0}.project-cell{display:flex;align-items:center;gap:11px}.project-icon{height:35px;width:35px;border-radius:9px;display:grid;place-items:center;font-size:15px;background:#f1f4ee;color:#7d9671}.project-icon.sand{background:#f9f0e6;color:#b69a79}.project-icon.lilac{background:#f1eef8;color:#9b8abb}.project-icon.blue{background:#eaf2f7;color:#7197b2}.project-name{display:block;color:#354052;font-size:12px;font-weight:550;margin-bottom:5px}.project-code{font-size:9px;color:#a1a8b2;letter-spacing:.3px}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;color:#8691a1}.version{padding:4px 7px;background:#f6f7f9;border:1px solid #eceff3;border-radius:4px;font-size:9px;color:#8d97a4}.status{display:inline-flex;align-items:center;gap:5px;font-size:10px;padding:4px 7px;border-radius:4px;color:#65a181;background:#f0f8f3}.status i{width:4px;height:4px;border-radius:50%;background:currentColor}.status.pending{background:#f5f6f8;color:#939dab}.status.running{background:#fff4e9;color:#d48d46}.status.failed{background:#fff0ef;color:#cb7970}.row-action{border:0;background:none;color:#a1a7b1;font-size:11px;padding:7px 4px}.row-action:first-child{color:#d67546;margin-right:9px}.row-action:hover{text-decoration:underline}.table-foot{border-top:1px solid var(--border);padding:14px 21px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#a0a7b2}.page-num{display:inline-grid;place-items:center;border:1px solid #f0d4c3;background:#fff7f1;color:#d17c4d;width:24px;height:24px;border-radius:4px}.bottom-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin-top:22px}.activity-list{padding:0 22px 19px}.activity{display:flex;gap:12px;align-items:center;padding:12px 0}.activity+.activity{border-top:1px solid #f3f4f7}.event-icon{height:28px;width:28px;display:grid;place-items:center;border-radius:50%;background:#f1f8f4;color:#74a68b;font-size:12px}.event-icon.orange{background:#fff5e9;color:#d79c69}.activity strong{font-size:11px;font-weight:500;color:#6d7786}.activity small{display:block;font-size:9px;color:#a3aab4;margin-top:6px}.activity time{margin-left:auto;color:#adb3bc;font-size:9px}.text-link{font-size:10px;border:0;background:none;color:#a2aab5}.release-content{padding:0 22px 23px}.release-line{display:flex;align-items:center;gap:10px}.release-line strong{font-size:18px;font-weight:600}.release-tag{font-size:8px;background:#edf6ee;color:#78a47c;padding:3px 6px;border-radius:4px}.release-content p{font-size:10px;color:#9aa3af;line-height:1.9;margin:12px 0 18px}.release-meta{display:flex;gap:18px;font-size:9px;color:#a6aeba}.release-meta span{display:flex;align-items:center;gap:5px}footer{font-size:9px;color:#b0b7c1;padding:27px 0 22px;display:flex;gap:14px}.footer-right{margin-left:auto}.empty{text-align:center;color:#a0a7b2;padding:45px!important}.notice{border:1px solid #f3e2cf;background:#fffaf3;color:#b19268;font-size:11px;line-height:1.8;padding:13px 16px;border-radius:8px;margin:18px 0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.info-card{padding:23px}.info-card h3{font-size:13px;margin:0 0 22px}.kv{display:flex;justify-content:space-between;gap:18px;font-size:11px;margin:17px 0}.kv span{color:#949dab}.kv strong{font-weight:450;color:#586575;text-align:right}.card-actions{margin-top:22px}.stepper{display:flex;gap:0;margin:28px 0}.step{display:flex;align-items:center;gap:8px;flex:1;font-size:11px;color:#a6afba}.step:after{content:"";height:1px;flex:1;background:#e4e8ee;margin:0 18px}.step:last-child:after{display:none}.step b{width:26px;height:26px;border-radius:50%;border:1px solid #e1e6ed;background:#fff;display:grid;place-items:center;font-weight:500}.step.current{color:#d76c36}.step.current b{background:#ed7139;color:white;border-color:#ed7139}.wizard-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:22px}.form-panel{padding:27px}.form-panel h2{font-size:16px;margin:0 0 9px}.subtext{font-size:11px;color:#9ba4b1;line-height:1.8}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px;margin-top:26px}.field{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#6d7888}.field.full{grid-column:1/-1}.field input,.field select{height:39px;border:1px solid #dfe5ed;border-radius:6px;background:white;padding:9px 11px;font-size:12px;color:#5b687b;width:100%}.field small{font-size:10px;color:#a4adba;line-height:1.6}.field input:focus{outline:2px solid #ed713930;border-color:#ed7139}.form-actions{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--border);padding-top:23px;margin-top:29px}.summary{align-self:start;padding:22px}.summary h3{margin:0 0 21px;font-size:13px}.summary .kv{font-size:10px}.summary-note{border-top:1px solid var(--border);font-size:10px;color:#a2acb8;line-height:1.9;margin-top:22px;padding-top:15px}.check-item{display:flex;gap:12px;align-items:center;padding:17px 0;border-bottom:1px solid var(--border);font-size:12px;color:#657284}.check-item .status{margin-left:auto}.check-item small{display:block;font-size:10px;color:#a4adba;margin-top:6px}.check-circle{height:27px;width:27px;border-radius:50%;background:#eff7f1;color:#68a581;display:grid;place-items:center}.progress-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:22px}.task-steps{padding:8px 23px}.task-step{display:flex;gap:12px;padding:13px 0;font-size:11px;align-items:center;color:#98a3b1}.task-step b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#f2f4f7;color:#a9b3c0;font-size:10px;font-weight:400}.task-step.done{color:#6b8677}.task-step.done b{background:#edf7f0;color:#69a881}.task-step.active{color:#d4864b}.task-step.active b{background:#fff0e4;color:#d4864b}.task-step time{margin-left:auto;font-size:9px}.terminal{background:#202832;border-radius:9px;min-height:340px;padding:21px;color:#a9b4c4;font:11px/2.25 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.terminal-top{color:#d7dee8;border-bottom:1px solid #35404d;padding-bottom:13px;margin-bottom:15px;display:flex;justify-content:space-between}.terminal .good{color:#97c7a9}.terminal .log-time{color:#65788f;margin-right:14px}.task-banner{padding:19px 22px;margin-bottom:19px;display:flex;justify-content:space-between;align-items:center}.task-banner strong{font-size:13px}.task-banner p{font-size:10px;color:#9aa4b2;margin-bottom:0}.progress-track{height:4px;background:#edf0f5;margin-top:16px;border-radius:5px;overflow:hidden}.progress-track span{height:100%;display:block;background:#ed9c71;transition:width .5s}.release-card{padding:25px;margin-bottom:15px;display:flex;gap:25px;align-items:center}.release-card h3{font-size:16px;margin:0 0 10px}.release-card p{font-size:11px;color:#98a2af}.release-card .btn{margin-left:auto}dialog{border:0;padding:0;width:480px;max-width:100%;height:100vh;max-height:100vh;margin:0 0 0 auto;box-shadow:-15px 0 60px #1a263c20;color:#344157;background:white}dialog::backdrop{background:#24314340;backdrop-filter:blur(2px)}.drawer-head{padding:28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.drawer-head small{font-size:9px;color:#a0a9b6;letter-spacing:1.5px}.drawer-head h2{font-size:21px;margin:10px 0 0}.icon-btn{border:0;background:#f6f7f9;border-radius:6px;color:#9ba5b2;font-size:24px;width:30px;height:30px}#drawer-body{padding:27px}.drawer-copy{font-size:11px;color:#9da6b3;line-height:1.9;margin:0 0 25px}.error{font-size:11px;color:#c56859;min-height:18px}#toast{position:fixed;bottom:27px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;padding:12px 20px;background:#2d3747;color:white;box-shadow:0 5px 20px #0002;border-radius:8px;font-size:12px;transition:.2s;z-index:10}#toast.show{opacity:1;transform:translate(-50%,0)}.toggle{appearance:none;width:31px;height:18px;border-radius:12px;background:#dfe4eb;position:relative;cursor:pointer;vertical-align:middle}.toggle:checked{background:#e79062}.toggle:before{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;background:white;border-radius:50%;transition:.2s}.toggle:checked:before{left:15px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--border);font-size:12px}.setting-row small{display:block;font-size:10px;color:#9ca6b3;margin-top:7px}@media(min-width:1550px){main{padding:0 55px}.sidebar{width:235px}.page-head{margin-top:42px}.stat{padding:25px}td{padding-top:24px;padding-bottom:24px}}@media(max-width:1100px){main{padding:0 22px}.sidebar{width:185px;padding:27px 10px 14px}.brand{padding-left:4px}.brand strong{font-size:14px}.stats{gap:10px}.stat{padding:17px 14px}.tools .search{width:165px}td,th{padding-left:15px;padding-right:15px}.wizard-layout{grid-template-columns:minmax(0,1fr) 225px}}@media(max-width:800px){.sidebar{width:65px;padding:25px 8px}.brand{padding:0 5px 32px}.brand>div:last-child,.workspace-label,.nav-label,.nav-count,.sidebar-bottom{display:none}.brand-icon{width:36px;height:36px;flex-shrink:0}.nav-item{justify-content:center;padding:14px}.stats{grid-template-columns:repeat(2,1fr)}.bottom-grid,.detail-grid,.wizard-layout,.progress-layout{grid-template-columns:1fr}.summary{display:none}.page-head h1{font-size:22px}.tools{flex-wrap:wrap;justify-content:flex-end}.panel-head{align-items:flex-start}main{padding:0 17px}.stat-value{font-size:25px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.step{font-size:9px;gap:5px}.step:after{margin:0 5px}.step b{width:23px;height:23px}.footer-right{display:none}.page-head{margin-top:24px}.title-right{display:none}.form-panel{padding:19px}.table-wrap{max-width:100%}}
/* 客户资料直接提供部署所需输入，技术默认值由工具管理。 */
.customer-fields{margin-top:0;gap:18px}.customer-fields .field{position:relative}.required-note,.optional-note{position:absolute;right:0;top:0;font-size:9px;color:#a6aeb9}.credential-group{grid-column:1/-1;border:1px solid #e8ecf1;border-radius:8px;padding:15px;margin:0;min-width:0;background:#fafbfc}.credential-group legend{font-size:11px;color:#657184;padding:0 5px}.credential-group .field+.field{margin-top:13px}.credential-note{font-size:10px;color:#aa835e;line-height:1.7;margin-bottom:13px}.credential-group input:disabled{background:#f1f3f6;color:#a6aebb;cursor:not-allowed}.field textarea{font:inherit;width:100%;resize:vertical;min-height:62px;border:1px solid #dfe5ed;border-radius:6px;padding:10px 11px;color:#5b687b}.field textarea:focus{outline:2px solid #ed713930;border-color:#ed7139}#project-form .form-actions{position:sticky;bottom:-27px;background:white;padding:17px 0;margin-top:12px}#project-form .error{margin:10px 0 0}
