/* App-wide UI rules that belong to no single screen and must survive a regeneration of
 * the generated sheet. Keep this file small: anything with a screen of its own belongs
 * in that screen's stylesheet.
 */

/* A list row that opens its record should say so under the pointer. The hover tint is
 * already in the generated sheet; this is the cursor that goes with it. */
table.tbl tbody tr:has(.idlink),
table.tbl tbody tr:has(td[onclick]) {
  cursor: pointer;
}

/* A row that is already open (the record being viewed) is not a link. */
table.tbl tbody tr.sel {
  cursor: default;
}

/* A toast says what it means: the success look is for things that succeeded, and a form
 * asking for a field is a warning, not a cheer. The base look stays in the generated
 * sheet; these stamp the message on top of it. */
#toast .toast.warn {
  background: var(--warn);
}
#toast .toast.bad {
  background: var(--bad);
}

/* The indent bulk upload form. */
.bulkgrid {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.bulkin {
  flex: 1 1 auto;
  min-height: 150px;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.6;
  white-space: pre;
  overflow: auto;
}
.bulkside {
  flex: 0 0 220px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bulkpreview {
  margin-top: 8px;
  font-size: 12.5px;
}
.bulkpreview .pill {
  font-size: 11px;
  white-space: normal;
  text-align: start;
}
.bulks .k {
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.bulks .v {
  font-weight: 700;
}
