:root{font-family:Inter,"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#1d2939;background:#f5f7fb;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
button,input,select,textarea{font:inherit}
[hidden]{display:none!important}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
a{color:#2d63c8}
h1,h2,h3,p{margin-top:0}
.muted{color:#66758c}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:#5a75b6;text-transform:uppercase}
.small{font-size:12px}
.error-message{color:#ab2033;background:#fff0f1;padding:10px 12px;border-radius:8px;margin:12px 0}
.error-message[hidden]{display:none}
.button{border:1px solid #d8e0ed;background:#fff;color:#344055;border-radius:9px;padding:9px 14px;font-weight:650;white-space:nowrap;transition:.15s}
.button:hover:not(:disabled){background:#f3f6fc;border-color:#b7c9e8}
.button.primary{background:#2864c8;border-color:#2864c8;color:#fff}
.button.primary:hover:not(:disabled){background:#1d56b4}
.button.danger{color:#ab273b;border-color:#efc2cb}
.button.danger:hover:not(:disabled){background:#fff0f3}
.button.small{font-size:12px;padding:6px 9px}
.button.wide{width:100%}
.text-button{border:0;background:none;color:#ced9ec;padding:6px 4px;text-align:left}
.text-button:hover{text-decoration:underline}
.icon-button{border:0;background:none;color:inherit;font-size:21px;padding:4px 8px}
.auth-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 15%,#dceafd 0,transparent 35%),linear-gradient(130deg,#f3f8ff,#eaf0f9)}
.auth-card{width:min(430px,calc(100vw - 28px));background:#fff;padding:35px;border:1px solid #e1e8f3;border-radius:18px;box-shadow:0 22px 70px #223b6520}
.auth-card h1{font-size:29px;margin:8px 0}
.auth-card .muted{font-size:14px;line-height:1.7;margin-bottom:25px}
.auth-brand,.brand{display:flex;align-items:center;gap:10px;font-weight:800}
.auth-brand{margin-bottom:27px}
.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:#4f80db;color:#fff;border-radius:10px;font-size:18px}
.auth-card label{display:block;font-weight:650;font-size:14px;margin:0 0 17px}
.auth-card input{display:block;width:100%;margin-top:7px;padding:12px 13px;border:1px solid #cfd9e8;border-radius:9px;outline:0}
.auth-card input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#4f80db;box-shadow:0 0 0 3px #4f80db22}
.dashboard{display:flex;min-height:100vh}
.sidebar{width:232px;flex:none;background:#152a47;color:#e7eef9;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}
.brand{padding:24px 18px 16px}
.brand strong,.brand small{display:block}
.brand small{font-size:11px;font-weight:500;color:#9caec7;margin-top:3px}
.scope-note{margin:0 15px 22px;padding:10px 11px;background:#203b5f;border-radius:8px;color:#b5c9e6;font-size:11px;line-height:1.5}
.sidebar nav{padding:0 10px;overflow-y:auto}
.nav-group{margin-bottom:16px}
.nav-group-label{display:block;padding:6px 12px;color:#829bbd;font-size:11px;font-weight:800;letter-spacing:.08em}
.nav-item{width:100%;display:flex;align-items:center;gap:10px;border:0;border-radius:8px;background:transparent;color:#c9d7e9;text-align:left;padding:10px 12px;font-size:13px}
.nav-item:hover,.nav-item.active{background:#2a4a75;color:#fff}
.nav-icon{width:18px;display:inline-block;text-align:center;font-size:15px}
.sidebar-bottom{margin-top:auto;border-top:1px solid #314868;padding:16px 21px 20px;display:flex;flex-direction:column;gap:3px}
.account-name{font-size:13px;font-weight:700;margin-bottom:7px;overflow-wrap:anywhere}
.main-area{min-width:0;flex:1;display:flex;flex-direction:column}
.topbar{height:65px;background:#fff;border-bottom:1px solid #e4eaf3;display:flex;align-items:center;justify-content:space-between;padding:0 27px;gap:12px}
.topbar-title{font-weight:800;margin-right:14px}
.topbar-subtitle{font-size:12px;color:#8a97a9}
.connection-state{font-size:11px;color:#168456;background:#e7f7ef;padding:6px 10px;border-radius:20px}
.connection-state.error{color:#aa3143;background:#fff0f2}
.tabbar{display:flex;min-height:45px;background:#fff;border-bottom:1px solid #e4eaf3;padding:7px 24px 0;gap:5px;overflow-x:auto}
.tab{display:flex;align-items:center;gap:10px;border:1px solid #e4eaf3;border-bottom:0;border-radius:8px 8px 0 0;background:#f4f6fa;color:#67758b;padding:7px 12px;white-space:nowrap;font-size:12px}
.tab.active{background:#f5f7fb;color:#1e4f9e;font-weight:750}
.tab-close{border:0;background:none;color:#8290a3;font-size:16px;padding:0 1px;line-height:1}
.workspace{padding:27px;max-width:1600px;width:100%;margin:0 auto}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:21px}
.page-head h1{font-size:23px;margin-bottom:6px}
.page-head p{font-size:13px;color:#748297;margin:0;line-height:1.6}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.panel{background:#fff;border:1px solid #e1e8f1;border-radius:13px;box-shadow:0 3px 14px #1d395707;margin-bottom:17px}
.panel-inner{padding:18px}
.filter-bar{display:flex;align-items:end;gap:11px;flex-wrap:wrap}
.filter-bar .field{min-width:145px}
.filter-bar .field.grow{flex:1;min-width:220px}
.filter-bar .field label{font-size:11px}
.filter-bar .field input,.filter-bar .field select{padding:8px 10px}
.table-wrap{overflow:auto}
.table{border-collapse:collapse;width:100%;min-width:760px;font-size:12px}
.table th{background:#f8fafd;color:#65748b;font-size:11px;text-align:left;font-weight:750;white-space:nowrap}
.table td,.table th{border-bottom:1px solid #edf1f6;padding:12px 13px;vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tr:hover td{background:#fbfcff}
.table .checkbox-cell{width:34px}
.table .name-cell{font-weight:730;color:#223759}
.table .subline{display:block;color:#8c99a8;font-size:11px;margin-top:3px;word-break:break-all}
.table .url{max-width:240px;word-break:break-all}
.row-actions{display:flex;gap:5px;flex-wrap:wrap;min-width:max-content}
.row-actions .button{padding:5px 7px;font-size:11px}
.pill{display:inline-block;background:#eef3fb;color:#49678f;padding:4px 8px;border-radius:20px;font-size:11px;white-space:nowrap}
.pill.success,.pill.running{background:#e9f7ee;color:#167449}
.pill.failed,.pill.stopped{background:#fff0f1;color:#b13f4c}
.pill.paused,.pill.waiting{background:#fff6e5;color:#9e6b12}
.empty{padding:36px;text-align:center;color:#8a99aa;font-size:13px}
.hint{font-size:11px;color:#8794a5;line-height:1.5}
.inline-notice{background:#eef5ff;border:1px solid #d6e6ff;color:#486590;border-radius:9px;padding:10px 12px;font-size:12px;line-height:1.6;margin:0 0 16px}
.warning{background:#fff7e6;border-color:#f1d9a5;color:#876016}
.field{display:block;margin-bottom:13px;min-width:0}
.field label,.field-title{display:block;font-size:12px;font-weight:750;color:#45536a;margin-bottom:6px}
.field input,.field select,.field textarea{display:block;width:100%;border:1px solid #cfdae8;border-radius:8px;background:#fff;color:#1d2939;padding:9px 11px;outline:0;min-height:37px}
.field textarea{min-height:76px;resize:vertical}
.field input[type=checkbox]{display:inline-block;width:auto;min-height:auto;margin:0 7px 0 0}
.field input[type=range]{padding:0;min-height:auto}
.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:8px 0 14px}
.check-line{display:flex;align-items:center;gap:6px;font-size:12px;color:#45536a}
.check-line input{margin:0}
.modal-backdrop{position:fixed;inset:0;background:#13284590;display:flex;align-items:center;justify-content:center;padding:18px;z-index:50}
.modal{background:#fff;width:min(760px,100%);max-height:calc(100vh - 36px);display:flex;flex-direction:column;border-radius:14px;box-shadow:0 26px 80px #0b1c3870}
.modal.wide{width:min(920px,100%)}
.modal-header,.modal-footer{padding:16px 21px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e7ecf3}
.modal-header h2{font-size:17px;margin:0}
.modal-footer{border-bottom:0;border-top:1px solid #e7ecf3;justify-content:flex-end}
.modal-body{padding:20px 21px;overflow:auto}
.modal-body h3{font-size:14px;margin:22px 0 11px;color:#344862}
.modal-body h3:first-child{margin-top:0}
.modal .close{font-size:23px;border:0;background:none;color:#8b98ab}
.modal .error-message{margin:0}
.toast-root{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;flex-direction:column;gap:8px}
.toast{background:#1f426c;color:#fff;padding:10px 14px;border-radius:9px;box-shadow:0 8px 25px #1a365c40;font-size:12px}
.toast.error{background:#a73346}
.weight-list{display:grid;gap:9px;margin-bottom:13px}
.weight-row{display:grid;grid-template-columns:100px 1fr 45px;align-items:center;gap:10px;font-size:12px}
.weight-row input{width:100%}
.dual-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dual-list>div{border:1px solid #dce4ef;border-radius:9px;padding:10px;min-height:92px}
.dual-list .dual-title{display:block;color:#78869a;font-size:11px;font-weight:700;margin-bottom:8px}
.dual-list button{border:1px solid #d5e0ef;background:#f9fbff;color:#315a8f;border-radius:7px;padding:5px 8px;font-size:11px;margin:0 5px 5px 0}
.dual-list button:hover{background:#eaf2ff}
.version-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.version-list>div{border:1px solid #e3eaf3;border-radius:8px;padding:8px}
.version-list strong{font-size:11px}
.version-options{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}
.version-options label{font-size:11px;white-space:nowrap}
.version-options input{vertical-align:middle}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}
.stat{padding:17px}
.stat strong{display:block;font-size:25px;color:#254b85;margin-top:7px}
.stat span{font-size:11px;color:#8190a4}
.mobile-only{display:none}
.stale-text{color:#a46411!important;font-weight:700}
@media(max-width:850px){.sidebar{position:fixed;z-index:30;transform:translateX(-100%);transition:transform .2s}
.sidebar.open{transform:none}
.mobile-only{display:block}
.topbar{padding:0 15px}
.topbar-subtitle{display:none}
.workspace{padding:16px}
.page-head{flex-direction:column}
.stat-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:570px){.auth-card{padding:27px}
.field-row,.field-row.three,.dual-list,.version-list{grid-template-columns:1fr}
.modal-body{padding:15px}
.modal-header,.modal-footer{padding:13px 15px}
.stat-grid{grid-template-columns:repeat(2,1fr)}
.weight-row{grid-template-columns:82px 1fr 35px}
}
