/* Owner Mode — admin layer styling. Loaded on every page; inert (and the toggle
   absent) unless /api/admin/whoami says you're the owner. */

/* Affordances stay hidden until Owner Mode is toggled ON. */
.owner-only { display: none !important; }
body.owner-mode .owner-only { display: revert !important; }
body.owner-mode .owner-edit { display: inline-flex !important; }

/* Floating toggle (only mounted for the owner). */
.owner-toggle {
  position: fixed; right: 16px; bottom: 16px; z-index: 1200;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 14px; border-radius: 999px; cursor: pointer;
  font: 600 13px/1 system-ui, sans-serif; color: #c9d1d9;
  background: #161b22; border: 1px solid #30363d;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .45);
}
.owner-toggle .owner-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: #6e7681; transition: background .15s, box-shadow .15s;
}
.owner-toggle.on { color: #fff; border-color: #2ea043; background: #1b2b1f; }
.owner-toggle.on .owner-dot { background: #3fb950; box-shadow: 0 0 0 3px rgba(63, 185, 80, .25); }

/* Edit pencils. */
.owner-edit {
  display: none; align-items: center; justify-content: center;
  width: 24px; height: 24px; margin-left: 6px; padding: 0;
  border-radius: 6px; cursor: pointer; vertical-align: middle;
  background: #21262d; border: 1px solid #30363d; color: #58a6ff; font-size: 13px;
}
.owner-edit:hover { background: #30363d; }
.venue.editing { outline: 1px dashed #30475e; outline-offset: 4px; border-radius: 8px; }

/* Inline editor (review). */
.owner-editor { margin-top: 8px; }
.owner-editor .owner-note {
  width: 100%; box-sizing: border-box; resize: vertical;
  padding: 8px 10px; border-radius: 8px; font: inherit; line-height: 1.45;
  background: #0d1117; border: 1px solid #30363d; color: #e6edf3;
}
.owner-editor .owner-note:focus,
.owner-editor .owner-verdict:focus { outline: none; border-color: #58a6ff; }
.owner-editrow {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-top: 8px; flex-wrap: wrap;
}
.owner-editor .owner-verdict {
  padding: 6px 10px; border-radius: 8px; font: inherit;
  background: #0d1117; border: 1px solid #30363d; color: #e6edf3;
}
.owner-actions { display: inline-flex; gap: 8px; }
.owner-actions button {
  padding: 6px 14px; border-radius: 8px; cursor: pointer; font: 600 13px/1 system-ui, sans-serif;
}
.owner-save { background: #238636; border: 1px solid #2ea043; color: #fff; }
.owner-save:hover { background: #2ea043; }
.owner-save:disabled { opacity: .6; cursor: default; }
.owner-cancel { background: transparent; border: 1px solid #30363d; color: #8b949e; }
.owner-cancel:hover { color: #c9d1d9; border-color: #6e7681; }

/* Save toast. */
.owner-toast {
  position: fixed; left: 50%; bottom: 72px; transform: translate(-50%, 12px);
  z-index: 1300; max-width: min(92vw, 460px);
  padding: 11px 18px; border-radius: 10px; font: 500 14px/1.4 system-ui, sans-serif;
  background: #1b2b1f; border: 1px solid #2ea043; color: #d6f5dd;
  box-shadow: 0 6px 22px rgba(0, 0, 0, .5); opacity: 0; transition: opacity .25s, transform .25s;
  text-align: center;
}
.owner-toast.err { background: #2b1b1f; border-color: #da3633; color: #ffd7d5; }
.owner-toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ---- Subscribers / Family admin page ---- */
.admin-wrap { max-width: 920px; margin: 0 auto; }
.admin-wrap h1 { margin-bottom: 4px; }
.admin-sub { color: #8b949e; margin-bottom: 22px; }
.admin-gate { color: #8b949e; padding: 40px 0; text-align: center; }
.admin-gate a { color: #58a6ff; }
.subs-tools { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.subs-search {
  flex: 1; min-width: 180px; padding: 8px 12px; border-radius: 8px; font: inherit;
  background: #0d1117; border: 1px solid #30363d; color: #e6edf3;
}
.subs-count { color: #8b949e; font-size: 13px; }
.subs-table { width: 100%; border-collapse: collapse; }
.subs-table th, .subs-table td {
  text-align: left; padding: 10px 12px; border-bottom: 1px solid #21262d; vertical-align: middle;
}
.subs-table th { color: #8b949e; font: 600 12px/1 system-ui, sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.subs-table td .s-name { font-weight: 600; color: #e6edf3; }
.subs-table td .s-email { color: #8b949e; font-size: 13px; }
.subs-table .s-when { color: #6e7681; font-size: 13px; white-space: nowrap; }
.s-fam { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; user-select: none; }
.s-fam input { width: 17px; height: 17px; accent-color: #3fb950; cursor: pointer; }
.s-fam.saving { opacity: .5; pointer-events: none; }
.s-tag {
  display: inline-block; font-size: 11px; padding: 2px 7px; border-radius: 999px;
  background: #21262d; color: #8b949e; border: 1px solid #30363d;
}
.s-tag.paid { background: #1b2b1f; color: #3fb950; border-color: #2ea043; }
