/* ── Bookmarked-session list ───────────────────────────────────────────── */

/* The frame, the title, the "nothing here" box, the per-event section and its
   heading are the shared ones - see rba-sessions.page.css. Only the extra air
   under this page's title is its own: the greeting beneath it appears just for
   a visitor a mailed link has identified, so the title cannot rely on it. */
.rba-my-schedule__title {
  margin-bottom: var(--spacing-500, 40px);
}

/* The list itself is the shared table - .rba-sessions-panel and
   .rba-sessions-table in rba-sessions.page.css. What stays here is only what
   this page alone has: the button that takes a session back out of the cart,
   and how a cancelled row steps back. */

/* The two actions a row can carry are deliberately not alike. Cancel is the
   shared button, because it writes to the database and frees someone's seat;
   taking a session back out of the cart only edits localStorage, so it is a
   quiet ✕ that does not ask to be read as the same kind of act. */
.rba-my-schedule__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: none;
  color: var(--ambience-700, #998c80);
  font: inherit;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.rba-my-schedule__remove:hover {
  background: var(--ambience-500, #dbd4ce);
  color: var(--trust, #550a2d);
}

.rba-my-schedule__remove:focus-visible {
  outline: var(--border-width-regular, 2px) solid var(--trust, #550a2d);
  outline-offset: 2px;
}

/* A cancelled session stays listed, since it is still in the cart, but steps
   back so the ones that are happening stand out. */
.rba-my-schedule__row--cancelled td {
  opacity: 0.6;
}

.rba-my-schedule__row--cancelled td a {
  text-decoration: line-through;
}

@media (max-width: 767px) {
  .rba-my-schedule__title {
    margin-bottom: var(--spacing-300, 24px);
  }
}

/* ── Section navigation ─────────────────────────────────────────────────── */

/* The in-page-navigation component is designed to stick to the viewport top
   across its landing page. Here it sits inside a content column, so we drop
   the stickiness and add spacing instead. Everything else — the mobile toggle,
   the desktop horizontal list, the link styles — comes from the component's
   own CSS (loaded as core/components.bosch--in-page-navigation). */
.rba-my-schedule__nav-bar {
  position: static;
  margin-bottom: var(--spacing-300, 24px);
  --menu-item-gap: calc(var(--spacing-500, 40px) / 2);
}

/* ── Checkout ───────────────────────────────────────────────────────────── */

/* The card, its heading and intro, the fields, the embedded bosch:button and
   the status line are the shared ones - see rba-sessions.page.css. What stays
   here is what only the checkout has: the remembered-identity line, the
   confirm-email pair it hides, and the consent rows.
   */

/* The template ships the card withheld and rba-sessions.my-schedule.js drops
   this class once it knows whether the form has anything to do, so an
   already-registered visitor does not watch the whole thing paint and
   disappear. Withheld in the markup rather than by that JS, which only runs
   after the first paint - too late to prevent the flash it is about. See
   toggleCheckout(). */
.rba-my-schedule--resolving .rba-my-schedule__checkout {
  display: none;
}

/* Transparent to layout - the label/input pair inside behaves exactly like
   direct flex children of .rba-sessions-form. Only exists so
   checkout.js can hide both with one `hidden` toggle for a known identity. */
[data-rba-checkout-email-confirm-group] {
  display: contents;
}

/* Higher specificity than the rule above, so hidden actually hides it -
   [hidden]{display:none} from the UA stylesheet alone would otherwise lose
   to display:contents. */
[data-rba-checkout-email-confirm-group][hidden] {
  display: none;
}

.rba-my-schedule__checkout-known-identity {
  margin: 0 0 var(--spacing-300, 24px);
  text-align: center;
  color: var(--trust-300, #773b57);
}

.rba-my-schedule__checkout-known-identity:empty {
  display: none;
}

/* Checkbox + label side by side, not a full-width block like the text
   inputs above - the gap from .rba-sessions-form already separates it from
   its neighbours. */
.rba-my-schedule__checkout-consent {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-150, 12px);
}

.rba-my-schedule__checkout-consent input[type="checkbox"] {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 0.15em;
  accent-color: var(--trust, #550a2d);
}

.rba-my-schedule__checkout-consent label {
  font-size: var(--text-paragraph-s, 15px);
  line-height: 1.4;
}

[data-rba-checkout-submit] {
  margin-top: var(--spacing-150, 12px);
  text-align: center;
}


/* ── Identity ───────────────────────────────────────────────────────────── */

/* The greeting a mailed login link produces, and the way back out of it.
   The button is set as a quiet inline link rather than a button: signing
   out is an aside to the sentence it sits in, not an action the page is
   asking for. */
.rba-my-schedule__sign-out {
  margin-left: var(--spacing-150, 12px);
  padding: 0;
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

.rba-my-schedule__sign-out:hover {
  color: var(--trust, #550a2d);
}

.rba-my-schedule__sign-out:focus-visible {
  outline: var(--border-width-regular, 2px) solid var(--trust, #550a2d);
  outline-offset: 2px;
}

/* ── Print ──────────────────────────────────────────────────────────────── */

/* A printed schedule is a reference to carry around, so everything that only
   works by being clicked comes off the page. These rules used to live in
   rba-sessions.login-view.css, for the separate page this one absorbed. */
@media print {
  .rba-my-schedule__actions,
  .rba-my-schedule__sign-out,
  .rba-my-schedule__checkout {
    display: none;
  }

  /* The actions column goes as a whole, header cell included - dropping only
     the buttons would leave an empty column, and dropping only the cells
     would shift every row out from under the header. */
  .rba-sessions-table th:last-child,
  .rba-sessions-table td:last-child {
    display: none;
  }

  /* Paper has its own margins, and the page's bottom padding would otherwise
     push a short list onto a second sheet. */
  .rba-sessions-page.rba-my-schedule {
    max-width: none;
    padding: 0;
  }

  /* Borders and tints cost ink and print badly on a monochrome printer; the
     table's own rules carry the structure well enough without them. */
  .rba-sessions-panel {
    border: none;
  }

  .rba-sessions-table tbody tr,
  .rba-sessions-table thead th {
    background: none;
  }
}
