@import url('tokens.css');

/* ============================================================
   LEGION WORKBENCH
   Framework-free product-interface primitives for dense,
   inspectable operations. All component classes are lw-*.
   ============================================================ */

@font-face{
  font-family:'Hanken Grotesk';
  src:url('fonts/hanken-grotesk-variable.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'departureMono';
  src:url('fonts/departure-mono.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

/* ---------- foundation ---------- */
.lw-root{
  width:100%;
  margin:0;
  min-width:0;
  min-height:100dvh;
  overflow-x:hidden;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-sans);
  font-size:14px;
  font-weight:400;
  letter-spacing:-.011em;
  line-height:1.45;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
/* Embedded component islands inherit the host page's type scale and canvas.
   Theme tokens, component typography, focus, and motion rules still cascade. */
.lw-root.lw-embed{
  min-height:0;
  background:transparent;
  font-size:inherit;
}
.lw-root,.lw-root *,.lw-root *::before,.lw-root *::after{box-sizing:border-box}
.lw-root button,.lw-root input,.lw-root select,.lw-root textarea{font:inherit;color:inherit}
.lw-root button,.lw-root [role="button"]{cursor:pointer}
.lw-root a{color:inherit}
.lw-root svg{display:block;width:1.1rem;height:1.1rem;stroke-width:1.7}
.lw-root h1,.lw-root h2,.lw-root h3,.lw-root h4,.lw-root p{margin:0}
.lw-root h1,.lw-root h2,.lw-root h3,.lw-root h4{font-weight:400;color:var(--text-strong)}
.lw-root code,.lw-root kbd,.lw-root pre,.lw-root .lw-mono{font-family:var(--font-mono)}
.lw-root ::selection{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--text-strong)}
.lw-root :focus{outline:none}
.lw-root :focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.lw-root [aria-disabled="true"],.lw-root :disabled{cursor:not-allowed;opacity:.5}
.lw-root [hidden]{display:none!important}
.lw-root .lw-visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.lw-root .lw-visually-hidden:focus{
  position:fixed!important;
  top:8px;
  left:8px;
  z-index:200;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  padding:10px 14px!important;
  overflow:visible!important;
  clip:auto!important;
  white-space:normal!important;
  border-radius:var(--r-btn);
  background:var(--btn-fill-bg);
  color:var(--btn-fill-fg);
}

/* ---------- shell ---------- */
.lw-root .lw-shell{
  display:grid;
  grid-template-columns:248px minmax(0,1fr);
  min-height:100dvh;
  background:var(--bg);
}
.lw-root .lw-rail{
  position:sticky;
  top:0;
  z-index:40;
  display:flex;
  flex-direction:column;
  align-self:start;
  width:248px;
  height:100dvh;
  overflow-y:auto;
  background:var(--surface-1);
  border-right:1px solid var(--border);
  scrollbar-width:thin;
  scrollbar-color:var(--border-strong) transparent;
}
.lw-root .lw-rail__brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:64px;
  padding:12px 16px;
  border-bottom:1px solid var(--border);
  color:var(--text-strong);
  font-size:15px;
  font-weight:500;
  text-decoration:none;
  box-shadow:inset 0 -2px var(--accent);
}
.lw-root .lw-rail__mark{
  display:grid;
  flex:0 0 30px;
  width:30px;
  height:30px;
  place-items:center;
  border-radius:var(--r-btn);
  background:var(--btn-fill-bg);
  color:var(--btn-fill-fg);
  font-family:var(--font-mono);
  font-size:16px;
}
.lw-root .lw-rail__body{display:flex;flex:1;flex-direction:column;padding:16px 10px}
.lw-root .lw-rail__section{margin-bottom:20px}
.lw-root .lw-rail__label{
  display:block;
  padding:0 10px 7px;
  color:var(--text-faint);
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
  line-height:1.2;
  text-transform:uppercase;
}
.lw-root .lw-rail__nav{display:grid;gap:2px}
.lw-root .lw-rail__link{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:36px;
  padding:7px 10px;
  border:1px solid transparent;
  border-radius:var(--r-btn);
  color:var(--text-muted);
  font-size:14px;
  font-weight:500;
  text-decoration:none;
  transition:background var(--dur-lift) var(--ease-out),color var(--dur-lift) var(--ease-out),border-color var(--dur-lift) var(--ease-out);
}
.lw-root .lw-rail__link svg{flex:0 0 auto;color:var(--text-faint)}
.lw-root .lw-rail__link:hover{background:var(--surface-2);color:var(--text-strong)}
.lw-root .lw-rail__link[aria-current="page"],.lw-root .lw-rail__link.lw-is-active{
  background:color-mix(in srgb,var(--accent) 9%,var(--surface-1));
  border-color:color-mix(in srgb,var(--accent) 28%,var(--border));
  color:var(--accent-ink);
}
.lw-root .lw-rail__link[aria-current="page"]::before,.lw-root .lw-rail__link.lw-is-active::before{
  content:"";
  position:absolute;
  top:8px;
  bottom:8px;
  left:-11px;
  width:2px;
  border-radius:2px;
  background:var(--accent);
}
.lw-root .lw-rail__link[aria-current="page"] svg,.lw-root .lw-rail__link.lw-is-active svg{color:currentColor}
.lw-root .lw-rail__count{
  min-width:22px;
  margin-left:auto;
  padding:2px 6px;
  border:1px solid var(--border);
  border-radius:var(--r-pill);
  color:var(--text-muted);
  font-family:var(--font-mono);
  font-size:10px;
  line-height:1.2;
  text-align:center;
}
.lw-root .lw-rail__footer{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--border)}
.lw-root .lw-rail__meta{display:block;padding:4px 10px;color:var(--text-faint);font-family:var(--font-mono);font-size:10px}
.lw-root .lw-rail-scrim{display:none}

