/* ASCENTIUM Library - members: list, profile, photo, status, sign-in code, ID cards. Uses the theme variables only. */
.lib-membercell { display: flex; align-items: center; gap: .85rem; min-width: 180px; }
.lib-membercell > span { min-width: 0; line-height: 1.3; }
.lib-membercell strong { font-weight: 650; }
.lib-avatar--img { object-fit: cover; background: var(--lib-surface-2); box-shadow: 0 0 0 1px var(--lib-line); }
.lib-avatar--xl { width: 112px; height: 112px; font-size: 2.2rem; }

.lib-subnav a.is-active .lib-pill { vertical-align: 1px; }

/* profile head */
.lib-memberhead { padding-top: 1.6rem; }
.lib-memberhead__photo { width: 132px; height: 176px; margin: 0 auto; border-radius: 18px; overflow: hidden; background: var(--lib-surface-2); display: grid; place-items: center; box-shadow: 0 0 0 1px var(--lib-line), 0 14px 28px -18px var(--lib-shadow); }
.lib-memberhead__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lib-statusbig { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem 1rem; border-radius: 999px; font-weight: 700; }
.lib-statusbig--ok { background: var(--lib-ok-soft); color: var(--lib-ok); }
.lib-statusbig--warn { background: var(--lib-warn-soft); color: var(--lib-warn); }
.lib-statusbig--danger { background: var(--lib-danger-soft); color: var(--lib-danger); }
.lib-card-barcode { color: var(--lib-ink); }
.lib-card-barcode svg { max-width: 100%; height: 54px; background: #fff; padding: 4px 8px; border-radius: 8px; }

/* why a member is stopped, in words */
.lib-reasons { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.lib-reason { border: 1px solid var(--lib-line); border-left-width: 5px; border-radius: 14px; padding: .8rem 1rem; background: var(--lib-surface); }
.lib-reason--danger { border-left-color: var(--lib-danger); }
.lib-reason--warn { border-left-color: var(--lib-warn); }
.lib-reason__head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .25rem; }
.lib-reason p { margin: 0 0 .4rem; }
.lib-reason__how { color: var(--lib-ink-2); }

.lib-codebox { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 1.4rem; font-weight: 700; letter-spacing: .08em; padding: .35rem .9rem; border-radius: 12px; border: 2px dashed var(--lib-line); background: var(--lib-surface-2); color: var(--lib-ink); user-select: all; }
.lib-timeline { list-style: none; margin: 0; padding: 0 0 0 .2rem; display: flex; flex-direction: column; gap: .7rem; }

/* photo picker */
.lib-photobox { display: flex; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.lib-photobox__frame { width: 120px; height: 160px; border-radius: 14px; overflow: hidden; background: var(--lib-surface-2); box-shadow: 0 0 0 1px var(--lib-line); display: grid; place-items: center; flex: none; }
.lib-photobox__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lib-photobox__none { color: var(--lib-muted); }
.lib-photobox__tools { display: flex; flex-direction: column; gap: .6rem; align-items: flex-start; flex: 1 1 160px; min-width: 0; }

tr.is-new > td { background: var(--lib-primary-soft); }

/* ID cards (CR80, 85.6 x 54 mm) - sizes are in millimetres so they print true */
.lib-idcard { position: relative; box-sizing: border-box; width: 100%; height: 100%; overflow: hidden; border-radius: 3.2mm; background: #fff; color: #111; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; border: .2mm solid #cfcfcf; display: flex; flex-direction: column; }
.lib-idcard__band { background: var(--card-color, #0e5a4a); color: #fff; padding: 1.6mm 3mm; font-size: 3.1mm; font-weight: 700; letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.lib-idcard__body { display: flex; gap: 2.6mm; padding: 2.2mm 3mm 0; flex: 1; min-height: 0; }
.lib-idcard__photo { width: 18mm; height: 24mm; flex: none; border-radius: 1.6mm; overflow: hidden; background: #e8e8e8; display: grid; place-items: center; font-weight: 700; color: #555; font-size: 6mm; }
.lib-idcard__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lib-idcard__who { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: .6mm; }
.lib-idcard__name { font-size: 3.7mm; font-weight: 800; line-height: 1.15; max-height: 8.6mm; overflow: hidden; }
.lib-idcard__meta { font-size: 2.6mm; color: #333; line-height: 1.25; }
.lib-idcard__no { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 3mm; font-weight: 700; }
.lib-idcard__qr { position: absolute; right: 3mm; bottom: 7.5mm; width: 12mm; height: 12mm; }
.lib-idcard__qr svg { width: 100%; height: 100%; display: block; }
.lib-idcard__bar { padding: 0 3mm 1.8mm; height: 8mm; }
.lib-idcard__bar svg { height: 100%; width: 60%; display: block; }
.lib-idcard--back { padding: 4mm; justify-content: center; text-align: center; font-size: 2.8mm; gap: 1.2mm; }
.lib-idcard--back strong { font-size: 3.4mm; }
.lib-idcard__signin { margin-top: 1mm; font-size: 2.5mm; line-height: 1.3; }
.lib-idcard__signin b { display: block; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 4mm; letter-spacing: .08em; margin-top: .6mm; }

/* the public header: on a phone the name may take two lines and the staff link moves to the footer, so nothing is squeezed to a letter */
.lib-pubbar { gap: .5rem; }
.lib-pubbar__brand { display: flex; align-items: center; gap: .5rem; min-width: 0; flex: 0 1 auto; text-decoration: none; }
.lib-pubbar__name { font-size: 1.15rem; line-height: 1.15; color: var(--lib-ink); min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lib-pubbar__btn { white-space: nowrap; flex: none; }
.lib-pubbar__foot { display: none; margin-top: .6rem; }
@media (max-width: 575.98px) {
  .lib-pubbar__name { font-size: .95rem; }
  .lib-pubbar__staff { display: none; }
  .lib-pubbar__foot { display: block; }
}