/* User Workers: the Workers tab of the Workspace page (pages/workers.rs).
   Tokens only; tables, forms, panels and the log reuse .ws-*, .mc-* and
   .pl-log* from workspace.css, components.css and pipelines.css. */

.wk-page code { overflow-wrap: anywhere; }
.wk-hint { font: 400 12px/18px var(--font-sans); color: var(--ink-muted); }
.wk-sub { display: flex; align-items: center; gap: var(--space-2); margin: 0; font: 600 14px/20px var(--font-sans); color: var(--ink); }

/* ---------- Kind badge: icon + word ---------- */
.wk-kind {
  display: inline-flex; align-items: center; gap: 6px; padding: 1px 8px; border-radius: var(--radius-pill);
  font: 600 11px/18px var(--font-sans); letter-spacing: .04em; text-transform: uppercase; white-space: nowrap;
  background: var(--surface-raised); color: var(--ink-muted); box-shadow: inset 0 0 0 1px var(--border);
}
.wk-kind > i { font-size: 11px; }
.wk-kind--check { background: var(--patched-wash); color: var(--patched); box-shadow: none; }
.wk-kind--transform { background: var(--grape-wash); color: var(--ink); box-shadow: inset 0 0 0 1px var(--grape); }
.wk-kind--webhook { background: var(--warn-wash); color: var(--warn-text); box-shadow: none; }

/* ---------- Quota ---------- */
.wk-quota { display: flex; flex-direction: column; gap: var(--space-4); }
.wk-meters { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-4); }
.wk-meter { display: grid; gap: var(--space-2); }
.wk-meter__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-2); }
.wk-meter__label { font: 600 13px/20px var(--font-sans); color: var(--ink); }
.wk-meter__value { font: 500 12px/18px var(--font-mono); color: var(--ink-muted); text-align: right; }
.wk-meter__value--full { color: var(--danger-text); }
.mc-progress > i.wk-meter__bar--full { background: var(--danger-text); }
.wk-limits { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5, 20px); margin: 0; }
.wk-limits > div { display: grid; gap: 2px; min-width: 0; }
.wk-limits dt { font: 400 12px/18px var(--font-sans); color: var(--ink-muted); }
.wk-limits dd { margin: 0; font: 600 14px/20px var(--font-sans); color: var(--ink); min-width: 0; }
.wk-denied { color: var(--danger-text); }
.wk-egress { display: grid; gap: var(--space-2); }
.wk-host { display: inline-flex; padding: 2px 10px; border-radius: var(--radius-pill); background: var(--surface-raised); }
.wk-host code { font: 500 12px/18px var(--font-mono); }
.wk-quota__form { display: grid; gap: var(--space-3); border-top: 1px solid var(--border); padding-top: var(--space-4); }
.wk-quota__form .mc-field { display: grid; gap: 4px; }
.wk-quota__form textarea { min-height: 96px; }

/* ---------- Table ---------- */
.wk-name {
  appearance: none; cursor: pointer; padding: 0; border: 0; background: none; color: var(--ink); text-align: left;
  font: 600 13px/20px var(--font-mono);
}
.wk-name:hover code { text-decoration: underline; }
.wk-name:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: 4px; }
.wk-url { display: block; font-family: var(--font-mono); overflow-wrap: anywhere; }
.wk-row--open > td { background: var(--surface-raised); }

/* ---------- Deploy ---------- */
.wk-deploy { display: grid; gap: var(--space-3); }
.wk-code, .wk-deploy textarea { width: 100%; min-height: 160px; font: 500 12.5px/20px var(--font-mono); tab-size: 2; resize: vertical; }
.wk-file { cursor: pointer; position: relative; }
.wk-file:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }

/* ---------- Detail ---------- */
.wk-detail { display: grid; gap: var(--space-3); min-width: 0; }
.wk-detail .mc-panel__title { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.wk-detail__body { display: grid; gap: var(--space-3); min-width: 0; margin-top: var(--space-3); }
.wk-current { margin-left: var(--space-2); }
.wk-msg { display: block; }
.wk-result { display: grid; gap: var(--space-2); }
.wk-result p { margin: 0; }
.wk-result__json { margin: 0; padding: var(--space-3); max-height: 320px; overflow: auto; border-radius: var(--radius-md);
  background: var(--bg); border: 1px solid var(--border); font: 500 12.5px/20px var(--font-mono); }

/* ---------- Log ---------- */
.wk-log__pre { counter-reset: none; }
.wk-line { display: block; padding: 0 var(--space-4); min-height: 20px; white-space: pre-wrap; overflow-wrap: anywhere; }
.wk-line:hover { background: var(--surface-raised); }
.wk-line > span + span { margin-left: 1ch; }
.wk-line__ts { color: var(--ink-muted); user-select: none; }
.wk-line__kind { display: inline-block; min-width: 10ch; color: var(--ink-muted); text-transform: uppercase; font-size: 11px; }
.wk-line--invocation .wk-line__kind { color: var(--grape); }
.wk-line--egress .wk-line__kind, .wk-line__host { color: var(--fizz-text); }
.wk-line__status, .wk-line__bytes, .wk-line__outcome { color: var(--ink-muted); }
.wk-line--exception, .wk-line--error { color: var(--danger-text); }
.wk-line--warn { color: var(--warn-text); }

@media (max-width: 640px) {
  .wk-table th:nth-child(5), .wk-table td:nth-child(5),
  .wk-table th:nth-child(7), .wk-table td:nth-child(7) { display: none; }
}
.wk-qfield { min-width: 0; }
.wk-qfield__controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); }
.wk-qfield__controls > .mc-stepper:only-child { justify-self: start; }
@media (max-width: 480px) { .wk-qfield__controls { grid-template-columns: minmax(0, 1fr); justify-items: start; } }
