/* APEX Aviation — Simulator Booking
   Azure-on-white "blueprint" theme. Cormorant Garamond display, Barlow body,
   Barlow Condensed labels, JetBrains Mono for numbers/eyebrows.
   Self-contained, scoped under .apsb. */

.apsb, .apsb-modal-bg {
  --c-bg:        #FFFFFF;            /* page */
  --c-surface:   #EDF2F7;           /* spec cells, quiet fills */
  --c-ink:       #0F2D5A;           /* navy — headlines/body ink */
  --c-muted:     #4A6280;           /* muted text */
  --c-faint:     #7A90A8;           /* dim — mono captions/hints */
  --c-line:      rgba(15,45,90,.10); /* hairline border */
  --c-line2:     rgba(15,45,90,.18);
  --c-accent:    #0A6FE8;           /* vivid azure — primary accent */
  --c-accent-bright: #3D90FF;       /* hovers / glow */
  --c-accent-ink:#ffffff;
  --c-accent-soft:  rgba(10,111,232,.08);
  --c-accent-soft2: rgba(10,111,232,.14);
  --c-accent-line:  rgba(10,111,232,.30);
  --c-other:     #EDF2F7;           /* anonymous others — quiet neutral */
  --c-other-ink: #7A90A8;
  --c-pending:   #D98B0E;           /* amber — secondary, used sparingly */
  --c-pending-dark: #9A6207;
  --c-ok:        #0A6FE8;           /* confirmed reads as accent here */
  --c-ok-text:   #126B3E;
  --c-danger:    #C0392B;
  --r:           6px;               /* squared-off radii */
  --r-sm:        3px;
  --hour-px:     56px;              /* fixed height per hour row */
  --cal-max-h:   620px;             /* viewport height before vertical scroll kicks in */

  font-family: "Barlow", system-ui, -apple-system, sans-serif;
  color: var(--c-ink);
  max-width: 1240px;
  margin: 1.5rem auto;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  /* faint blueprint grid */
  background-color: var(--c-bg);
  background-image:
    linear-gradient(rgba(15,45,90,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,45,90,.025) 1px, transparent 1px);
  background-size: 60px 60px;
}
.apsb *, .apsb *::before, .apsb *::after,
.apsb-modal-bg *, .apsb-modal-bg *::before, .apsb-modal-bg *::after { box-sizing: border-box; }
.apsb-modal-bg { font-family: "Barlow", system-ui, sans-serif; }

/* ── Top bar ── */
.apsb-bar {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1.25rem; flex-wrap: wrap; margin-bottom: 1.6rem;
}
.apsb-bar__title {
  font-family: "Cormorant Garamond", Georgia, serif; font-size: 2.1rem; font-weight: 600;
  letter-spacing: -.01em; display: flex; align-items: center; gap: .6rem; margin: 0; line-height: 1.1;
  color: var(--c-ink);
}
.apsb-bar__plane { color: var(--c-accent); font-size: .85em; transform: rotate(-6deg); }
.apsb-bar__controls { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }

