html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{--app-bg: #f4f7fb;--panel-shadow: 0 10px 30px rgba(18, 42, 66, .08);--text-color: #1f2a37;--header-bg: rgba(255, 255, 255, .86);--header-border: #dfe8f1;--panel-border: #dbe6f2;--steps-border: #e5edf6;--step-separator: #edf2f8;--log-bg: #f8fbff;--log-border: #e2eaf3;--log-text: #556579;--connecting-color: #63758b;--timer-color: #0059c9;--timer-done-color: #117d39}:root[data-theme=dark]{--app-bg: #0f1722;--panel-shadow: 0 14px 40px rgba(0, 0, 0, .28);--text-color: #e5edf7;--header-bg: rgba(17, 24, 39, .82);--header-border: #273449;--panel-border: #273449;--steps-border: #243247;--step-separator: #223046;--log-bg: #111a27;--log-border: #243247;--log-text: #b3c0d1;--connecting-color: #b3c0d1;--timer-color: #8ec0ff;--timer-done-color: #6ad38a}*{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:#8a94a3 transparent}:root[data-theme=dark] *{scrollbar-color:#4b5563 transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#8a94a3;background-clip:content-box}:root[data-theme=dark] *::-webkit-scrollbar-thumb{background:#4b5563;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:#64748b;background-clip:content-box}:root[data-theme=dark] *::-webkit-scrollbar-thumb:hover{background:#737f90;background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}body{margin:0;font-family:Avenir Next,Segoe UI,Helvetica Neue,sans-serif;background:radial-gradient(1200px 420px at 0% -10%,#e7f1ff 0%,transparent 72%),radial-gradient(900px 280px at 100% 0%,#f9f1ff 0%,transparent 68%),var(--app-bg);color:var(--text-color)}:root[data-theme=dark] body{background:radial-gradient(1200px 420px at 0% -10%,rgba(43,91,173,.25) 0%,transparent 72%),radial-gradient(900px 280px at 100% 0%,rgba(91,62,143,.22) 0%,transparent 68%),var(--app-bg)}#root{min-height:100vh}.app-shell{min-height:100vh;background:transparent}.app-workspace{min-height:calc(100vh - 72px);background:transparent}.app-sidebar{flex:0 0 auto!important;border-right:1px solid var(--panel-border);background:var(--header-bg)!important}.app-sidebar .ant-layout-sider-children{position:sticky;top:0;height:100vh;overflow-y:auto;padding-top:18px}.sidebar-section-label{padding:0 20px 12px;color:var(--connecting-color);font-size:10px;font-weight:700;letter-spacing:.12em}.app-sidebar .ant-menu{border-inline-end:0!important;background:transparent}.admin-tools-grid>.ant-col{display:flex}.admin-tools-grid>.ant-col>.ant-card{width:100%;height:100%}.app-content{flex:1 1 auto;min-width:0}.app-header{height:auto;min-height:72px;background:var(--header-bg);border-bottom:1px solid var(--header-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 20px;line-height:normal}.app-header-brand{display:flex;flex:1 1 320px;min-width:0;flex-direction:column;gap:2px}.app-header-brand>.ant-typography-secondary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header-tools{display:flex;flex:0 1 auto;align-items:center;justify-content:flex-end;gap:14px;min-width:0}.header-status-group{flex-wrap:nowrap;padding-right:14px;border-right:1px solid var(--header-border)}.header-account-group{flex-wrap:nowrap}.header-user{display:inline-flex;align-items:center;gap:6px;max-width:190px;color:var(--connecting-color);font-size:12px}.header-user>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-content{padding:18px}.panel-card{border:1px solid var(--panel-border);box-shadow:var(--panel-shadow)}.s3-folder-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;padding:14px 16px;border:1px solid var(--steps-border);border-radius:12px;background:var(--log-bg)}.s3-folder-info{display:flex;min-width:0;align-items:center;gap:14px}.s3-folder-icon{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;border-radius:11px;background:#0059c91a;color:var(--timer-color);font-size:19px}.s3-folder-details{min-width:0}.s3-folder-label{display:block;color:var(--connecting-color);font-size:10px;font-weight:700;letter-spacing:.09em;line-height:1.2;text-transform:uppercase}.s3-folder-name{display:block;margin-top:3px;color:var(--text-color);font-size:15px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.s3-folder-location{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px}.s3-folder-bucket{color:var(--connecting-color);font-size:11px}.s3-folder-parent{color:var(--connecting-color);font-size:11px;overflow-wrap:anywhere}.s3-zip-download{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:14px 16px;border:1px solid rgba(35,134,54,.35);border-radius:12px;background:#23863612}.s3-zip-info{display:flex;min-width:0;align-items:center;gap:12px}.s3-zip-icon{color:#238636;font-size:24px}.s3-zip-label,.s3-zip-name,.s3-zip-size{display:block}.s3-zip-label{color:var(--connecting-color);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.s3-zip-name{color:var(--text-color);font-weight:700;overflow-wrap:anywhere}.s3-zip-size{font-size:11px}.s3-file-tree{max-height:560px;overflow:auto;padding:12px 14px;border:1px solid var(--steps-border);border-radius:10px}.s3-tree-heading{display:block;margin-bottom:8px;color:var(--text-color);font-size:12px;font-weight:700}.s3-tree-file{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px}.s3-tree-folder{display:inline-flex;align-items:center;gap:7px}.s3-tree-file a{flex:1;min-width:0;overflow-wrap:anywhere}.s3-tree-file>.ant-typography{flex:0 0 auto;font-size:11px}@media(max-width:600px){.s3-folder-card{align-items:stretch;flex-direction:column}.s3-folder-card .ant-btn{width:100%}}.timer{font-size:22px;font-weight:700;color:var(--timer-color);letter-spacing:.4px}.timer.done{color:var(--timer-done-color)}.steps-container{position:relative;max-height:420px;overflow-y:auto;border:1px solid var(--steps-border);border-radius:10px}.step-row{padding:10px 12px;border-bottom:1px solid var(--step-separator)}.step-row:last-child{border-bottom:none}.log-body{max-height:320px;overflow-y:auto;padding:10px;border:1px solid var(--log-border);border-radius:8px;background:var(--log-bg)}.log-line{font-size:12px;line-height:1.55;color:var(--log-text);white-space:pre-wrap;word-break:break-word}.log-line.err{color:#c3261e}.log-line.warn{color:#b07a00}.connecting{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--connecting-color);font-size:15px}.auth-content{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center}.auth-card{width:min(460px,100%)}@media(max-width:991px){.app-header{padding:12px 14px;flex-wrap:wrap;gap:10px 16px}.app-header-tools{flex:1 1 100%;justify-content:space-between}}@media(max-width:600px){.app-header-tools{align-items:flex-start;flex-direction:column;gap:8px}.header-status-group{padding-right:0;border-right:0}.header-account-group{width:100%;justify-content:space-between}.app-content{padding:12px}.app-sidebar .ant-menu-item{margin-inline:8px;width:calc(100% - 16px)}}.pipe{display:flex;flex-direction:column;gap:16px;padding:2px 0 6px}.pipe-row{display:flex;width:100%;align-items:stretch}.pipe-stage{display:flex;flex:1 1 0;min-width:0;flex-direction:column}.pipe-stage-label{height:22px;padding-left:6px;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--connecting-color)}.pipe-stage-body{display:flex;flex:1;align-items:stretch;padding:10px 8px 8px;border:1px dashed var(--panel-border);border-radius:12px;background:var(--header-bg)}.pipe-link{flex:0 0 10px;align-self:flex-start;height:3px;margin-top:16px;border-radius:2px;background:#8b949e73}.pipe-link.between{flex-basis:10px;align-self:flex-start;margin-top:49px}.pipe-link.done{background:#238636}.pipe-link.running{background:linear-gradient(90deg,#1f6feb,#1f6feb40,#1f6feb);background-size:200% 100%;animation:pipe-flow 1.2s linear infinite}@keyframes pipe-flow{0%{background-position:200% 0}to{background-position:0 0}}.pipe-node{display:flex;flex:1 1 0;min-width:0;flex-direction:column;align-items:center;gap:2px;text-align:center}.pipe-node.pipe-gate{flex-grow:.75}.pipe-circle{display:grid;place-items:center;width:36px;height:36px;border:3px solid #8b949e;border-radius:50%;font-size:15px;font-weight:700}.pipe-node.next .pipe-circle{box-shadow:0 0 0 4px #1f6feb47}.pipe-circle-wrap{display:grid;place-items:center;width:36px;height:36px}.pipe-diamond{display:grid;place-items:center;width:22px;height:22px;border:3px solid #8b949e;transform:rotate(45deg)}.pipe-diamond>.anticon{transform:rotate(-45deg);font-size:11px}@media(max-width:1100px){.pipe-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.pipe-link.between{display:none}.pipe-stage-body{justify-content:space-evenly}.pipe-node{flex:0 1 104px}.pipe-node.pipe-gate{flex-grow:0}.pipe-refresh-stage .pipe-stage-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pipe-refresh-stage .pipe-node{min-width:0;flex:initial}}@media(max-width:640px){.pipe-row{grid-template-columns:1fr}.app-content{padding:8px}.app-header{padding:10px 12px}}.pipe-label{margin-top:6px;font-size:13px;line-height:1.2}.pipe-meta{font-size:11px}.pipe-status{font-size:12px;font-weight:600}.pipe-next{font-size:11px;font-weight:700;color:#1f6feb}.pipe-action{margin-top:auto}.pipe-status{margin-bottom:8px}.app-header.env-dev{border-top:4px solid #1f6feb}.app-header.env-stg{border-top:4px solid #d29922}.app-header.env-prd{border-top:4px solid #da3633}
