/* =============================================================================
   scuba.css — consolidated styles for Scuba Calendar & Roster
   NOTE: This file is served from /assets/css/scuba.css
         Background/image paths are written relative to THIS file.
============================================================================= */

/* ---- Page background & basics ---- */
html, body { height: 100%; }

/* ---- Small utility classes ---- */
.main-left-200 { margin-left:200px; }
.toolbar-btn { padding:8px 8px !important; }
.modal-close-btn { color:inherit !important; background:transparent !important; border:none !important; }
.hint-below { position:absolute; left:0; bottom:-40px; }
.res-inline { display:flex; gap:10px; flex-wrap:wrap; }
.res-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:12px; }
.res-actions .res-error { margin-right:auto; }
.input-state { max-width:90px; text-transform:uppercase; }
.input-zip { max-width:120px; }
.toolbar-img-32 { width:32px; height:32px; display:block; }

/* Modal z-index & widths */
#groupModal { z-index:20 !important; }
#xferModal  { z-index:25 !important; }
#dropConfirm{ z-index:30 !important; }

#newResModal .w3-modal-content,
#groupModal  .w3-modal-content,
#xferModal   .w3-modal-content { max-width:760px; }

#dropConfirm .w3-modal-content { max-width:420px; }

/* ---- Toast ---- */
.drop-toast{
  position:fixed; right:20px; bottom:20px;
  background:#333; color:#fff; padding:10px 14px; border-radius:8px;
  box-shadow:0 4px 14px rgba(0,0,0,.25);
  opacity:0; transform:translateY(8px);
  transition:opacity .18s ease, transform .18s ease;
  z-index:9999; pointer-events:none; font-size:.9rem;
}
.drop-toast.show{ opacity:1; transform:translateY(0); }

