*{box-sizing:border-box;}
body{margin:0;background:#f4f6fa;color:#202c40;font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
a{color:inherit;text-decoration:none;}
button,input{font:inherit;}
button,a,input{outline-offset:4px;}
button{cursor:pointer;}
button:disabled{cursor:not-allowed;opacity:.45;}
.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:#101d32;color:#c1cce0;padding:28px 20px;display:flex;flex-direction:column;}
.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:750;color:white;letter-spacing:1px;}
.brand-icon{width:38px;height:38px;background:#3675f0;border-radius:11px;display:grid;place-items:center;}
.nav-item{padding:13px 16px;border-radius:8px;}
.workspace{margin-left:230px;}
.topbar{height:75px;border-bottom:1px solid #e1e6ef;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 38px;}
.breadcrumb{display:flex;gap:15px;font-size:13px;color:#8190a6;}
.breadcrumb span:last-child{color:#34445c;}
.top-actions{display:flex;align-items:center;}
.dot{display:inline-block;width:7px;height:7px;background:#a1aabd;border-radius:50%;vertical-align:middle;margin-right:5px;}
.dot.green{background:#26ae7c;box-shadow:0 0 0 3px #26ae7c12;}
main{max-width:1530px;margin:0 auto;padding:34px 38px 20px;}
.page-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 28px;}
.eyebrow{font-size:15px;letter-spacing:2px;font-weight:650;color:#7d8da5;margin-bottom:8px;}
h1{font-size:27px;line-height:1.3;margin:7px 0 10px;letter-spacing:-.6px;}
h2{font-size:15px;margin:0;font-weight:650;}
.muted{color:#8190a5;line-height:1.8;}
.small{font-size:15px;}
.fine{font-size:15px;color:#8290a5;line-height:1.8;}
.btn{padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #dbe2ec;border-radius:6px;background:white;color:#42536c;font-size:15px;line-height:1.5;white-space:nowrap;}
.btn:hover{background:#f4f7fc;}
.btn.primary{background:#2866d9;color:white;border-color:#2866d9;box-shadow:0 2px 3px #2866d916;}
.btn.primary:hover{background:#205cc8;}
.btn.danger{color:#d34d52;border-color:#efc5c7;background:#fff7f7;}
.btn.subtle{border:0;background:transparent;color:#8090a5;}
.btn.compact{padding:7px 13px;}
.btn.wide{width:100%;padding:12px;}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:25px;}
.stat{background:white;border:1px solid #e2e7ef;border-radius:9px;padding:21px 24px;min-height:106px;}
.stat>span{font-size:15px;color:#8a97a9;}
.stat strong{display:block;font-size:29px;font-weight:600;margin-top:13px;}
.stat small{font-size:15px;color:#8b98a9;margin-left:9px;font-weight:400;}
.stat .smaller{font-size:20px;}
.panel{background:white;border:1px solid #e0e6ef;border-radius:9px;margin-bottom:24px;overflow:hidden;box-shadow:0 2px 4px #14234203;}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 23px;border-bottom:1px solid #edf0f5;min-height:66px;}
.count{font-size:15px;background:#eef2f9;border-radius:5px;padding:3px 7px;color:#7787a0;margin-left:8px;}
.panel-heading input{width:230px;font-size:15px;padding:9px 12px;}
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;white-space:nowrap;}
th{text-align:left;font-size:15px;font-weight:500;color:#8c98ab;background:#fafbfd;padding:14px 22px;border-bottom:1px solid #edf0f5;}
td{padding:22px;font-size:15px;color:#54657e;border-bottom:1px solid #edf0f5;}
tbody tr:last-child td{border-bottom:0;}
tbody tr:hover{background:#fafcff;}
td small{display:block;color:#94a0b2;font-size:15px;margin-top:6px;}
.align-right{text-align:right;}
.server-name{display:flex;align-items:center;gap:12px;}
.server-name a{font-size:13px;font-weight:600;color:#253a58;}
.server-icon{background:#edf3ff;color:#467bdc;padding:11px;border:1px solid #e1eafb;border-radius:8px;font-size:19px;}
.pill{background:#f0f3f8;color:#72829b;border-radius:5px;padding:5px 9px;font-size:15px;white-space:nowrap;}
.green-pill{background:#eaf8f1;color:#26936d;}
.empty{padding:40px;text-align:center;color:#8d99aa;white-space:normal;}
.notice{padding:14px 18px;border-radius:7px;margin-bottom:22px;font-size:15px;line-height:1.8;overflow-wrap:anywhere;}
.notice.success{background:#eaf7f0;color:#267858;border:1px solid #d4ecde;}
.notice.error{background:#fff0f0;color:#b8494f;border:1px solid #f1d3d5;}
.notice.info{background:#edf4ff;color:#466b9d;border:1px solid #d9e7fa;}
.notice.warning{background:#fff8e9;color:#977139;border:1px solid #f1e3c4;}
.tabs{display:flex;gap:25px;border-bottom:1px solid #dce3ed;margin-bottom:25px;overflow-x:auto;white-space:nowrap;}
.tabs a{padding:15px 3px;color:#8b97a9;font-size:15px;border-bottom:2px solid transparent;}
.tabs a.active{color:#2b68d7;border-bottom-color:#2b68d7;}
.back-link{font-size:15px;color:#8e9bb0;margin-bottom:8px;}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:24px;}
.info-list{padding:0 23px;margin:0;}
.info-list>div{display:grid;grid-template-columns:115px minmax(0,1fr);gap:15px;border-bottom:1px solid #edf0f5;padding:16px 0;font-size:15px;}
.info-list>div:last-child{border:0;}
.info-list dt{color:#8997ab;}
.info-list dd{margin:0;overflow-wrap:anywhere;color:#3f506a;}
.power-list{padding:0 22px;}
.power-list form{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 0;border-bottom:1px solid #edf0f5;}
.power-list b{font-size:15px;font-weight:550;}
.power-list small{display:block;font-size:15px;color:#95a0b1;margin-top:7px;}
.panel-note{padding:17px 23px;font-size:15px;color:#8f9cb0;background:#fafbfd;}
.tool-links{padding:22px;}
.tool-links p{font-size:15px;}
.confirm-panel{max-width:680px;}
.confirm-content{padding:24px;}
.stack{display:flex;flex-direction:column;gap:20px;}
.stack label{font-size:15px;color:#53647e;line-height:1.8;}
input{display:block;width:100%;border:1px solid #dce3ed;background:#fff;border-radius:6px;padding:11px 12px;margin-top:7px;color:#344862;}
input:focus{border-color:#6091e9;outline:2px solid #6091e91a;}
.check{display:flex;gap:10px;align-items:flex-start;}
.check input{width:auto;margin-top:5px;}
.form-actions{display:flex;justify-content:flex-end;gap:12px;}
.login-intro{text-align:center;margin:40px 0 26px;}
.login-panel{max-width:470px;margin:0 auto;}
.login-panel>.stack{padding:25px;}
.login-panel>.fine{padding:0 25px 20px;text-align:center;}
.captcha-row{display:flex;align-items:center;gap:15px;margin-top:8px;}
.captcha-row img{border:1px solid #e0e6ef;border-radius:5px;max-width:150px;}
.captcha-row input{margin:0;min-width:0;}
.captcha-refresh{text-align:center;}
.table-note{padding:0 23px;font-size:15px;color:#8a97a9;}
footer{text-align:center;font-size:15px;color:#a2adbd;padding:25px 0 5px;}
form{margin:0;}
@media(max-width:1150px){.sidebar{width:195px;}
.workspace{margin-left:195px;}
main{padding:26px;}
.detail-grid{grid-template-columns:1fr;}}
@media(max-width:720px){.sidebar{display:none;}
.workspace{margin:0;}
.topbar{padding:0 18px;height:62px;}
main{padding:23px 15px;}
.stats{gap:10px;}
.stat{padding:17px 14px;}
.stat strong{font-size:25px;}
.stat .smaller{font-size:15px;}
.page-heading{gap:15px;}
.panel-heading{padding:17px;}
.panel-heading input{width:160px;}
.top-actions{gap:8px;}
h1{font-size:23px;}
.breadcrumb{gap:9px;font-size:15px;}
.confirm-content{padding:18px;}}
.reinstall-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 0;border-bottom:1px solid #edf0f5;}
.reinstall-entry b{font-size:15px;font-weight:550;}
.reinstall-entry small{display:block;font-size:15px;color:#95a0b1;margin-top:7px;}
.reinstall-entry small span{color:#51647e;}
.current-os-line{font-size:15px;color:#8a97a9;}
.current-os-line b{color:#465b79;}
#reinstall-dialog{width:min(740px,calc(100vw - 36px));max-height:90vh;padding:0;border:1px solid #dce3ed;border-radius:12px;color:#202c40;box-shadow:0 25px 100px #142b5533;overflow:auto;}
#reinstall-dialog::backdrop{background:#10243c88;backdrop-filter:blur(2px);}
.modal-heading{border-bottom:1px solid #e8edf4;display:flex;justify-content:space-between;align-items:flex-start;}
.modal-heading h2{font-size:18px;}
.modal-heading p{margin:8px 0 0;}
.modal-close{border:0;background:transparent;font-size:26px;line-height:1;color:#8d9bb0;padding:0 3px;cursor:pointer;}
.os-selectors{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.os-selectors label{font-size:15px;color:#8090a6;}
.os-selectors select{display:block;width:100%;border:1px solid #d4deec;border-radius:6px;padding:13px 12px;background:#fff;color:#485a74;margin-top:8px;font:inherit;font-size:14px;}
.os-selectors select:focus{outline:2px solid #6091e91a;border-color:#6091e9;}
#reinstall-confirm-title{font-size:15px;margin:0;border-top:1px solid #e8edf4;}
#reinstall-status{min-height:18px;}
#reinstall-fields:empty{display:none;}
[hidden]{display:none!important;}
body:has(dialog[open]){overflow:hidden;}
@media(max-width:600px){.os-selectors{grid-template-columns:1fr;gap:12px;}
.modal-heading,.modal-content{padding:20px;}
.modal-heading h2{font-size:16px;}}
#reinstall-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;}
#reinstall-form>h3,#reinstall-form>.check,#reinstall-form>.form-actions,#reinstall-form>.fine{grid-column:1/-1;}
#reinstall-fields{gap:12px;}
#reinstall-form>.fine{margin:0;}
.modal-heading{padding:18px 24px;}
.modal-content{padding:18px 24px;}
.modal-content>.notice{padding:10px 14px;margin-bottom:16px;}
.current-os-line{margin:0 0 12px;}
.os-selectors{margin:12px 0 18px;}
#reinstall-confirm-title{padding-top:15px;}
@media(max-width:600px){#reinstall-form{grid-template-columns:1fr;}
.os-selectors{grid-template-columns:1fr;}}
.server-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:9px;vertical-align:middle;background:#99a4b5;box-shadow:0 0 0 3px #99a4b512;}
.server-status-dot.running{background:#23b47d;box-shadow:0 0 0 3px #23b47d14;}
.server-status-dot.stopped{background:#ef7474;box-shadow:0 0 0 3px #ef747414;}
.server-status-dot.pending{background:#e9aa35;box-shadow:0 0 0 3px #e9aa3514;}
.server-status-dot.paused{background:#6a8fe3;box-shadow:0 0 0 3px #6a8fe314;}
.server-status-dot.error{background:#bd3347;box-shadow:0 0 0 3px #bd334714;}
.graph-intro{margin-bottom:21px;}
.graph-intro h2{font-size:18px;}
.graphs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.graph-panel{min-width:0;margin-bottom:0;}
.performance-chart{height:260px;margin:15px 8px 0;}
.performance-chart svg{display:block;width:100%;height:260px;overflow:visible;}
.chart-axis{fill:#8c9aae;font-size:15px;font-family:inherit;}
.chart-tooltip{font-size:15px;font-family:inherit;}
.chart-hit{cursor:crosshair;}
.graph-legend{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;padding:9px 20px 5px;font-size:15px;color:#63758e;}
.graph-legend span{display:flex;align-items:center;gap:7px;}
.graph-time-range{text-align:center;font-size:15px;color:#96a2b4;padding:8px 12px 18px;}
@media(max-width:1050px){.graphs-grid{grid-template-columns:1fr;}}
.bridge-key{margin:24px 0;}
.bridge-key input{font-family:monospace;}
.bridge-disable{margin-top:20px;}
.tool-links ol{padding-left:22px;line-height:2.1;font-size:15px;color:#65768e;}
.ui-icon{width:18px;height:18px;display:inline-block;flex-shrink:0;vertical-align:middle;}
.brand-icon .ui-icon{width:24px;height:24px;}
.side-nav{display:flex;flex-direction:column;gap:8px;}
.nav-item{display:flex;align-items:center;gap:12px;border:1px solid transparent;transition:background .15s,color .15s;}
.nav-item:hover{background:#192d49;color:#fff;}
.nav-item.active{background:#245bc2;border-color:#3975df;color:#fff;box-shadow:0 4px 14px #06142d33;}
.nav-item.active .ui-icon{color:#fff;}
.breadcrumb{align-items:center;}
.breadcrumb .ui-icon{width:14px;height:14px;color:#a0aec0;}
.top-actions{gap:14px;}
.account-chip{display:flex;align-items:center;gap:10px;padding:0 16px;border-left:1px solid #e5eaf2;}
.account-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#eef4ff;color:#376dcc;}
.account-label{font-size:13px;font-weight:600;white-space:nowrap;color:#354760;}
.account-label small{display:block;font-size:15px;font-weight:400;color:#7e8da2;margin-top:4px;}
.account-label .dot{width:6px;height:6px;margin-right:6px;}
.logout-button{border-color:#e6ebf3;color:#65758d;background:#fafbfd;}
.logout-button:hover{border-color:#d3deed;background:#f0f4fa;}
.gateway-link{border-color:#dfe8f8;background:#f5f8ff;color:#386ac0;}
.back-link{display:inline-flex;align-items:center;gap:6px;}
.server-icon{display:inline-flex;}
.modal-close{display:grid;place-items:center;width:30px;height:30px;border-radius:6px;}
.modal-close:hover{background:#eef2f8;}
.bridge-key{padding:20px;border:1px solid #dbe5f5;border-radius:8px;background:#f7faff;}
.bridge-key h3{margin:0;font-size:14px;}
.bridge-key input{font-size:13px;background:white;}
.os-selectors select{appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238090a6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;}
@media(max-width:720px){.top-actions{gap:8px;}
.account-chip{padding:0 8px;gap:7px;}
.gateway-link{display:none;}
.logout-button span{display:none;}
.logout-button{padding:9px;}
.breadcrumb{gap:5px;}
.account-avatar{width:30px;height:30px;}
.topbar{height:72px;}
.account-label{font-size:15px;}}
.automation-form{max-width:560px;margin-top:20px;}
.task-url-label{display:block;font-size:15px;margin-top:20px;}
.task-url-label input{font:15px monospace;}
.login-workspace{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;}
.login-workspace main{width:100%;max-width:560px;padding:36px 24px;}
.login-page .login-intro{margin:0 0 26px;}
.login-page .login-panel{max-width:none;}
.login-page footer{font-size:15px;line-height:1.6;}
.captcha-field>label{display:block;}
.captcha-field .captcha-row{display:flex;gap:12px;align-items:stretch;}
.captcha-field .captcha-row img{width:112px;max-width:32%;height:44px;object-fit:contain;background:#fff;}
.captcha-input-wrap{display:flex;flex:1;min-width:0;align-items:center;border:1px solid #dce3ed;border-radius:6px;background:#fff;}
.captcha-input-wrap:focus-within{border-color:#6091e9;outline:2px solid #6091e91a;}
.captcha-input-wrap input{min-width:0;flex:1;width:0;border:0;outline:none;margin:0;padding:11px 10px;background:transparent;}
.captcha-input-wrap input:focus{outline:none;}
.captcha-input-wrap button{flex-shrink:0;border:0;border-left:1px solid #e2e8f0;background:transparent;color:#2866d9;font-size:15px;line-height:1.5;padding:2px 10px;margin-right:2px;}
.captcha-input-wrap button:hover{color:#174ba4;}
.captcha-field #captcha-recognition-status{display:block;min-height:20px;margin-top:6px;font-size:15px;line-height:1.6;}
@media(max-width:420px){.login-workspace main{padding:24px 16px;}
.login-panel>.stack{padding:20px;}
.captcha-field .captcha-row{gap:8px;}
.captcha-field .captcha-row img{width:92px;}
.captcha-input-wrap button{padding:2px 8px;}
.login-intro h1{font-size:25px;}}
.saved-password-field{display:flex;align-items:center;border:1px solid #dce3ed;border-radius:6px;max-width:100%;margin-top:-14px;}
.saved-password-field:focus-within{border-color:#6091e9;outline:2px solid #6091e91a;}
.saved-password-field input{margin:0;min-width:0;flex:1;border:0;background:transparent;font-size:15px;}
.saved-password-field input:focus{outline:none;}
.saved-password-field button{display:grid;place-items:center;width:44px;height:42px;flex-shrink:0;border:0;border-radius:6px;background:transparent;color:#687e9a;}
.saved-password-field button:hover{background:#edf3fc;color:#2866d9;}
.check-status{font-size:15px;font-weight:600;}
.check-status.success{color:#16845d;}
.check-status.warning{color:#a56a08;}
.check-status.error{color:#c33845;}
.check-status.neutral{color:#738096;}
.last-session-check{line-height:1.8;}
.side-nav{margin-top:36px;}
.brand-icon{flex-shrink:0;aspect-ratio:1;}

.startup-error{max-width:760px;margin:10vh auto;padding:32px;line-height:1.8}.startup-error p{overflow-wrap:anywhere}
