:root{color-scheme:light;--bg:#eef5f7;--card:#fff;--ink:#193640;--muted:#6f838a;--line:#d7e5e9;--teal:#078d96;--teal-soft:#e8f8f7;--danger:#a33a34;--shadow:0 14px 38px #20526516}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,#d9f3f3,transparent 34%),var(--bg);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}.shell{width:min(1180px,calc(100% - 28px));margin:24px auto 48px}.hero{display:flex;align-items:center;justify-content:space-between;padding:26px 30px;border-radius:22px;background:linear-gradient(120deg,#087f8c,#38afb0);color:#fff;box-shadow:0 18px 44px #0b6f7b33}.hero h1{margin:4px 0;font-size:30px}.hero p{margin:0;color:#d8ffff}.eyebrow,.step{letter-spacing:.12em;font-size:11px;font-weight:800}.hero-actions{display:flex;align-items:center;gap:8px}.user{font-weight:700}.card{margin-top:18px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.section-head h2{margin:3px 0 0;font-size:20px}.section-head p{margin:4px 0 0}.step{color:var(--teal)}button,input,select{font:inherit;border-radius:10px;border:1px solid #c9dbe0;padding:8px 12px}button{border-color:var(--teal);background:var(--teal);color:#fff;font-weight:700;cursor:pointer}button.secondary{color:#08787e;background:var(--teal-soft)}button.ghost{color:inherit;background:#ffffff55;border-color:#ffffff77}.card button.ghost,.dialog-card button.ghost{background:#fff;color:var(--teal);border-color:var(--line)}button:hover{filter:brightness(.97);transform:translateY(-1px)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.stats div{padding:16px 18px;border:1px solid var(--line);border-radius:15px;background:#ffffffb8}.stats b{display:block;font-size:24px;color:var(--teal)}.stats span,.muted,.hint{color:var(--muted);font-size:12px}.toolbar{display:flex;gap:10px;margin:16px 0}.toolbar input{flex:1}.list,.node-list{display:grid;gap:9px}.task-row,.node-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#fbfefe}.task-row strong,.node-row strong{display:block}.task-row small,.node-row small{display:block;color:var(--muted);margin-top:3px}.chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.chip{padding:9px;border-radius:999px;background:#eef2f3;color:#62737a;font-size:12px;font-weight:700}.chip.online{color:#087949;background:#dff7ec}.chip.unstable{color:#896000;background:#fff1cb}.chip.offline{color:#a33a34;background:#fff0ef}.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.events{max-height:460px;overflow:auto}.event{display:grid;grid-template-columns:170px 80px 1fr;gap:10px;padding:8px;border-bottom:1px solid #edf2f3}.event .kind{font-weight:700;color:var(--teal)}dialog{width:min(500px,calc(100% - 24px));padding:0;border:0;border-radius:18px;box-shadow:0 28px 80px #102d3b44}dialog::backdrop{background:#102d3b88}.dialog-card{display:grid;gap:13px;padding:22px;background:var(--card)}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-head h2{margin:0}.dialog-card label{display:grid;gap:5px;font-weight:700}.dialog-card input,.dialog-card select{width:100%}.icon{font-size:21px;padding:3px 9px}.secret{padding:12px;border:1px dashed #0a9097;border-radius:10px;background:#edfcfa;word-break:break-all;color:#075d62;font-family:monospace}.hidden{display:none}.login-page{display:grid;place-items:center;min-height:100vh;padding:20px}.login-card{width:min(400px,100%);display:grid;gap:14px;padding:34px;border:1px solid var(--line);border-radius:22px;background:#fffffff2;box-shadow:var(--shadow)}.login-card h1,.login-card p{margin:0}.login-card label{display:grid;gap:5px}.logo{font-size:42px}.error{padding:9px 11px;border:1px solid #efbbb7;border-radius:9px;background:#fff0ef;color:var(--danger)}code{font-family:monospace}@media(max-width:700px){.shell{width:min(100% - 18px,560px);margin-top:10px}.hero{align-items:flex-start;flex-direction:column;padding:22px}.hero-actions{width:100%;justify-content:flex-end}.hero h1{font-size:26px}.stats{grid-template-columns:repeat(2,1fr)}.card{padding:16px}.toolbar{flex-direction:column}.task-row,.node-row{align-items:flex-start;flex-direction:column}.chips,.row-actions{justify-content:flex-start}.event{grid-template-columns:1fr;gap:2px}}
html[data-theme=dark]{color-scheme:dark;--bg:#101a1e;--card:#1b2a2f;--ink:#e7f1f2;--muted:#a7b9bf;--line:#385057;--teal-soft:#203f40}html[data-theme=dark] .stats div,html[data-theme=dark] .task-row,html[data-theme=dark] .node-row{background:#1e3035}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] .card button.ghost,html[data-theme=dark] .dialog-card button.ghost{color:var(--ink);background:#24383e;border-color:#49636b}html[data-theme=dark] dialog,html[data-theme=dark] .dialog-card,html[data-theme=dark] .login-card{background:var(--card)}
.wide-dialog{width:min(780px,calc(100% - 24px));max-height:calc(100vh - 24px)}.dialog-card{max-height:calc(100vh - 24px);overflow:auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.inline{display:flex;align-items:center;gap:8px}.inline input,.inline select{flex:1}.check{display:flex!important;align-items:center;gap:8px}.check input{width:auto}.select-results{display:grid;gap:6px}.doctor-choice{padding:9px 11px;border:1px solid var(--line);border-radius:9px;cursor:pointer}.doctor-choice.selected{border-color:var(--teal);background:var(--teal-soft)}@media(max-width:700px){.form-grid{grid-template-columns:1fr}.inline{align-items:stretch;flex-wrap:wrap}.inline>*{min-width:0;flex:1 1 100%}}
.management-tools{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.management-tool{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center;min-width:0;padding:13px;text-align:left;color:var(--ink);border-color:var(--line);background:#f8fcfc}.management-tool>span{grid-row:1/span 2;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#078d96,#2db1b3);font-size:20px}.management-tool b,.management-tool small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.management-tool small{color:var(--muted);font-weight:500}.dialog-card hr{width:100%;border:0;border-top:1px solid var(--line)}@media(max-width:900px){.management-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.management-tools{grid-template-columns:1fr}}

.task-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;min-height:150px;padding:19px 18px 16px 66px;border:1px solid var(--line);border-radius:15px;background:#fbfefe}.task-sequence{position:absolute;top:20px;left:20px;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;color:#fff;background:var(--teal);font-weight:800;box-shadow:0 4px 10px #078d9640}.task-title{font-size:17px;font-weight:800}.task-id{display:inline-block;margin-left:7px;padding:2px 7px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:11px;vertical-align:2px}.task-meta,.task-node{margin-top:7px;color:var(--muted)}.release-time{margin-top:7px;color:#a66000;font-weight:800}.task-control{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:10px;min-width:390px}.task-badges,.auth-row,.task-buttons{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.auth-row input{width:128px;padding:6px 10px}.compact{padding:6px 11px}.danger-button{border-color:#edbdb9;background:#fff1f0;color:var(--danger)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}.task-node{font-size:12px}.wide-dialog{overscroll-behavior:contain}html[data-theme=dark] .task-item{background:#1e3035}html[data-theme=dark] .danger-button{background:#3b2425;color:#ffb8b2;border-color:#754548}
.check-feedback{display:inline-flex;align-items:center;max-width:100%;margin-top:9px;padding:5px 9px;border:1px solid #b9e1df;border-radius:8px;color:#087078;background:#eaf8f7;font-size:12px;font-weight:700}.check-feedback.completed{color:#087949;background:#e4f8ee;border-color:#bce8d2}.check-feedback.found{color:#925d00;background:#fff1cb;border-color:#f1d58c}.check-feedback.failed{color:var(--danger);background:#fff0ef;border-color:#efbbb7}html[data-theme=dark] .check-feedback{background:#203f40;border-color:#3f6667}html[data-theme=dark] .check-feedback.failed{background:#3b2425;border-color:#754548}
.visit-time{margin-top:7px;color:#087949;font-size:15px;font-weight:800}.visit-room{margin-top:4px;color:#087078;font-weight:700}.booking-time{margin-top:4px;color:var(--muted);font-size:12px}html[data-theme=dark] .visit-time{color:#75dfac}html[data-theme=dark] .visit-room{color:#7ed8da}
@media(max-width:700px){.task-item{grid-template-columns:1fr;padding:54px 13px 13px}.task-sequence{top:14px;left:13px}.task-title{font-size:15px}.task-badges{position:absolute;top:13px;right:12px;max-width:calc(100% - 60px)}.task-control{min-width:0;width:100%;align-items:stretch}.auth-row{display:grid;grid-template-columns:auto minmax(90px,1fr) auto}.auth-row input{width:100%;min-width:0}.task-buttons{justify-content:flex-end}.task-id{margin-left:2px}.dialog-actions{flex-wrap:wrap}}
@media(min-width:701px){.shell{width:min(1320px,calc(100% - 28px))}.wide-dialog{width:min(1100px,calc(100% - 24px))}}
#historyList{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));align-items:start}
#historyList .task-item{min-width:0}
#historyList .task-control{min-width:0}
#taskList{grid-template-columns:repeat(auto-fit,minmax(min(100%,680px),1fr))}
#taskList .task-item{min-width:0}
/* 双列仅在每张卡仍有充足空间时启用，避免信息区被操作区挤变形。 */
@media(min-width:701px){.shell{width:min(1600px,calc(100% - 28px))}}
@media(min-width:1400px){#taskList{grid-template-columns:repeat(auto-fit,minmax(min(100%,680px),1fr))}#taskList .task-item{grid-template-columns:minmax(0,1fr) minmax(280px,42%);gap:12px}#taskList .task-control{min-width:0}}
.auth-row{flex-wrap:nowrap}.auth-row input{width:96px;min-width:82px;padding:5px 7px}.auth-row .compact{padding:5px 7px;white-space:nowrap}
.field-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.release-preview{color:#a66000;font-size:12px;font-weight:800;white-space:nowrap}html[data-theme=dark] .release-preview{color:#f1bd62}@media(max-width:520px){.field-heading{align-items:flex-start;flex-direction:column;gap:2px}.release-preview{white-space:normal}}
.section-actions{display:flex;align-items:center;gap:8px}.toolbar{align-items:center}.toolbar input{min-width:0}.pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap;color:var(--muted);font-size:12px}.pager .compact{padding:4px 8px}.history-toolbar{margin-top:8px}.doctor-choice{color:#087d85;font-size:15px;font-weight:700}.doctor-choice.selected{color:#05666c}.select-results.searching{color:var(--teal);font-weight:700}
.event{grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr);gap:10px;min-width:0}.event-head{display:flex;align-items:center;gap:10px;min-width:0;white-space:nowrap}.event-time,.event-message,.event .kind{min-width:0}.event .kind{overflow-wrap:anywhere}.event-message{overflow-wrap:anywhere;line-height:1.45}
#historyList{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr))}
@media(max-width:700px){.section-head{align-items:flex-start}.section-actions{justify-content:flex-end}.toolbar{align-items:stretch}.pager{justify-content:center}.event{grid-template-columns:1fr}.event-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.event-time,.event .kind{white-space:nowrap}.event .kind{overflow:hidden;text-overflow:ellipsis}.event-message{grid-column:1/-1}}
@media(max-width:700px){#historyList{grid-template-columns:1fr}}
@media(max-width:700px){.toolbar{flex-direction:row;align-items:center}.toolbar input{flex:0 1 58%;width:58%;max-width:58%;min-width:0;padding-left:10px;padding-right:10px}.toolbar .pager{flex:1 0 auto;justify-content:flex-end;gap:4px}.toolbar .pager .compact{padding:3px 7px}.toolbar .pager span{font-size:11px}}
.stats .stat-card{display:block;width:100%;padding:16px 18px;text-align:left;border:1px solid var(--line);border-radius:15px;background:#ffffffb8;color:var(--ink);box-shadow:none}.stats .stat-card:hover{border-color:var(--teal);filter:none;transform:translateY(-1px)}.stats .stat-card span{display:block}html[data-theme=dark] .stats .stat-card{background:#1e3035;color:var(--ink)}
/* 暗黑主题：深蓝灰背景、分层卡片和高对比青绿色强调，减少纯黑/纯白刺眼感。 */
html[data-theme=dark]{color-scheme:dark;--bg:#0b1418;--card:#142329;--ink:#e7f4f5;--muted:#9eb5bb;--line:#2b4851;--teal:#55d3d4;--teal-soft:#17383c;--danger:#ff8f88;--shadow:0 16px 42px #00000055}
html[data-theme=dark] body{background:radial-gradient(circle at 12% 0,#123c43 0,transparent 34%),radial-gradient(circle at 90% 20%,#202743 0,transparent 28%),var(--bg)}
html[data-theme=dark] .hero{background:linear-gradient(120deg,#0b4e5a,#176f73 58%,#275778);box-shadow:0 18px 44px #00000055}
html[data-theme=dark] .card{background:linear-gradient(145deg,#16282f,#122127);border-color:#2b4851;box-shadow:0 14px 38px #00000044}
html[data-theme=dark] .stats .stat-card{background:linear-gradient(145deg,#182d34,#14252b);border-color:#2b4c55}
html[data-theme=dark] .task-item{background:linear-gradient(145deg,#172b32,#13242a);border-color:#2d4b53}
html[data-theme=dark] .task-item:hover{border-color:#4ebfc1;box-shadow:0 10px 28px #00000044}
html[data-theme=dark] .task-id,html[data-theme=dark] .task-node{color:#a9c0c5}
html[data-theme=dark] input,html[data-theme=dark] select{background:#1a3037;color:var(--ink);border-color:#3d5b64}
html[data-theme=dark] input::placeholder{color:#789198}
html[data-theme=dark] .card button.ghost,html[data-theme=dark] .dialog-card button.ghost{background:#1b353c;color:#bceced;border-color:#3b6068}
html[data-theme=dark] .management-tool{background:#172d34;color:var(--ink);border-color:#2e5058}
html[data-theme=dark] .management-tool:hover{background:#1c3b42;border-color:#55d3d4}
html[data-theme=dark] .event{border-color:#223b42}
html[data-theme=dark] .event .kind{color:#63d9da}
html[data-theme=dark] dialog,html[data-theme=dark] .dialog-card,html[data-theme=dark] .login-card{background:#142329;color:var(--ink)}
html[data-theme=dark] .doctor-choice{color:#8de5e4;border-color:#355962}html[data-theme=dark] .doctor-choice.selected{background:#183f43;color:#c4ffff;border-color:#55d3d4}
.node-row{position:relative;padding-right:130px}.node-side{display:flex;align-items:flex-end;flex-direction:column;gap:8px;flex:0 0 auto}.node-side>.chip{position:absolute;top:13px;right:15px}.node-test{margin-top:7px!important;padding:4px 8px;border-radius:7px}.node-test.testing{color:#896000;background:#fff1cb}.node-test.success{color:#087949;background:#dff7ec}.node-test.failed{color:var(--danger);background:#fff0ef}@media(max-width:700px){.node-row{padding-right:15px}.node-side{width:100%;align-items:flex-start}.node-side>.chip{top:12px;right:12px}.node-side .row-actions{width:100%;padding-right:88px}}html[data-theme=dark] .node-test.testing{color:#ffda82;background:#4a3b1c}html[data-theme=dark] .node-test.success{color:#8cf1ba;background:#123d35}html[data-theme=dark] .node-test.failed{color:#ffaaa4;background:#4a2428}
html[data-theme=dark] .release-time,html[data-theme=dark] .release-preview{color:#ffd17a}
html[data-theme=dark] .chip{background:#20343a;color:#b2c5c9}html[data-theme=dark] .chip.online{background:#123d35;color:#8cf1ba}html[data-theme=dark] .chip.unstable{background:#4a3b1c;color:#ffda82}html[data-theme=dark] .chip.offline{background:#4a2428;color:#ffaaa4}
.hero-brand{display:flex;align-items:center;gap:18px}.brand-logo{width:70px;height:70px;object-fit:cover;border:4px solid #ffffffd9;border-radius:50%;background:#fff;box-shadow:0 10px 25px #004b5650}.login-logo{width:82px;height:82px;object-fit:cover;border:4px solid #fff;border-radius:50%;background:#fff;box-shadow:0 10px 24px #0b687c2e}@media(max-width:700px){.hero-brand{align-items:flex-start;gap:12px}.brand-logo{width:56px;height:56px;flex:0 0 auto}.login-logo{width:72px;height:72px}}
.node-command-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap}.command-box{display:grid;gap:8px;padding:10px;border:1px dashed var(--teal);border-radius:10px;background:var(--teal-soft)}.command-box textarea{width:100%;resize:vertical;min-height:84px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);background:var(--card)}
.node-dialog-card{display:flex;flex-direction:column;gap:0;overflow:hidden}.node-dialog-fixed{flex:0 0 auto;padding-bottom:14px}.node-dialog-scroll{min-height:0;overflow:auto;display:grid;gap:13px;padding-right:4px}.node-dialog-scroll .dialog-actions{padding-top:2px}