.lw-root .lw-workspace{display:grid;grid-template-rows:64px minmax(0,1fr);min-width:0;min-height:100dvh}
.lw-root .lw-topbar{
  position:sticky;
  top:0;
  z-index:35;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  min-height:64px;
  padding:10px 24px;
  background:color-mix(in srgb,var(--surface-1) 94%,transparent);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.lw-root .lw-topbar__start,.lw-root .lw-topbar__end{display:flex;align-items:center;gap:8px;min-width:0}
.lw-root .lw-topbar__context{overflow:hidden;color:var(--text-muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-topbar__context strong{color:var(--text-strong);font-weight:600}
.lw-root .lw-rail-toggle{display:none}
.lw-root .lw-main{min-width:0;padding:28px 32px 48px}
.lw-root .lw-main--flush{padding:0}
.lw-root .lw-main__inner{width:100%;max-width:1600px;margin:0 auto}

/* ---------- controls ---------- */
.lw-root .lw-button,.lw-root .lw-icon-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:36px;
  border:1px solid var(--border);
  border-radius:var(--r-btn);
  background:var(--surface-1);
  color:var(--text-strong);
  font-size:13px;
  font-weight:500;
  line-height:1;
  text-decoration:none;
  transition:background var(--dur-lift) var(--ease-out),border-color var(--dur-lift) var(--ease-out),color var(--dur-lift) var(--ease-out),transform var(--dur-lift) var(--ease-out);
}
.lw-root .lw-button{padding:8px 12px}
.lw-root .lw-icon-button{width:36px;padding:0}
.lw-root .lw-button:hover,.lw-root .lw-icon-button:hover{background:var(--surface-2);border-color:var(--border-strong)}
.lw-root .lw-button:active,.lw-root .lw-icon-button:active{transform:translateY(1px)}
.lw-root .lw-button--primary{background:var(--btn-fill-bg);border-color:var(--btn-fill-bg);color:var(--btn-fill-fg)}
.lw-root .lw-button--primary:hover{background:var(--btn-fill-bg-hover);border-color:var(--btn-fill-bg-hover)}
.lw-root .lw-button--accent{background:transparent;border-color:var(--accent);color:var(--accent-ink)}
.lw-root .lw-button--accent:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:var(--accent-surface-2);color:var(--accent-surface-2)}
.lw-root .lw-button--ghost,.lw-root .lw-icon-button--ghost{background:transparent;border-color:transparent;color:var(--text-muted)}
.lw-root .lw-button--ghost:hover,.lw-root .lw-icon-button--ghost:hover{background:var(--surface-2);border-color:transparent;color:var(--text-strong)}
.lw-root .lw-button--danger{background:transparent;border-color:color-mix(in srgb,var(--danger) 48%,var(--border));color:var(--danger)}
.lw-root .lw-button--danger:hover{background:color-mix(in srgb,var(--danger) 9%,transparent);border-color:var(--danger)}
.lw-root .lw-button--small{min-height:30px;padding:5px 9px;font-size:12px}
.lw-root .lw-icon-button--small{width:30px;min-height:30px}
.lw-root .lw-button__count{color:var(--text-muted);font-family:var(--font-mono);font-size:10px}
.lw-root .lw-button.lw-rail-toggle{display:none}

.lw-root .lw-field,.lw-root .lw-select,.lw-root .lw-textarea{
  width:100%;
  border:1px solid var(--border);
  border-radius:var(--r-btn);
  background:var(--surface-1);
  color:var(--text-strong);
  font-size:13px;
  transition:border-color var(--dur-lift) var(--ease-out),background var(--dur-lift) var(--ease-out);
}
.lw-root .lw-field{-webkit-appearance:none;appearance:none}
.lw-root .lw-field,.lw-root .lw-select{height:36px;padding:0 11px}
.lw-root .lw-textarea{min-height:108px;padding:10px 11px;line-height:1.5;resize:vertical}
.lw-root .lw-field::placeholder,.lw-root .lw-textarea::placeholder{color:var(--text-faint);opacity:1}
.lw-root .lw-field:hover,.lw-root .lw-select:hover,.lw-root .lw-textarea:hover{border-color:var(--border-strong)}
.lw-root .lw-field:focus,.lw-root .lw-select:focus,.lw-root .lw-textarea:focus{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 20%,transparent);outline-offset:0}
.lw-root .lw-field-label{display:block;margin-bottom:6px;color:var(--text-muted);font-size:12px;font-weight:600}
.lw-root .lw-field-hint{display:block;margin-top:5px;color:var(--text-faint);font-size:11px}
.lw-root .lw-field-error{display:block;margin-top:5px;color:var(--danger);font-size:11px}
.lw-root .lw-checkbox{width:16px;height:16px;margin:0;accent-color:var(--accent-surface)}

