/* Admin > Jadwal Real-Time.
   Same flat surfaces and hairline borders as the rest of the admin workspace;
   colour is used only where it carries meaning — a session that is full, a
   booking that is still waiting, a payment that has not landed. */

.schedule-board2148 { display: grid; gap: 18px; }

.board-head2148 {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: flex-start;
  justify-content: space-between;
}

.board-head2148 h2 { margin: 6px 0 4px; }
.board-head2148 p { margin: 0; color: var(--ui-muted, #69635b); max-width: 62ch; line-height: 1.6; }

.board-live2148 { display: grid; gap: 4px; justify-items: end; text-align: right; }
.board-live2148 small { color: var(--ui-muted, #69635b); font-size: .76rem; }

.board-dot2148 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--ui-border, #d9d1c5);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.board-dot2148 i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.board-dot2148.is-ok { color: #2f6b4a; border-color: #2f6b4a44; background: #2f6b4a10; }
.board-dot2148.is-ok i { animation: board-pulse2148 2s ease-in-out infinite; }
.board-dot2148.is-wait { color: var(--ui-brass, #a88750); border-color: #a8875044; }
.board-dot2148.is-off { color: #8a5a3c; border-color: #8a5a3c44; background: #8a5a3c10; }

@keyframes board-pulse2148 {
  0%, 100% { opacity: 1; }
  50% { opacity: .25; }
}

@media (prefers-reduced-motion: reduce) {
  .board-dot2148.is-ok i { animation: none; }
}

/* ------------------------------------------------------------------ toolbar */

.board-toolbar2148 {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border: 1px solid var(--ui-border, #d9d1c5);
  border-radius: 10px;
  background: var(--ui-surface, #fffdf9);
}

.board-daynav2148, .board-filters2148 { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.board-daynav2148 input[type=date] { min-width: 160px; }
.board-toggle2148 { display: inline-flex; align-items: center; gap: 7px; font-size: .82rem; white-space: nowrap; }
.board-toggle2148 input { width: auto; }

.board-dayline2148 {
  margin: 0;
  font-family: var(--font-display, var(--font-display,Georgia,serif));
  font-size: 1.15rem;
  color: var(--ui-ink, #171512);
}

.board-arrivals2148 {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  padding: 12px 16px;
  border-radius: 10px;
  background: #2f6b4a12;
  border: 1px solid #2f6b4a33;
  color: #2f6b4a;
}

.board-arrivals2148 span { color: var(--ui-muted, #69635b); font-size: .86rem; }

/* ------------------------------------------------------------------- totals */

.board-totals2148 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
}

.board-totals2148 > div {
  padding: 14px 16px;
  border: 1px solid var(--ui-border, #d9d1c5);
  border-radius: 10px;
  background: var(--ui-surface, #fffdf9);
}

.board-totals2148 b {
  display: block;
  font-family: var(--font-display, var(--font-display,Georgia,serif));
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 1.1;
}

.board-totals2148 span {
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ui-muted, #69635b);
}

.board-totals2148 .is-warn { border-color: #a8875055; background: #a887500f; }
.board-totals2148 .is-warn b { color: #8a6a2f; }

/* ----------------------------------------------------------------- sessions */

.board-sessions2148 { display: grid; gap: 12px; }

.board-session2148 {
  border: 1px solid var(--ui-border, #d9d1c5);
  border-left: 3px solid var(--ui-border, #d9d1c5);
  border-radius: 10px;
  background: var(--ui-surface, #fffdf9);
  overflow: hidden;
}

.board-session2148.is-full { border-left-color: #2f6b4a; }
.board-session2148.is-partial { border-left-color: var(--ui-brass, #a88750); }
.board-session2148.is-empty { border-left-color: var(--ui-border, #d9d1c5); }
.board-session2148.is-off { border-left-color: #b9aea0; opacity: .7; }

.board-session2148 > header {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--ui-border, #d9d1c5);
  background: var(--ui-paper, #fbf8f2);
}

.board-session-when2148 { display: grid; gap: 2px; }
.board-session-when2148 b { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.board-session-when2148 span { color: var(--ui-muted, #69635b); font-size: .86rem; }
.board-session-when2148 small { color: var(--ui-brass, #a88750); font-size: .74rem; }

.board-session-seats2148 { display: grid; gap: 6px; justify-items: end; min-width: 160px; }
.board-session-seats2148 small { color: var(--ui-muted, #69635b); font-size: .76rem; font-variant-numeric: tabular-nums; }

.board-seatchip2148 {
  padding: 4px 12px;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: 1px solid var(--ui-border, #d9d1c5);
  color: var(--ui-muted, #69635b);
}

.board-seatchip2148.is-full { color: #2f6b4a; border-color: #2f6b4a55; background: #2f6b4a12; }
.board-seatchip2148.is-partial { color: #8a6a2f; border-color: #a8875055; background: #a887500f; }
.board-seatchip2148.is-off { color: #7b7167; }

.board-meter2148 {
  width: 150px;
  height: 5px;
  border-radius: 999px;
  background: var(--ui-bg, #f6f2ea);
  overflow: hidden;
}

.board-meter2148 i { display: block; height: 100%; background: var(--ui-brass, #a88750); }
.board-session2148.is-full .board-meter2148 i { background: #2f6b4a; }

.board-session-empty2148 { margin: 0; padding: 14px 16px; color: var(--ui-muted, #69635b); font-size: .88rem; }

.board-riders2148 { list-style: none; margin: 0; padding: 0; }

.board-riders2148 li {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--ui-border, #d9d1c5);
}

.board-riders2148 li:last-child { border-bottom: 0; }
.board-rider-name2148 { display: grid; gap: 2px; min-width: 180px; }
.board-rider-name2148 small { color: var(--ui-muted, #69635b); font-size: .76rem; }
.board-rider-tags2148 { display: flex; flex-wrap: wrap; gap: 6px; }
.board-rider-actions2148 { display: flex; flex-wrap: wrap; gap: 6px; }

.board-chip2148 {
  padding: 4px 10px;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .06em;
  border: 1px solid var(--ui-border, #d9d1c5);
  color: var(--ui-muted, #69635b);
  white-space: nowrap;
}

.board-chip2148.is-confirmed { color: #2f6b4a; border-color: #2f6b4a55; background: #2f6b4a10; }
.board-chip2148.is-pending { color: #8a6a2f; border-color: #a8875055; background: #a887500f; }
.board-chip2148.is-paid { color: #2f6b4a; border-color: #2f6b4a55; }
.board-chip2148.is-unpaid { color: #8a5a3c; border-color: #8a5a3c55; background: #8a5a3c0f; }
.board-chip2148.is-safety { color: #6a5a8a; border-color: #6a5a8a55; }

.board-empty2148 {
  margin: 0;
  padding: 36px 16px;
  text-align: center;
  color: var(--ui-muted, #69635b);
  border: 1px dashed var(--ui-border, #d9d1c5);
  border-radius: 10px;
}

@media (max-width: 720px) {
  .board-live2148 { justify-items: flex-start; text-align: left; }
  .board-session2148 > header { flex-direction: column; align-items: flex-start; }
  .board-session-seats2148 { justify-items: flex-start; min-width: 0; }
  .board-meter2148 { width: 100%; }
  .board-riders2148 li { flex-direction: column; align-items: flex-start; }
  .board-daynav2148 { width: 100%; }
  .board-daynav2148 input[type=date] { flex: 1 1 auto; }
}

/* A quiet count beside the two tabs that answer for new bookings. */
.admin-nav-v11 .admin-live-badge2148 {
  margin-left: auto;
  min-width: 20px;
  padding: 1px 6px;
  border-radius: 999px;
  background: #2f6b4a;
  color: #fffaf3;
  font-style: normal;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}
