:root{--bg: #f3f6fb;--surface: #ffffff;--surface-soft: #f8fafd;--line: #dde5f0;--line-soft: #e8edf5;--text: #101b2d;--text-muted: #64748b;--text-faint: #94a3b8;--nav-bg: #0d1728;--nav-line: #21304a;--nav-text: #aebbd0;--nav-active: #202c42;--primary: #6f58ff;--primary-strong: #5b44e8;--success: #15815b;--warning: #b45309;--danger: #b42318;--shadow: 0 8px 22px rgb(15 23 42 / 7%);--shadow-soft: 0 4px 12px rgb(15 23 42 / 5%)}html,body,#app{margin:0;min-height:100%}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;letter-spacing:0}*{box-sizing:border-box}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:radial-gradient(circle at 28% 18%,rgb(111 88 255 / 18%),transparent 32%),linear-gradient(145deg,#0d1728,#101b2d 48%,#0b1322)}.login-card{width:min(400px,calc(100vw - 32px));padding:30px;border:1px solid rgb(255 255 255 / 10%);border-radius:8px;background:#101b2de0;box-shadow:0 24px 70px #00000057;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-mark,.brand-mark{display:grid;place-items:center;background:linear-gradient(135deg,#7d64ff,#5140d8);color:#fff;font-weight:800}.login-mark{width:46px;height:46px;margin-bottom:18px;border-radius:12px}.login-card h1{margin:0 0 8px;color:#fff;font-size:25px;font-weight:800}.login-card p{margin:0 0 22px;color:#aebbd0;font-size:14px}.login-card .el-input__wrapper{min-height:42px;border-radius:7px;background:#0d1728;box-shadow:inset 0 0 0 1px #263655}.login-card .el-input__inner{color:#e5edf8}.login-button{width:100%}.login-meta{display:flex;justify-content:space-between;margin-top:18px;color:#70819b;font-size:12px}.admin-shell{display:grid;grid-template-columns:202px minmax(0,1fr);min-height:100vh;background:var(--bg);transition:grid-template-columns .16s ease}.admin-shell.collapsed{grid-template-columns:58px minmax(0,1fr)}.side-nav{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;background:var(--nav-bg);border-right:1px solid var(--nav-line);color:var(--nav-text)}.brand-row{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:8px;height:56px;padding:0 10px;border-bottom:1px solid var(--nav-line)}.brand-mark{flex:0 0 auto;width:36px;height:36px;padding:3px;overflow:hidden;border-radius:10px;background:#ffffff0f;box-shadow:inset 0 0 0 1px #94a3b829}.brand-name{flex:1;min-width:0;overflow:hidden;color:#fff;font-size:15px;font-weight:800;line-height:1;text-align:center;white-space:nowrap}.brand-logo{display:block;width:100%;height:100%;object-fit:contain}.collapse-button,.top-collapse-button,.account-menu-button{transition:background .14s ease,color .14s ease,border-color .14s ease,transform .14s ease}.collapse-button{justify-self:end;width:26px;height:26px;border:1px solid transparent;background:#ffffff0a;color:#9eabc0;--el-button-hover-bg-color: rgb(111 88 255 / 16%);--el-button-hover-text-color: #ffffff;--el-button-active-bg-color: rgb(111 88 255 / 24%);--el-button-active-text-color: #ffffff}.collapse-button.el-button.is-text:not(.is-disabled),.collapse-button.el-button.is-text:not(.is-disabled):hover,.collapse-button.el-button.is-text:not(.is-disabled):focus,.collapse-button.el-button.is-text:not(.is-disabled):focus-visible{background:#ffffff0a;color:#9eabc0}.collapse-button.el-button.is-text:not(.is-disabled):hover,.collapse-button.el-button.is-text:not(.is-disabled):focus,.collapse-button.el-button.is-text:not(.is-disabled):focus-visible{border-color:#6f58ff57;background:#6f58ff2e;color:#fff;box-shadow:0 0 0 2px #6f58ff1a}.collapse-button.el-button.is-text:not(.is-disabled):active{border-color:#6f58ff6b;background:#6f58ff3d;color:#fff}.collapse-button:active,.top-collapse-button:active,.account-menu-button:active,.nav-item:active{transform:scale(.96)}.admin-shell.collapsed .brand-row{display:flex;justify-content:center;padding:0 4px}.admin-shell.collapsed .brand-mark{width:34px;height:34px}.admin-shell.collapsed .brand-name,.admin-shell.collapsed .nav-item span,.admin-shell.collapsed .nav-section{display:none}.nav-scroll{flex:1;overflow-y:auto;padding:9px 7px}.nav-section{padding:15px 10px 6px;color:#65758e;font-size:10px;font-weight:800;letter-spacing:0}.nav-item{display:flex;align-items:center;gap:9px;width:100%;min-height:36px;margin:1px 0;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--nav-text);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background .14s ease,color .14s ease,transform .14s ease,box-shadow .14s ease}.nav-item .el-icon{flex:0 0 auto;width:16px;font-size:15px}.nav-item:hover{background:#17243a;color:#fff;transform:translate(2px)}.nav-item.active{background:var(--nav-active);color:#eef4ff;box-shadow:inset 3px 0 0 var(--primary)}.admin-shell.collapsed .nav-item{justify-content:center;padding:0}.dashboard-item{margin-bottom:8px}.main-pane{min-width:0}.top-bar{display:flex;align-items:center;gap:12px;height:42px;padding:0 16px;background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.top-collapse-button{width:28px;height:28px;border:1px solid transparent;color:#56657a}.top-collapse-button:hover,.account-menu-button:hover{border-color:#d2dae6;background:#f8fafc;color:var(--text)}.top-spacer{flex:1}.top-stats{display:flex;align-items:center}.top-stat{min-width:42px;padding:0 10px;border-left:1px solid #d9e2ef;color:#8b9ab0;font-size:11px;line-height:1.05}.top-stat span,.top-stat strong{display:block}.top-stat strong{margin-top:3px;color:#081628;font-size:13px}.content{min-width:0;padding:18px 22px 34px}.account-menu-button{width:28px;height:28px;border:1px solid transparent}.account-icon{color:var(--primary);font-size:18px}.page-view{min-width:0}.page-title{margin-bottom:20px}.page-title h1{margin:0;color:var(--text);font-size:24px;font-weight:800;line-height:1.25}.page-title p{max-width:960px;margin:4px 0 0;color:var(--text-muted);font-size:14px;line-height:1.45}.detail-title-row{margin-bottom:18px}.dashboard-card,.detail-panel,.detail-summary>div,.info-item,.metric,.table-wrap,.form-panel,.empty-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.detail-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:18px}.detail-summary>div,.info-item{min-width:0;padding:13px 15px}.detail-summary span,.info-item span{display:block;color:var(--text-muted);font-size:13px}.detail-summary strong,.info-item strong{display:block;margin-top:7px;overflow-wrap:anywhere;color:var(--text);font-size:16px}.detail-panel{padding:0 18px 18px}.announce-panel{margin-bottom:16px;padding-top:18px}.announce-summary-panel{padding-bottom:18px}.announce-tabs{margin-bottom:4px}.announce-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.announce-panel-head.no-margin{align-items:center;margin-bottom:0}.announce-panel-head h2{margin:0 0 6px;color:var(--text);font-size:18px}.announce-panel-head p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.6}.announce-mail-tag{height:40px;padding:0 14px}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.dashboard-monitor-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:-8px 0 16px;color:var(--text-muted);font-size:13px}.dashboard-monitor-actions code,.panel-query{border-radius:6px;background:#edf3fa;color:#263655;font-family:Cascadia Mono,Consolas,monospace}.dashboard-monitor-actions code{padding:3px 6px}.monitor-link,.panel-link{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font-size:13px;font-weight:700;text-decoration:none;transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease}.monitor-link:hover,.panel-link:hover{border-color:#6f58ff5c;background:#6f58ff14;color:var(--primary);transform:translateY(-1px)}.monitor-link.primary{border-color:var(--primary);background:var(--primary);color:#fff}.monitor-link.primary:hover{background:var(--primary-strong);color:#fff}.dashboard-card{min-width:0}.kpi-card{min-height:132px;padding:18px 20px}.monitor-kpi-card{position:relative;overflow:hidden}.monitor-kpi-card:after{position:absolute;right:-28px;bottom:-42px;width:96px;height:96px;border-radius:999px;background:radial-gradient(circle,rgb(111 88 255 / 12%),transparent 68%);content:""}.dashboard-card-head,.chart-title-row,.retention-label,.resource-meta,.chart-legend{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.dashboard-card-head{min-height:28px}.dashboard-card-head span{min-width:0;line-height:1.4}.kpi-card span,.chart-title-row span,.retention-label span,.resource-meta span{color:var(--text-muted);font-size:13px}.dashboard-card-head em{flex:0 0 auto;max-width:110px;padding:4px 8px;border-radius:999px;background:#f1f5fb;color:#8b9ab0;font-size:12px;font-style:normal;font-weight:700;line-height:1;text-align:center;white-space:nowrap}.kpi-card strong{display:block;margin-top:10px;color:var(--text);font-size:32px;font-weight:800;line-height:1}.kpi-card small{display:block;min-height:18px;margin-top:10px;color:#7b8ca5;font-size:12px;line-height:1.45}.kpi-split{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.kpi-split strong{margin:0;padding:9px 10px;border-radius:7px;background:#f1f5fb;font-size:16px;text-align:center}.kpi-footnote{margin-top:10px;color:#8b9ab0;font-size:12px;line-height:1.45}.dashboard-chip-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.dashboard-chip-row span{min-height:24px;padding:4px 8px;border-radius:999px;background:#f1f5fb;color:#52637b;font-size:12px;font-weight:700;line-height:1.3}.mini-meter{height:8px;margin-top:12px;overflow:hidden;border-radius:999px;background:#e9eef6}.mini-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,var(--primary))}.status-pill{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:24px;margin-top:8px;padding:3px 8px;border-radius:999px;background:#eefdf6;color:var(--success);font-size:12px;font-style:normal;font-weight:700}.status-pill.warning{background:#fff7e8;color:var(--warning)}.status-pill.danger{background:#fff0f0;color:var(--danger)}.service-trigger-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.service-trigger-list span{padding:4px 8px;border-radius:999px;background:#f8fafc;color:#52637b;font-size:12px;font-weight:700}.kpi-card small.service-threshold-text{min-height:0;margin-top:8px;color:#9aa8bb}.dashboard-chart-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:14px;margin-bottom:14px}.dashboard-observe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.chart-panel{min-height:246px;padding:18px 20px}.echarts-panel{min-height:318px}.echart-box{width:100%;height:190px}.compact-chart{height:148px;margin-top:8px}.compact-runtime-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}.chart-panel-wide{min-width:0}.chart-title-row{min-height:52px;margin-bottom:16px}.chart-title-row>div{min-width:0}.chart-title-row h2{margin:0;color:var(--text);font-size:16px;font-weight:800;line-height:1.3}.chart-title-row span{display:block;margin-top:4px;line-height:1.35}.chart-title-row small{flex:0 0 auto;max-width:132px;padding:7px 10px;border-radius:999px;background:#f6f9fd;color:#3b4a63;font-size:12px;font-weight:700;line-height:1.1;text-align:center;white-space:nowrap}.line-chart{width:100%;height:154px;overflow:visible}.observe-line-chart{height:138px}.chart-grid-line{stroke:#dce5f1;stroke-width:1}.chart-line{fill:none;stroke:var(--primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.danger-line{stroke:#ef4444}.warning-line{stroke:#f59e0b}.chart-axis-labels{display:flex;justify-content:space-between;color:#7b8ca5;font-size:12px}.chart-legend{justify-content:flex-start;margin-top:10px;color:var(--text-muted);font-size:13px}.panel-query{display:block;margin-top:14px;padding:9px 10px;overflow:hidden;color:#3b4a63;font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.latency-summary,.runtime-stat-grid{display:grid;gap:10px}.latency-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.runtime-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-mini-grid{display:grid;gap:10px;margin-top:10px}.dashboard-mini-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-mini-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.latency-summary>div,.runtime-stat-grid>div,.dashboard-mini-grid>div{min-width:0;padding:12px;border-radius:7px;background:#f6f9fd}.latency-summary span,.runtime-stat-grid span,.dashboard-mini-grid span{display:block;color:var(--text-muted);font-size:12px}.latency-summary strong,.runtime-stat-grid strong,.dashboard-mini-grid strong{display:block;margin-top:6px;overflow-wrap:anywhere;color:var(--text);font-size:20px}.latency-bars{display:flex;align-items:end;gap:8px;height:76px;margin-top:18px;padding:0 4px 2px;border-bottom:1px solid #dce5f1}.latency-bars i{flex:1;min-width:0;border-radius:7px 7px 0 0;background:linear-gradient(180deg,#6f58ff,#22c55e)}.stability-metrics{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:10px;color:var(--text-muted);font-size:13px}.route-quality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.route-quality-grid>div{min-width:0;padding:12px;border:1px solid #e5edf7;border-radius:10px;background:#fbfdff}.route-quality-grid h3{margin:0 0 8px;color:var(--text);font-size:13px}.route-quality-grid ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.route-quality-grid li{display:grid;gap:3px;min-width:0}.route-quality-grid span,.route-quality-grid em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}.route-quality-grid span{color:var(--text);font-size:12px;font-weight:650}.route-quality-grid em{color:var(--text-muted);font-size:12px;font-style:normal}.risk-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:20px 22px;background:radial-gradient(circle at 92% 10%,rgb(111 88 255 / 12%),transparent 34%),var(--surface)}.risk-eyebrow{display:inline-flex;margin-bottom:8px;color:var(--primary);font-size:12px;font-weight:800}.risk-hero h2,.risk-module-card h2{margin:0;color:var(--text);font-size:18px;font-weight:800}.risk-hero p,.risk-module-card p{margin:8px 0 0;color:var(--text-muted);font-size:13px;line-height:1.55}.risk-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.risk-summary-card{padding:16px 18px}.risk-summary-card span,.risk-summary-card small{display:block;color:var(--text-muted);font-size:13px}.risk-summary-card strong{display:block;margin:8px 0;color:var(--text);font-size:26px;font-weight:800}.risk-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.risk-module-card{display:flex;flex-direction:column;min-height:230px;padding:18px 20px}.risk-module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.risk-module-head span{display:block;margin-top:5px;color:var(--text-muted);font-size:13px;line-height:1.45}.risk-scenario{margin-top:14px;padding:13px 14px;border-radius:8px;background:#f6f9fd}.risk-scenario strong,.risk-scenario span{display:block}.risk-scenario strong{color:var(--text);font-size:13px}.risk-scenario span{margin-top:6px;color:var(--text-muted);font-size:13px;line-height:1.5}.risk-actions{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:16px}.risk-actions small{color:var(--text-faint);font-size:12px}.legend-dot{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%;background:var(--primary)}.danger-dot{background:#ef4444}.warning-dot{background:#f59e0b}.retention-list,.resource-list{display:grid;gap:18px}.retention-row,.resource-row{min-width:0}.retention-label strong,.resource-meta strong{color:var(--text);font-size:14px;white-space:nowrap}.retention-bar,.resource-meter{height:9px;margin-top:9px;overflow:hidden;border-radius:999px;background:#e9eef6}.retention-bar i,.resource-meter i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.resource-meter i.normal{background:#22c55e}.resource-meter i.warning{background:#f59e0b}.resource-meter i.danger{background:#ef4444}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.detail-tabs{margin-top:14px}.row-actions{display:flex;align-items:center;gap:8px}.community-form{max-width:640px;padding-top:10px}.save-data-viewer{margin-top:14px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fbfdff}.save-data-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.save-data-viewer-head span{color:var(--text);font-size:14px;font-weight:800}.save-data-viewer-head em{padding:3px 8px;border-radius:999px;background:#eef5ff;color:var(--primary);font-size:12px;font-style:normal;font-weight:800}.save-data-table{display:grid}.save-data-row{display:grid;grid-template-columns:minmax(130px,.38fr) minmax(0,1fr);border-top:1px solid #edf3fa}.save-data-row:first-child{border-top:0}.save-data-row>span{min-width:0;padding:12px 14px;border-right:1px solid #edf3fa;color:#52637b;font-size:13px;font-weight:800;overflow-wrap:anywhere}.save-data-row pre,.save-data-raw,.save-data-empty{margin:0;padding:12px 14px;color:var(--text);font:12px/1.55 JetBrains Mono,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.save-data-empty{color:var(--text-muted);font-family:inherit}.console-toolbar{display:flex;align-items:center;gap:10px;min-height:40px;margin-bottom:14px}.console-toolbar.compact{align-items:center}.page-action-toolbar{min-height:40px;margin:8px 0 14px}.page-action-toolbar .el-button{min-height:40px}.log-toolbar{flex-wrap:wrap}.log-file-select{width:240px;flex:0 0 240px}.log-small-select{width:118px;flex:0 0 118px}.log-request-input{width:210px;flex:0 0 210px}.audit-query-input{width:280px;flex:0 0 280px}.runtime-log-query-input{width:320px;flex:0 0 320px}.runtime-log-table .el-table__cell{vertical-align:top}.console-toolbar.no-margin{margin:12px 0 0}.filter-input{max-width:1128px;flex:1}.player-filter-select{width:128px;flex:0 0 128px}.rank-period-input{display:flex;align-items:center;gap:10px;width:100%}.rank-period-input .el-input-number{flex:1}.rank-period-input span{flex:0 0 auto;color:var(--text-muted);font-size:13px;font-weight:700}.room-filter-input{width:180px;flex:0 0 180px}.filter-input .el-input__wrapper,.console-toolbar .el-select__wrapper{min-height:40px;border-radius:7px}.toolbar-label,.range-label{color:#344154;font-size:13px;white-space:nowrap}.toolbar-fill{flex:1}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.metric{--el-card-padding: 16px}.metric-title{color:var(--text-muted);font-size:13px}.metric-value{margin-top:8px;color:var(--text);font-size:28px;font-weight:800}.table-wrap{overflow:hidden}.table-section-head{display:flex;flex-direction:column;gap:6px;padding:18px 20px 12px;border-bottom:1px solid var(--line-soft)}.table-section-head h3{margin:0;color:var(--text);font-size:16px;font-weight:800;line-height:1.25}.table-section-head p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.5}.page-action-toolbar+.table-wrap{margin-top:0}.table-wrap .el-table__row{cursor:pointer}.table-wrap .el-table__row:hover td.el-table__cell{background:#f7f9fd}.table-wrap .el-table th.el-table__cell{background:#edf3fa;color:#23314a;font-size:13px;font-weight:700}.table-wrap .el-table td.el-table__cell{color:#162236;font-size:13px}.table-wrap .el-table .cell{line-height:1.35}.players-table-wrap .el-table th.el-table__cell:first-child .cell,.players-table-wrap .el-table td.el-table__cell:first-child .cell{padding-left:18px}.players-table-wrap .last-login-column .cell{padding-right:28px}.pager{display:flex;justify-content:flex-end;padding-top:16px}.form-panel,.empty-panel{max-width:780px;padding:18px}.settings-panel{padding:14px 18px 18px}.settings-panel .el-tabs__header{margin:0 0 18px}.settings-panel .el-tabs__content{padding-top:0}.settings-panel .page-action-toolbar{margin-top:0}.sentinel-layout{display:grid;grid-template-columns:minmax(420px,1.25fr) minmax(320px,.75fr);gap:16px}.scheduler-layout{display:grid;grid-template-columns:minmax(500px,1.15fr) minmax(460px,.85fr);gap:16px}.sentinel-form,.scheduler-form{max-width:none}.sentinel-section{padding-bottom:18px;border-bottom:1px solid var(--line-soft)}.sentinel-section+.sentinel-section{padding-top:18px}.sentinel-section-title{margin-bottom:14px}.sentinel-section-title strong{display:block;color:var(--text);font-size:15px}.sentinel-section-title span{display:block;margin-top:4px;color:var(--text-muted);font-size:13px}.sentinel-switch-row{display:flex;align-items:center;justify-content:space-between;min-height:40px;margin-bottom:12px;padding:0 12px;border-radius:7px;background:#f6f9fd;color:var(--text);font-size:13px;font-weight:700}.sentinel-control-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;margin-bottom:14px;padding:12px 14px;border:1px solid rgb(111 88 255 / 20%);border-radius:8px;background:linear-gradient(135deg,#6f58ff17,#22c55e0f),#f7f9fd;color:var(--text);cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease,transform .14s ease}.sentinel-control-row:hover,.sentinel-control-row:focus-visible{border-color:#6f58ff5c;box-shadow:0 0 0 3px #6f58ff17;outline:none;transform:translateY(-1px)}.sentinel-control-row.off{border-color:var(--line-soft);background:#f6f9fd}.sentinel-control-copy{display:grid;gap:5px;min-width:0}.sentinel-control-copy strong{color:var(--text);font-size:14px}.sentinel-control-copy small{color:var(--text-muted);font-size:12px;font-weight:500;line-height:1.45}.sentinel-control-action{display:inline-flex;align-items:center;flex:0 0 auto;gap:10px}.sentinel-state-pill{min-width:54px;padding:4px 8px;border-radius:999px;background:#eafaf2;color:var(--success);font-size:12px;font-weight:800;text-align:center}.sentinel-control-row.off .sentinel-state-pill{background:#edf1f7;color:var(--text-muted)}.sentinel-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sentinel-field-grid .el-form-item{margin-bottom:0}.sentinel-field-grid .el-input-number{width:100%}.sentinel-status-panel,.scheduler-status-panel{display:grid;align-content:start;gap:14px}.scheduler-topbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.45fr);gap:16px;margin-bottom:16px}.scheduler-info-grid{align-content:start}.scheduler-switch-panel{max-width:none}.scheduler-time-picker,.scheduler-number-input{width:100%}.scheduler-time-panel{display:grid;gap:12px;margin-top:12px;padding:14px;border:1px solid var(--line-soft);border-radius:8px;background:linear-gradient(180deg,#fbfdff,#f6f9fd)}.scheduler-time-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.scheduler-time-head strong{color:var(--text);font-size:15px}.scheduler-time-head span{color:var(--text-muted);font-size:13px;font-weight:700}.scheduler-mode-segmented,.scheduler-mode-segmented .el-segmented__group{width:100%}.scheduler-mode-segmented .el-segmented__item{flex:1}.scheduler-time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.scheduler-time-fields .el-form-item{margin-bottom:0}.scheduler-time-fields .el-date-editor,.scheduler-time-fields .el-select,.scheduler-time-fields .el-input-number{width:100%}.scheduler-master-switch{align-items:flex-start;min-height:58px;padding:10px 12px}.scheduler-master-switch>div{display:grid;gap:4px}.scheduler-master-switch span{color:var(--text)}.scheduler-master-switch small{color:var(--text-muted);font-size:12px;font-weight:500;line-height:1.45}.scheduler-table-wrap .el-table__row{cursor:default}.panel-subhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.panel-subhead h3{margin:0 0 4px;color:var(--text);font-size:16px}.panel-subhead p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.5}.scheduler-task-name{display:grid;gap:3px}.scheduler-task-name span{color:var(--text-muted);font-size:12px}.scheduler-plan-text{color:#3b4a63;font-weight:700}.scheduler-inline-actions{display:flex;justify-content:flex-end;margin-top:12px}.scheduler-param-panel{display:grid;gap:12px;margin-top:12px;padding:14px;border:1px solid var(--line-soft);border-radius:8px;background:#f8fafc}.scheduler-param-panel .el-form-item{margin-bottom:0}.scheduler-param-hint{margin:0;color:var(--text-muted);font-size:13px;line-height:1.5}.scheduler-retention-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scheduler-log-panel{display:grid;gap:14px;margin-top:16px}.sentinel-last-block,.sentinel-resource-list{padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.sentinel-last-block h3,.sentinel-resource-list h3{margin:0 0 12px;color:var(--text);font-size:15px}.sentinel-last-block p{display:grid;grid-template-columns:70px minmax(0,1fr);gap:8px;margin:8px 0 0;color:var(--text);font-size:13px;overflow-wrap:anywhere}.sentinel-last-block span{color:var(--text-muted)}.empty-panel{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:16px}.empty-panel .el-icon{color:var(--primary);font-size:23px}.room-empty-panel{max-width:none;box-shadow:none}.log-panel{min-height:460px;margin:0;padding:18px;overflow:auto;border:1px solid #1e293b;border-radius:8px;background:#0b1220;color:#d6e4ff;font-family:Cascadia Mono,Consolas,monospace;font-size:13px;line-height:1.55;white-space:pre-wrap}.permission-list,.permission-checkboxes{display:flex;flex-wrap:wrap;gap:8px}.status-active{color:var(--success)}.status-muted{color:var(--warning)}.status-banned{color:var(--danger)}.el-button{border-radius:7px;font-weight:600}.el-button--primary{--el-button-bg-color: var(--primary);--el-button-border-color: var(--primary);--el-button-hover-bg-color: var(--primary-strong);--el-button-hover-border-color: var(--primary-strong)}.el-dialog{border-radius:8px}.el-dialog__header{padding-bottom:12px;border-bottom:1px solid var(--line-soft)}.el-dialog__footer{border-top:1px solid var(--line-soft)}.el-tabs__item{font-weight:700}.el-pagination.is-background .el-pager li.is-active{background:var(--primary)}@media(max-width:980px){.admin-shell,.admin-shell.collapsed{grid-template-columns:1fr}.side-nav{position:relative;height:auto}.nav-scroll{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:6px;overflow:visible;padding:12px}.nav-section{display:none}.admin-shell.collapsed .brand-name,.admin-shell.collapsed .nav-item span{display:inline}.admin-shell.collapsed .nav-item{justify-content:flex-start;padding:0 18px}.top-bar{flex-wrap:wrap;height:auto;padding:10px 14px}.top-spacer{display:none}.content{padding:18px 14px 28px}.dashboard-kpi-grid,.dashboard-chart-grid,.dashboard-observe-grid,.risk-summary-grid,.risk-module-grid{grid-template-columns:1fr}.risk-hero{align-items:flex-start;flex-direction:column}.latency-summary,.runtime-stat-grid,.dashboard-mini-grid.three,.dashboard-mini-grid.four,.route-quality-grid,.compact-runtime-grid,.kpi-split,.sentinel-layout,.scheduler-topbar,.scheduler-layout,.sentinel-field-grid,.scheduler-retention-grid{grid-template-columns:1fr}}