/* ---------- page header and breadcrumbs ---------- */
.lw-root .lw-page-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:22px;
}
.lw-root .lw-page-header__copy{min-width:0;max-width:820px}
.lw-root .lw-page-header__eyebrow{display:flex;align-items:center;gap:7px;margin-bottom:6px;color:var(--accent-ink);font-family:var(--font-mono);font-size:11px;letter-spacing:.03em}
.lw-root .lw-page-header__eyebrow::before{content:"";flex:0 0 14px;width:14px;height:2px;border-radius:2px;background:var(--accent)}
.lw-root .lw-page-header__title{font-size:clamp(1.65rem,2.25vw,2.2rem);line-height:1.08;letter-spacing:-.028em;text-wrap:balance}
.lw-root .lw-page-header__lead{max-width:68ch;margin-top:8px;color:var(--text-muted);font-size:14px;line-height:1.5;text-wrap:pretty}
.lw-root .lw-page-header__actions{display:flex;flex:0 0 auto;align-items:center;gap:8px}
.lw-root .lw-breadcrumbs{display:flex;align-items:center;gap:6px;min-width:0;margin-bottom:9px;color:var(--text-faint);font-size:12px}
.lw-root .lw-breadcrumbs__item{display:flex;align-items:center;gap:6px;min-width:0}
.lw-root .lw-breadcrumbs__item:not(:last-child)::after{content:"/";color:var(--border-strong);font-family:var(--font-mono)}
.lw-root .lw-breadcrumbs a{overflow:hidden;color:var(--text-muted);text-decoration:none;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-breadcrumbs a:hover{color:var(--text-strong);text-decoration:underline;text-underline-offset:3px}
.lw-root .lw-breadcrumbs [aria-current="page"]{overflow:hidden;color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap}

/* ---------- command and filter bars ---------- */
.lw-root .lw-command-bar{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  margin-bottom:14px;
  padding:8px;
  border:1px solid var(--border);
  border-radius:var(--r-card);
  background:var(--surface-1);
}
.lw-root .lw-command-bar__group{display:flex;align-items:center;gap:6px;min-width:0}
.lw-root .lw-command-bar__group--end{margin-left:auto}
.lw-root .lw-command-bar__divider{align-self:stretch;width:1px;margin:0 2px;background:var(--border)}
.lw-root .lw-command-bar__search{position:relative;flex:1 1 240px;min-width:160px;max-width:380px}
.lw-root .lw-command-bar__search svg{position:absolute;top:50%;left:10px;color:var(--text-faint);transform:translateY(-50%);pointer-events:none}
.lw-root .lw-command-bar__search .lw-field{padding-left:34px}
.lw-root .lw-filter{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:6px 9px;
  border:1px solid var(--border);
  border-radius:var(--r-btn);
  background:var(--surface-1);
  color:var(--text-muted);
  font-size:12px;
  white-space:nowrap;
}
.lw-root .lw-filter:hover{border-color:var(--border-strong);color:var(--text-strong)}
.lw-root .lw-filter[aria-pressed="true"],.lw-root .lw-filter.lw-is-active{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--surface-1));color:var(--accent-ink)}
.lw-root .lw-filter__value{font-weight:600;color:var(--text-strong)}
.lw-root .lw-filter__remove{display:grid;width:18px;height:18px;margin:-2px -4px -2px 0;place-items:center;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-faint)}
.lw-root .lw-filter__remove:hover{background:var(--surface-2);color:var(--text-strong)}

/* ---------- panels and section chrome ---------- */
.lw-root .lw-panel{min-width:0;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-1)}
.lw-root .lw-panel--flush{border-radius:0}
.lw-root .lw-panel__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:50px;
  padding:10px 14px;
  border-bottom:1px solid var(--border);
}
.lw-root .lw-panel__title{font-size:14px;font-weight:600;color:var(--text-strong)}
.lw-root .lw-panel__meta{color:var(--text-faint);font-family:var(--font-mono);font-size:10px}
.lw-root .lw-panel__actions{display:flex;align-items:center;gap:6px}
.lw-root .lw-panel__body{min-width:0;padding:16px}
.lw-root .lw-section{min-width:0;margin-top:28px}
.lw-root .lw-section__header{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px;padding-left:12px}
.lw-root .lw-section__header::before{content:"";position:absolute;top:.35em;bottom:.35em;left:0;width:2px;border-radius:2px;background:var(--accent)}
.lw-root .lw-section__title{font-size:16px;letter-spacing:-.018em}
.lw-root .lw-section__hint{color:var(--text-faint);font-size:12px}
.lw-root .lw-divider{height:1px;border:0;background:var(--border)}

