:root{font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#111827;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}.shell{max-width:1180px;margin:0 auto;padding:48px 20px 80px}.narrow{max-width:760px}.hero{margin-bottom:24px}.brand{font-size:14px;font-weight:800;letter-spacing:.08em;color:#475569}.hero h1{font-size:clamp(32px,6vw,54px);line-height:1.08;margin:10px 0 12px;letter-spacing:-.03em}.hero p{color:#64748b;font-size:16px;line-height:1.7}.card{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:24px;box-shadow:0 12px 36px rgba(15,23,42,.05);margin-bottom:20px}h2{margin:0 0 18px;font-size:20px}label{display:block;font-size:14px;font-weight:700;margin:16px 0 8px}input,textarea,select{width:100%;border:1px solid #d7dce5;border-radius:12px;padding:12px 14px;font:inherit;background:#fff;outline:none}input:focus,textarea:focus,select:focus{border-color:#64748b;box-shadow:0 0 0 3px rgba(100,116,139,.12)}textarea{resize:vertical}button{border:0;border-radius:12px;padding:12px 18px;background:#111827;color:#fff;font-weight:800;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:#eef2f7;color:#334155}.small{padding:7px 10px;border-radius:8px;font-size:12px;margin-right:6px}.hint,.muted,footer{color:#64748b;font-size:13px;line-height:1.6}.hidden{display:none!important}.statusRow{display:flex;align-items:center;gap:10px;font-size:20px}.dot{width:11px;height:11px;border-radius:999px;background:#94a3b8}.dot.processing,.dot.starting{background:#f59e0b;box-shadow:0 0 0 5px rgba(245,158,11,.12)}.dot.completed{background:#16a34a;box-shadow:0 0 0 5px rgba(22,163,74,.12)}.dot.failed,.dot.start_failed{background:#dc2626;box-shadow:0 0 0 5px rgba(220,38,38,.12)}.meta{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #eef2f7}.meta:first-of-type{margin-top:18px}.row{display:flex;gap:12px;align-items:center}.row input{flex:1}.topgap{margin-top:18px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.stat{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:18px}.stat span{display:block;color:#64748b;font-size:13px}.stat strong{display:block;font-size:24px;margin-top:7px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #eef2f7;white-space:nowrap}th{color:#64748b;font-size:12px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2f7}.badge.active,.badge.completed,.badge.used{background:#dcfce7;color:#166534}.badge.processing,.badge.starting{background:#fef3c7;color:#92400e}.badge.failed,.badge.start_failed,.badge.revoked{background:#fee2e2;color:#991b1b}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}@media(max-width:760px){.shell{padding-top:28px}.grid4,.stats{grid-template-columns:1fr 1fr}.row{align-items:stretch;flex-direction:column}.card{padding:18px}}@media(max-width:480px){.grid4,.stats{grid-template-columns:1fr}}
.wide{max-width:1320px}.sectionTitleRow{display:flex;align-items:center;justify-content:space-between;gap:16px}.filters{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(140px,1fr));gap:10px}.toolbar{flex-wrap:wrap}.actions{flex-wrap:wrap}.noteCell{max-width:220px;overflow:hidden;text-overflow:ellipsis}.nowrap{white-space:nowrap}.keyCode{font-weight:700}.legacyMark{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;vertical-align:middle}@media(max-width:900px){.filters{grid-template-columns:1fr 1fr}}@media(max-width:560px){.filters{grid-template-columns:1fr}.sectionTitleRow{align-items:flex-start;flex-direction:column}}
.buttonLink{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:12px;padding:12px 18px;background:#111827;color:#fff;font-weight:800}.secondaryLink{background:#eef2f7;color:#334155}.queryActions{display:flex;gap:10px;flex-wrap:wrap}.quickQuery h2,.queryHelp h2{margin-bottom:8px}.statusLegend{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:12px;padding:9px 0}.statusLegend+.statusLegend{border-top:1px solid #eef2f7}@media(max-width:480px){.queryActions>*{width:100%}.statusLegend{grid-template-columns:1fr;gap:6px}}
.serviceTabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px;background:#e9eef6;border-radius:16px;margin-bottom:20px}.serviceTab{background:transparent;color:#475569;border-radius:12px;padding:13px 16px}.serviceTab.active{background:#fff;color:#111827;box-shadow:0 3px 12px rgba(15,23,42,.08)}@media(max-width:480px){.serviceTabs{grid-template-columns:1fr 1fr}.serviceTab{padding:11px 8px}}

.alerts{display:grid;gap:10px;margin-bottom:16px}.alert{padding:13px 16px;border-radius:14px;border:1px solid #fde68a;background:#fffbeb;color:#92400e;font-weight:700}.alert.danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}.alert.ok{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.badge.needs_review{background:#ffedd5;color:#9a3412}.poolGood{color:#166534;font-weight:700}.poolBad{color:#991b1b;font-weight:700}.poolWarn{color:#92400e;font-weight:700}.stats .stat.warning{border-color:#fde68a;background:#fffbeb}.stats .stat.danger{border-color:#fecaca;background:#fef2f2}

.tokenLabelRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 8px}.tokenLabelRow label{margin:0}.sessionTokenButton{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;text-decoration:none;border-radius:10px;padding:8px 12px;background:#eef2f7;color:#334155;font-size:13px;font-weight:800;transition:background .15s ease,transform .15s ease}.sessionTokenButton:hover{background:#e2e8f0}.sessionTokenButton:active{transform:translateY(1px)}@media(max-width:480px){.tokenLabelRow{align-items:flex-start;flex-direction:column}.sessionTokenButton{width:100%}}

.sessionAccountPreview{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:11px 13px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4;color:#166534}.sessionAccountLabel{font-size:13px;font-weight:700}.sessionAccountPreview strong{font-size:14px;word-break:break-all;text-align:right}@media(max-width:480px){.sessionAccountPreview{align-items:flex-start;flex-direction:column;gap:4px}.sessionAccountPreview strong{text-align:left}}

/* v3.0 正式运营增强 */
h3{margin:0 0 12px;font-size:15px}.compactStats{grid-template-columns:repeat(5,1fr);margin-bottom:0}.opsGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.healthBadge{display:inline-block;padding:4px 8px;border-radius:999px;font-weight:700}.healthBadge.good{background:#dcfce7;color:#166534}.healthBadge.warning{background:#fef3c7;color:#92400e}.healthBadge.danger{background:#fee2e2;color:#991b1b}.healthBadge.paused{background:#e2e8f0;color:#475569}.tinyHint{margin-top:4px;color:#64748b;font-size:11px;max-width:160px;white-space:normal;line-height:1.35}.backupSummary{display:flex;gap:18px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;background:#f8fafc;color:#475569;font-size:13px}.backupSummary strong{color:#111827}.badge.needs_review{background:#ffedd5;color:#9a3412}@media(max-width:980px){.compactStats{grid-template-columns:repeat(3,1fr)}.opsGrid{grid-template-columns:1fr}}@media(max-width:600px){.compactStats{grid-template-columns:1fr 1fr}}

/* v3.1 管理员账号登录 + 操作日志 */
.authCard{max-width:980px}.authGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.authGrid label{margin-top:0}.loginGrid{grid-template-columns:1fr 1fr}.adminBar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:12px 16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}.adminBar .row{flex-direction:row}.adminBar #sessionExpires{margin-left:8px}.authCard h2{margin-bottom:8px}@media(max-width:700px){.authGrid,.loginGrid{grid-template-columns:1fr}.adminBar{align-items:flex-start;flex-direction:column}.adminBar .row{width:100%;justify-content:space-between}}
