/* Concierge Desk — right context rail (scope, anchor, routing). */

.rail {
  border-left: 1px solid var(--ha-border); background: var(--ha-pane-bg);
  overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 16px;
}
.card {
  background: var(--ha-surface); border: 1px solid var(--ha-border);
  border-radius: var(--ha-radius-md); box-shadow: var(--ha-shadow-card);
}
.card .hd {
  padding: 12px 16px; border-bottom: 1px solid var(--ha-border-strong);
  display: flex; align-items: center; gap: 8px;
}
.card .hd h3 { margin: 0; font-size: 13px; font-weight: var(--ha-weight-bold); }
.card .hd .right { margin-left: auto; font-size: 12px; color: var(--ha-ink-muted); }
.card .bd { padding: 14px 16px; }

.field-row { margin-bottom: 12px; }
.field-row:last-child { margin-bottom: 0; }
.field-row .k {
  font-size: 11px; color: var(--ha-ink-muted); margin-bottom: 3px;
  display: flex; align-items: center; gap: 6px;
}
.field-row .v { font-size: 14px; color: var(--ha-ink); }
.field-row .v .jobtag { margin-left: 6px; }

.ai-field {
  background: var(--ha-ai-surface); border: 1px dashed var(--ha-ai-border);
  border-radius: var(--ha-radius-sm); padding: 8px 10px;
}
.ai-field[hidden] { display: none; }
.ai-field .k { color: var(--ha-blue-text); font-weight: var(--ha-weight-bold); }
.ai-field .acts { display: flex; gap: 6px; margin-top: 7px; }
.ai-field .edit-row { display: none; margin-top: 7px; }
.ai-field .edit-row.open { display: block; }
.ai-field .edit-input {
  width: 100%; border: 1px solid var(--ha-border); border-radius: var(--ha-radius-sm);
  padding: 6px 8px; font: inherit; font-size: 13px; color: var(--ha-ink);
}
/* The "AI suggested" marker on the Job type row: icon + text, never hue alone. */
.ai-marker {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--ha-blue-text); font-weight: var(--ha-weight-medium); font-size: 11px;
}

/* The Scope-section action row: the Draft button and the quiet Split trigger. */
.scope-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.scope-actions turbo-frame { display: inline-flex; }