/* ---------- semantic data table ---------- */
.lw-root .lw-table-shell{
  position:relative;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:auto;
  overscroll-behavior-inline:contain;
  contain:inline-size;
  border:1px solid var(--border);
  border-radius:var(--r-card);
  background:var(--surface-1);
  scrollbar-width:thin;
  scrollbar-color:var(--border-strong) var(--surface-2);
}
.lw-root .lw-table-shell::before{content:"";position:absolute;top:0;left:0;z-index:18;width:18px;height:2px;background:var(--accent);pointer-events:none}
.lw-root .lw-table-shell:focus-visible{outline-offset:2px}
.lw-root .lw-data-table{
  width:100%;
  min-width:760px;
  border-spacing:0;
  border-collapse:separate;
  color:var(--text);
  font-size:13px;
  font-variant-numeric:tabular-nums;
  text-align:left;
}
.lw-root .lw-data-table caption{padding:10px 12px;color:var(--text-muted);font-size:12px;text-align:left}
.lw-root .lw-data-table th,.lw-root .lw-data-table td{height:44px;padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.lw-root .lw-data-table thead th{
  position:sticky;
  top:0;
  z-index:12;
  background:var(--surface-2);
  color:var(--text-muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:.035em;
  line-height:1.2;
  text-transform:uppercase;
  white-space:nowrap;
}
.lw-root .lw-data-table tbody tr:last-child td{border-bottom:0}
.lw-root .lw-data-table tbody tr{background:var(--surface-1)}
.lw-root .lw-data-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 4%,var(--surface-1))}
.lw-root .lw-data-table tbody tr[aria-selected="true"],.lw-root .lw-data-table tbody tr.lw-is-selected{background:color-mix(in srgb,var(--accent) 8%,var(--surface-1))}
.lw-root .lw-data-table tbody tr[aria-selected="true"] td:first-child,.lw-root .lw-data-table tbody tr.lw-is-selected td:first-child{box-shadow:inset 2px 0 var(--accent)}
.lw-root .lw-data-table__identity{
  position:sticky;
  left:0;
  z-index:8;
  min-width:210px;
  background:inherit;
  border-right:1px solid var(--border);
}
.lw-root .lw-data-table thead .lw-data-table__identity{z-index:16;background:var(--surface-2)}
.lw-root .lw-data-table--identity-first th:first-child,.lw-root .lw-data-table--identity-first td:first-child{
  position:sticky;
  left:0;
  z-index:8;
  min-width:210px;
  background:inherit;
  border-right:1px solid var(--border);
}
.lw-root .lw-data-table--identity-first thead th:first-child{z-index:16;background:var(--surface-2)}
.lw-root .lw-data-table__select{width:42px;min-width:42px;padding-right:6px!important;padding-left:12px!important}
.lw-root .lw-data-table__number{text-align:right;font-family:var(--font-mono);font-size:11px}
.lw-root .lw-data-table__muted{color:var(--text-muted)}
.lw-root .lw-data-table__faint{color:var(--text-faint)}
.lw-root .lw-data-table__truncate{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-identity{display:flex;align-items:center;gap:9px;min-width:0}
.lw-root .lw-identity__avatar{
  display:grid;
  flex:0 0 28px;
  width:28px;
  height:28px;
  overflow:hidden;
  place-items:center;
  border:1px solid var(--border);
  border-radius:var(--r-btn);
  background:var(--surface-2);
  color:var(--text-muted);
  font-family:var(--font-mono);
  font-size:10px;
}
.lw-root .lw-identity__avatar img{width:100%;height:100%;object-fit:cover}
.lw-root .lw-identity__copy{min-width:0}
.lw-root .lw-identity__name{display:block;overflow:hidden;color:var(--text-strong);font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-identity__meta{display:block;margin-top:1px;overflow:hidden;color:var(--text-faint);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-sort{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin:-6px;
  padding:6px;
  border:0;
  border-radius:var(--r-sm);
  background:transparent;
  color:inherit;
  font-size:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
  text-transform:inherit;
}
.lw-root .lw-sort:hover{background:var(--surface-3);color:var(--text-strong)}
.lw-root .lw-data-table th[aria-sort="ascending"] .lw-sort,
.lw-root .lw-data-table th[aria-sort="descending"] .lw-sort{color:var(--accent-ink)}
.lw-root .lw-table-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface-1);color:var(--text-muted);font-size:12px}
.lw-root .lw-pagination{display:flex;align-items:center;gap:4px}

/* ---------- execution cell and statuses ---------- */
.lw-root .lw-execution{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:150px}
.lw-root .lw-execution__mark{
  position:relative;
  width:8px;
  height:8px;
  border:1px solid var(--border-strong);
  border-radius:50%;
  background:var(--surface-2);
}
.lw-root .lw-execution__copy{min-width:0}
.lw-root .lw-execution__label{display:block;overflow:hidden;color:var(--text-strong);font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-execution__meta{display:block;margin-top:1px;overflow:hidden;color:var(--text-faint);font-family:var(--font-mono);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-execution--running .lw-execution__mark{border-color:var(--accent);background:var(--accent)}
.lw-root .lw-execution--running .lw-execution__mark::after{
  content:"";
  position:absolute;
  inset:-4px;
  border:1px solid var(--accent);
  border-radius:50%;
  animation:lw-running-ring 1.4s var(--ease-out) infinite;
}
.lw-root .lw-execution--succeeded .lw-execution__mark{border-color:var(--success);background:var(--success)}
.lw-root .lw-execution--partial .lw-execution__mark,.lw-root .lw-execution--queued .lw-execution__mark{border-color:var(--warning);background:var(--warning)}
.lw-root .lw-execution--failed .lw-execution__mark,.lw-root .lw-execution--blocked .lw-execution__mark{border-color:var(--danger);background:var(--danger)}

.lw-root .lw-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:max-content;
  max-width:100%;
  min-height:22px;
  padding:3px 7px;
  border:1px solid var(--border);
  border-radius:var(--r-pill);
  background:var(--surface-2);
  color:var(--text-muted);
  font-size:11px;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
}
.lw-root .lw-status::before{content:"";flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}
.lw-root .lw-status--idle{color:var(--text-muted)}
.lw-root .lw-status--queued{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--surface-1));color:var(--accent-ink)}
.lw-root .lw-status--running{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));background:color-mix(in srgb,var(--accent) 11%,var(--surface-1));color:var(--accent-ink)}
.lw-root .lw-status--running::before{animation:lw-status-pulse 1.25s ease-in-out infinite}
.lw-root .lw-status--succeeded{border-color:color-mix(in srgb,var(--success) 45%,var(--border));background:color-mix(in srgb,var(--success) 9%,var(--surface-1));color:var(--success)}
.lw-root .lw-status--partial{border-color:color-mix(in srgb,var(--warning) 50%,var(--border));background:color-mix(in srgb,var(--warning) 11%,var(--surface-1));color:color-mix(in srgb,var(--warning) 74%,var(--text-strong))}
.lw-root .lw-status--failed{border-color:color-mix(in srgb,var(--danger) 48%,var(--border));background:color-mix(in srgb,var(--danger) 9%,var(--surface-1));color:var(--danger)}
.lw-root .lw-status--no-result{border-style:dashed;background:transparent;color:var(--text-faint)}
.lw-root .lw-status--no-result::before{background:transparent;border:1px solid currentColor}
.lw-root .lw-status--blocked{border-color:color-mix(in srgb,var(--danger) 48%,var(--border));background:color-mix(in srgb,var(--danger) 5%,var(--surface-1));color:var(--danger)}
.lw-root .lw-status--blocked::before{border-radius:1px}

