/* 85-admin.css — User admin, daily accountability, review flags
   Part of the ordered set linked from index.html. The parts concatenate to the
   original stylesheet byte for byte; link order IS the cascade order, so never
   reorder the <link> tags and never move a rule between files. */

.management-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.management-nav-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  min-height: 82px;
  text-align: left;
}
.management-nav-btn strong { font-size: 16px; }
.management-nav-btn span { color: var(--muted); font-size: 14px; }
#dailySection, #adminSection { max-width: 1100px; margin: 0 auto; }
.ops-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 16px; margin-bottom: 18px;
}
.ops-header h2 { margin: 3px 0 5px; font-size: 28px; }
.ops-header p { margin: 0; color: var(--muted); }
.ops-header input[type="date"] { width: auto; min-width: 155px; }
.ops-card {
  margin-bottom: 14px; padding: 18px;
  border: 1px solid var(--line); border-radius: 16px;
  background: var(--panel);
}
.ops-card h3 { margin: 0 0 14px; }
.ops-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 12px; }
.ops-card-head h3 { margin: 0; }
.ops-card-head span { color: var(--muted); font-size: 14px; }
.ops-form {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px; align-items: end;
}
.ops-form h3 { grid-column: 1 / -1; margin-bottom: 0; }
.ops-form label { display: flex; flex-direction: column; gap: 6px; color: var(--muted); font-size: 14px; }
.ops-form input, .ops-form select, .staff-row input, .staff-row select,
.ops-header input, .signoff-card textarea {
  box-sizing: border-box; width: 100%; min-height: 42px; padding: 9px 10px;
  border: 1px solid var(--line-strong); border-radius: 10px;
  background: rgba(255,255,255,.035); color: var(--text);
}
.ops-message { grid-column: 1 / -1; min-height: 18px; margin: 0; color: var(--muted); }
.ops-task-description { grid-column: span 2; }
.ops-task-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.ops-task-summary article { display: flex; flex-direction: column; gap: 2px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 13px; background: var(--panel); }
.ops-task-summary strong { color: var(--text); font-size: 22px; }
.ops-task-summary span { color: var(--muted); font-size: 14px; text-transform: uppercase; letter-spacing: .05em; }
.ops-task-filters { display: flex; gap: 5px; margin-top: 8px; }
.ops-task-filters button { min-height: 28px; padding: 4px 9px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); font-size: 14px; }
.ops-task-filters button.active { border-color: rgba(52,212,106,.4); background: rgba(52,212,106,.09); color: var(--text); }
.staff-list, .daily-task-list, .activity-list { display: flex; flex-direction: column; gap: 8px; }
.staff-row {
  display: grid; grid-template-columns: minmax(220px, 1fr) 160px 90px auto;
  gap: 12px; align-items: center; padding: 12px;
  border: 1px solid var(--line); border-radius: 12px;
}
.staff-identity { display: flex; flex-direction: column; gap: 3px; }
.staff-access { display: flex; flex-direction: column; gap: 6px; }
.staff-identity input { font-weight: 750; }
.staff-identity span, .staff-identity small { color: var(--muted); font-size: 14px; }
.staff-active { display: flex; gap: 7px; align-items: center; font-size: 14px; }
.staff-active input { width: 18px; height: 18px; }
.staff-actions { display: flex; gap: 7px; flex-wrap: wrap; }
.daily-task {
  display: flex; justify-content: space-between; align-items: center; gap: 14px;
  padding: 13px; border: 1px solid var(--line); border-radius: 12px;
}
.daily-task.done { border-color: rgba(52,212,106,.28); background: rgba(52,212,106,.045); }
.daily-task > div { display: flex; flex: 1; flex-direction: column; gap: 4px; }
.daily-task span, .daily-task small { color: var(--muted); font-size: 14px; }
.daily-task small { color: #78d998; }
.daily-task p { margin: 1px 0 0; color: var(--muted); font-size: 14px; line-height: 1.4; }
.daily-task .daily-task-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
.daily-task-tags i {
  display: inline-flex; align-items: center; min-height: 22px; padding: 2px 7px;
  border: 1px solid var(--line); border-radius: 999px;
  background: rgba(255,255,255,.025); color: var(--muted);
  font-size: 14px; font-style: normal; font-weight: 800; letter-spacing: .02em;
}
.daily-task-tags .priority-rush { border-color: rgba(242,125,106,.45); background: rgba(242,125,106,.08); color: var(--bad); }
.daily-task-tags .priority-back_stock { border-color: rgba(240,162,59,.42); background: rgba(240,162,59,.07); color: var(--warn); }
.daily-task-actions { display: flex; gap: 7px; flex-wrap: wrap; }
.activity-list article { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.activity-list article:last-child { border-bottom: 0; }
.activity-list span { color: var(--muted); font-size: 14px; text-align: right; }
.signoff-card textarea { min-height: 78px; resize: vertical; margin-bottom: 10px; }
.signoff-card p, .ops-empty-copy { color: var(--muted); }
.ops-empty { padding: 42px 18px; text-align: center; color: var(--muted); }
@media (max-width: 760px) {
  .management-nav, .ops-form, #dailySection .ops-task-summary { grid-template-columns: 1fr; }
  #dailySection .ops-task-description { grid-column: auto; }
  .staff-row { grid-template-columns: 1fr; }
  .ops-header { flex-direction: column; }
  .ops-header input[type="date"] { width: 100%; }
  .daily-task, .activity-list article { align-items: flex-start; flex-direction: column; }
  .activity-list span { text-align: left; }
}

/* ── Dialog select (gfSelect — dome picker, etc.) ────────────────────────── */
.gf-dialog-select {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 18px;
  min-height: 46px;
  border: 1px solid var(--input-line, #333);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.035);
  color: var(--text, #fff);
  padding: 11px 12px;
  font-size: 16px;
  outline: none;
}
.gf-dialog-select[hidden] { display: none; }
.gf-dialog-select:focus {
  border-color: rgba(52, 212, 106, 0.55);
  box-shadow: 0 0 0 3px rgba(52, 212, 106, 0.08);
}
/* Message text carries \n line breaks from the call sites. */
.gf-dialog-msg { white-space: pre-line; }
/* gf:eof dialog select */

/* Mother room contrast pass — retain the dark palette, but separate every
   working surface clearly enough for low-light tablet use. */
#motherRoomSection .gf-room-lights-row,
#motherRoomSection .mr-stats-bar {
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: #171e1a;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.035) inset;
}

#motherRoomSection .mr-stats-bar {
  padding: 10px 12px;
  border-radius: 14px;
}

#motherRoomSection .mr-stat-badge {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.045);
}

#motherRoomSection .mr-rows {
  border-color: rgba(255, 255, 255, 0.17);
  background: #141a17;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.2);
}

