:root {
  --xm-canvas:#eae9e3; --xm-card:#f8f7f3; --xm-line:#e3e2db; --xm-ink:#3a3b3e;
  --xm-soft:#787a7e; --xm-faint:#a6a7ab; --xm-accent:oklch(0.66 0.055 245);
  --xm-accentSoft:oklch(0.93 0.028 240); --xm-accentText:oklch(0.50 0.07 250);
  --xm-onAccent:#fff; --xm-leaf:oklch(0.66 0.05 200); --xm-warn:#c2723a; --xm-danger:#b5483d;
  --xm-warnSoft:#f5e8dc; --xm-leafSoft:#e4eee6; --xm-leafText:#3f7851; --xm-dangerSoft:#f4e4df;
  --xm-shadow-card:0 4px 18px rgba(80,65,45,.04); --xm-shadow-panel:0 20px 70px rgba(45,40,35,.22); --xm-shadow-fab:0 8px 24px rgba(70,90,110,.24); --xm-backdrop:rgba(33,30,25,.32);
  --xm-fs-meta:10.5px; --xm-fs-status:11px; --xm-fs-sub:11.5px; --xm-fs-body:13.5px;
  --xm-fs-title:14px; --xm-fs-brand:16px; --xm-rd-chip:6px; --xm-rd-btn:11px;
  --xm-rd-card:14px; --xm-rd-card-lg:16px; --xm-rd-panel:14px; --xm-rd-pill:999px;
  --xm-d-fast:120ms; --xm-d-base:180ms; --xm-ease:cubic-bezier(.34,1.56,.64,1);
  --xm-size-brand-mark:64px; --xm-size-topbar-logo:38px; --xm-gap-brand:10px;
  color-scheme:light;
}
*{box-sizing:border-box}[hidden]{display:none!important} body{margin:0;background:var(--xm-canvas);color:var(--xm-ink);font:var(--xm-fs-body)/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,textarea,select{font:inherit;color:inherit} button{cursor:pointer}.muted{color:var(--xm-soft)}.eyebrow{margin:0;color:var(--xm-accentText);font-size:var(--xm-fs-status);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
h1,h2,p{margin-top:0}h1{font-size:24px;line-height:1.1;margin-bottom:4px}h2{font-size:19px;margin-bottom:0}
.login-shell{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,380px);padding:28px;background:var(--xm-card);border:1px solid var(--xm-line);border-radius:var(--xm-rd-card-lg);box-shadow:var(--xm-shadow-panel)}
.brand-mark{display:block;width:var(--xm-size-brand-mark);height:var(--xm-size-brand-mark);margin-bottom:24px;object-fit:contain}
label{display:grid;gap:7px;margin:16px 0;color:var(--xm-soft);font-size:var(--xm-fs-sub);font-weight:650}input,textarea,select{width:100%;border:1px solid var(--xm-line);border-radius:var(--xm-rd-btn);background:var(--xm-card);padding:11px 12px;outline:none;transition:border-color var(--xm-d-fast),box-shadow var(--xm-d-fast)}input:focus,textarea:focus,select:focus{border-color:var(--xm-accent);box-shadow:0 0 0 2px var(--xm-accentSoft)}
.primary{width:100%;border:0;border-radius:var(--xm-rd-btn);padding:12px 16px;background:var(--xm-accent);color:var(--xm-onAccent);font-weight:750}.form-error{min-height:20px;color:var(--xm-danger);font-size:var(--xm-fs-status)}
.app-shell{width:min(100%,920px);min-height:100dvh;margin:auto;padding:calc(18px + env(safe-area-inset-top)) 18px calc(88px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.topbar-brand{display:flex;align-items:center;gap:var(--xm-gap-brand)}.topbar-logo{display:block;width:var(--xm-size-topbar-logo);height:var(--xm-size-topbar-logo);object-fit:contain}.top-actions{display:flex;align-items:center;gap:8px}.online-pill{padding:5px 9px;border-radius:var(--xm-rd-pill);background:var(--xm-accentSoft);color:var(--xm-accentText);font-size:var(--xm-fs-status);font-weight:700}.online-pill.offline{background:var(--xm-dangerSoft);color:var(--xm-danger)}.icon-button{border:1px solid var(--xm-line);border-radius:var(--xm-rd-btn);background:var(--xm-card);padding:7px 10px}
.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.summary article{padding:14px;background:var(--xm-card);border:1px solid var(--xm-line);border-radius:var(--xm-rd-card);box-shadow:var(--xm-shadow-card)}.summary span{display:block;font-size:22px;font-weight:800}.summary small{color:var(--xm-soft);font-size:var(--xm-fs-status)}
.filters{display:flex;gap:7px;overflow:auto;padding-bottom:10px;scrollbar-width:none}.filter{flex:0 0 auto;border:1px solid var(--xm-line);border-radius:var(--xm-rd-pill);background:transparent;padding:7px 12px;color:var(--xm-soft);font-size:var(--xm-fs-status);font-weight:700}.filter.active{border-color:var(--xm-accent);background:var(--xm-accentSoft);color:var(--xm-accentText)}
.task-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:10px}.task-card{display:grid;gap:10px;text-align:left;padding:15px;border:1px solid var(--xm-line);border-radius:var(--xm-rd-card);background:var(--xm-card);box-shadow:var(--xm-shadow-card);transition:transform var(--xm-d-fast),border-color var(--xm-d-fast)}.task-card:active{transform:scale(.985)}.task-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-card h3{margin:0;font-size:var(--xm-fs-title)}.task-card p{margin:0;color:var(--xm-soft);font-size:var(--xm-fs-sub);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--xm-faint);font-size:var(--xm-fs-meta)}.status-chip{padding:4px 7px;border-radius:var(--xm-rd-chip);background:var(--xm-accentSoft);color:var(--xm-accentText);font-size:var(--xm-fs-status);font-weight:750}.status-chip.attention{background:var(--xm-warnSoft);color:var(--xm-warn)}.status-chip.done{background:var(--xm-leafSoft);color:var(--xm-leafText)}.status-chip.failed{background:var(--xm-dangerSoft);color:var(--xm-danger)}.empty{grid-column:1/-1;padding:48px 20px;text-align:center;color:var(--xm-soft);border:1px dashed var(--xm-line);border-radius:var(--xm-rd-card)}
.fab{position:fixed;right:max(20px,calc((100vw - 920px)/2 + 20px));bottom:calc(22px + env(safe-area-inset-bottom));width:54px;height:54px;border:0;border-radius:50%;background:var(--xm-accent);color:var(--xm-onAccent);font-size:30px;box-shadow:var(--xm-shadow-fab)}
dialog{width:min(calc(100% - 24px),520px);max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--xm-line);border-radius:var(--xm-rd-panel);background:var(--xm-card);color:var(--xm-ink);box-shadow:var(--xm-shadow-panel)}dialog::backdrop{background:var(--xm-backdrop);backdrop-filter:blur(3px)}.sheet{padding:20px}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.detail-grid div{padding:10px;border-radius:var(--xm-rd-btn);background:var(--xm-canvas)}.detail-grid small{display:block;color:var(--xm-soft);font-size:var(--xm-fs-status)}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action{border:1px solid var(--xm-line);border-radius:var(--xm-rd-btn);background:var(--xm-card);padding:10px;font-weight:700}.action.danger{color:var(--xm-danger)}.run-result{margin:14px 0;padding:12px;border-radius:var(--xm-rd-card);background:var(--xm-canvas);white-space:pre-wrap}.detail-list{display:grid;gap:7px;margin:16px 0}.detail-list h3{font-size:var(--xm-fs-title)}.detail-list>div,.detail-list>a{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--xm-line);border-radius:var(--xm-rd-btn);color:var(--xm-ink);text-decoration:none}.detail-list small{color:var(--xm-soft);font-size:var(--xm-fs-status)}
@media(max-width:560px){.app-shell{padding-left:12px;padding-right:12px}.topbar h1{font-size:21px}.summary article{padding:11px}.summary span{font-size:19px}.task-list{grid-template-columns:1fr}dialog{align-self:end;width:100%;max-width:none;margin:0;border-radius:var(--xm-rd-panel) var(--xm-rd-panel) 0 0}.fab{right:18px}}
html.dark{--xm-canvas:#211e19;--xm-card:#2b2823;--xm-line:#3a352d;--xm-ink:#f0ebe0;--xm-soft:#a89f8e;--xm-faint:#776f60;--xm-accent:#edb455;--xm-accentSoft:rgba(237,180,85,.16);--xm-accentText:#f0c476;--xm-onAccent:#2a1e09;--xm-leaf:#9bb87d;--xm-warnSoft:#493426;--xm-leafSoft:#283b2d;--xm-leafText:#9bb87d;--xm-dangerSoft:#4a2e29;--xm-shadow-card:0 4px 18px rgba(0,0,0,.16);--xm-shadow-panel:0 20px 70px rgba(0,0,0,.36);--xm-shadow-fab:0 8px 24px rgba(0,0,0,.3);--xm-backdrop:rgba(0,0,0,.46);color-scheme:dark}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