/* ---------- record master-detail ---------- */
.lw-root .lw-master-detail{
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.5fr);
  min-height:400px;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--r-card);
  background:var(--surface-1);
}
.lw-root .lw-master{
  min-width:0;
  overflow:auto;
  border-right:1px solid var(--border);
  background:var(--surface-1);
}
.lw-root .lw-master__header{position:sticky;top:0;z-index:5;padding:12px;border-bottom:1px solid var(--border);background:var(--surface-1)}
.lw-root .lw-master__list{display:grid}
.lw-root .lw-master__item{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:4px 12px;
  width:100%;
  min-height:64px;
  padding:11px 12px;
  border:0;
  border-bottom:1px solid var(--border);
  background:transparent;
  color:var(--text);
  text-align:left;
}
.lw-root .lw-master__item:hover{background:var(--surface-2)}
.lw-root .lw-master__item[aria-selected="true"],.lw-root .lw-master__item.lw-is-active{background:color-mix(in srgb,var(--accent) 8%,var(--surface-1))}
.lw-root .lw-master__item[aria-selected="true"]::before,.lw-root .lw-master__item.lw-is-active::before{content:"";position:absolute;inset:9px auto 9px 0;width:2px;border-radius:2px;background:var(--accent)}
.lw-root .lw-master__name{overflow:hidden;color:var(--text-strong);font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-master__summary{grid-column:1/-1;overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.lw-root .lw-master__time{color:var(--text-faint);font-family:var(--font-mono);font-size:9px;white-space:nowrap}
.lw-root .lw-detail{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;background:var(--bg)}
.lw-root .lw-detail__header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-height:74px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface-1)}
.lw-root .lw-detail__title{font-size:18px;line-height:1.2}
.lw-root .lw-detail__meta{display:flex;align-items:center;gap:8px;margin-top:6px;color:var(--text-muted);font-size:12px}
.lw-root .lw-detail__actions{display:flex;align-items:center;gap:6px}
.lw-root .lw-detail__layout{display:grid;grid-template-columns:168px minmax(0,1fr);min-height:0}

.lw-root .lw-tabs{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:12px 8px;
  border-right:1px solid var(--border);
  background:var(--surface-1);
}
.lw-root .lw-tabs__tab{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:7px 9px;
  border:1px solid transparent;
  border-radius:var(--r-btn);
  background:transparent;
  color:var(--text-muted);
  font-size:12px;
  font-weight:500;
  text-align:left;
}
.lw-root .lw-tabs__tab:hover{background:var(--surface-2);color:var(--text-strong)}
.lw-root .lw-tabs__tab[aria-selected="true"],.lw-root .lw-tabs__tab.lw-is-active{background:var(--surface-2);border-color:var(--border);color:var(--text-strong)}
.lw-root .lw-tabs__count{margin-left:auto;color:var(--text-faint);font-family:var(--font-mono);font-size:9px}
.lw-root .lw-tab-panel{min-width:0;padding:18px;overflow:auto}

/* ---------- inspector ---------- */
.lw-root .lw-inspector{min-width:0;color:var(--text)}
.lw-root .lw-inspector__section{padding:14px 0;border-bottom:1px solid var(--border)}
.lw-root .lw-inspector__section:first-child{padding-top:0}
.lw-root .lw-inspector__section:last-child{border-bottom:0}
.lw-root .lw-inspector__heading{margin-bottom:10px;color:var(--text-strong);font-size:12px;font-weight:600;letter-spacing:.01em}
.lw-root .lw-inspector__grid{display:grid;grid-template-columns:minmax(110px,.42fr) minmax(0,1fr);gap:0}
.lw-root .lw-inspector__key,.lw-root .lw-inspector__value{min-width:0;padding:7px 0;border-bottom:1px solid var(--border-2);font-size:12px}
.lw-root .lw-inspector__key{padding-right:16px;color:var(--text-faint)}
.lw-root .lw-inspector__value{overflow-wrap:anywhere;color:var(--text-strong)}
.lw-root .lw-inspector__value--mono{font-family:var(--font-mono);font-size:10px}
.lw-root .lw-inspector__code{margin:0;overflow:auto;padding:12px;border:1px solid var(--border);border-radius:var(--r-btn);background:var(--surface-2);color:var(--text);font-family:var(--font-mono);font-size:10px;line-height:1.7;white-space:pre}
.lw-root .lw-inspector__actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}

