/* Club office, door scanner, tasting control, member cards. Owned by the office agent. */

/* ---------- Office header: the red band ---------- */
.office-head { padding-bottom: 0; }
.office-head .office-elk { right: -40vw; top: 40px; width: 92vw; opacity: 0.95; }
.office-head .office-date { margin-top: 30px; }
.office-head h1 { font-size: clamp(54px, 14vw, 150px); line-height: 0.82; margin: 10px 0 30px; max-width: 12ch; }
.office-head h1 span { white-space: nowrap; }
.office-tabs { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
.office-tabs button { font-size: 15px; padding: 13px 14px 11px; }
@media (min-width: 900px) {
  .office-head .office-elk { right: -3vw; top: auto; bottom: -12svh; width: auto; height: 62svh; }
  .office-head h1 { margin-top: 14px; }
  .office-tabs { margin-inline: 0; padding-inline: 0; }
  .office-tabs button { font-size: 17px; padding: 14px 18px 12px; }
}
.office-main .bill:first-child { padding-top: 40px; }

/* ---------- Shared office bits ---------- */
.red-cap { color: var(--red); }
.flame { color: var(--flame); }
.textlink.cap { color: var(--red); }
.legend i { background: var(--ink); }
.legend .lg-going { background: var(--ink); }
.legend .lg-maybe { background: repeating-linear-gradient(180deg, var(--ink) 0 3px, transparent 3px 6px); opacity: 0.6; }
.legend .lg-held { background: var(--ink); opacity: 0.28; }
.legend .lg-assoc { background: var(--red); }
.legend .lg-guest { background: var(--red-deep); opacity: 0.7; }
.legend .lg-open { background: var(--ink); opacity: 0.12; }
.seat-tally { margin-top: 4px; }
.person { font-size: clamp(20px, 2.4vw, 26px) !important; }
.row-item .stub, .row-item .stamp, .row-item .copy { flex: none; }

/* Overview */
.review-strip { margin-top: 26px; display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; align-items: center; }
.review-strip > * { position: relative; z-index: 2; }
.review-strip h3 { grid-column: 1; }
.review-strip p { grid-column: 1; font-size: 16px; }
.review-strip .stub { grid-column: 2; grid-row: 1 / span 2; }
.next-title { font-size: clamp(48px, 9vw, 104px); line-height: 0.82; }
.next-kicker { font-size: 17px; }
.next-kicker span { display: block; }
@media (max-width: 599px) { .next-acts .stub { flex: 1 1 100%; } }
.next-acts { margin-top: 10px; }
.nightblock { align-self: start; }
.nightblock .cap { display: block; margin-bottom: 8px; }
.cols .bill-h h2 { font-size: clamp(40px, 5vw, 64px); }
.nightblock h3 { margin-bottom: 10px; }
.night-p { font-size: 16px; color: rgba(239, 232, 217, 0.78); margin-bottom: 16px; }
.nightblock .copy { color: var(--bone); }
.money-from { font-size: clamp(20px, 2.4vw, 26px) !important; }
.money-amt { font-size: 32px; }
.money-fig { font-size: clamp(34px, 4.4vw, 54px) !important; }

/* Tastings */
.event-chips { margin-bottom: 28px; }
.event-title { font-size: clamp(52px, 9vw, 110px); line-height: 0.82; }
.rule-note { font-size: 15px; }
.whos .bill-h { margin-bottom: 14px; }
.whos .bill-h h2 { font-size: clamp(36px, 5vw, 60px); }
.whos-note { font-size: 14px; margin: 12px 0 0; }
.whos-list { margin-top: 14px; max-height: 620px; overflow: auto; }
.editor { display: grid; gap: 12px; margin-top: 8px; }
.editor-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.lineup-ta { min-height: 160px !important; font-size: 15px !important; }
@media (max-width: 599px) { .editor-3 { grid-template-columns: 1fr 1fr; } .editor-3 > :first-child { grid-column: 1 / -1; } }

/* Members */
.members-tools { display: grid; gap: 12px; margin-bottom: 18px; }
.members-search { max-width: 420px; }
.member-row { grid-template-columns: minmax(0, 1fr); }
.member-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (min-width: 900px) {
  .members-tools { grid-template-columns: minmax(260px, 420px) 1fr; align-items: center; }
  .members-tools .chips { justify-content: flex-end; }
  .member-row { grid-template-columns: minmax(0, 1fr) auto; }
  .member-acts { justify-content: flex-end; }
}

/* Money */
.money-csv { margin-top: 18px; }
.dep .amt { white-space: nowrap; }
.best { font-size: 15px; margin-top: 6px; }
.dep-select { min-height: 42px; max-width: 220px; font-size: 14px; }
.invoices-h { margin-top: 44px; margin-bottom: 14px; }
.invoice-list { margin-top: 14px; max-height: 640px; overflow: auto; }
.inv-right { display: flex; align-items: center; gap: 12px; }
.inv-amt { font-size: 26px; }
.deposit-lab { display: grid; gap: 12px; align-content: start; align-self: start; }
.deposit-lab p { font-size: 15px; }
.lab-or { margin-top: 8px; font-family: var(--corp); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; font-size: 14px !important; }
.lab-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (max-width: 599px) {
  .dep { grid-template-columns: 1fr; }
  .dep .amt { grid-row: 1; }
  .inv-amt { font-size: 22px; }
}

/* Cases */
.cases-list { display: grid; gap: 0; }
.case-bill { display: grid; gap: 22px; padding: 26px 0; border-top: 3px solid var(--ink); }
.case-bill:first-child { border-top: 0; padding-top: 0; }
.case-title { font-size: clamp(28px, 3.6vw, 44px); line-height: 0.9; }
.case-bill p { font-size: 16px; }
.case-qty { font-size: 34px; }
.row-item.won h3 { color: var(--red); }
.winners { margin-top: 6px; padding-top: 10px; }
.winners .cap { color: var(--red); }
@media (min-width: 900px) { .case-bill { grid-template-columns: 1.15fr 0.85fr; gap: 48px; } }

/* Finds */
.find-title { font-size: clamp(26px, 3.4vw, 38px); margin-top: 6px; }

/* Settings */
.settings-demo { margin-top: 28px; }

/* ---------- Night screens ---------- */
.door-page, .control-page { min-height: 100svh; }
.door { padding-top: 14px; padding-bottom: 28px; }
.door-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.door-count { text-align: right; }
.door-count b { display: block; font-size: 64px; line-height: 0.85; color: var(--flame); }
.door-count b small { font-size: 26px; color: rgba(239, 232, 217, 0.6); }
.door-count .cap { opacity: 0.75; }
.door-body { display: grid; gap: 14px; align-content: start; max-width: 560px; width: 100%; margin: 0 auto; }
.cam-idle { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 24px; background: var(--night-2); }
.cam-idle h2 { font-size: clamp(40px, 10vw, 64px); line-height: 0.85; margin: 10px 0 12px; }
.cam-idle p { font-size: 16px; opacity: 0.8; margin-bottom: 20px; max-width: 36ch; margin-inline: auto; text-wrap: balance; }
.verdict-mark { font-family: var(--corp); font-weight: 700; text-transform: uppercase; font-size: 22px; padding: 10px 12px 8px; border: 3px solid currentColor; line-height: 1; }
.verdict span:not(.verdict-mark) { font-weight: 600; letter-spacing: 0.04em; font-size: 15px; }
.door-list { border-top: 3px solid var(--bone); }
.door-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(239, 232, 217, 0.16); font-family: var(--corp); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; font-size: 18px; }
.door-row em { font-style: normal; color: var(--flame); font-size: 14px; }
.door-none { padding: 12px 0; opacity: 0.7; }

