:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0e12;--bg-2:#10151b;--panel:#151b22;--panel-2:#1a222b;--line:#2b3642;--line-soft:#202934;--text:#edf2f7;--muted:#94a3b2;--muted-2:#6f7f90;--green:#4fc37d;--amber:#e6b456;--red:#ef7171;--cyan:#69b7ff;--violet:#9c8cff;--shadow:0 18px 50px #00000042}*{box-sizing:border-box}html{scroll-behavior:smooth;min-height:100%}body{background:var(--bg);min-height:100%;color:var(--text);letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}.brand-lockup{color:var(--text);align-items:center;gap:10px;font-size:14px;font-weight:700;display:flex}.brand-mark{width:34px;height:34px;color:var(--cyan);letter-spacing:0;background:#111922;border:1px solid #516173;border-radius:8px;place-items:center;font-size:12px;display:inline-grid}.status-dot{background:var(--muted-2);border-radius:99px;width:9px;height:9px;display:inline-block}.status-dot.online{background:var(--green);box-shadow:0 0 0 4px #4fc37d1f}.login-page{background:#0b0e12;place-items:center;min-height:100vh;padding:28px;display:grid}.login-shell{border:1px solid var(--line);background:var(--panel);width:min(100%,1040px);min-height:620px;box-shadow:var(--shadow);border-radius:8px;grid-template-columns:1fr 430px;gap:18px;display:grid;overflow:hidden}.login-copy{background:linear-gradient(#10151bb3,#0b0e12fa),url(/openclaw-dashboard-concept.png) 50%/cover;flex-direction:column;justify-content:flex-end;gap:18px;padding:42px;display:flex}.login-copy p{color:var(--muted);margin:0;font-size:13px}.login-copy h2{max-width:560px;color:var(--text);letter-spacing:0;margin:0;font-size:34px;font-weight:720;line-height:1.12}.login-proof-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:480px;display:grid}.login-proof-grid div{background:#0c1015c7;border:1px solid #ffffff21;border-radius:8px;padding:12px}.login-proof-grid strong{font-size:22px;display:block}.login-proof-grid span{color:var(--muted);font-size:12px}.login-card{background:#11171e;flex-direction:column;justify-content:center;gap:18px;padding:38px;display:flex}.login-card h1{letter-spacing:0;margin:28px 0 8px;font-size:28px;line-height:1.1}.login-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.login-card label{color:var(--muted);gap:8px;font-size:12px;font-weight:650;display:grid}.login-card input,.create-task input,.create-task select{border:1px solid var(--line);width:100%;color:var(--text);background:#0d1218;border-radius:8px;outline:none}.login-card input{height:44px;padding:0 12px}.login-card input:focus,.create-task input:focus,.create-task select:focus{border-color:var(--cyan)}.form-error{color:#ffd0d0;background:#ef71711f;border:1px solid #ef71718c;border-radius:8px;padding:10px 12px;font-size:13px}.primary-action,.create-task>button,.approval-actions button,.icon-button,.mode-toggle{border:1px solid var(--line);color:var(--text);background:#202a35;border-radius:8px}.primary-action{color:#0b0e12;background:#d8e2ed;height:44px;font-weight:750}.app-shell{grid-template-columns:238px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line-soft);background:#0d1218;flex-direction:column;gap:26px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.sidebar nav{gap:5px;display:grid}.nav-item{height:38px;color:var(--muted);border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:0 10px;font-size:13px;font-weight:650;display:flex}.nav-item.active,.nav-item:hover{color:var(--text);background:#151d26;border-color:#384556}.nav-item.active svg{color:var(--violet)}.sidebar-footer{border:1px solid var(--line);background:#111820;border-radius:8px;align-items:flex-start;gap:10px;margin-top:auto;padding:12px;display:flex}.sidebar-footer strong,.sidebar-footer span{display:block}.sidebar-footer strong{font-size:12px}.sidebar-footer span{color:var(--muted);font-size:11px}.dashboard{min-width:0;padding:18px}.topbar{z-index:5;border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0b0e12e6;justify-content:space-between;align-items:center;gap:16px;margin:-18px -18px 18px;padding:14px 18px;display:flex;position:sticky;top:0}.search-box{border:1px solid var(--line);width:min(100%,520px);height:38px;color:var(--muted);background:#111820;border-radius:8px;align-items:center;gap:10px;padding:0 12px;font-size:13px;display:flex}.search-box:focus-within{border-color:#69b7ffb3}.search-box input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;padding:0;font-size:13px}.search-box input::placeholder{color:var(--muted)}.topbar-actions{align-items:center;gap:9px;min-width:0;display:flex}.env-chip,.user-chip{border:1px solid var(--line);min-height:34px;color:var(--muted);white-space:nowrap;background:#111820;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:12px;display:inline-flex}.user-chip span{text-overflow:ellipsis;max-width:210px;overflow:hidden}.user-chip strong{color:var(--text)}.icon-button{place-items:center;width:34px;height:34px;display:grid}.mode-toggle{min-height:34px;color:var(--muted);white-space:nowrap;background:#111820;padding:0 10px;font-size:12px;font-weight:700}.mode-toggle.active{color:#b8dcff;background:#69b7ff1a;border-color:#69b7ff8c}.hero-grid,.work-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.overview-panel,.ops-panel,.panel,.node-card,.readiness-strip article{border:1px solid var(--line);background:var(--panel);border-radius:8px}.overview-panel{flex-direction:column;grid-column:span 8;justify-content:space-between;min-height:196px;padding:18px;display:flex}.ops-panel{grid-column:span 4;padding:18px}.ops-panel p,.section-heading p{color:var(--muted);text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:700}.ops-panel h2,.section-heading h1,.section-heading h2{letter-spacing:0;margin:0}.section-heading h1{font-size:31px;line-height:1.1}.section-heading h2,.ops-panel h2{font-size:18px;line-height:1.25}.section-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.section-heading.compact{margin-bottom:14px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.metric-grid div,.summary-row{border:1px solid var(--line-soft);background:#111820;border-radius:8px}.metric-grid div{align-content:center;gap:6px;min-height:64px;padding:12px;display:grid}.metric-grid span,.summary-row span,.status-stack span{color:var(--muted);font-size:12px}.metric-grid strong{min-width:0;color:var(--text);overflow-wrap:anywhere;font-size:21px;line-height:1.1}.summary-row{justify-content:space-between;gap:12px;margin-top:10px;padding:11px 12px;display:flex}.summary-row strong{overflow-wrap:anywhere;text-align:right;min-width:0;font-size:13px}.summary-row.next-action{align-items:flex-start}.card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.node-card{min-height:176px;padding:14px}.card-title{align-items:center;gap:9px;margin-bottom:11px;display:flex}.card-title strong{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.node-card p{min-height:36px;color:var(--muted);margin:0 0 14px;font-size:13px;line-height:1.45}.node-card dl,.node-card dd{margin:0}.node-card dl{gap:8px;display:grid}.node-card dl div{border-top:1px solid var(--line-soft);justify-content:space-between;gap:10px;padding-top:8px;display:flex}.node-card dt,.node-card dd{min-width:0;color:var(--muted);font-size:12px}.node-card dd{color:var(--text);text-align:right;overflow-wrap:anywhere}.status-badge{border:1px solid var(--line);min-height:24px;color:var(--muted);white-space:nowrap;background:#111820;border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:11px;font-weight:750;line-height:1;display:inline-flex}.status-badge.online,.status-badge.idle,.status-badge.completed,.status-badge.approved,.status-badge.ok,.status-badge.healthy,.status-badge.success,.status-badge.configured,.status-badge.resolved,.status-badge.active{color:#8df0b0;background:#4fc37d17;border-color:#4fc37d80}.status-badge.pending,.status-badge.awaiting-approval,.status-badge.running,.status-badge.busy,.status-badge.degraded,.status-badge.warning,.status-badge.open,.status-badge.single.route,.status-badge.local.volume,.status-badge.interface-only,.status-badge.degraded-only{color:#f2cf8c;background:#e6b4561a;border-color:#e6b45685}.status-badge.blocked,.status-badge.failed,.status-badge.rejected,.status-badge.down,.status-badge.offline,.status-badge.missing,.status-badge.not-configured,.status-badge.critical,.status-badge.not-installed,.status-badge.not.installed{color:#faa;background:#ef71711a;border-color:#ef71718c}.readiness-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.deployment-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.deployment-section{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin-bottom:14px;padding:14px}.deployment-card{border:1px solid var(--line);min-height:82px;color:var(--text);text-align:left;background:#111820;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px;display:flex}.deployment-card.selected,.deployment-card:hover{background:#69b7ff12;border-color:#69b7ff8c}.deployment-card strong,.deployment-card span{display:block}.deployment-card strong{margin-bottom:5px;font-size:13px}.deployment-card span{color:var(--muted);overflow-wrap:anywhere;font-size:12px;line-height:1.35}.deployment-detail{border:1px solid var(--line-soft);background:#0f151c;border-radius:8px;margin-top:10px;padding:12px}.deployment-detail strong,.deployment-detail span{display:block}.deployment-detail p{color:var(--muted);margin:5px 0 7px;font-size:12px;line-height:1.45}.deployment-detail span{color:var(--muted-2);font-size:11px}.readiness-strip article{grid-template-columns:18px minmax(0,1fr);gap:10px;min-height:96px;padding:12px;display:grid}.readiness-strip strong,.readiness-strip span{display:block}.readiness-strip strong{margin-bottom:4px;font-size:13px}.readiness-strip span{color:var(--muted);font-size:12px;line-height:1.35}.readiness-strip .status-badge{grid-column:2;justify-self:start}.panel{min-width:0;padding:15px}.ops-grid{margin-bottom:14px}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.span-12{grid-column:span 12}.task-table{border:1px solid var(--line-soft);border-radius:8px;overflow-x:auto}.compact-table .table-head,.compact-table .table-row{grid-template-columns:minmax(150px,1fr) 120px minmax(220px,1.4fr) 110px;min-width:660px}.table-head,.table-row{grid-template-columns:minmax(260px,1.6fr) 110px 120px 112px;align-items:center;gap:10px;min-width:680px;padding:10px 12px;display:grid}.table-head{color:var(--muted);text-transform:uppercase;background:#111820;font-size:11px;font-weight:800}.table-row{border-top:1px solid var(--line-soft);color:var(--muted);font-size:12px}.table-row a{color:var(--text);font-weight:650}.table-row.selected{background:#69b7ff0f}.ordinary-task-table{display:grid}.task-group+.task-group{border-top:1px solid var(--line-soft)}.task-group-heading{color:var(--text);background:#111820;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.task-group-heading strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.task-group-heading span{color:var(--muted);font-size:11px;font-weight:750}.ordinary-task-row{grid-template-columns:minmax(260px,1fr) 120px 112px;min-width:560px}.row-title{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;font-size:12px;font-weight:650;display:inline-flex}.row-title span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ordinary-task-row .row-title{justify-content:stretch;gap:4px;display:grid}.ordinary-task-row .row-title small{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.table-empty{color:var(--muted);grid-column:1/-1}.create-task{grid-template-columns:minmax(160px,1fr) minmax(220px,1.35fr) 88px;gap:9px;margin-top:12px;display:grid}.create-task input,.create-task select,.create-task>button{height:38px;padding:0 10px;font-size:13px}.create-task>button{color:#0b0e12;background:#d8e2ed;font-weight:800}.create-task.simple-task input[name=title]{grid-column:span 2}.task-mode-switch{border:1px solid var(--line-soft);background:#0f151c;border-radius:8px;grid-column:1/-1;gap:4px;width:fit-content;max-width:100%;padding:4px;display:inline-flex}.task-mode-switch button{min-width:72px;height:30px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:0 10px;font-size:12px;font-weight:750}.task-mode-switch button.active{color:#b8dcff;background:#69b7ff1f;border-color:#69b7ff8c}.status-stack{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.approval-list,.worker-list,.event-stream,.audit-list,.ops-list{gap:9px;display:grid}.detail-panel{flex-direction:column;gap:12px;display:flex}.detail-list{gap:8px;margin:0;display:grid}.detail-list.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-row{border:1px solid var(--line-soft);background:#111820;border-radius:8px;justify-content:space-between;gap:12px;padding:9px 10px;display:flex}.detail-row dt,.detail-row dd{min-width:0;margin:0;font-size:12px}.detail-row dt{color:var(--muted)}.detail-row dd{color:var(--text);text-align:right;overflow-wrap:anywhere}.detail-block{gap:8px;display:grid}.detail-block>strong{color:var(--muted);font-size:12px}.linked-row{border:1px solid var(--line-soft);color:var(--muted);background:#111820;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:12px;display:flex}.linked-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.link-button{width:100%;color:var(--text);text-align:left}.mini-event{border-left:2px solid var(--cyan);padding-left:9px}.mini-event span,.mini-event small{color:var(--muted);font-size:11px}.mini-event p{color:var(--text);margin:2px 0;font-size:12px;line-height:1.35}.secondary-link,.text-button{border:1px solid var(--line);color:var(--text);background:#111820;border-radius:8px;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:750;display:inline-flex}.secondary-link{min-height:34px;padding:0 10px}.text-button{min-height:28px;padding:0 9px}.empty-state{border:1px solid var(--line-soft);color:var(--muted);background:#111820;border-radius:8px;padding:11px 12px;font-size:12px;line-height:1.4}.card-grid>.empty-state{grid-column:1/-1}.approval-item,.worker-row,.event-row,.audit-list div,.ops-row,.ops-empty{border:1px solid var(--line-soft);background:#111820;border-radius:8px}.approval-item{gap:10px;padding:12px;display:grid}.approval-item.selected{background:#69b7ff0f;border-color:#69b7ff73}.approval-focus{border:1px solid var(--line-soft);background:#0f151c;border-radius:8px;gap:4px;margin-bottom:9px;padding:10px;display:grid}.approval-focus span,.approval-focus small{color:var(--muted);font-size:11px}.approval-focus strong{font-size:13px;line-height:1.35}.approval-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.approval-item strong,.approval-item span,.approval-item small,.worker-row strong,.worker-row span,.event-row strong,.event-row p,.event-row small,.audit-list strong,.audit-list span,.audit-list small,.ops-row strong,.ops-row span,.ops-row small{display:block}.approval-item strong{font-size:13px;line-height:1.35}.approval-item span,.approval-item small{color:var(--muted);margin-top:4px;font-size:12px}.approval-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.approval-actions button{justify-content:center;align-items:center;gap:6px;height:34px;font-size:12px;font-weight:800;display:inline-flex}.approval-actions .approve{color:#b7ffd0;border-color:#4fc37d8c}.approval-actions .reject{color:#ffc0c0;border-color:#ef71718c}.worker-row{justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;display:flex}.ops-row{justify-content:space-between;align-items:flex-start;gap:10px;padding:11px 12px;display:flex}.ops-row>div{min-width:0}.ops-empty{color:var(--muted);padding:12px;font-size:12px}.worker-row strong,.audit-list strong,.event-row strong,.ops-row strong{font-size:12px}.worker-row span,.audit-list span,.audit-list small,.event-row p,.event-row small,.ops-row span,.ops-row small{color:var(--muted);font-size:12px}.ops-row span{overflow-wrap:anywhere;margin:4px 0;line-height:1.35}.event-row{grid-template-columns:10px minmax(0,1fr);gap:10px;padding:11px;display:grid}.event-row>span{background:var(--cyan);border-radius:99px;width:8px;height:8px;margin-top:4px}.event-row p{margin:3px 0;line-height:1.35}.audit-list div{padding:10px}.artifact-workbench{grid-template-columns:minmax(220px,.9fr) minmax(0,1.2fr);gap:10px;display:grid}.artifact-list{align-content:start;gap:8px;display:grid}.artifact-list-item{border:1px solid var(--line-soft);min-width:0;color:var(--text);text-align:left;background:#111820;border-radius:8px;grid-template-columns:18px minmax(0,1fr);align-items:flex-start;gap:9px;padding:10px;display:grid}.artifact-list-item.selected,.artifact-list-item:hover{background:#69b7ff0f;border-color:#69b7ff73}.artifact-list-item strong,.artifact-list-item small{display:block}.artifact-list-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.artifact-list-item small{color:var(--muted);margin-top:4px;font-size:11px}.artifact-preview{border:1px solid var(--line-soft);background:#0f151c;border-radius:8px;align-content:start;gap:10px;min-width:0;padding:12px;display:grid}.artifact-preview-head{align-items:flex-start;gap:10px;display:flex}.artifact-preview-head strong,.artifact-preview-head span{display:block}.artifact-preview-head strong{font-size:13px}.artifact-preview-head span{color:var(--muted);margin-top:3px;font-size:12px}.artifact-preview code{border:1px solid var(--line-soft);color:#b8dcff;background:#0b1016;border-radius:8px;padding:9px;font-size:11px;line-height:1.45;display:block;overflow:auto}.metadata-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.metadata-grid div{border:1px solid var(--line-soft);background:#111820;border-radius:8px;padding:9px}.metadata-grid span,.metadata-grid strong{min-width:0;display:block}.metadata-grid span{color:var(--muted);font-size:11px}.metadata-grid strong{overflow-wrap:anywhere;margin-top:4px;font-size:12px}.artifact-note{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.toast{z-index:20;border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow);background:#111820;border-radius:8px;padding:11px 14px;font-size:13px;position:fixed;bottom:18px;right:18px}@media (max-width:1160px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;height:auto;position:static;overflow-x:auto}.sidebar nav{min-width:max-content;display:flex}.sidebar-footer{min-width:220px;margin-top:0;margin-left:auto}.overview-panel,.ops-panel,.span-7,.span-6,.span-5,.span-4,.span-3,.span-12{grid-column:span 12}.card-grid,.readiness-strip,.deployment-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.artifact-workbench{grid-template-columns:1fr}}@media (max-width:720px){.dashboard{padding:12px}.topbar{flex-direction:column;align-items:stretch;margin:-12px -12px 12px;position:static}.topbar-actions{flex-wrap:wrap}.hero-grid,.work-grid,.metric-grid,.card-grid,.deployment-strip,.readiness-strip,.create-task,.detail-list.two-col,.metadata-grid{grid-template-columns:1fr}.overview-panel,.ops-panel,.span-7,.span-6,.span-5,.span-4,.span-3,.span-12{grid-column:auto}.section-heading{display:grid}.section-heading h1{font-size:25px}.sidebar{padding:12px}.sidebar-footer{display:none}.login-page{padding:12px}.login-shell{grid-template-columns:1fr;min-height:auto}.login-copy,.login-card{padding:24px}.login-copy h2{font-size:25px}.login-proof-grid{grid-template-columns:1fr}}