/* ---------- ordered workflow ---------- */
.lw-root .lw-workflow{min-width:0}
.lw-root .lw-workflow__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.lw-root .lw-workflow__log{margin:0;padding:0;list-style:none}
.lw-root .lw-workflow__node{
  position:relative;
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  gap:0 12px;
  min-width:0;
  padding:0 0 16px;
}
.lw-root .lw-workflow__index{
  position:relative;
  z-index:2;
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border:1px solid var(--border);
  border-radius:var(--r-btn);
  background:var(--surface-1);
  color:var(--text-faint);
  font-family:var(--font-mono);
  font-size:9px;
  line-height:1;
}
.lw-root .lw-workflow__node:not(:last-child)::after{content:"";position:absolute;top:30px;bottom:0;left:14px;width:1px;background:var(--border)}
.lw-root .lw-workflow__node--running .lw-workflow__index{border-color:var(--accent);color:var(--accent-ink)}
.lw-root .lw-workflow__node--succeeded .lw-workflow__index{border-color:var(--success);color:var(--success)}
.lw-root .lw-workflow__node--failed .lw-workflow__index,.lw-root .lw-workflow__node--blocked .lw-workflow__index{border-color:var(--danger);color:var(--danger)}
.lw-root .lw-workflow__content{min-width:0;padding:5px 0 0}
.lw-root .lw-workflow__title{color:var(--text-strong);font-size:13px;font-weight:600;line-height:1.35}
.lw-root .lw-workflow__description{max-width:75ch;margin-top:3px;color:var(--text-muted);font-size:12px;line-height:1.45}
.lw-root .lw-workflow__time{padding-top:7px;color:var(--text-faint);font-family:var(--font-mono);font-size:9px;white-space:nowrap}
.lw-root .lw-workflow__output{grid-column:2/-1;margin-top:8px;padding:9px 11px;border-left:2px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-family:var(--font-mono);font-size:10px;line-height:1.55;overflow-wrap:anywhere}
.lw-root .lw-workflow__branches{grid-column:2/-1;display:grid;gap:7px;margin-top:9px}
.lw-root .lw-workflow__branch{position:relative;display:flex;align-items:center;gap:8px;min-height:32px;padding:6px 9px;border:1px solid var(--border);border-radius:var(--r-btn);background:var(--surface-1);color:var(--text-muted);font-size:11px}
.lw-root .lw-workflow__branch::before{content:"";width:10px;height:1px;margin-left:-22px;background:var(--border)}
.lw-root .lw-workflow__branch:hover{border-color:var(--border-strong);color:var(--text-strong)}
.lw-root .lw-workflow__branch[aria-current="step"],.lw-root .lw-workflow__branch.lw-is-active{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));color:var(--accent-ink)}

/* ---------- dialog inspector ---------- */
.lw-root .lw-dialog{
  width:min(680px,calc(100vw - 32px));
  max-height:min(820px,calc(100dvh - 32px));
  margin:auto;
  padding:0;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--r-card-lg);
  background:var(--surface-1);
  color:var(--text);
  box-shadow:var(--shadow-float);
}
.lw-root .lw-dialog--wide{width:min(920px,calc(100vw - 32px))}
.lw-root .lw-dialog::backdrop{background:color-mix(in srgb,var(--text-strong) 42%,transparent)}
.lw-root .lw-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.lw-root .lw-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid var(--border)}
.lw-root .lw-dialog__title{font-size:18px;line-height:1.2}
.lw-root .lw-dialog__description{max-width:64ch;margin-top:4px;color:var(--text-muted);font-size:12px;line-height:1.45}
.lw-root .lw-dialog__body{min-height:0;padding:18px;overflow:auto}
.lw-root .lw-dialog__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:var(--surface-2)}

/* ---------- empty, loading, and error surfaces ---------- */
.lw-root .lw-state{
  display:grid;
  min-height:260px;
  place-items:center;
  padding:32px 20px;
  border:1px dashed var(--border);
  border-radius:var(--r-card);
  background:var(--surface-1);
  text-align:center;
}
.lw-root .lw-state__inner{max-width:420px}
.lw-root .lw-state__icon{
  display:grid;
  width:40px;
  height:40px;
  margin:0 auto 14px;
  place-items:center;
  border:1px solid var(--border);
  border-radius:var(--r-btn);
  background:var(--surface-2);
  color:var(--text-muted);
}
.lw-root .lw-state__title{font-size:17px;line-height:1.25}
.lw-root .lw-state__message{margin-top:6px;color:var(--text-muted);font-size:13px;line-height:1.5;text-wrap:pretty}
.lw-root .lw-state__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.lw-root .lw-state--error{border-style:solid;border-color:color-mix(in srgb,var(--danger) 46%,var(--border));background:color-mix(in srgb,var(--danger) 4%,var(--surface-1))}
.lw-root .lw-state--error .lw-state__icon{border-color:color-mix(in srgb,var(--danger) 45%,var(--border));color:var(--danger)}
.lw-root .lw-state--loading{place-items:stretch;text-align:left}
.lw-root .lw-skeleton{position:relative;overflow:hidden;border-radius:var(--r-sm);background:var(--surface-2);color:transparent;user-select:none}
.lw-root .lw-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface-1) 72%,transparent),transparent);animation:lw-skeleton 1.35s ease-in-out infinite}
.lw-root .lw-skeleton--line{height:11px;margin-bottom:9px}
.lw-root .lw-skeleton--line:last-child{width:68%}
.lw-root .lw-skeleton--title{width:38%;height:18px;margin-bottom:18px}
.lw-root .lw-skeleton--row{height:44px;margin-bottom:1px;border-radius:0}
.lw-root .lw-inline-error{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--danger) 42%,var(--border));border-radius:var(--r-btn);background:color-mix(in srgb,var(--danger) 6%,var(--surface-1));color:var(--danger);font-size:12px;line-height:1.45}
.lw-root .lw-inline-error svg{flex:0 0 auto;margin-top:1px}