.apsb-view { display: flex; border: 1px solid var(--c-line2); border-radius: var(--r-sm); overflow: hidden; background: var(--c-bg); padding: 2px; }
.apsb-view__btn {
  padding: 6px 18px; font-family: "Barlow Condensed", sans-serif; font-size: 14px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  background: transparent; color: var(--c-muted); border: none; cursor: pointer; transition: all .18s; border-radius: var(--r-sm);
}
.apsb-view__btn:hover { color: var(--c-ink); }
.apsb-view__btn.is-active { background: var(--c-accent); color: #fff; }

.apsb-nav { display: flex; align-items: center; gap: 4px; }
.apsb-nav__btn {
  display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px;
  padding: 0 12px; border-radius: var(--r-sm); border: 1px solid var(--c-line2);
  background: var(--c-bg); color: var(--c-muted); font-size: 17px; cursor: pointer; transition: all .18s;
}
.apsb-nav__btn:hover { border-color: var(--c-accent); color: var(--c-accent); }
.apsb-nav__today { font-size: 13px; font-weight: 600; font-family: "Barlow Condensed", sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.apsb-nav__label {
  font-family: "JetBrains Mono", monospace; font-size: 13px; font-weight: 500;
  min-width: 220px; text-align: center; color: var(--c-ink); letter-spacing: -.01em;
}
.apsb-book-btn {
  padding: 12px 28px; border-radius: var(--r-sm); border: none;
  background: var(--c-accent); color: var(--c-accent-ink);
  font-family: "Barlow Condensed", sans-serif; font-size: 15px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  cursor: pointer; transition: background .2s, transform .2s, box-shadow .18s;
  box-shadow: 0 1px 2px rgba(10,111,232,.2);
}
.apsb-book-btn:hover { background: var(--c-accent-bright); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(10,111,232,.28); }
.apsb-book-btn:active { transform: translateY(0); }

/* ── Legend ── */
.apsb-legend { display: flex; gap: 1.4rem; flex-wrap: wrap; margin-bottom: 1.1rem; padding-left: 2px; }
.apsb-legend__item {
  display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--c-muted);
}
.apsb-legend__dot { width: 11px; height: 11px; border-radius: 4px; }
.apsb-legend__dot--mine { background: var(--c-accent); }
.apsb-legend__dot--other { background: var(--c-other); border: 1px solid var(--c-line2); }
.apsb-legend__dot--free { background: transparent; border: 1px dashed var(--c-faint); }

/* Zoom control (pushed to the right of the legend) */
.apsb-zoom { margin-left: auto; display: inline-flex; align-items: center; gap: 2px;
  border: 1px solid var(--c-line2); border-radius: var(--r-sm); background: var(--c-bg); padding: 2px; }
.apsb-zoom__btn {
  min-width: 30px; height: 28px; padding: 0 9px; border: none; background: transparent;
  color: var(--c-muted); font-family: "Barlow Condensed", sans-serif; font-size: 16px; font-weight: 600;
  line-height: 1; cursor: pointer; border-radius: calc(var(--r-sm) - 1px); transition: all .15s;
}
.apsb-zoom__btn--reset { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.apsb-zoom__btn:hover:not(:disabled) { background: var(--c-accent-soft); color: var(--c-accent); }
.apsb-zoom__btn.is-active { background: var(--c-accent); color: #fff; }
.apsb-zoom__btn:disabled { opacity: .35; cursor: default; }

/* ── Calendar shell ── */
.apsb-cal {
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--r);
  box-shadow: 0 1px 2px rgba(15,45,90,.03), 0 12px 32px rgba(15,45,90,.05);
  overflow: hidden;
}
/* Scroll viewport: vertical scroll when the day is taller than --cal-max-h.
   In fit mode (JS adds --fit) the cap is lifted inline so nothing scrolls. */
.apsb-tl { max-height: var(--cal-max-h); overflow-y: auto; overflow-x: hidden; position: relative; }
.apsb-tl::-webkit-scrollbar { width: 10px; }
.apsb-tl::-webkit-scrollbar-thumb { background: var(--c-line2); border-radius: 999px; border: 3px solid var(--c-surface); }
.apsb-tl::-webkit-scrollbar-track { background: transparent; }
.apsb-cal__loading {
  padding: 4rem; text-align: center; color: var(--c-faint);
  font-family: "JetBrains Mono", monospace; font-size: 13px;
}

/* ── Day timeline ── */
.apsb-tl--day { display: flex; align-items: flex-start; }
.apsb-tl__ruler { flex-shrink: 0; width: 70px; border-right: 1px solid var(--c-line); }
.apsb-tl__tick { height: var(--hour-px); position: relative; border-bottom: 1px solid var(--c-line); }
.apsb-tl__tick span {
  position: absolute; top: -8px; right: 12px; font-family: "JetBrains Mono", monospace;
  font-size: 11px; color: var(--c-faint); background: var(--c-surface); padding: 0 3px;
}
.apsb-tl__track { flex: 1; position: relative; }
.apsb-tl__cell { height: var(--hour-px); border-bottom: 1px solid var(--c-line); }
.apsb-tl__track:not(.is-closed) { cursor: pointer; }
.apsb-tl__track:not(.is-closed):hover { background: var(--c-accent-soft); }
.apsb-tl__track.is-closed {
  background: repeating-linear-gradient(45deg, #f4f1ec, #f4f1ec 10px, transparent 10px, transparent 20px);
  cursor: not-allowed;
}
.apsb-tl__closed-label {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  font-family: "JetBrains Mono", monospace; font-size: 12px; color: var(--c-faint);
  letter-spacing: .15em; text-transform: uppercase;
}

/* ── Week timeline ── */
/* Header sticks to the top of the scroll viewport while hours scroll under it */
.apsb-wk__head { display: flex; border-bottom: 1px solid var(--c-line); background: var(--c-bg);
  position: sticky; top: 0; z-index: 6; }
.apsb-wk__corner { width: 58px; flex-shrink: 0; border-right: 1px solid var(--c-line); }
.apsb-wk__day {
  flex: 1; padding: 12px 4px; text-align: center; border-right: 1px solid var(--c-line);
  display: flex; flex-direction: column; gap: 3px;
}
.apsb-wk__day:last-child { border-right: none; }
.apsb-wk__day.is-today .apsb-wk__date {
  background: var(--c-accent); color: #fff; border-radius: var(--r-sm);
  width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; margin: 0 auto;
}
.apsb-wk__day.is-closed {
  background: repeating-linear-gradient(45deg, #f4f1ec, #f4f1ec 6px, transparent 6px, transparent 12px);
}
.apsb-wk__dow { font-size: 11px; font-weight: 600; color: var(--c-muted); text-transform: uppercase; letter-spacing: .07em; }
.apsb-wk__date { font-family: "Cormorant Garamond", serif; font-size: 17px; font-weight: 600; }

.apsb-wk__body { display: flex; align-items: flex-start; }
.apsb-wk__ruler { width: 58px; flex-shrink: 0; border-right: 1px solid var(--c-line); }
.apsb-wk__tick { height: var(--hour-px); position: relative; border-bottom: 1px solid var(--c-line); }
.apsb-wk__tick span {
  position: absolute; top: -8px; right: 6px; font-family: "JetBrains Mono", monospace;
  font-size: 10px; color: var(--c-faint); background: var(--c-surface); padding: 0 2px;
}
.apsb-wk__cols { flex: 1; display: flex; }
.apsb-wk__col { flex: 1; position: relative; border-right: 1px solid var(--c-line); }
.apsb-wk__col:last-child { border-right: none; }
.apsb-wk__col:not(.is-closed) { cursor: pointer; }
.apsb-wk__col:not(.is-closed):hover { background: var(--c-accent-soft); }
.apsb-wk__col.is-closed {
  background: repeating-linear-gradient(45deg, #f4f1ec, #f4f1ec 6px, transparent 6px, transparent 12px);
  cursor: not-allowed;
}
.apsb-wk__cell { height: var(--hour-px); border-bottom: 1px solid var(--c-line); }

/* ── Booking blocks ── */
.apsb-block {
  position: absolute; left: 6px; right: 6px; border-radius: 9px;
  padding: 7px 10px; overflow: hidden; z-index: 2; cursor: pointer;
  display: flex; flex-direction: column; gap: 2px;
  border: 1px solid transparent; transition: transform .1s, box-shadow .16s, filter .16s;
}
.apsb-block--mine {
  background: var(--c-accent); border-color: var(--c-accent); color: #fff;
  box-shadow: 0 2px 8px rgba(226,84,44,.22);
}
.apsb-block--mine:hover { filter: brightness(1.05); box-shadow: 0 5px 18px rgba(226,84,44,.32); z-index: 4; }
.apsb-block--other {
  background: var(--c-other); border-color: var(--c-line2); color: var(--c-other-ink); cursor: default;
}
.apsb-block--pending.apsb-block--mine {
  background: #fff; border: 1px dashed var(--c-accent); color: var(--c-accent);
  box-shadow: none;
}
.apsb-block.is-dragging { opacity: .45; }
.apsb-block__time { font-family: "JetBrains Mono", monospace; font-size: 10.5px; opacity: .9; }
.apsb-block__title { font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; letter-spacing: -.01em; }
.apsb-block__sub { font-size: 11px; opacity: .8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; }
.apsb-block__tag {
  font-family: "JetBrains Mono", monospace; font-size: 8.5px; font-weight: 500;
  text-transform: uppercase; letter-spacing: .06em; padding: 1px 5px; border-radius: 4px;
  background: var(--c-accent-soft2); color: var(--c-accent); flex-shrink: 0;
}
.apsb-block[draggable="true"] { cursor: grab; }
.apsb-block[draggable="true"]:active { cursor: grabbing; }
.apsb-drop { background: var(--c-accent-soft2) !important; box-shadow: inset 0 0 0 1px var(--c-accent); }

/* now line */
.apsb-now { position: absolute; left: 0; right: 0; height: 2px; background: var(--c-accent); z-index: 5; pointer-events: none; }
.apsb-now::before { content: ""; position: absolute; left: -4px; top: -4px; width: 9px; height: 9px; border-radius: 50%; background: var(--c-accent); }

/* ── Footer ── */
.apsb-foot { margin-top: 1.1rem; font-size: 13.5px; }
.apsb-foot a { color: var(--c-accent); font-weight: 600; text-decoration: none; }
.apsb-foot a:hover { text-decoration: underline; }

/* ── Gate (logged out) ── */
.apsb-gate {
  text-align: center; padding: clamp(2.5rem,5vw,4rem) 2rem; background: var(--c-bg);
  border: 1px solid var(--c-line); border-radius: var(--r); box-shadow: 0 12px 32px rgba(15,45,90,.05);
  border-top: 2px solid var(--c-accent);
  max-width: 560px; margin: 0 auto;
}
.apsb-gate__icon { font-size: 2.4rem; color: var(--c-accent); margin-bottom: .4rem; }
.apsb-gate__title { font-family: "Cormorant Garamond", serif; font-size: clamp(1.8rem,3vw,2.4rem); font-weight: 400; margin: 0 0 .5rem; color: var(--c-ink); }
.apsb-gate__lead { color: var(--c-muted); font-size: 1.02rem; line-height: 1.6; margin: 0 auto 1.6rem; max-width: 42ch; }
.apsb-gate__form { margin: 1.2rem auto 1.4rem; text-align: left; }
.apsb-gate__form .apex-auth { padding: 0; }            /* embedded login form: drop its outer padding */
.apsb-gate__form .apex-auth__card { box-shadow: none; border-color: var(--c-line); max-width: 100%; }
.apsb-gate__contact {
  color: var(--c-faint); font-size: .9rem; line-height: 1.6; margin: 1.2rem auto 0;
  padding-top: 1.2rem; border-top: 1px solid var(--c-line); max-width: 44ch;
}
.apsb-gate__fallback { color: var(--c-muted); }
.apsb-gate p { color: var(--c-muted); }
.apsb-gate a { color: var(--c-accent); font-weight: 600; }

/* ── Modal ── */
.apsb-modal-bg {
  display: none; position: fixed; inset: 0; background: rgba(26,26,26,.32);
  backdrop-filter: blur(3px); z-index: 99999; align-items: center; justify-content: center; padding: 1rem;
}
.apsb-modal-bg.is-open { display: flex; animation: apsb-fade .18s ease; }
@keyframes apsb-fade { from { opacity: 0; } to { opacity: 1; } }
.apsb-modal {
  background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 18px;
  padding: 2rem; width: 100%; max-width: 460px; color: var(--c-ink);
  box-shadow: 0 24px 70px rgba(26,26,26,.18);
  max-height: 92vh; overflow-y: auto; animation: apsb-rise .22s cubic-bezier(.2,.8,.3,1);
}
@keyframes apsb-rise { from { transform: translateY(14px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.apsb-modal__title { font-family: "Cormorant Garamond", serif; font-size: 1.5rem; font-weight: 600; margin: 0 0 1.4rem; letter-spacing: -.01em; }
.apsb-field { display: flex; flex-direction: column; margin-bottom: 1.1rem; }
.apsb-field label {
  font-size: 12px; font-weight: 600; margin-bottom: .45rem; color: var(--c-muted);
  text-transform: uppercase; letter-spacing: .06em;
}
.apsb-field--admin label { color: var(--c-accent); }
.apsb-opt { text-transform: none; letter-spacing: 0; color: var(--c-faint); font-weight: 400; }
.apsb-field input, .apsb-field textarea, .apsb-field select {
  padding: .7rem .85rem; border: 1px solid var(--c-line2); border-radius: 10px;
  font: inherit; font-size: 14.5px; color: var(--c-ink); background: var(--c-bg); width: 100%;
}
.apsb-field input:focus, .apsb-field textarea:focus, .apsb-field select:focus {
  outline: none; border-color: var(--c-accent); box-shadow: 0 0 0 3px var(--c-accent-soft); background: #fff;
}
.apsb-field textarea { resize: vertical; min-height: 64px; }
.apsb-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.apsb-modal__msg { font-size: 13px; min-height: 1.1em; margin: .2rem 0; color: var(--c-danger); }
.apsb-modal__msg.is-error { color: var(--c-danger); }

.apsb-modal__actions { margin-top: 1.5rem; display: flex; flex-direction: column; gap: .65rem; }
.apsb-modal__actions-row { display: flex; gap: .5rem; align-items: center; }
.apsb-btn {
  padding: .7rem 1.2rem; border-radius: 10px; font-family: "Barlow", sans-serif;
  font-size: 14px; font-weight: 600; cursor: pointer; border: 1px solid transparent;
  transition: filter .15s, background .15s, transform .1s, border-color .15s;
}
.apsb-btn:active { transform: translateY(1px); }
.apsb-btn--block { width: 100%; }
.apsb-btn--primary { background: var(--c-accent); color: #fff; box-shadow: 0 2px 8px rgba(226,84,44,.2); }
.apsb-btn--primary:hover { filter: brightness(1.05); }
.apsb-btn--primary:disabled { opacity: .5; cursor: not-allowed; }
.apsb-btn--validate { background: var(--c-ink); color: #fff; flex: 1; }
.apsb-btn--validate:hover { filter: brightness(1.15); }
.apsb-btn--ghost { background: var(--c-surface); border-color: var(--c-line2); color: var(--c-ink); margin-left: auto; }
.apsb-btn--ghost:hover { border-color: var(--c-ink); }
.apsb-btn--danger { background: transparent; border-color: var(--c-danger); color: var(--c-danger); }
.apsb-btn--danger:hover { background: var(--c-danger); color: #fff; }

/* ── My bookings list ── */
.apsb--my { max-width: 720px; }
.apsb-my__section { margin: 1.6rem 0 .8rem; font-size: 12px; font-weight: 600; color: var(--c-muted); text-transform: uppercase; letter-spacing: .07em; }
.apsb-my__empty { color: var(--c-muted); font-family: "JetBrains Mono", monospace; font-size: 13px; }
.apsb-my__item {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1rem 1.2rem; border: 1px solid var(--c-line); border-radius: 12px; margin-bottom: .6rem; background: var(--c-surface);
}
.apsb-my__item--past { opacity: .6; }
.apsb-my__when { font-family: "Cormorant Garamond", serif; font-weight: 600; font-size: 15px; }
.apsb-my__notes { font-size: 12.5px; color: var(--c-muted); margin-top: .35rem; }
.apsb-chip {
  display: inline-block; margin-top: .45rem; padding: .14rem .65rem; font-size: 11px; font-weight: 600;
  border-radius: var(--r-sm); text-transform: uppercase; letter-spacing: .04em; background: var(--c-other); color: var(--c-other-ink);
}
.apsb-chip--pending { background: var(--c-accent-soft2); color: var(--c-accent); }
.apsb-chip--confirmed { background: rgba(47,143,91,.14); color: var(--c-ok); }
.apsb-chip--cancelled { background: rgba(192,57,43,.12); color: var(--c-danger); }

/* ── Calendar subscription panel ── */
.apsb-sub { margin-top: 1.8rem; padding-top: 1.6rem; border-top: 1px solid var(--c-line); }
.apsb-sub__intro { color: var(--c-muted); font-size: 14px; margin: 0 0 1rem; }
.apsb-sub__row { display: flex; gap: .5rem; margin-bottom: .9rem; }
.apsb-sub__url {
  flex: 1; padding: .65rem .8rem; border: 1px solid var(--c-line2); border-radius: 10px;
  font-family: "JetBrains Mono", monospace; font-size: 12.5px; color: var(--c-muted);
  background: var(--c-bg); overflow: hidden; text-overflow: ellipsis;
}
.apsb-sub__url:focus { outline: none; border-color: var(--c-accent); color: var(--c-ink); }
.apsb-sub__apps { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .9rem; }
.apsb-sub__apps .apsb-btn { text-decoration: none; display: inline-flex; align-items: center; }
.apsb-sub__hint { font-size: 12.5px; color: var(--c-faint); line-height: 1.5; margin: 0 0 .8rem; }
.apsb-sub__hint em { font-style: normal; color: var(--c-muted); font-weight: 600; }
.apsb-sub__reset {
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: "Barlow", sans-serif; font-size: 12.5px; color: var(--c-faint); text-decoration: underline;
}
.apsb-sub__reset:hover { color: var(--c-danger); }

/* ── Toast ── */
.apsb-toast {
  position: fixed; bottom: 26px; left: 50%; transform: translateX(-50%) translateY(20px);
  background: var(--c-ink); color: #fff; padding: .8rem 1.4rem; border-radius: 12px;
  font-family: "Barlow", sans-serif; font-size: 14px; font-weight: 600; z-index: 100000;
  opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
  box-shadow: 0 10px 36px rgba(26,26,26,.25);
}
.apsb-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }
.apsb-toast.is-ok { background: var(--c-ok); }
.apsb-toast.is-err { background: var(--c-danger); }

/* ── Mobile ── */
@media (max-width: 768px) {
  .apsb { --hour-px: 48px; --cal-max-h: 70vh; }
  .apsb-bar__title { font-size: 1.45rem; width: 100%; }
  .apsb-nav__label { min-width: 150px; font-size: 13px; }
  .apsb-block__sub { display: none; }
  .apsb-tl--week { min-width: 700px; }
  .apsb-cal { overflow-x: auto; }
}

/* ---- Per-user access panel (door code + expiry) ---- */
.apsb-access{
  border:1px solid var(--c-line);
  border-left:3px solid var(--c-accent);
  background:rgba(10,111,232,.05);
  border-radius:6px;
  padding:14px 18px 16px;
  margin-bottom:18px;
}
.apsb-access--expired{ border-left-color:var(--c-danger); background:rgba(180,35,24,.04); }
.apsb-access__head{
  font-family:'Barlow Condensed','Barlow',sans-serif;
  font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.1em;
  color:var(--c-accent); margin:0 0 2px;
}
.apsb-access__intro{ font-size:12.5px; color:var(--c-muted); margin:0 0 12px; }
.apsb-access__row{ display:flex; gap:40px; flex-wrap:wrap; }
.apsb-access__item{ display:flex; flex-direction:column; gap:3px; }
.apsb-access__label{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.16em;
  color:var(--c-dim,#7A90A8);
}
.apsb-access__code{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:22px; font-weight:600; letter-spacing:.18em;
  color:var(--c-ink); font-variant-numeric:lining-nums tabular-nums;
}
.apsb-access__exp{ font-size:16px; font-weight:600; color:var(--c-ink); display:flex; align-items:center; gap:8px; }
.apsb-access__none{ font-size:14px; color:var(--c-muted); font-style:italic; }
.apsb-access__badge{
  font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.08em;
  font-size:11px; font-weight:600; color:#fff; background:var(--c-danger);
  padding:2px 8px; border-radius:4px;
}
.apsb-access__note{ margin:10px 0 0; font-size:13px; color:var(--c-danger); }
.apsb-access__note a{ color:var(--c-danger); font-weight:600; }