/* The vertical picker (open state) and the manual-split mini-form. */
.type-picker-list { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.type-picker-list legend {
  font-size: 11px; color: var(--ha-ink-muted); margin-bottom: 4px; padding: 0;
}
.type-option { display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
.type-picker-acts, .split-acts { display: flex; gap: 6px; margin-top: 8px; }

.split-form {
  border: 1px solid var(--ha-border); border-radius: var(--ha-radius-sm);
  padding: 10px 12px; background: var(--ha-surface);
}
.split-form-title { margin: 0 0 8px; font-size: 13px; font-weight: var(--ha-weight-bold); }
.split-field { display: block; margin-bottom: 8px; }
.split-label { display: block; font-size: 11px; color: var(--ha-ink-muted); margin-bottom: 3px; }
.split-help { font-size: 11px; color: var(--ha-ink-muted); margin: 0 0 8px; }

.mini {
  height: 24px; padding: 0 10px; font-size: 11px; border-radius: var(--ha-radius-pill);
  border: 1px solid var(--ha-border); background: var(--ha-surface);
  cursor: pointer; color: var(--ha-ink);
  display: inline-flex; align-items: center; text-decoration: none;
}
.mini.accept {
  background: var(--ha-blue-text); border-color: var(--ha-blue-text); color: var(--ha-surface);
}

.median .num { font-size: 28px; font-weight: var(--ha-weight-bold); letter-spacing: -0.01em; }
.median .lab { font-size: 12px; color: var(--ha-ink-muted); margin-top: 2px; }
.median .est {
  margin-top: 8px; font-size: 11px; color: var(--ha-ink-muted);
  display: inline-flex; align-items: center; gap: 5px;
}

/* Each provider is a vertical stack of rows: header (rank + name + select),
   meta line, then the portal link -- so nothing wraps mid-element. */
.prov-row {
  display: flex; flex-direction: column; align-items: stretch;
  border-bottom: 1px solid var(--ha-border-strong);
}
.prov-row:last-of-type { border-bottom: 0; }
.prov-row:hover { background: var(--ha-row-hover); }
.prov {
  padding: 11px 16px 4px; min-width: 0;
  display: flex; flex-direction: column; gap: 6px; cursor: pointer;
}
.prov input.prov-check { position: absolute; opacity: 0; pointer-events: none; }
/* Header row: rank + name on the left, the single select control on the right. */
.prov .prov-head { display: flex; align-items: center; gap: 11px; min-width: 0; }
.prov .rank {
  flex-shrink: 0;
  width: 22px; height: 22px; border-radius: 50%; background: var(--ha-surface-subtle);
  border: 1px solid var(--ha-border); display: grid; place-items: center;
  font-size: 11px; font-weight: var(--ha-weight-bold); color: var(--ha-ink-muted);
}
.prov .nm {
  flex: 1; min-width: 0;
  font-weight: var(--ha-weight-bold); font-size: 13px;
}
.prov .sig {
  padding-left: 33px; font-size: 12px; color: var(--ha-ink-muted);
}
.prov .check {
  flex-shrink: 0;
  width: 20px; height: 20px; border-radius: var(--ha-radius-sm); border: 2px solid var(--ha-border);
}
.prov.sel .check { background: var(--ha-blue-text); border-color: var(--ha-blue-text); }
/* Already-offered providers: marked, dimmed, and not re-selectable (no checkbox). */
.prov-row.is-offered { opacity: 0.7; }
.prov-row.is-offered .prov { cursor: default; }
.offered-check {
  flex-shrink: 0; color: var(--ha-success); font-weight: var(--ha-weight-bold);
  font-size: 11px; white-space: nowrap;
}
/* "Open portal": a quiet text link on its own row, outside the selection label
   so it never toggles selection. */
.prov-portal-btn {
  align-self: flex-start; margin-left: 33px; padding: 0 16px 11px;
  background: none; border: 0; font: inherit; font-size: 11px;
  color: var(--ha-blue-text); cursor: pointer; white-space: nowrap; text-decoration: none;
}
.prov-portal-btn:hover { text-decoration: underline; }

.offer-bar { padding: 12px 16px; }
.offer-bar .btn { width: 100%; }
.secondary-action { padding: 0 16px 14px; }
.link-act {
  background: none; border: 0; color: var(--ha-blue-text); font: inherit; font-size: 13px;
  cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 0; text-decoration: none;
}
.rail-skeleton { padding: 16px; }
.rail-skeleton .bar {
  height: 14px; border-radius: var(--ha-radius-sm); background: var(--ha-surface-subtle);
  margin-bottom: 10px;
}
.rail-skeleton .bar.short { width: 55%; }
.routing-empty { padding: 14px 16px; font-size: 13px; color: var(--ha-ink-muted); }

/* Offers out card: per-provider state. */
.offers-flight { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.offer-flight { display: flex; flex-direction: column; gap: 4px; }
.offer-flight + .offer-flight { border-top: 1px solid var(--ha-border-strong); padding-top: 10px; }
.offer-flight-main { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.offer-flight-name { font-size: 13px; font-weight: var(--ha-weight-medium); }
.offer-flight-state { font-size: 11px; font-weight: var(--ha-weight-medium); }
.offer-flight-state.is-quoted { color: var(--ha-success); }
.offer-flight-state.is-pending { color: var(--ha-ink-muted); }
.mini-link {
  background: none; border: 0; padding: 0; font: inherit; font-size: 12px;
  color: var(--ha-blue-text); cursor: pointer; text-decoration: underline;
  text-underline-offset: 2px; text-align: left;
}
.mini-link:hover { color: var(--ha-blue-primary); }