/* ---------- utilities with product semantics ---------- */
.lw-root .lw-stack{display:grid;gap:12px}
.lw-root .lw-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.lw-root .lw-spacer{margin-left:auto}
.lw-root .lw-muted{color:var(--text-muted)}
.lw-root .lw-faint{color:var(--text-faint)}
.lw-root .lw-accent{color:var(--accent-ink)}
.lw-root .lw-success{color:var(--success)}
.lw-root .lw-danger{color:var(--danger)}
.lw-root .lw-nowrap{white-space:nowrap}
.lw-root .lw-kbd{display:inline-flex;align-items:center;min-height:20px;padding:2px 5px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-muted);font-family:var(--font-mono);font-size:9px;line-height:1}

/* ---------- motion ---------- */
@keyframes lw-running-ring{0%{opacity:.7;transform:scale(.72)}75%,100%{opacity:0;transform:scale(1.35)}}
@keyframes lw-status-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes lw-skeleton{to{transform:translateX(100%)}}

/* Dark uses its brighter parchment body tone for operational supporting
   copy. Faint remains available for truly optional metadata only. */
:root[data-theme="dark"] .lw-root .lw-page-header__lead,
:root[data-theme="dark"] .lw-root .lw-section__hint,
:root[data-theme="dark"] .lw-root .lw-data-table caption,
:root[data-theme="dark"] .lw-root .lw-data-table thead th,
:root[data-theme="dark"] .lw-root .lw-data-table__muted,
:root[data-theme="dark"] .lw-root .lw-master__summary,
:root[data-theme="dark"] .lw-root .lw-detail__meta,
:root[data-theme="dark"] .lw-root .lw-inspector__key,
:root[data-theme="dark"] .lw-root .lw-workflow__description,
:root[data-theme="dark"] .lw-root .lw-workflow__output,
:root[data-theme="dark"] .lw-root .lw-workflow__branch,
:root[data-theme="dark"] .lw-root .lw-dialog__description,
:root[data-theme="dark"] .lw-root .lw-state__message,
:root[data-theme="dark"] .lw-root .lw-muted{color:var(--text)}
:root[data-theme="dark"] .lw-root .lw-field,
:root[data-theme="dark"] .lw-root .lw-select,
:root[data-theme="dark"] .lw-root .lw-textarea{
  background:var(--surface-2);
  color:var(--text-strong);
  color-scheme:dark;
}
:root[data-theme="dark"] .lw-root .lw-field::placeholder,
:root[data-theme="dark"] .lw-root .lw-textarea::placeholder{color:var(--text-muted)}

/* ---------- responsive: compact desktop / 768 ---------- */
@media(max-width:1100px){
  .lw-root .lw-shell{grid-template-columns:216px minmax(0,1fr)}
  .lw-root .lw-rail{width:216px}
  .lw-root .lw-main{padding-right:24px;padding-left:24px}
  .lw-root .lw-detail__layout{grid-template-columns:148px minmax(0,1fr)}
}

@media(max-width:800px){
  .lw-root .lw-shell{display:block}
  .lw-root .lw-rail{
    position:fixed;
    inset:0 auto 0 0;
    z-index:70;
    width:min(288px,calc(100vw - 48px));
    transform:translateX(-102%);
    box-shadow:var(--shadow-float);
    transition:transform var(--dur-lift) var(--ease-out);
  }
  .lw-root .lw-shell[data-lw-nav-open="true"] .lw-rail{transform:none}
  .lw-root .lw-rail-scrim{
    position:fixed;
    inset:0;
    z-index:65;
    display:block;
    visibility:hidden;
    border:0;
    background:color-mix(in srgb,var(--text-strong) 35%,transparent);
    opacity:0;
    pointer-events:none;
    transition:opacity var(--dur-lift) var(--ease-out),visibility var(--dur-lift) var(--ease-out);
  }
  .lw-root .lw-shell[data-lw-nav-open="true"] .lw-rail-scrim{visibility:visible;opacity:1;pointer-events:auto}
  .lw-root .lw-button.lw-rail-toggle,.lw-root .lw-button[data-lw-nav-toggle]{display:inline-flex}
  .lw-root .lw-workspace{width:100%;max-width:100vw}
  .lw-root .lw-main{padding:22px 20px 40px}
  .lw-root .lw-page-header{align-items:flex-start}
  .lw-root .lw-page-header__actions{flex-wrap:wrap;justify-content:flex-end}
  .lw-root .lw-command-bar{flex-wrap:wrap}
  .lw-root .lw-command-bar__search{max-width:none}
  .lw-root .lw-command-bar__group--end{margin-left:0}
  .lw-root .lw-master-detail{grid-template-columns:minmax(220px,.58fr) minmax(0,1fr)}
  .lw-root .lw-detail__layout{display:block}
  .lw-root .lw-tabs{flex-direction:row;overflow-x:auto;padding:8px;border-right:0;border-bottom:1px solid var(--border);scrollbar-width:thin}
  .lw-root .lw-tabs__tab{flex:0 0 auto}
  .lw-root .lw-tab-panel{padding:16px}
}