#motherRoomSection .mr-row {
  border-color: rgba(255, 255, 255, 0.18);
  background: #1b231e;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.035) inset;
}

#motherRoomSection .mr-row-label {
  color: #aeb9b0;
}

#motherRoomSection .mr-row-count,
#motherRoomSection .mr-row-empty,
#motherRoomSection .mr-subtitle {
  color: #b7c1b9;
}

#motherRoomSection .mr-tile {
  border-color: rgba(255, 255, 255, 0.24);
  background: #222b25;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.18);
}

#motherRoomSection .mr-tile:hover {
  border-color: rgba(255, 255, 255, 0.48);
  background: #273229;
}

#motherRoomSection .mr-tile.sel {
  border-color: var(--accent);
  background: #263229;
  box-shadow: 0 0 0 2px rgba(52, 212, 106, 0.32), 0 8px 20px rgba(0, 0, 0, 0.24);
}

#motherRoomSection .mr-newrow-drop {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.035);
  color: #b7c1b9;
}

.gf-focus-panel .mr-group-inner .mr-detail-dl,
.gf-focus-panel .mr-group-inner .mr-actions,
.gf-focus-panel .mr-group-inner .mr-m {
  border-color: rgba(255, 255, 255, 0.18);
  background: #1d2520;
}

.gf-focus-panel .mr-group-inner .mr-m {
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.035) inset;
}

.gf-focus-panel .mr-group-inner .mr-action-btn {
  border-color: rgba(255, 255, 255, 0.23);
  background-color: rgba(255, 255, 255, 0.045);
}

/* The last three rows are the only banded ones: older, bigger plants due to
   be cloned and retired. Every other row is unbanded on purpose -- mothers are
   grouped by strain and placed wherever there is space. */
#motherRoomSection .mr-row-finish {
  border-color: rgba(240, 162, 59, 0.42);
  background: rgba(240, 162, 59, 0.065);
}

#motherRoomSection .mr-row-invalid {
  border-color: var(--bad);
  background: var(--bad-bg);
}

#motherRoomSection .mr-row-rule {
  margin: 0 0 12px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}

#motherRoomSection .mr-row-stage {
  width: fit-content;
  padding: 2px 7px;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: 999px;
  color: #c3ccc5;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
}

#motherRoomSection .mr-row-finish .mr-row-stage { color: var(--warn); border-color: rgba(240, 162, 59, 0.4); }
#motherRoomSection .mr-row-invalid .mr-row-stage { color: var(--bad); border-color: rgba(242, 125, 106, 0.5); }


#motherRoomSection .mr-tile-history {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: #b7c1b9;
  font-size: 10px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.vr-target-chip {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 3px 8px;
  border: 1px solid rgba(111, 183, 217, 0.38);
  border-radius: 999px;
  background: rgba(111, 183, 217, 0.08);
  color: var(--blue-text);
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}

.vr-target-chip.extras {
  border-color: rgba(232, 195, 90, 0.42);
  background: rgba(232, 195, 90, 0.08);
  color: var(--gold);
}

.vr-target-chip.ready {
  border-color: rgba(52, 212, 106, 0.42);
  background: rgba(52, 212, 106, 0.09);
  color: var(--accent);
}

.cr-dome.genetic-fragile {
  border-color: rgba(242, 125, 106, 0.9) !important;
  box-shadow: 0 0 0 2px rgba(242, 125, 106, 0.2), 0 0 22px rgba(242, 125, 106, 0.16);
}

.cr-dome.genetic-watch {
  border-color: rgba(240, 162, 59, 0.78) !important;
  box-shadow: 0 0 0 2px rgba(240, 162, 59, 0.13);
}

.cr-genetic-risk {
  position: absolute;
  z-index: 2;
  left: 5px;
  right: 5px;
  bottom: 5px;
  padding: 3px 4px;
  border: 1px solid currentColor;
  border-radius: 5px;
  background: rgba(8, 11, 9, 0.88);
  font-size: 7px;
  font-weight: 950;
  letter-spacing: 0.035em;
  line-height: 1.1;
}

.cr-genetic-risk.fragile { color: var(--bad); }
.cr-genetic-risk.watch { color: var(--warn); }
.cr-dome:has(.cr-genetic-risk) { min-height: 96px; padding-bottom: 27px; }

.cr-genetic-alert {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 12px;
  padding: 11px 12px;
  border: 1px solid currentColor;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.035);
  font-size: 14px;
  line-height: 1.4;
}

.cr-genetic-alert strong { font-size: 14px; }
.cr-genetic-alert.fragile { color: var(--bad); background: rgba(242, 125, 106, 0.08); }
.cr-genetic-alert.watch { color: var(--warn); background: rgba(240, 162, 59, 0.07); }