/* ---- Theme ---- */
/* Let global theme control the accent via --focus-color, with DR blue as fallback */
.mycolor{
  background-color: var(--focus-color, #1767a7);
  color: #fff;
}

/* ===== Scuba modal theming (Travel / Activities) ===== */
.scuba-modal .w3-modal-content {
  background: #ffffff !important;
  color: #111827 !important;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--focus-color, #1767a7) !important;
}

.boat-modal-head {
  position: relative;
  padding: 6px 12px;
}
.boat-modal-head h5 {
  margin: 2px 0;
  font-size: 14px;
  line-height: 1.1;
}
.boat-modal-close {
  position: absolute;
  top: 2px;
  right: 6px;
  line-height: 1;
  padding: 2px 8px;
}

body.theme-dark .scuba-modal .w3-modal-content {
  background: #0b1220 !important;
  color: #e5e7eb !important;
  border-color: var(--focus-color, #1767a7) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.55);
}

body.theme-grays .scuba-modal .w3-modal-content {
  background: #f9fafb !important;
  color: #111827 !important;
  border-color: rgba(148, 163, 184, 0.6) !important;
}

body.theme-dark .scuba-modal .w3-text-grey {
  color: #cbd5e1 !important;
}

.scuba-modal footer {
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}

body.theme-dark .scuba-modal footer {
  border-top-color: rgba(15, 23, 42, 0.9);
}

.scuba-modal .w3-input,
.scuba-modal .w3-select,
.scuba-modal .w3-textarea {
  background: #ffffff !important;
  color: #111827 !important;
  border-color: rgba(148, 163, 184, 0.6) !important;
}

body.theme-dark .scuba-modal .w3-input,
body.theme-dark .scuba-modal .w3-select,
body.theme-dark .scuba-modal .w3-textarea {
  background: #0f172a !important;
  color: #e5e7eb !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
}

body.theme-dark .scuba-modal .w3-input::placeholder,
body.theme-dark .scuba-modal .w3-textarea::placeholder {
  color: #9ca3af;
}

body.theme-grays .scuba-modal .w3-input,
body.theme-grays .scuba-modal .w3-select,
body.theme-grays .scuba-modal .w3-textarea {
  background: #ffffff !important;
  color: #111827 !important;
  border-color: rgba(148, 163, 184, 0.6) !important;
}

.scuba-modal .w3-light-grey {
  background: #f1f5f9 !important;
  color: #111827 !important;
  border-color: rgba(148, 163, 184, 0.6) !important;
}
body.theme-dark .scuba-modal .w3-light-grey {
  background: rgba(15, 23, 42, 0.65) !important;
  color: #e5e7eb !important;
  border-color: rgba(148, 163, 184, 0.35) !important;
}
body.theme-grays .scuba-modal .w3-light-grey {
  background: #eef2f7 !important;
  color: #111827 !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
}

.scuba-modal .w3-white {
  background: #ffffff !important;
  color: #111827 !important;
  border-color: rgba(148, 163, 184, 0.6) !important;
}
body.theme-dark .scuba-modal .w3-white {
  background: #0f172a !important;
  color: #e5e7eb !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
}
body.theme-grays .scuba-modal .w3-white {
  background: #ffffff !important;
  color: #111827 !important;
  border-color: rgba(148, 163, 184, 0.5) !important;
}

/* ===== SCUBA toolbar (top icon row) ===== */

.scuba-toolbar-wrap {
  max-width: 1500px;
  margin: 14px auto 14px;
  padding: 0 12px;
}

.scuba-toolbar {
  background-color: rgba(0, 0, 0, .1);
  border: 1px solid rgba(0,0,0,0.05);
  border-radius: 14px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
  padding: 4px 10px;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* make buttons compact like PO */
.scuba-toolbar .w3-button {
  padding: 8px 8px !important;
}

/* Taller tabs with underline for active */
.scuba-toolbar .w3-button.scuba-tab {
  position: relative;
  padding-top: 6px !important;
  padding-bottom: 16px !important;
}

.scuba-toolbar .scuba-tab.scuba-tab-active {
  color: #0A6FC2 !important;
}

.scuba-toolbar .scuba-tab.scuba-tab-active::after {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: 2px;
  height: 3px;
  border-radius: 999px;
  background: #0A6FC2;
  pointer-events: none;
}

/* Segmented toggle pills (used on Classes Active/Closed) */
.scuba-pill-toggle{
  display:inline-flex;
  border-radius:999px;
  overflow:hidden;
  border:1px solid color-mix(in srgb, var(--focus-color, #1767a7) 35%, rgba(0,0,0,.2));
  background: color-mix(in srgb, var(--focus-color, #1767a7) 10%, #ffffff);
}
body.theme-dark .scuba-pill-toggle{
  background: color-mix(in srgb, var(--focus-color, #1767a7) 18%, #0b1626);
  border-color: color-mix(in srgb, var(--focus-color, #1767a7) 40%, rgba(255,255,255,.15));
}
.scuba-pill{
  display:inline-flex;
  align-items:center;
  cursor:pointer;
  user-select:none;
  text-decoration:none;
}
.scuba-pill span{
  display:inline-block;
  padding:5px 12px;
  font-size:12px;
  line-height:1;
  color: var(--focus-color, #1767a7);
  background: transparent;
}
.scuba-pill.is-active span{
  background: var(--focus-color, #1767a7);
  color:#ffffff;
}
.scuba-pill span:hover{
  background: color-mix(in srgb, var(--focus-color, #1767a7) 18%, transparent);
}

/* ===== Calendar base & header ===== */

.cal-wrap { margin:12px; }

/* Outer calendar header container */
.cal-bar {
  padding: 8px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Action bar (bookings/back-forward row) */
.pagebar.actionbar {
  box-shadow: 0 1px 6px rgba(0,0,0,0.12);
}
body.theme-dark .pagebar.actionbar {
  box-shadow: 0 1px 8px rgba(255,255,255,0.08);
}

/* Row 1: arrows + date */
.cal-bar-main {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cal-bar-main #calPrev,
.cal-bar-main #calNext {
  flex: 0 0 auto;
}

.cal-title {
  font-size: 18px;
  font-weight: 600;
}

.cal-bar-main .cal-title {
  flex: 1 1 auto;
  text-align: center;
  cursor: pointer;
  position: relative;
}

/* Row 2: view-mode buttons (Month / 7 Day / 3 Day / Today) */
.cal-viewbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
}

/* Base calendar nav + view buttons
   (we'll theme per body.theme-* below) */
.cal-nav-btn,
.cal-viewbtn,
#calToday {
  font-size: 0.85rem;
  padding: 4px 10px;
  border-radius: 4px;
  border: 1px solid rgba(148,163,184,0.6);
  cursor: pointer;
}

/* LIGHT THEME: use same bg as .day */
body.theme-light .cal-nav-btn,
body.theme-light .cal-viewbtn,
body.theme-light #calToday {
  background: #ffffff;
  color: #111827;
}

/* DARK THEME: match day cell background (#3f4e5a) */
body.theme-dark .cal-nav-btn,
body.theme-dark .cal-viewbtn,
body.theme-dark #calToday {
  background: #3f4e5a;
  color: #e5e7eb;
  border-color: rgba(15,23,42,0.9);
}

/* GRAYS THEME: match gray day cells */
body.theme-grays .cal-nav-btn,
body.theme-grays .cal-viewbtn,
body.theme-grays #calToday {
  background: #f3f4f6;
  color: #111827;
}

/* Today button should use focus color + contrast */
#calToday {
  background: var(--focus-color, #1767a7) !important;
  color: var(--focus-contrast, #fff) !important;
  border-color: var(--focus-color, #1767a7) !important;
}

/* Hover: subtle brighten */
.cal-nav-btn:hover,
.cal-viewbtn:hover,
#calToday:hover {
  filter: brightness(1.06);
}

/* View buttons: theme-aware hover with contrast-safe text */
.cal-viewbtn:hover {
  filter: none !important;
  color: var(--focus-contrast, #fff) !important;
}
body.theme-light .cal-viewbtn:hover,
body.theme-grays .cal-viewbtn:hover {
  background-color: color-mix(in srgb, var(--focus-color, #1767a7) 85%, #000) !important;
  border-color: color-mix(in srgb, var(--focus-color, #1767a7) 85%, #000) !important;
}
body.theme-dark .cal-viewbtn:hover {
  background-color: color-mix(in srgb, var(--focus-color, #1767a7) 70%, #fff) !important;
  border-color: color-mix(in srgb, var(--focus-color, #1767a7) 70%, #fff) !important;
}

/* Active view button (Month / 7 / 3) */
.cal-viewbtn.cal-view-active {
  background: var(--focus-color, #1767a7) !important;
  color: var(--focus-contrast, #fff) !important;
  border-color: var(--focus-color, #1767a7) !important;
}

/* Pill-style view toggle (Month / 7 Day / 3 Day) */
.cal-viewbar .scuba-pill-toggle {
  margin: 0;
}
.cal-viewbar .scuba-pill-toggle .cal-viewbtn {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}
.cal-viewbar .scuba-pill-toggle .cal-viewbtn:hover {
  filter: none !important;
  color: var(--focus-color, #1767a7) !important;
  background: transparent !important;
  border-color: transparent !important;
}
.cal-viewbar .scuba-pill-toggle .cal-viewbtn span:hover {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 18%, transparent);
}
.cal-viewbar .scuba-pill-toggle .cal-viewbtn.cal-view-active span {
  background: var(--focus-color, #1767a7);
  color: var(--focus-contrast, #fff);
}


/* Smaller screens: tweak header sizing */
@media (max-width: 640px) {
  .cal-bar-main .cal-title {
    font-size: 0.95rem;
  }

  .cal-viewbar {
    justify-content: center;
  }
}

/* === Month / day grid === */

.cal-head, .cal-grid {
  display:grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap:4px;
}

.cal-head div {
  text-align:center;
  font-size:12px;
  color:#666;
  padding:6px 0;
}

.day {
  min-height:110px;
  border:1px solid #e0e0e0;
  border-radius:6px;
  background:#fff;
  padding:6px;
  display:flex;
  flex-direction:column;
}
.day.empty { background:#fafafa; border-style:dashed; }
.day .date { font-size:12px; color:#555; margin-bottom:4px; display:flex; align-items:baseline; gap:6px; justify-content:space-between; }
.day .date-num { font-weight:600; }
.day .date-dow { font-size:11px; color:#666; }
body.theme-dark .day .date { color:#f1f5f9; }
body.theme-dark .day .date-num { color:#f8fafc; }
body.theme-dark .day .date-dow { color:#e2e8f0; }
.day.today { box-shadow: inset 0 0 0 2px var(--focus-color, #1767a7); }

/* Theme-specific day cell backgrounds */
body.theme-light .day {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 4%, #ffffff);
  border-color: color-mix(in srgb, var(--focus-color, #1767a7) 35%, rgba(148,163,184,0.6));
}
body.theme-light .day.empty {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 2%, #ffffff);
}

body.theme-dark .day {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 12%, #0f172a);
  border-color: rgba(15,23,42,0.9);
}
body.theme-dark .day.empty {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 8%, #111827);
  border-style: dashed;
}

body.theme-grays .day {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 4%, rgba(249,250,251,0.95));
  border-color: color-mix(in srgb, var(--focus-color, #1767a7) 30%, rgba(148,163,184,0.6));
}
body.theme-grays .day.empty {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 2%, rgba(148,163,184,0.25));
  border-style: dashed;
}


/* Calendar nav + view buttons themed per body theme */
.cal-bar-main #calPrev,
.cal-bar-main #calNext,
.cal-viewbar .cal-viewbtn,
.cal-viewbar #calToday {
  border-width: 1px;
  border-style: solid;
}

/* Light theme: match light day cell look */
body.theme-light .cal-bar-main #calPrev,
body.theme-light .cal-bar-main #calNext,
body.theme-light .cal-viewbar .cal-viewbtn,
body.theme-light .cal-viewbar #calToday {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 10%, #ffffff);
  border-color: rgba(148,163,184,0.6);
  color: #111827;
}

/* Dark theme: match #3f4e5a day cells */
body.theme-dark .cal-bar-main #calPrev,
body.theme-dark .cal-bar-main #calNext,
body.theme-dark .cal-viewbar .cal-viewbtn,
body.theme-dark .cal-viewbar #calToday {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 22%, #0f172a);
  border-color: rgba(15,23,42,0.9);
  color: #f9fafb;
}

/* Grays theme: use gray day look */
body.theme-grays .cal-bar-main #calPrev,
body.theme-grays .cal-bar-main #calNext,
body.theme-grays .cal-viewbar .cal-viewbtn,
body.theme-grays .cal-viewbar #calToday {
  background: rgba(249,250,251,0.95);
  border-color: rgba(148,163,184,0.65);
  color: #111827;
}



.activitybars{ display:flex; flex-direction:column; gap:4px; }
.pill{
  display:flex; align-items:center; justify-content:space-between;
  gap:6px; padding:4px 6px; border-radius:8px;
  font-size:12px; line-height:1.2; text-decoration:none;
}
.pill .left{ overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.pill .right{ flex:0 0 auto; font-variant-numeric: tabular-nums; }

/* Month grid responsive behaviour */
@media (max-width:1100px){
  .cal-grid { grid-template-columns: repeat(5, minmax(0,1fr)); }
}
@media (max-width:900px){
  .cal-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width:700px){
  .cal-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width:640px){
  .cal-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .cal-head { display:none; }
  .cal-grid .day.empty { display:none; }
}

/* ===== Hover card ===== */
.cal-hover{
  position:fixed; z-index:3000; display:none; pointer-events:none;
  background:rgba(0,0,0,.92); color:#fff; padding:8px 10px; border-radius:8px;
  font-size:12px; line-height:1.35; max-width:280px; box-shadow:0 10px 24px rgba(0,0,0,.25);
}
.cal-hover .h{ font-weight:600; margin-bottom:4px; }
.cal-hover .row{ display:flex; gap:6px; }
.cal-hover .k{ opacity:.8; min-width:116px; }
.cal-hover .v{ flex:1 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ===== Excursion modal ===== */
.exc-modal{ padding-top:2vh !important; }
.exc-modal .w3-modal-content{
  max-width:680px;
  max-height: calc(100vh - 6vh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

#excHeader{
  position:relative;  /* or just remove position entirely */
  top:auto;
  z-index:auto;
}

.exc-headgrid{
  display:grid; grid-template-columns: 1fr auto; align-items:stretch;
  column-gap:12px; margin-right:44px; min-height:56px; padding:8px 0;
}
.exc-head-left{ display:flex; flex-direction:column; justify-content:center; padding-right:8px; }
.exc-title-row{ display:flex; align-items:center; gap:8px; }
.exc-edit-btn{
  min-width:40px;
  height:40px;
  padding:0 !important;
  border-radius:10px !important;
  border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.16);
  color:inherit;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
}
.exc-edit-btn:hover{
  background:rgba(255,255,255,.24);
}
.exc-edit-btn i{ font-size:19px; line-height:1; }
#excTitle{ margin:0; }
#excSub{ font-size:13px; opacity:.92; margin-top:2px; }
.exc-meta{ font-size:12px; opacity:.9; margin-top:4px; }
.cap-badge{
  align-self:stretch; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:6px 14px 8px; font-size:22px; font-weight:700; line-height:1; border-radius:10px;
  background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.35); color:inherit; min-width:84px;
}
.cap-count{ margin-top:-2px; }
.cap-sub{ font-size:12px; font-weight:500; line-height:1.1; margin-top:4px; opacity:.9; }

#excBody{ flex:1 1 auto; min-height:0; overflow:auto; }

/* ===== Buttons in roster ===== */
.icon-btn{
  height:32px; width:32px; padding:0 !important;
  display:inline-flex; align-items:center; justify-content:center;
  line-height:1; box-sizing:border-box;
}
.icon-btn i{ font-size:16px; line-height:1; margin:0 !important; }
.act-options{ background:#f3f4f6; border-color:#e5e7eb; color:#374151; }

/* ===== Roster table ===== */
#excRosterTbl,
.book-roster-table{
  border-collapse:collapse; border-spacing:0;
  --solo-pill-w: 16px; --solo-pill-h: 38px;
}
#excRosterTbl thead th,
.book-roster-table thead th{
  font-weight:400; font-size:11px; color:#666; padding:4px 6px;
}
#excRosterTbl thead th,
.book-roster-table thead th{ color:#666; }
body.theme-dark #excRosterTbl thead th,
body.theme-dark .book-roster-table thead th{ color:#f8fafc; }
body.theme-grays #excRosterTbl thead th,
body.theme-grays .book-roster-table thead th{ color:#1f2937; }
#excRosterTbl tbody tr,
.book-roster-table tbody tr{ position:relative; }
#excRosterTbl tbody td,
.book-roster-table tbody td{ vertical-align:middle; padding:6px 6px; }
#excRosterTbl tbody td.namecell,
.book-roster-table tbody td.namecell{ position:relative; padding-left:24px; }
body.theme-dark #excRosterTbl tbody tr:nth-child(even),
body.theme-dark .book-roster-table tbody tr:nth-child(even){
  background: color-mix(in srgb, var(--focus-color, #1767a7) 28%, #0b1220) !important;
}

/* group band */
#excRosterTbl tbody tr.r-group td.namecell::before,
.book-roster-table tbody tr.r-group td.namecell::before{
  content:""; position:absolute; z-index:0; left:2px; top:0; bottom:0; width:12px;
  background:#FFD54F; box-shadow:0 2px 6px rgba(0,0,0,.12);
}
#excRosterTbl tbody tr.r-group.group-leader td.namecell::before,
.book-roster-table tbody tr.r-group.group-leader td.namecell::before{
  background:linear-gradient(180deg,#1767A7 0%,#90CAF9 100%);
}
#excRosterTbl tbody tr.r-group.group-start td.namecell::before,
.book-roster-table tbody tr.r-group.group-start td.namecell::before{
  top:3px;
  border-top-left-radius:8px; border-top-right-radius:8px;
}
#excRosterTbl tbody tr.r-group.group-end td.namecell::before,
.book-roster-table tbody tr.r-group.group-end td.namecell::before{
  border-bottom-left-radius:8px; border-bottom-right-radius:8px;
}

/* Guest rows: show the name in an info/blue color */
#excRosterTbl tbody tr.r-group.group-guest td.namecell .nm,
.book-roster-table tbody tr.r-group.group-guest td.namecell .nm { color:#2196F3; }
#excRosterTbl tbody td.namecell .roster-customer-link,
.book-roster-table tbody td.namecell .roster-customer-link{
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
}
#excRosterTbl tbody td.namecell .roster-customer-link:focus,
.book-roster-table tbody td.namecell .roster-customer-link:focus{
  outline:2px solid rgba(23,103,167,.55);
  outline-offset:2px;
  border-radius:4px;
}

/* Guest rows when the group leader is diving */
#excRosterTbl tbody tr.r-group.group-guest.leader-diving td.namecell::before,
.book-roster-table tbody tr.r-group.group-guest.leader-diving td.namecell::before{
  background:#90CAF9;
}

/* solo flag */
#excRosterTbl tbody tr.r-solo .solo-pill,
.book-roster-table tbody tr.r-solo .solo-pill{
  position:absolute; left:2px; top:50%; transform:translateY(-50%);
  width:var(--solo-pill-w); height:min(var(--solo-pill-h), calc(100% - 6px));
  border-radius:8px; background:#E3F2FD; border:1px solid #90CAF9; color:#1565C0;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 6px rgba(0,0,0,.1); user-select:none;
}
#excRosterTbl tbody tr.r-solo .solo-pill .solo-txt,
.book-roster-table tbody tr.r-solo .solo-pill .solo-txt{
  font-size:9px; font-weight:700; letter-spacing:.2px; line-height:1; white-space:nowrap; transform:rotate(-90deg);
}

#excRosterTbl tbody tr.r-group.leader td.namecell .nm,
.book-roster-table tbody tr.r-group.leader td.namecell .nm{ font-weight:700; }

#excRosterTbl td:nth-child(3),
#excRosterTbl td:nth-child(4),
#excRosterTbl td:nth-child(5),
#excRosterTbl td:nth-child(6),
#excRosterTbl td:nth-child(7),
.book-roster-table td:nth-child(3),
.book-roster-table td:nth-child(4),
.book-roster-table td:nth-child(5),
.book-roster-table td:nth-child(6),
.book-roster-table td:nth-child(7){ text-align:center; }

/* contact lines */
#excRosterTbl tbody td.namecell .nm,
.book-roster-table tbody td.namecell .nm{ display:block; margin-bottom:2px; }
#excRosterTbl tbody td.namecell .nm-row,
.book-roster-table tbody td.namecell .nm-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:2px;
}
#excRosterTbl tbody td.namecell .nm-row .nm,
.book-roster-table tbody td.namecell .nm-row .nm{
  margin-bottom:0;
  flex:1 1 auto;
  min-width:0;
}
#excRosterTbl tbody td.namecell .nm-row .name-balance,
.book-roster-table tbody td.namecell .nm-row .name-balance{
  flex:0 0 auto;
  white-space:nowrap;
  font-size:10px;
  padding:1px 6px;
}
#excRosterTbl tbody td.namecell .contact,
.book-roster-table tbody td.namecell .contact{
  display:flex; align-items:center; gap:6px;
  font-size:11px; color:#555; line-height:1.2;
  margin-top:2px; word-break:break-word;
}
#excRosterTbl tbody td.namecell .contact,
.book-roster-table tbody td.namecell .contact{ color:#555; }
body.theme-dark #excRosterTbl tbody td.namecell .contact,
body.theme-dark .book-roster-table tbody td.namecell .contact{ color:#f8fafc; }
body.theme-dark #excRosterTbl tbody td.namecell .contact a,
body.theme-dark .book-roster-table tbody td.namecell .contact a{ color:#f8fafc; }
body.theme-grays #excRosterTbl tbody td.namecell .contact,
body.theme-grays .book-roster-table tbody td.namecell .contact{ color:#1f2937; }
#excRosterTbl tbody td.namecell .contact i,
.book-roster-table tbody td.namecell .contact i{
  font-size:12px; opacity:.75; width:14px; text-align:center; flex:0 0 14px;
}
#excRosterTbl tbody td.namecell .contact a,
.book-roster-table tbody td.namecell .contact a{
  color:inherit; text-decoration:none;
}
#excRosterTbl tbody td.namecell .contact a:hover,
.book-roster-table tbody td.namecell .contact a:hover{ text-decoration:underline; }

/* owe chips */
#excRosterTbl td.owe-cell,
.book-roster-table td.owe-cell { white-space:nowrap; }
.bal-chip{ display:inline-block; padding:2px 8px; }
.bal-ok{ display:inline-block; padding:2px 8px; }
.owe-pay-link{
  border:0;
  cursor:pointer;
  line-height:1.2;
  font:inherit;
}
.owe-history-link{
  border:0;
  cursor:pointer;
  line-height:1.2;
  font:inherit;
}
.owe-pay-link:hover{
  filter:brightness(0.96);
}
.owe-history-link:hover{
  filter:brightness(0.96);
}
.owe-pay-link:focus{
  outline:2px solid color-mix(in srgb, var(--focus-color, #1767a7) 70%, #ffffff);
  outline-offset:1px;
}
.owe-history-link:focus{
  outline:2px solid color-mix(in srgb, var(--focus-color, #1767a7) 70%, #ffffff);
  outline-offset:1px;
}

#owePayModal .owe-pay-participant{
  font-weight:600;
}
#owePayModal .owe-pay-breakdown{
  margin-top:8px;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid color-mix(in srgb, var(--focus-color, #1767a7) 30%, rgba(148,163,184,0.45));
  background:color-mix(in srgb, var(--focus-color, #1767a7) 10%, rgba(255,255,255,0.88));
}
#owePayModal .owe-pay-breakdown-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:12px;
}
#owePayModal .owe-pay-breakdown-row + .owe-pay-breakdown-row{
  margin-top:4px;
}
#owePayModal .owe-pay-breakdown-row strong{
  font-size:12px;
}
#owePayModal .owe-pay-amount{
  font-weight:700;
}
#owePayModal .owe-pay-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
#owePayModal .owe-pay-option{
  min-width:120px;
}
#owePayModal .owe-pay-option[disabled]{
  opacity:.5;
  cursor:not-allowed;
}
#owePayModal .owe-pay-footer-cancel{
  margin-top:8px;
}

/* Non-diving leader tint */
#excRosterTbl tbody tr.r-group.group-leader.leader-nd td.namecell::before,
.book-roster-table tbody tr.r-group.group-leader.leader-nd td.namecell::before{
  background: linear-gradient(180deg, #ff9800 0%, #ffd54f 100%);
}
#excRosterTbl tbody tr.r-group.group-leader.leader-nd td.namecell .nm,
.book-roster-table tbody tr.r-group.group-leader.leader-nd td.namecell .nm{ color:#444; }

/* ===== Add Reservation modal (single) ===== */
#newResModal{ padding-top:3vh !important; }
#newResModal .w3-modal-content{
  max-height:calc(100vh - 6vh);
  display:flex; flex-direction:column; overflow:hidden;
}
#newResModal .w3-container.w3-padding{
  flex:1 1 auto; min-height:0; overflow:auto;
}

.res-toolbar{
  display:flex; align-items:center; gap:12px;
  padding: 6px 0 10px 0;
}
.res-toolbar .res-btn{
  background:#fff; border:1px solid #ddd; border-radius:8px;
  padding:4px 8px; display:inline-flex; align-items:center; gap:8px;
}
.res-toolbar img{ width:32px; height:32px; display:block; }
.res-toolbar .res-btn i{
  font-size:22px;
  line-height:1;
  color: var(--focus-color, #1767a7);
}

.w3-tooltip{ position:relative; display:inline-block; }

.res-search-wrap{
  display:flex; gap:8px; align-items:center; margin-bottom:10px;
}
.res-search-btn{
  background: var(--focus-color, #1767a7) !important;
  color: var(--focus-contrast, #fff) !important;
  border: 1px solid color-mix(in srgb, var(--focus-color, #1767a7) 70%, #000) !important;
}
.res-search-btn:hover,
.res-search-btn:active{
  background: color-mix(in srgb, var(--focus-color, #1767a7) 82%, #000) !important;
  color: var(--focus-contrast, #fff) !important;
}
.res-results{
  max-height:220px; overflow:auto;
  border:1px solid #eee; border-radius:8px;
}
.res-results table{ width:100%; }
.res-results tbody tr{ cursor:pointer; }
.res-results tbody tr:nth-child(even){
  background: color-mix(in srgb, var(--focus-color, #1767a7) 16%, #ffffff) !important;
  color: inherit;
}
.res-results tbody tr:nth-child(even) td{ color: inherit; }
.res-results tbody tr:nth-child(even) a{ color: inherit; }
body.theme-dark .res-results tbody tr:nth-child(even){
  background: color-mix(in srgb, var(--focus-color, #1767a7) 24%, #0f172a) !important;
  color: #e5e7eb;
}
body.theme-grays .res-results tbody tr:nth-child(even){
  background: color-mix(in srgb, var(--focus-color, #1767a7) 22%, #f3f4f6) !important;
  color: #111827;
}
.res-results tr.is-selected{
  background: color-mix(in srgb, var(--focus-color, #1767a7) 86%, #0b1220) !important;
  color: var(--focus-contrast, #fff) !important;
}
.res-results tr.is-selected td,
.res-results tr.is-selected a{ color: inherit !important; }

/* Non-diver dot */
.nd-dot{
  display:inline-block; width:10px; height:10px; border-radius:50%;
  background:#ff9800; border:1px solid #c06200;
  vertical-align:middle; margin-right:6px;
}
.nd-dot[data-tip]{ position:relative; z-index:1; }
.nd-dot[data-tip]::after{
  content: attr(data-tip);
  position:absolute; left:10%; bottom:140%;
  white-space:nowrap; background:rgba(0,0,0,.9); color:#fff;
  font-size:11px; padding:4px 6px; border-radius:6px;
  pointer-events:none; opacity:0; transition:opacity .12s ease;
}
.nd-dot[data-tip]::before{
  content:""; position:absolute; left:10%; bottom:120%;
  border:6px solid transparent; border-top-color:rgba(0,0,0,.9);
  opacity:0; transition:opacity .12s ease;
}
.nd-dot[data-tip]:hover::after,
.nd-dot[data-tip]:hover::before{ opacity:1; }

/* ===== Group Leader results table ===== */
.gr-results {
  border:1px solid #ddd; border-radius:6px;
  max-height:220px; overflow-y:auto;
}
.gr-results table {
  margin:0; width:100%; border-collapse:collapse;
}
.gr-results thead th {
  position:sticky; top:0; background:#f9f9f9; z-index:1;
}

/* “Force ~6 rows” technique for leader table */
#grLeaderTbl { width:100%; border-collapse:collapse; }
#grLeaderTbl thead { display:table; width:100%; table-layout:fixed; }
#grLeaderTbl tbody {
  display:block; max-height:168px;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
}
#grLeaderTbl tbody tr { display:table; width:100%; table-layout:fixed; }
#grLeaderTbl td, #grLeaderTbl th {
  padding-top:6px; padding-bottom:6px;
}

/* Generic guest/leader search tables */
.gr-table { width:100%; border-collapse:collapse; }
.gr-table thead { display:table; width:100%; table-layout:fixed; }
.gr-table tbody {
  display:block; max-height:168px;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
}
.gr-table tbody tr { display:table; width:100%; table-layout:fixed; }
.gr-table td, .gr-table th { padding-top:6px; padding-bottom:6px; }
.gr-table tbody tr.is-selected { background:#eaf2ff !important; }
.gr-load-more { text-align:center; cursor:pointer; padding:6px 10px; color:#1767a7; }
.gr-guest-count-select{
  width:50% !important;
  max-width:130px;
  min-width:96px;
}
.typeahead{
  position:relative;
}
.typeahead .ta-menu{
  margin-top:4px;
  border:1px solid #d1d5db;
  border-radius:6px;
  background:#fff;
  max-height:170px;
  overflow-y:auto;
}
.typeahead .ta-item{
  display:grid;
  grid-template-columns:1.4fr 1.6fr 1fr;
  gap:8px;
  padding:6px 8px;
  cursor:pointer;
  font-size:12px;
  font-weight:400;
  border-bottom:1px solid rgba(0,0,0,0.05);
}
.typeahead .ta-item:last-child{
  border-bottom:0;
}
.typeahead .ta-item:hover{
  background:#eef6ff;
}
.typeahead .ta-col{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ta-picked-name{
  font-weight:400;
}
.ta-picked-meta{
  color:#6b7280;
}
.gr-picked-pill{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--focus-color, #1767a7) 55%, #d1d5db);
  background:color-mix(in srgb, var(--focus-color, #1767a7) 15%, #fff);
}
.gr-picked-pill-name{
  font-size:15px;
  font-weight:700;
  color:var(--focus-color, #1767a7);
}
.gr-picked-pill-meta{
  font-size:12px;
  color:#374151;
}

/* ===== Group modal sizing / footer pin ===== */
#groupModal{ padding-top:3vh !important; }
#groupModal .w3-modal-content{
  max-height: calc(100vh - 6vh);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#groupModal .w3-container.w3-padding{
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}
#groupModal footer{
  flex: 0 0 auto;
  background: #fff;
  border-top: 1px solid #eee;
  position: sticky;
  bottom: 0;
  z-index: 4;
}

/* Disabled Apply clarity */
#groupModal .w3-button[disabled]{
  opacity: .55;
  cursor: not-allowed;
  filter: grayscale(0.2);
}
/* Keep Apply blue */
#groupModal #gr_submit.w3-button{
  background-color:#1767a7 !important;
  color:#fff !important;
  border:1px solid #0f4f84;
}
#groupModal #gr_submit.w3-button[disabled]{
  background-color:#1767a7 !important;
  color:#fff !important;
  opacity:.55;
  cursor:not-allowed;
  filter:grayscale(.2);
}
#groupModal #gr_submit.w3-button:not([disabled]):hover{
  background-color:#12578d !important;
  color:#fff !important;
}

/* === Copy/Move modal tweaks === */
.cm-apply { opacity:1 !important; visibility:visible !important; }
.cm-apply[disabled] { opacity:0.6 !important; cursor:not-allowed; }

#xferModal #xferApply.w3-button {
  background-color:#1767a7 !important;
  color:#fff !important;
  border:1px solid #0f4f84;
}
#xferModal #xferApply.w3-button[disabled]{
  background-color:#1767a7 !important;
  color:#fff !important;
  opacity:.55; cursor:not-allowed; filter:grayscale(.2);
}
#xferModal #xferApply.w3-button:not([disabled]):hover{
  background-color:#12578d !important;
  color:#fff !important;
}

/* Selection highlight for the future excursions list */
#xferListTbl tbody tr.is-selected { background:#dfefff !important; }
#xferListTbl tbody tr:hover { background:#eef6ff; }
#xferListTbl td { cursor:pointer; }

/* Travel page background override */
body.scuba-bg-travel {
  /* relative to /assets/css/scuba.css */
  background: url('../../img/travel_back.jpg') center center / cover no-repeat fixed;
  background-color: #0b3a5a;
}
/* Diver page background override */
body.scuba-bg-diver {
  /* relative to /assets/css/scuba.css */
  background: url('../../img/diver_back.jpg') center center / cover no-repeat fixed;
  background-color: #0b3a5a;
}

/* ===== SCUBA LIST TABLES (Activities / Travel etc.) ===== */

.scuba-table-shell {
  max-width: 1500px;
  margin: 10px auto 24px;
  padding: 0 12px;
}

.scuba-table-card {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.45);
  border: 1px solid rgba(15,23,42,0.6);
}

/* card background per theme */
body.theme-light .scuba-table-card {
  background: #ffffff;
}

body.theme-dark .scuba-table-card {
  /* matches dark pagebar / inventory card */
  background: #111827;
}

body.theme-grays .scuba-table-card {
  background: #f9fafb;
}

.scuba-table-wrap {
  padding-bottom: 6px;
}

/* Theme-aware form inputs inside scuba table cards */
.scuba-table-card .w3-input,
.scuba-table-card .w3-select,
.scuba-table-card .w3-textarea {
  background: #ffffff;
  color: #111827;
  border-color: rgba(148, 163, 184, 0.6);
}
body.theme-dark .scuba-table-card .w3-input,
body.theme-dark .scuba-table-card .w3-select,
body.theme-dark .scuba-table-card .w3-textarea {
  background: #0f172a;
  color: #e5e7eb;
  border-color: rgba(148, 163, 184, 0.45);
}
body.theme-dark .scuba-table-card .w3-input::placeholder,
body.theme-dark .scuba-table-card .w3-textarea::placeholder {
  color: #9ca3af;
}
body.theme-grays .scuba-table-card .w3-input,
body.theme-grays .scuba-table-card .w3-select,
body.theme-grays .scuba-table-card .w3-textarea {
  background: #ffffff;
  color: #111827;
  border-color: rgba(148, 163, 184, 0.6);
}
body.theme-dark .scuba-table-card .w3-text-grey {
  color: #cbd5e1 !important;
}

/* base table look */
.scuba-list-table {
  border-collapse: collapse;
  width: 100%;
}

/* Selection indicator column */
.scuba-list-table th.scuba-indicator,
.scuba-list-table td.scuba-indicator {
  width: 28px;
  text-align: center;
}
.scuba-row-indicator {
  display: inline-block;
  line-height: 1;
  opacity: 0;
  color: var(--focus-color, #1767a7);
  transform: scale(1.2);
  transform-origin: center;
}
body.theme-dark .scuba-row-indicator {
  color: color-mix(in srgb, var(--focus-color, #1767a7) 70%, #ffffff);
}
.scuba-list-table tbody tr.row-selected .scuba-row-indicator {
  opacity: 1;
}

/* header cells */
.scuba-list-table thead th {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 6px 8px;
  white-space: nowrap;
  border-bottom: 1px solid var(--focus-color, #1767a7);
}

body.theme-light .scuba-list-table thead th {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 14%, #ffffff);
  color: #111827;
}

body.theme-dark .scuba-list-table thead th {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 28%, #0f172a);
  color: #e5e7eb;
}

body.theme-grays .scuba-list-table thead th {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 10%, #f1f5f9);
  color: #111827;
}

/* body cells */
.scuba-list-table tbody td {
  padding: 4px 8px;
  font-size: 12px;
  border-bottom: 1px solid color-mix(in srgb, var(--focus-color, #1767a7) 20%, rgba(15,23,42,0.45));
}

/* row striping + hover, tuned for themes */
body.theme-light .scuba-list-table tbody tr:nth-child(odd) {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 4%, #ffffff);
}
body.theme-light .scuba-list-table tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 10%, #ffffff);
}
body.theme-light .scuba-list-table tbody tr:hover {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 18%, #ffffff);
}

body.theme-dark .scuba-list-table tbody tr:nth-child(odd) {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 12%, #0b1220);
}
body.theme-dark .scuba-list-table tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 22%, #0b1220);
}
body.theme-dark .scuba-list-table tbody tr:hover {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 30%, #0b1220);
}

body.theme-grays .scuba-list-table tbody tr:nth-child(odd) {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 6%, #f8fafc);
}
body.theme-grays .scuba-list-table tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 12%, #f1f5f9);
}
body.theme-grays .scuba-list-table tbody tr:hover {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 18%, #e5e7eb);
}

/* clickable destination link */
.scuba-list-table .act-edit-link {
  color: var(--focus-color);
  text-decoration: none;
}
.scuba-list-table .act-edit-link:hover {
  text-decoration: underline;
}

/* "no results" row */
.scuba-list-table tbody tr td.w3-text-grey {
  padding: 10px 8px;
}
/* ===== SCUBA CALENDAR CARD (wider + translucent) ===== */

/* Wider than the toolbar/list shell, more like the original 1900px spread */
.scuba-cal-shell {
  max-width: 1900px;
  margin: 10px auto 24px;
  padding: 0 12px;
}

/* Base card, similar to scuba-table-card but we’ll use translucent backgrounds */
.scuba-cal-card {
  border-radius: 14px;
  overflow: visible;
  box-shadow: 0 2px 6px rgba(0,0,0,0.45);
  border: 1px solid color-mix(in srgb, var(--focus-color, #1767a7) 65%, rgba(15,23,42,0.35));
}

/* Per-theme translucent backgrounds so the page/image theme still shows through */
body.theme-light .scuba-cal-card {
  background: rgba(255, 255, 255, 0.88);
}

body.theme-dark .scuba-cal-card {
  /* dark but still lets the underlying theme/background peek through */
  background: rgba(17, 24, 39, 0.90);
}

body.theme-grays .scuba-cal-card {
  background: rgba(249, 250, 251, 0.90);
}

/* ===== Bookings 3-day grid ===== */
.book-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.book-viewbar { width: 100%; }
.book-roster-btn {
  background: var(--focus-color, #1767a7) !important;
  border: 1px solid rgba(0,0,0,0.18) !important;
  color: var(--focus-contrast, #fff) !important;
}
body.theme-dark .book-roster-btn {
  background: var(--focus-color, #1767a7) !important;
  border-color: rgba(0,0,0,0.25) !important;
  color: var(--focus-contrast, #fff) !important;
}
body.theme-grays .book-roster-btn {
  background: var(--focus-color, #1767a7) !important;
  border-color: rgba(0,0,0,0.18) !important;
  color: var(--focus-contrast, #fff) !important;
}
.book-roster-btn:hover,
.book-roster-btn:focus,
.book-roster-btn:active {
  background-color: var(--focus-color, #1767a7) !important;
  color: var(--focus-contrast, #fff) !important;
  border-color: rgba(0,0,0,0.18) !important;
  filter: brightness(1.05);
}
.book-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.book-day {
  font-weight: 600;
  color: var(--focus-color, #1767a7);
  text-align: center;
}
.book-day-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
@media (max-width: 700px) {
  .book-day-grid { grid-template-columns: 1fr; }
}
.book-card {
  border-radius: 10px;
  padding: 10px 12px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
}
.book-pill {
  border-radius: 12px;
  padding: 6px 10px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.18);
  position: relative;
  padding-right: 34px;
}
.book-pill-row {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: space-between;
}
.book-pill-title {
  font-weight: 700;
  font-size: 13px;
  line-height: 1.2;
}
.book-pill-edit{
  cursor:pointer;
}
.book-pill-edit:hover{
  text-decoration:underline;
}
.book-pill-cap {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,0.25);
  color: inherit;
  border: 1px solid rgba(0,0,0,0.12);
}
.book-pill-boat {
  font-size: 11px;
  opacity: 0.9;
}
.book-pill-type-icons{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:2px;
}
.book-pill-type-icon{
  width:34px;
  height:34px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(0,0,0,0.12);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.book-pill-type-icon i{
  font-size:18px;
  line-height:1;
}
.book-pill-roster-toggle {
  position: absolute;
  right: 8px;
  bottom: 6px;
  border: 0;
  border-radius: 999px;
  min-width: 20px;
  min-height: 20px;
  width: 20px;
  height: 20px;
  padding: 0;
  cursor: pointer;
  background: rgba(0,0,0,0.18);
  color: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.book-pill-roster-toggle i {
  font-size: 11px;
  line-height: 1;
  transition: transform 0.15s ease;
}
.book-pill-roster-toggle.is-open i {
  transform: rotate(180deg);
}
body.theme-light .book-card {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 10%, #ffffff);
  border-color: color-mix(in srgb, var(--focus-color, #1767a7) 18%, transparent);
}
body.theme-dark .book-card {
  background: color-mix(in srgb, var(--focus-color, #1767a7) 22%, #0f172a);
  border-color: color-mix(in srgb, var(--focus-color, #1767a7) 30%, transparent);
}
body.theme-grays .book-card {
  background: #f5f7fb;
  border-color: rgba(0,0,0,0.08);
}
.book-card.empty {
  text-align: center;
  color: #9ca3af;
  font-size: 12px;
}
.book-meta { font-size: 12px; color: #9ca3af; margin-bottom: 6px; margin-top: 6px; text-align: center; }
.book-roster summary {
  cursor: pointer;
  font-weight: 600;
}
.book-roster-summary {
  display: none;
  list-style: none;
}
.book-roster-summary::-webkit-details-marker {
  display: none;
}
.book-roster .roster-body {
  padding-top: 6px;
  font-size: 12px;
}
.book-nav i {
  --fa-primary-color: var(--focus-color, #1767a7);
  --fa-secondary-color: var(--focus-color, #1767a7);
}
.pagebar-tooltip.actionbar-tip {
  background: var(--focus-color, #1767a7) !important;
  color: var(--focus-contrast, #fff) !important;
}