/* ---------- responsive: 390 / 320 ---------- */
@media(max-width:560px){
  .lw-root{font-size:14px}
  .lw-root .lw-workspace{grid-template-rows:56px minmax(0,1fr)}
  .lw-root .lw-topbar{min-height:56px;padding:6px 12px}
  .lw-root .lw-topbar__context{max-width:44vw}
  .lw-root .lw-main{padding:18px 14px 32px}
  .lw-root .lw-page-header{display:block;margin-bottom:18px}
  .lw-root .lw-page-header__title{font-size:1.7rem}
  .lw-root .lw-page-header__lead{font-size:13px}
  .lw-root .lw-page-header__actions{justify-content:flex-start;margin-top:14px}
  .lw-root .lw-breadcrumbs{overflow:hidden}
  .lw-root .lw-breadcrumbs__item:not(:first-child):not(:last-child){display:none}
  .lw-root .lw-command-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:7px}
  .lw-root .lw-command-bar__search{grid-column:1/-1;min-width:0}
  .lw-root .lw-command-bar__group{display:contents}
  .lw-root .lw-command-bar__group--end{display:flex;grid-column:1/-1;overflow-x:auto;margin:0;padding-top:1px}
  .lw-root .lw-command-bar__divider{display:none}
  .lw-root .lw-panel__header{align-items:flex-start}
  .lw-root .lw-panel__actions{flex-wrap:wrap;justify-content:flex-end}
  .lw-root .lw-table-shell{width:100%;max-width:100%;margin:0}
  .lw-root .lw-data-table{min-width:700px}
  .lw-root .lw-data-table th,.lw-root .lw-data-table td{height:48px;padding-right:10px;padding-left:10px}
  .lw-root .lw-data-table__identity,.lw-root .lw-data-table--identity-first th:first-child,.lw-root .lw-data-table--identity-first td:first-child{min-width:176px}
  .lw-root .lw-table-footer{align-items:flex-start;flex-direction:column}
  .lw-root .lw-master-detail{display:block;min-height:0;overflow:visible;border-radius:var(--r-btn)}
  .lw-root .lw-master{max-height:260px;border-right:0;border-bottom:1px solid var(--border)}
  .lw-root .lw-detail{min-height:0}
  .lw-root .lw-detail__header{min-height:0;padding:12px}
  .lw-root .lw-detail__actions{flex-wrap:wrap;justify-content:flex-end}
  .lw-root .lw-tabs{position:sticky;top:56px;z-index:15;background:var(--surface-1)}
  .lw-root .lw-tab-panel{padding:14px 12px}
  .lw-root .lw-inspector__grid{grid-template-columns:1fr}
  .lw-root .lw-inspector__key{padding-bottom:2px;border-bottom:0}
  .lw-root .lw-inspector__value{padding-top:0}
  .lw-root .lw-workflow__node{grid-template-columns:30px minmax(0,1fr)}
  .lw-root .lw-workflow__time{grid-column:2;padding-top:3px}
  .lw-root .lw-workflow__output,.lw-root .lw-workflow__branches{grid-column:2}
  .lw-root .lw-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:var(--r-card)}
  .lw-root .lw-dialog__header,.lw-root .lw-dialog__body{padding:14px}
  .lw-root .lw-dialog__footer{padding:10px 14px}
  .lw-root .lw-state{min-height:220px;padding:26px 16px}
  .lw-root .lw-button,.lw-root .lw-icon-button,.lw-root .lw-field,.lw-root .lw-select,.lw-root .lw-filter,.lw-root .lw-tabs__tab,.lw-root .lw-rail__link{min-height:44px}
  .lw-root .lw-icon-button{width:44px}
  .lw-root .lw-button--small,.lw-root .lw-icon-button--small{min-height:44px}
  .lw-root .lw-icon-button--small{width:44px}
  .lw-root .lw-filter__remove{width:28px;height:28px}
}

@media(max-width:340px){
  .lw-root .lw-main{padding-right:10px;padding-left:10px}
  .lw-root .lw-topbar{padding-right:8px;padding-left:8px}
  .lw-root .lw-topbar__context{display:none}
  .lw-root .lw-page-header__title{font-size:1.55rem}
  .lw-root .lw-page-header__actions{display:grid;grid-template-columns:1fr 1fr}
  .lw-root .lw-page-header__actions .lw-button{width:100%}
  .lw-root .lw-table-shell{width:100%;max-width:100%;margin:0}
  .lw-root .lw-detail__header{display:block}
  .lw-root .lw-detail__actions{justify-content:flex-start;margin-top:10px}
  .lw-root .lw-dialog__footer{display:grid;grid-template-columns:1fr 1fr}
  .lw-root .lw-dialog__footer .lw-button{width:100%}
}

@media(prefers-reduced-motion:reduce){
  .lw-root *,
  .lw-root *::before,
  .lw-root *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .lw-root .lw-button:active,.lw-root .lw-icon-button:active{transform:none}
  .lw-root .lw-skeleton::after{display:none}
}

@media print{
  .lw-root .lw-rail,.lw-root .lw-topbar,.lw-root .lw-command-bar,.lw-root .lw-page-header__actions{display:none!important}
  .lw-root .lw-shell,.lw-root .lw-workspace{display:block;min-height:0}
  .lw-root .lw-main{padding:0}
  .lw-root .lw-table-shell{overflow:visible;border-color:var(--border-strong)}
  .lw-root .lw-data-table{min-width:0}
  .lw-root .lw-data-table thead th,.lw-root .lw-data-table__identity,.lw-root .lw-data-table--identity-first th:first-child,.lw-root .lw-data-table--identity-first td:first-child{position:static}
}

