/* The evening book: a room to return to, with practical details in daylight. */
:root {
  --club-green: #153d31;
  --club-green-dark: #102e26;
  --club-paper: #f3f0e6;
  --club-card: #fffcf3;
  --club-ink: #233d31;
  --club-muted: #586858;
  --club-rule: #d1d5c4;
  --club-brass: #c6ac75;
}
body { background: var(--club-paper); }
.wrap { max-width: 1440px; padding: 0 64px 32px; }
.club-masthead { min-height: 106px; border-bottom-color: #cbd1c0; }
.club-wordmark { font-size: 43px; }
.club-byline { font-size: .72rem; letter-spacing: .07em; }
.club-utilities { gap: 24px; }
.reading-label, .signin { font-size: .88rem; }
.club-navrow { min-height: 78px; }
nav.tabs { gap: 28px; }
nav.tabs button { font-size: .94rem; color: #4d624c; }
.datefield .eyebrow { font-size: .85rem; letter-spacing: 0; text-transform: none; }
.datefield select.plain { min-height: 50px; font-size: .94rem; }
.eyebrow, .grouphead { font-size: .85rem; letter-spacing: 0; text-transform: none; }
.club-hero {
  grid-template-columns: 1fr 1.05fr;
  gap: 0;
  padding: 0;
  min-height: 0;
  border-radius: 10px;
  background: #143c32;
  isolation: isolate;
}
.hero-copy { padding: 42px 0 34px 42px; align-self: center; }
.club-hero .hero-heading { font-size: clamp(40px, 4.15vw, 62px); line-height: 1.08; letter-spacing: -.04em; margin: 23px 0 22px; color: #f7f0d9; }
.hero-intro { display: block; font-size: 1rem; line-height: 1.65; color: #dae1cf; }
.hero-state { font-size: .9rem; color: #e6e9d9; }
.hero-state::before { background: #d3bd80; height: 7px; width: 7px; }
.hero-share { border: 0; padding: 10px 0; margin-top: 18px; font-size: .94rem; min-height: 48px; color: #f5ecd1; gap: 22px; text-decoration: underline; text-underline-offset: 6px; text-decoration-color: #809379; }
.hero-share:hover { color: white; text-decoration-color: white; }
.clubroom-art { width: 100%; height: 100%; object-fit: cover; align-self: end; min-width: 0; }
.evening-ticket {
  position: relative; z-index: 2; grid-column: 1 / -1; display: grid;
  grid-template-columns: 1.15fr 1.4fr .65fr .65fr auto;
  align-items: center; gap: 24px; background: #e7e7d6; color: var(--club-ink);
  border: 1px solid #c9ceba; border-top: 3px solid #b59b61; padding: 24px 32px;
}
.ticket-when { border-right: 1px solid #bbc6ae; padding-right: 24px; }
.ticket-when > span { font-size: .88rem; color: #4a614f; }
.ticket-when > div { white-space: nowrap; margin-top: 2px; font: 1.7rem/1.25 Georgia, serif; }
.evening-ticket #heroDate { font: inherit; letter-spacing: -.03em; }
.evening-ticket #heroMonth { font: inherit; text-transform: none; letter-spacing: -.03em; }
.ticket-place { display: grid; gap: 7px; font-size: .94rem; line-height: 1.5; overflow-wrap: anywhere; }
.ticket-place strong { font-weight: 600; }
.ticket-place span, .ticket-fact > span { color: #4d614e; font-size: .88rem; }
.ticket-fact { display: grid; gap: 3px; }
.ticket-fact > strong { font: 1.7rem/1.3 Georgia, serif; }
.evening-ticket .btn { font-size: .85rem; background: transparent; border-color: #a2b196; min-height: 50px; }
.diary-invitation { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 18px; padding: 23px 28px; border: 1px solid var(--club-rule); background: #e9eddc; border-radius: 8px; margin-top: 22px; }
.diary-invitation-mark { font: 45px/1 Georgia, serif; color: #7b8054; padding-right: 7px; }
.diary-invitation h2 { font: 1.3rem/1.25 Georgia, serif; letter-spacing: -.02em; }
.diary-invitation p { color: #566453; font-size: .88rem; margin-top: 4px; }
.diary-invitation > .btn { margin-left: auto; gap: 20px; white-space: nowrap; }
.evening-layout { margin-top: 32px; gap: 38px; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); }
.evening-aside { padding-left: 32px; }
#mobileReply:empty { display: none; }
.club-welcome, .mecard, .mecard[data-s] { background: #fffcf3; border-radius: 8px; border-color: #cdd4bf; box-shadow: none; padding: 30px; }
.club-welcome h2 { font-size: 2rem; margin-top: 0; }
.club-welcome p:not(.eyebrow) { font-size: 1rem; color: #52634e; }
.club-welcome .btn { min-width: 0; width: 100%; justify-content: space-between; }
.club-welcome > div { width: 100%; min-width: 0; }
.identity-search { margin: 2px 0 10px; }
.identity-names { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; margin: 8px 0 16px; border-top: 1px solid #c9d1bc; }
.identity-name { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; min-height: 62px; padding: 13px 2px; border: 0; border-bottom: 1px solid #c9d1bc; background: transparent; color: #233d31; font: inherit; text-align: left; overflow-wrap: anywhere; cursor: pointer; }
.identity-name::after { content: "→"; color: #687657; flex-shrink: 0; }
.identity-name:hover { background: #e8eddd; }
.identity-name:focus-visible { outline: 3px solid #7d8e59; outline-offset: 2px; }
.mecard .me-hi { font-size: .94rem; text-transform: none; letter-spacing: 0; color: #4c634c; }
.mecard .me-msg { font-size: 1.8rem; }
.club-answer-status { color: #3d5a40; font-size: .94rem; }
.club-answer-options .btn { flex: 1 1 130px; min-height: 58px; }
.club-answer-options .btn[aria-pressed=true] { outline-color: #627a4f; }
.club-arrival-summary .field-hint, .field-hint { font-size: .88rem; color: #566653; }
.club-notice { border-radius: 0 6px 6px 0; padding: 18px 21px; color: #334d3c; background: #e6e9d9; }
.preview-notice { padding: 14px 20px; margin: 15px 0; border: 1px solid #b4bc9f; border-left: 4px solid #8d7441; background: #e9e6d4; color: #3f5239; font-size: .85rem; line-height: 1.6; }
.club-self-exit { padding: 22px 0 10px; border-top: 1px solid #c4cdb6; margin-top: 20px; }
.self-exit-status { font: 1.35rem/1.4 Georgia,serif; color: #294e34; margin-bottom: 16px; }
.club-self-exit .self-out { background: #86473d; color: #fffaf0; border-color: #86473d; margin-bottom: 13px; }
.host-steps.no-checkin { grid-template-columns: repeat(3, 1fr); }
.roster { margin-top: 34px; padding-top: 28px; }
.rostertop h2 { font-size: 1.8rem; }
.roster-description { color: #586953; font-size: .94rem; margin-top: 5px; }
.count-n { font-family: Georgia, serif; }
.count-l, .count-sub { color: #52634b; font-size: .85rem; }
.names { gap: 10px; }
.name { border-radius: 6px; min-height: 68px; }
.name .who { font-size: 1rem; }
.avatar { border-radius: 50%; font-size: .85rem; }
.club-aside-panel h2 { margin-top: 5px; font-size: 1.65rem; }
.night-timeline { margin-top: 24px; }
.timeline-detail p, .timeline-time { font-size: .94rem; }
.timeline-detail p { color: #52634b; }
.fixture-card { padding: 19px 0; min-height: 76px; }
.fixture-date { font-size: 1rem; }
.fixture-status, .fixture-action { font-size: .88rem; }
.fixture-status { color: #52634b; }
.calendar-link, .linkbtn { font-size: .94rem; }
.club-motto { color: #64765b; padding-top: 28px; }
.club-motto p { font-size: 1.8rem; }
.prizes { margin-top: 45px; border-top: 2px solid #b8c2aa; }
.clubfoot { font-size: .8rem; letter-spacing: .02em; color: #52634b; }
.prize-mark { color: #705b2b; }
.colophon dt { color: #4d6249; }
.bubbletag { color: #4d5e2b; }
.host-toolbox { display: flex; flex-direction: row; justify-content: space-between; align-items: center; gap: 24px; padding-bottom: 26px; }
.host-toolbox h2 { font: 2rem/1.2 Georgia,serif; }
.host-toolbox p { margin-top: 8px; color: #586b55; }
.host-toolbox .btn { gap: 24px; }
.host-desk { border-radius: 8px; box-shadow: none; }
.host-counts { border-bottom: 1px solid #d4dac8; padding-bottom: 24px; }
.host-count { font-size: .94rem; }
.host-count strong { font-family: Georgia, serif; }
.host-next-job { display: flex; align-items: center; gap: 24px; padding: 20px 24px; background: #e6e9d8; border-radius: 5px; margin: 24px 0; }
.host-next-job > div { flex: 1; }
.host-next-job strong { font-size: 1.05rem; color: #214531; }
.host-next-job p { color: #51654c; font-size: .94rem; margin-top: 5px; }
.host-next-job .btn { flex-shrink: 0; }
.host-desk .host-next-job .btn.ghost { color: #214531; border-color: #869d77; background: transparent; }
.host-desk .host-next-job .btn.ghost:hover { background: #d1ddc3; }
.host-step-number { border-radius: 50%; }
.host-steps p { font-size: .94rem; }
.host-section { border-radius: 7px; }
.host-section > summary { min-height: 68px; font-size: 1.35rem; }
.table { border-radius: 8px; box-shadow: none; animation: none; }
.table .thead { border-bottom: 3px solid #b79e68; }
.table .seat { padding-top: 13px; padding-bottom: 13px; }
.bountybar { color: #6b552b; font-size: .85rem; }
.tally-b { font-size: .85rem; }
.league { border-collapse: collapse; }
.league th { font-size: .85rem; text-transform: none; letter-spacing: 0; }
.league td { padding-top: 19px; padding-bottom: 19px; }
.league tbody tr:nth-child(even) { background: #eaeede; }
.league .total { font-family: Georgia,serif; }
.panel { border-radius: 7px; box-shadow: none; }
.dlg-box { border-radius: 9px; max-width: 740px; animation: none; }
.dlg-box h2 { font-size: 2rem; }
.dlg-box:has(.diary-sheet), .dlg-box:has(.night-plan-sheet) { width: 100%; max-width: 820px; }
.diary-intro, .night-plan-sheet > p { font-size: 1rem; color: #50634d; margin: 14px 0 20px; }
.diary-list { display: grid; gap: 0; margin-top: 18px; border-top: 1px solid var(--club-rule); }
.diary-row { min-width: 0; margin: 0; padding: 22px 0; border: 0; border-bottom: 1px solid var(--club-rule); }
.diary-date { display: block; font: 1.3rem/1.3 Georgia,serif; color: var(--club-green); margin-bottom: 8px; }
.diary-options { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 13px; }
.diary-option { flex: 1 1 140px; min-height: 54px; border: 1px solid #aab69b; border-radius: 5px; background: transparent; color: #264b37; padding: 12px 15px; font-weight: 600; }
.diary-option[aria-pressed=true] { background: #214e39; color: #fffcf3; border-color: #214e39; box-shadow: 0 0 0 2px #fffcf3, 0 0 0 4px #718563; }
.diary-option:hover:not(:disabled) { border-color: #244f38; background: #e3ead7; color: #244f38; }
.diary-option:disabled { opacity: .6; }
.diary-status { color: #566b50; font-size: .94rem; }
.diary-review, .night-plan-review { background: #e8ebdc; border: 1px solid #c2cbb3; padding: 22px; margin-top: 22px; border-radius: 7px; }
.night-plan-review { display: block; }
.diary-summary { line-height: 1.7; }
.diary-review-list { margin: 16px 0; }
.diary-review-list dt { font-weight: 600; margin-top: 16px; }
.diary-review-list dd { margin: 4px 0 0; color: #35543b; }
.diary-detail { color: #52684e; font-size: .94rem; margin-bottom: 16px; }
.diary-actions > p { flex-basis: 100%; }
.diary-summary li { margin: 8px 0; }
.diary-actions, .night-plan-actions, .evening-card-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.diary-actions .btn, .night-plan-actions .btn { flex: 1; }
.diary-error, .night-plan-error { color: #7e2e2a; background: #f4e4d9; border-left: 3px solid #9c4e3a; border-radius: 3px; padding: 14px 18px; margin: 16px 0; }
.night-plan-progress { font-size: .94rem; color: #5b6e50; padding: 12px 0; border-bottom: 1px solid #c9d1bc; margin-bottom: 18px; }
.night-plan-fields { display: grid; gap: 18px; }
.night-plan-field { display: grid; gap: 8px; min-width: 0; margin: 18px 0; }
.night-plan-field label { font-weight: 600; }
.night-plan-field input, .night-plan-field textarea { width: 100%; min-width: 0; }
.night-plan-review p { margin: 12px 0; }
.night-plan-review h3 { font: 1.7rem/1.3 Georgia,serif; margin: 20px 0; }
.evening-card { position: relative; padding: 28px; border: 1px solid #b8c2a8; border-top: 5px solid #2c543d; border-radius: 6px; background: #f5f1e3; }
.evening-card-kicker { color: #4d654c; font-size: .94rem; }
.evening-card-date { font: 2.1rem/1.2 Georgia,serif; margin: 20px 0; }
.evening-card-details { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 22px 0; }
.evening-card-details dt { color: #52684e; }
.evening-card-details dd { margin: 0; font-weight: 600; }
.evening-card-footnote, .evening-card-url { font-size: .88rem; color: #52684e; margin-top: 14px; overflow-wrap: anywhere; }
.evening-card-alert { font-weight: 600; color: #822f2a; margin: 18px 0; }
.evening-card-message { border-top: 1px solid #bac5a9; border-bottom: 1px solid #bac5a9; padding: 17px 0; margin: 18px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.evening-card-answer { color: #294e34; font-weight: 600; padding: 12px 0; }
.evening-card-actions .btn { flex: 1; }
.evening-card a { overflow-wrap: anywhere; }
@media (max-width: 1150px) {
  .wrap { padding-left: 32px; padding-right: 32px; }
  nav.tabs { gap: 18px; }
  .hero-copy { padding: 32px 0 28px 32px; }
  .club-hero .hero-heading { font-size: 46px; }
  .evening-ticket { grid-template-columns: 1.15fr 1.5fr .7fr .7fr; gap: 20px; padding: 22px 26px; }
  .evening-ticket > .btn { grid-column: 2 / -1; justify-self: end; }
  .evening-layout { gap: 26px; }
  .evening-aside { padding-left: 25px; }
}
@media (max-width: 900px) {
  nav.tabs { gap: 14px; }
  nav.tabs button { font-size: .88rem; }
  .datefield .eyebrow { display: none; }
  .club-hero .hero-heading { font-size: 38px; }
  .hero-intro { font-size: .94rem; }
  .evening-layout { grid-template-columns: 1fr; }
  .evening-aside { border-left: 0; padding-left: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
  .club-aside-panel + .club-aside-panel { border-top: 0; padding-top: 5px; }
  .club-motto { display: none; }
}
@media (max-width: 760px) {
  html { font-size: 18px; }
  html[data-reading=large] { font-size: 21px; }
  .wrap { padding: 0 20px 112px; }
  .club-masthead { min-height: 92px; padding: 18px 0; gap: 12px; }
  .club-wordmark { font-size: 32px; }
  .club-brand { gap: 10px; }
  .club-brand img { width: 34px; height: 42px; }
  .club-byline { font-size: 11px; letter-spacing: .025em; max-width: none; }
  .club-utilities { gap: 0; }
  .reading-label { display: none; }
  .reading-size { min-width: 48px; min-height: 52px; justify-content: center; }
  .signin { display: none; }
  .signin span:last-child { display: none; }
  .club-navrow { min-height: 64px; }
  .club-navrow .datefield { margin: 6px 0; width: 100%; justify-content: space-between; }
  .datefield .eyebrow { display: inline; font-size: .9rem; }
  .datefield select.plain { font-size: .9rem; min-height: 48px; max-width: 68%; }
  nav.tabs { gap: 0; position: fixed; bottom: 0; left: 0; right: 0; border-top: 1px solid #b7c5ab; background: #f7f5ec; padding: 5px 8px calc(8px + env(safe-area-inset-bottom)); justify-content: space-around; z-index: 30; }
  nav.tabs button { flex-direction: column; justify-content: center; flex: 1; min-width: 0; min-height: 61px; gap: 4px; padding: 7px 3px; font-size: .72rem; border-bottom: 0; border-radius: 6px; color: #4d624c; }
  nav.tabs button[aria-current=page] { background: #e3e9d7; }
  nav.tabs button svg { width: 23px; height: 23px; }
  nav.tabs .tl-wide { display: none; }
  nav.tabs .tl-short { display: inline; }
  .club-hero { grid-template-columns: 1fr; margin-top: 0; padding: 0; gap: 0; min-height: 0; }
  #mobileReply:not(:empty) { margin-bottom: 24px; }
  .hero-copy { padding: 12px 22px; width: 100%; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 2px 16px; }
  .club-hero .hero-heading { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
  .hero-intro { display: none; }
  .hero-state { font-size: .85rem; }
  .hero-share { margin-top: 0; font-size: .9rem; min-height: 48px; }
  .clubroom-art { display: none; }
  .evening-ticket { grid-template-columns: 1fr 1fr; padding: 22px 24px; gap: 20px 16px; border-top-width: 2px; }
  .ticket-when { grid-column: 1 / -1; padding: 0 0 14px; border: 0; border-bottom: 1px solid #b6c2a6; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; }
  .ticket-when > span { font-size: 1rem; }
  .ticket-when > div { font-size: 1.8rem; }
  .ticket-place { grid-column: 1 / -1; font-size: 1rem; }
  .ticket-place span, .ticket-fact > span { font-size: .9rem; }
  .ticket-fact > strong { font-size: 1.8rem; }
  .evening-ticket > .btn { grid-column: 1 / -1; width: 100%; font-size: .94rem; }
  .diary-invitation { flex-wrap: wrap; padding: 22px 24px; gap: 12px; }
  .diary-invitation-mark { display: none; }
  .diary-invitation h2 { font-size: 1.4rem; }
  .diary-invitation p { font-size: .94rem; }
  .diary-invitation > .btn { width: 100%; margin: 5px 0 0; justify-content: space-between; }
  .evening-layout { margin-top: 25px; }
  .club-welcome, .mecard, .mecard[data-s] { padding: 24px; }
  .club-welcome h2 { font-size: 1.85rem; }
  .identity-names { grid-template-columns: 1fr; }
  .mecard .me-msg { font-size: 1.6rem; }
  .lockbar .lockbar-text { min-width: 0; }
  .club-answer-options .btn, .club-answer-options .btn:not(.big), .club-answer-options .btn.big { flex-basis: 100%; font-size: 1rem; }
  .roster-description { font-size: .94rem; }
  .rostertop h2 { font-size: 1.6rem; }
  .rostertop { gap: 14px; }
  .count-n { font-size: 2.7rem; }
  .evening-aside { display: block; }
  .club-aside-panel + .club-aside-panel { border-top: 1px solid var(--club-rule); padding-top: 26px; }
  .night-timeline li { grid-template-columns: 88px 1fr; }
  .timeline-time, .timeline-detail, .timeline-detail p { font-size: .94rem; }
  .timeline-detail strong { font-size: 1rem; }
  .host-toolbox { flex-direction: column; align-items: stretch; gap: 18px; }
  .host-toolbox h2 { font-size: 1.85rem; }
  .host-next-job { flex-direction: column; align-items: stretch; padding: 18px; gap: 16px; }
  .host-counts { grid-template-columns: repeat(2,1fr); gap: 22px; }
  .host-count { font-size: .94rem; }
  .host-count:nth-child(3) { border: 0; padding-left: 0; }
  .host-steps { grid-template-columns: 1fr; gap: 16px; }
  .host-steps.no-checkin { grid-template-columns: 1fr; }
  .host-steps p { font-size: .94rem; }
  .host-section > summary { font-size: 1.2rem; padding: 18px; }
  #adminTools .host-section > section { padding: 20px 17px; }
  .host-section input { max-width: 100%; }
  .dlg { padding: 10px; }
  .dlg-box { max-height: 92dvh; padding: 25px 20px; }
  .dlg-box h2 { font-size: 1.8rem; }
  .diary-options { flex-direction: column; }
  .diary-option { flex: auto; font-size: 1rem; }
  .diary-actions, .night-plan-actions, .evening-card-actions { flex-direction: column; }
  .diary-actions .btn, .night-plan-actions .btn { flex: auto; }
  .diary-review, .night-plan-review { padding: 18px; }
  .night-plan-field input { min-width: 0; max-width: 100%; }
  .evening-card { padding: 20px; }
  .evening-card-date { font-size: 1.8rem; }
  .evening-card-details { grid-template-columns: 1fr 1fr; }
  .toast { bottom: 88px; font-size: 1rem; }
  .prizes { margin-top: 30px; }
}
@media (max-width: 370px) {
  .wrap { padding-left: 14px; padding-right: 14px; }
  .club-wordmark { font-size: 29px; }
  .club-brand img { width: 29px; height: 36px; }
  .club-byline { font-size: 10px; }
  .hero-copy { padding: 10px 20px; }
  .club-hero .hero-heading { font-size: 32px; }
  .evening-ticket { padding: 20px; }
  .diary-invitation { padding: 20px; }
  .club-welcome, .mecard, .mecard[data-s] { padding: 21px; }
  .rostertop { flex-wrap: wrap; }
  .dlg-box { padding: 23px 17px; }
}
@media print {
  body.print-evening-card { background: white; }
  body.print-evening-card > :not(#dialog) { display: none !important; }
  body.print-evening-card #dialog { display: block !important; position: static; background: white; padding: 0; overflow: visible; }
  body.print-evening-card .dlg-box { max-height: none; max-width: none; overflow: visible; box-shadow: none; border: 0; padding: 0; }
  body.print-evening-card #dlgTitle, body.print-evening-card #dlgBtns, body.print-evening-card .evening-card-actions { display: none !important; }
  body.print-evening-card .evening-card { break-inside: avoid; background: white; border: 2px solid #254632; padding: 30px; }
  .diary-invitation, .host-toolbox, .clubroom-art { display: none; }
}

/* Blind clock: current blinds and the complete shared eight-level structure. */
.clockpanel { display: flex; flex-direction: column; align-items: stretch; gap: 22px; padding: 26px; }
.clockmini { display: flex; align-items: center; gap: 18px 30px; }
.clockmini .clk-level { font: 500 1.45rem/1.2 var(--font-display); letter-spacing: 0; text-transform: none; }
.clock-current { display: flex; flex-direction: column; gap: 4px; }
.clock-current > span { font-size: .9rem; color: #d3dfcd; }
.clock-current .clk-blinds { font-size: 1.7rem; line-height: 1.2; font-weight: 650; }
.clockmini .clk-time { margin-left: auto; font-size: 3rem; line-height: 1.1; }
.clockmini .hint { flex-basis: 100%; margin: -6px 0 0; }
.clock-structure h3 { margin: 0 0 10px; color: #d3dfcd; font: 500 1rem/1.3 var(--font-body); letter-spacing: 0; text-transform: none; }
.blind-schedule { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 0; margin: 0; list-style: none; text-align: left; }
.blind-schedule li { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border: 1px solid #72856b; border-radius: 3px; color: #d3dfcd; font-size: 1rem; line-height: 1.25; }
.blind-schedule strong { font-size: 1.1rem; font-weight: 600; color: #fff8e5; font-variant-numeric: tabular-nums; white-space: nowrap; }
.blind-schedule [aria-current=step] { background: #f6e9bd; border-color: #f6e9bd; color: #153d31; }
.blind-schedule [aria-current=step] strong { color: #153d31; }
.blind-schedule [aria-current=step] .blind-step { font-weight: 700; }
.clockov { gap: 8px; padding: 24px; overflow-y: auto; }
.clockov .ov-level { color: #e3cea0; font-size: clamp(26px,3vw,46px); line-height: 1.2; text-transform: none; letter-spacing: 0; }
.clockov .ov-current-label { color: #d3dfcd; font-size: clamp(18px,1.5vw,24px); }
.clockov .ov-blinds { color: #fff8e5; font-size: clamp(36px,5.5vw,84px); }
.clockov .ov-time { font-size: clamp(80px,12vw,190px); color: #fff8e5; }
.clockov[data-paused="1"] .ov-time { opacity: 1; }
.clockov .ov-sub { color: #d3dfcd; font-size: clamp(18px,1.6vw,25px); }
.clockov .clock-structure { width: min(900px,100%); margin-top: 14px; }
.clockov .blind-schedule li { font-size: clamp(18px,1.5vw,23px); }
.clockov .blind-schedule strong { font-size: clamp(19px,1.6vw,25px); }
.clockov .ov-btns { margin-top: 14px; }
@media (max-width: 700px) {
  .clockpanel { padding: 20px; }
  .clockmini { gap: 16px 18px; }
  .clockmini .clk-level { font-size: 1.3rem; }
  .clock-current { flex-basis: 100%; order: -1; }
  .clockmini .clk-time { font-size: 2.5rem; }
  .blind-schedule { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .blind-schedule li { padding: 10px; }
  .blind-schedule strong { font-size: 1rem; }
  .clockov { padding: 18px 15px; gap: 7px; }
  .clockov .ov-level { font-size: 27px; }
  .clockov .ov-blinds { font-size: 43px; }
  .clockov .ov-time { font-size: 85px; }
  .clockov .clock-structure { margin-top: 8px; }
  .clockov .blind-schedule li { padding: 7px 10px; font-size: 17px; }
  .clockov .blind-schedule strong { font-size: 18px; }
  .clockov .ov-btns { margin-top: 8px; }
}
@media (max-height: 700px) { .clockov { justify-content: flex-start; } }
@media (max-width: 370px) {
  .clockpanel .blind-schedule { grid-template-columns: 1fr; }
  .clockpanel .blind-schedule li { flex-direction: row; justify-content: space-between; align-items: baseline; }
}

/* Money on the Tonight page: subs in tonight, and the kitty. */
.money-tonight { margin-top: 22px; padding: 20px 24px; border: 1px solid var(--club-rule); border-radius: 8px; background: #fbfaf3; }
.money-tonight h2 { font: 1.3rem/1.25 Georgia, serif; letter-spacing: -.02em; margin: 0 0 12px; }
.money-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 12px; }
.money-fig { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.money-fig strong { font: 600 1.9rem/1.1 Georgia, serif; color: #1f3a2c; font-variant-numeric: tabular-nums; }
.money-l { font-size: .88rem; font-weight: 600; color: #34463a; }
.money-sub { font-size: .82rem; color: #566453; }
@media (max-width: 380px) { .money-tonight { padding: 18px; } .money-row { grid-template-columns: 1fr; } }

/* The Money tab: the summary, then subs, the season, Revolut and the kitty. */
.money-top { margin-top: 0; }
#moneyOrg > section, #view-money > #kittySection { margin-top: 30px; }
.money-signin { margin: 18px 0 0; }
.bl-covers { flex-basis: 100%; font-size: 13px; color: var(--color-ink-3, #566453); }
@media (max-width: 340px) { nav.tabs button .tl { font-size: .7rem; letter-spacing: -.02em; } }

/* A message while a question is open goes to the top, clear of its buttons. */
body.dialog-open .toast { top: calc(12px + env(safe-area-inset-top, 0px)); bottom: auto; }

/* Loading: don't flash "Which name is yours?" at someone the phone already knows. */
html:not(.ready) #clubWelcome { display: none; }
html:not(.ready) #personalEvening { min-height: 380px; }
.books-start { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--club-rule); font-size: .88rem; color: #34463a; }
.books-start input { max-width: 11em; }

/* Your answer: the one given is filled in its own colour (green in, amber
   maybe, red can't make it); the others are plain. */
.club-answer-options .btn.chosen-maybe { background: #8a6418; border-color: #8a6418; color: #fffdf7; }
.club-answer-options .btn.chosen-maybe:hover { background: #74530f; color: #fff; }
.club-answer-options .btn.chosen-out { background: #8c3b36; border-color: #8c3b36; color: #fffdf7; }
.club-answer-options .btn.chosen-out:hover { background: #742f2b; color: #fff; }
.club-answer-options .btn.chosen-maybe[aria-pressed=true] { outline-color: #b99550; }
.club-answer-options .btn.chosen-out[aria-pressed=true] { outline-color: #c08a84; }

/* Finals night: green baize and gold. The card, the final table, the
   seat pass and the hero all dress up for it. */
.finals-card { position: relative; overflow: hidden; margin-top: 22px; padding: 24px 24px 18px; border-radius: 10px;
  color: #f6edd2; border: 1px solid #c9a24a;
  background: radial-gradient(130% 80% at 50% -10%, #2a6a52 0%, #173e34 55%, #10302a 100%);
  box-shadow: 0 0 0 4px #10302a, 0 0 0 5px #c9a24a55, 0 14px 34px #10302a40; }
.finals-card::before { content: "\2660 \2665 \2666 \2663"; position: absolute; top: 14px; right: 18px; font-size: .95rem;
  letter-spacing: .35em; color: #c9a24a99; }
.finals-eyebrow { margin: 0 0 4px; padding-right: 6.5em; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #d9b864; }
.finals-card h2 { font: 2rem/1.1 Georgia, serif; letter-spacing: -.02em; margin: 0 0 10px;
  background: linear-gradient(180deg, #fbe9b0 0%, #e2b85a 55%, #b88a2e 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.finals-card > p { font-size: .9rem; color: #d8cfb4; margin: 0 0 14px; }
.finals-champion { display: flex; flex-direction: column; align-items: center; gap: 2px; margin: 4px 0 16px; padding: 14px;
  border-radius: 8px; border: 1px solid #c9a24a; background: linear-gradient(180deg, #c9a24a26, #c9a24a0d); text-align: center; }
.finals-champion-l { font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #e3c271; }
.finals-champion-l::before { content: "\265B  "; }
.finals-champion strong { font: 1.7rem/1.2 Georgia, serif; color: #fbe9b0; }
.finals-list { list-style: none; margin: 0; padding: 0; }
.finals-row { display: grid; grid-template-columns: 2.1em 1fr auto; gap: 2px 10px; padding: 9px 4px; border-top: 1px solid #2f5d4b; align-items: center; }
.finals-row .finals-name { color: #efe6cb; }
.finals-row.in .finals-name { font-weight: 700; color: #fff6dc; }
.finals-row.in .finals-rank { display: inline-flex; align-items: center; justify-content: center; width: 1.8em; height: 1.8em; border-radius: 50%;
  background: linear-gradient(180deg, #f3d488, #c3963c); color: #2b2310; font-weight: 700; font-size: .85rem; }
.finals-row.me { background: #ffffff12; border-radius: 6px; }
.finals-rank { color: #b9ad88; font-variant-numeric: tabular-nums; text-align: center; }
.finals-pts { color: #cdbf95; font-size: .85rem; font-variant-numeric: tabular-nums; }
.finals-state { grid-column: 2 / -1; font-size: .8rem; color: #b9ad88; }
.finals-row.in .finals-state { color: #e3c271; }
.finals-state:empty { display: none; }
.finaltag { background: #f3ead0; color: #6b5a24; }

/* The final table itself, on the Tables tab. */
.table.final-table { border: 1px solid #c9a24a; color: #f6edd2;
  background: radial-gradient(130% 90% at 50% 0%, #2a6a52 0%, #173e34 60%, #10302a 100%);
  box-shadow: 0 0 0 3px #10302a, 0 0 0 4px #c9a24a66, 0 12px 28px #10302a40; }
.table.final-table header .t { color: #f1d78e; font-family: Georgia, serif; }
.table.final-table header .t::before { content: "\2605  "; color: #e3bd5c; }
.table.final-table header .sz, .table.final-table .hint, .table.final-table .muted { color: #cdbf95; }
.table.final-table li, .table.final-table .name, .table.final-table .row { color: #f6edd2; border-color: #2f5d4b; }
.table.final-table header { border-bottom-color: #c9a24a66; }
.table.final-table .seat, .table.final-table .seat .nm { color: #f6edd2; }
.table.final-table .seat .pos { color: #cdbf95; }
.table.final-table .seat[data-done="1"] .pos, .table.final-table .seat .pts { color: #f1d78e; }
.table.final-table .seat .bpts, .table.final-table .seat .bnpts { color: #e3bd5c; }
.table.final-table button.seat:hover { background: #ffffff14; }
.table.final-table .seat .extras button { color: #f6edd2; border-color: #4d7a66; background: transparent; }
.table.final-table .seat .exval { color: #f6edd2; }

/* Your seat pass when it's the final. */
.club-seatpass.final { background: linear-gradient(135deg, #10302a 0%, #1f5241 55%, #10302a 100%); border: 1px solid #c9a24a;
  box-shadow: 0 0 0 3px #10302a, 0 0 0 4px #c9a24a66; }
.club-seatpass.final .seatpass-number { color: #f1d78e; white-space: nowrap; font-size: 2.2rem; }
.club-seatpass.final .seatpass-detail { grid-column: 1 / -1; margin-top: 6px; color: #d8cfb4; }
.club-seatpass.final .seatpass-label { color: #d9b864; }

/* The hero on finals night: gold on the headline and the ticket. */
body.finals .hero-heading { background: linear-gradient(180deg, #e8c66e, #b88a2e); -webkit-background-clip: text; background-clip: text; color: transparent; }
body.finals .hero-state { color: #a07a24; font-weight: 700; }
body.finals .evening-ticket { box-shadow: 0 0 0 1px #c9a24a, 0 10px 26px #b88a2e26; }

/* End of season, under Season rules. */
.end-season { margin-top: 14px; }
.end-season h3 { font: 1.1rem/1.3 Georgia, serif; margin: 0 0 6px; }
.end-season .btn.danger { margin-top: 12px; }
.end-season-list { margin: 8px 0 0; padding-left: 1.2em; font-size: .92rem; }

/* The race for the final table, above the league. */
.race { margin: 0 0 16px; padding: 14px 18px; border-radius: 8px; border: 1px solid #c9b77a; background: #fbf6e6; }
.race h3 { font: 1.05rem/1.3 Georgia, serif; margin: 0 0 6px; color: #5b4a1c; }
.race ul { margin: 0; padding-left: 1.1em; font-size: .9rem; color: #3f4a3e; }
.race li { margin: 3px 0; }
.race .race-in::marker { content: "▲ "; color: #2f7a4b; }
.race .race-out::marker { content: "▼ "; color: #a33d36; }
td.who .move { margin-left: 6px; font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums; }
td.who .move.up { color: #2f7a4b; }
td.who .move.down { color: #a33d36; }

/* A player's season, from the league table. */
.profile-link { padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer;
  text-decoration: underline; text-decoration-color: #b9c3b1; text-underline-offset: 3px; }
.profile-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.5em, 1fr)); gap: 8px; margin-bottom: 14px; }
.profile-facts .pf { display: flex; flex-direction: column; padding: 8px 10px; border-radius: 8px; background: #eef1e6; }
.profile-facts strong { font: 1.35rem/1.1 Georgia, serif; color: #173e34; }
.profile-facts span { font-size: .75rem; color: #566453; }
.profile-form { width: 100%; height: auto; display: block; }
.profile-form .counts { fill: #173e34; }
.profile-form .dropped { fill: #b9c3b1; }
.profile-form .missed { fill: #dfe3d6; }
.profile-key { margin: 4px 0 10px; font-size: .78rem; }
.profile-nights { list-style: none; margin: 0; padding: 0; max-height: 40vh; overflow: auto; }
.profile-nights li { display: grid; grid-template-columns: 5.5em 1fr auto; gap: 8px; padding: 7px 0; border-top: 1px solid #e3e6da; font-size: .9rem; }
.pn-date { color: #566453; }
.pn-pts { font-weight: 700; font-variant-numeric: tabular-nums; }

/* Results kept on the phone while there's no signal. */
.outbox { margin: 0 0 14px; padding: 10px 14px; border-radius: 8px; background: #fbf1d9; border: 1px solid #d9b864; color: #5b4a1c; font-size: .9rem; font-weight: 600; }
.btn.outbtn.sending { background: #fbf1d9; border-color: #d9b864; color: #5b4a1c; opacity: 1; }
.phones-text { width: 100%; box-sizing: border-box; font-family: var(--font-mono, ui-monospace, monospace); font-size: .85rem; line-height: 1.6; }
.me-notify { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--club-rule); }
.me-notify .notify-btn { font-weight: 600; }
.phones-import { margin-top: 12px; }
.phones-match { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid var(--club-rule); }
.phones-match .pm-who { flex: 1 1 100%; font-size: .9rem; font-variant-numeric: tabular-nums; }
.phones-match select { flex: 1; min-width: 0; }

/* Your profile: sign in by WhatsApp code, then everything in one place. */
.profile-btn { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 6px 12px; border: 1px solid #bec7b8;
  border-radius: 999px; background: transparent; color: var(--club-green); font-size: .85rem; font-weight: 600; }
.profile-btn .profile-dot { font-size: .6rem; color: #b9c3b1; }
.profile-btn.signed-in .profile-dot { color: #2f7a4b; }
.me-signin { max-width: 520px; }
.me-signin h2 { font: 1.5rem/1.2 Georgia, serif; margin: 0 0 8px; }
.me-signin .text { width: 100%; box-sizing: border-box; margin: 6px 0; }
.me-signin .btn { width: 100%; margin-top: 8px; }
.me-signin .linkbtn { margin-top: 10px; }
.me-code-input { font-size: 1.6rem; letter-spacing: .3em; text-align: center; font-variant-numeric: tabular-nums; }
.me-head h1 { font: 2rem/1.15 Georgia, serif; margin: 0; }
.me-head { margin-bottom: 14px; }
.me-sec { margin-top: 14px; }
.me-sec h3 { font: 1.15rem/1.3 Georgia, serif; margin: 0 0 10px; }
.me-night { display: grid; gap: 6px; padding: 10px 0; border-top: 1px solid var(--club-rule); }
.me-night:first-of-type { border-top: 0; }
.me-night-date { font-weight: 600; }
.me-night-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.me-night-opts .btn { min-height: 44px; }
.me-night-opts .btn.chosen-in { background: var(--club-green); border-color: var(--club-green); color: #fffdf7; }
.me-night-opts .btn.chosen-maybe { background: #8a6418; border-color: #8a6418; color: #fffdf7; }
.me-night-opts .btn.chosen-out { background: #8c3b36; border-color: #8c3b36; color: #fffdf7; }
.me-standing-row { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--club-rule); }
.me-partners { margin: 0; padding-left: 1.4em; }
.me-partners li { padding: 5px 0; }
.me-partners li span:last-child { margin-left: 8px; }
.me-owes { font-weight: 700; font-size: 1.05rem; color: #275b43; }
.me-owes.due { color: #8c3b36; }
.me-sec .btn.wide { display: flex; margin: 10px 0; text-decoration: none; }
.me-signout { margin-top: 14px; }
.me-profile-link { display: block; margin: 12px 0 4px; font-weight: 600; }
.me-signin-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.me-pin-note { margin-top: 12px; }

/* The host desk, compact: four counts across, the steps as a row of
   labelled dots, the buttons two to a row. */
.host-steps li { display: flex; flex-direction: column; align-items: center; text-align: center; }
.host-steps li::before { margin: 0 auto 6px; }
.host-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.host-actions .btn.big { grid-column: 1 / -1; }
.host-actions .btn { width: 100%; }
#nightControlsSection .btnrow { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
#nightControlsSection .btnrow #runDraw { grid-column: 1 / -1; }
#nightControlsSection .btnrow .btn[hidden] { display: none; }
#bountyChips .chip { min-height: 38px; padding: 6px 12px; font-size: .86rem; }
@media (max-width: 640px) {
  .host-counts { grid-template-columns: repeat(4, 1fr); gap: 0; padding: 14px 0; margin: 16px 0; }
  .host-count, .host-count:nth-child(3) { padding: 0 6px; font-size: .7rem; border-left: 1px solid #4c6a55; }
  .host-count:first-child { border-left: 0; padding-left: 0; }
  .host-count strong { font-size: 1.7rem; }
  .host-steps { grid-template-columns: repeat(4, 1fr); gap: 4px; margin: 16px 0; }
  .host-steps.no-checkin { grid-template-columns: repeat(3, 1fr); }
  .host-steps li { font-size: .74rem; }
  .host-steps p { display: none; }
  .host-desk .btn, .host-desk .btn.big { min-height: 46px; font-size: .88rem; padding: 10px 12px; }
}