.control { padding-top: 6px; padding-bottom: 64px; display: grid; gap: 10px; }
.control-title { font-size: clamp(52px, 11vw, 130px); line-height: 0.82; margin: 6px 0 22px; }
.control-idle { gap: 30px; max-width: 900px; }
.flight-band { border: 2px solid rgba(239, 232, 217, 0.14); }
.night-steps li { border-top-color: rgba(239, 232, 217, 0.4); }
.night-steps li::before { color: var(--flame); }
.night-steps p { color: rgba(239, 232, 217, 0.72); }
.stepper { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; background: var(--night-2); padding: 14px; }
.stepper .stub { min-width: 64px; font-size: 26px; }
.stepper .cap { opacity: 0.7; }
.stepper b { display: block; text-transform: uppercase; font-size: clamp(48px, 8vw, 72px); line-height: 0.9; }
.dram-list { display: grid; gap: 0; border-top: 3px solid var(--bone); }
.dram-row { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 10px; border-bottom: 1px solid rgba(239, 232, 217, 0.16); }
.dram-row.now { background: rgba(194, 50, 29, 0.22); box-shadow: inset 4px 0 0 var(--red); }
.dram-row h3 { font-size: 26px; line-height: 0.95; }
.dram-name { display: block; color: var(--flame); font-size: 0.8em; margin-top: 2px; }
.dram-row p { font-size: 14px; opacity: 0.72; margin-top: 2px; }
.dram-glass { width: 46px; }
.control-acts { margin-top: 10px; }

/* ---------- Member cards ---------- */
.cards-head { padding-top: 22px; padding-bottom: 8px; }
.cards-head h1 { font-size: clamp(60px, 13vw, 150px); line-height: 0.82; margin: 30px 0 12px; }
.cards-tools { justify-content: space-between; margin-top: 20px; }
.mcard .elk { right: 1.12in; top: 10px; height: 92px; width: auto; opacity: 0.9; }
.cards-page .card-sheet { max-width: var(--wrap); margin: 0 auto; }
.mcard-qr { width: 1.05in; }

/* Copy buttons sit beside stubs in the office: same voice, same height */
.office-main .copy, .nightblock .copy { text-transform: uppercase; font-size: 15px; min-height: 42px; padding: 0 14px; }
/* Inputs in two-up grids must be allowed to shrink on phones */
.lab-2 > *, .editor-3 > * { min-width: 0; }
.lab-2 input, .editor-3 input, .deposit-lab textarea, .members-search input { width: 100%; min-width: 0; }
.dep > div { min-width: 0; }
.dep-select { max-width: 100%; }
@media (max-width: 599px) { .office-main .bill-h { flex-wrap: wrap; row-gap: 6px; } }

/* Sub-tabs get a compact head so the work starts on the first screen. */
.office-head.compact .office-elk { opacity: 0.55; }
.office-head h1.tab-title { font-size: clamp(48px, 7vw, 96px); line-height: 0.85; margin: 14px 0 22px; }

/* ---- phone polish pass ---- */
.office-head.compact h1.tab-title { display: none; }
.office-head.compact .office-date { margin-top: 18px; margin-bottom: 14px; }
@media (max-width: 899px) {
  .office-tabs button { font-size: 14px; padding: 11px 12px 9px; }
  .office-tabs { margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
  .next-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .next-acts .stub { width: 100%; padding: 0 10px; white-space: normal; text-align: center; line-height: 1.05; }
  .office-head h1 { font-size: clamp(44px, 13vw, 72px); }
}
