/* Late Table — the Royal Dublin clubhouse. Paper, baize, ink and brass. */
:root {
  color-scheme: light;
  --club-green: #173e34;
  --club-green-dark: #102f28;
  --club-paper: #f5f2e9;
  --club-card: #fffdf7;
  --club-ink: #243a31;
  --club-muted: #647065;
  --club-rule: #d7dacd;
  --club-brass: #b8a06c;
  --color-paper: var(--club-paper);
  --color-paper-2: var(--club-card);
  --color-paper-3: #eaeade;
  --color-rule: var(--club-rule);
  --color-rule-2: #9ba799;
  --color-ink: var(--club-ink);
  --color-ink-2: #445449;
  --color-ink-3: #5e6b60;
  --color-accent: var(--club-green);
  --color-accent-ink: #fffdf7;
  --color-accent-2: #943c3d;
  --color-good: #275b43;
  --color-good-wash: #e7eddf;
  --color-warn: #943c3d;
  --color-warn-wash: #f7e9e1;
  --color-focus: #9a6c1e;
  --color-accent-wash: #e7eddf;
  --color-brand: #173e34;
  --color-brand-deep: #102f28;
  --color-brand-ink: #fffdf7;
  --color-brand-text: #173e34;
  --color-brand-wash: #e7eddf;
  --color-brass: #89723a;
  --color-brass-wash: #eee7ce;
  --color-gold: #89723a;
  --color-gold-wash: #eee7ce;
  --color-claret: #943c3d;
  --color-claret-wash: #f7e9e1;
  --color-paper-emit: transparent;
  --font-display: Georgia, 'Times New Roman', serif;
  --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: var(--font-body);
  --text-xs: .83rem;
  --text-sm: .94rem;
  --text-md: 1rem;
  --text-lg: 1.11rem;
  --radius-card: 4px;
  --radius-input: 4px;
  --radius-pill: 4px;
}
html { font-size: 18px; scroll-behavior: smooth; }
html[data-reading="large"] { font-size: 21px; }
body { background: var(--club-paper); color: var(--club-ink); font-family: var(--font-body); font-size: 1rem; line-height: 1.55; }
body::before { display: none; }
body.dialog-open { overflow: hidden; }
* { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
button, input, select, textarea { font-family: inherit; font-size: 1rem; }
button, a { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
a { color: var(--club-green); text-underline-offset: 4px; }
:focus-visible { outline: 3px solid var(--color-focus) !important; outline-offset: 4px; }
::selection { background: #d9d7b3; color: #173e34; }
.skip-link { position: fixed; left: 1rem; top: -100px; z-index: 300; padding: 1rem; background: white; border: 2px solid var(--club-green); }
.skip-link:focus { top: 1rem; }
.wrap { max-width: 1280px; padding: 0 46px 40px; gap: 0; }
.club-masthead { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 120px; padding: 22px 0; border-bottom: 1px solid var(--club-rule); }
.club-brand { display: flex; align-items: center; gap: 17px; text-decoration: none; color: var(--club-green); }
.club-brand img { width: 45px; height: 51px; object-fit: contain; }
.club-brand > span { display: flex; flex-direction: column; }
.club-wordmark { font: 40px/.95 Georgia, serif; letter-spacing: -1.9px; }
.brand-dot { color: #9b7540; }
.club-byline { font-size: .68rem; letter-spacing: .105em; text-transform: uppercase; margin-top: 10px; }
.club-utilities { display: flex; gap: 23px; align-items: center; }
.reading-size { border: 0; background: transparent; color: var(--club-green); display: flex; gap: 10px; align-items: center; min-height: 50px; padding: 4px 8px; }
.reading-size > span:first-child { font: 17px Georgia, serif; border-bottom: 1px solid #b7bcae; }
.reading-size > span:first-child > span { font-size: 24px; }
.reading-label { font-size: .8rem; }
.reading-size[aria-pressed="true"] { background: #e2e8da; }
.signin { display: flex; align-items: center; gap: 18px; position: static; width: auto; min-height: 48px; padding: 8px 16px; border: 1px solid #bec7b8; border-radius: 4px; background: transparent; color: var(--club-green); font-size: .83rem; font-weight: 600; }
.signin span { display: inline; }
.club-navrow { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 83px; }
nav.tabs { position: static; display: flex; gap: 32px; align-items: stretch; align-self: stretch; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; backdrop-filter: none; width: auto; max-width: none; margin: 0; z-index: 20; }
nav.tabs button { display: flex; flex-direction: row; align-items: center; gap: 9px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; padding: 10px 0; color: #667165; font-size: .88rem; min-height: 54px; font-weight: 500; white-space: nowrap; }
nav.tabs button svg { width: 19px; height: 19px; stroke: currentColor; stroke-width: 1.5; fill: none; }
nav.tabs button .tl { font-size: inherit; }
nav.tabs .tl-short { display:none; }
nav.tabs button[aria-current="page"] { color: var(--club-green); background: transparent; border-bottom-color: var(--club-green); font-weight: 700; }
.datefield { display: flex; flex-direction: row; align-items: center; gap: 10px; margin: 0; }
.datefield .eyebrow { font-size: .68rem; }
.datefield select.plain { min-height: 44px; padding: 8px 24px 8px 10px; max-width: 185px; font-size: .83rem; background-color: transparent; border-color: var(--club-rule); }
main { min-width: 0; outline: none; }
.page-heading { padding: 30px 0; border-top: 1px solid var(--club-rule); }
.page-heading h1 { font: 2.8rem/1.15 Georgia, serif; letter-spacing: -.03em; margin-top: 8px; text-transform: none; color: var(--club-green); }
.page-heading .mastdate { margin-top: 8px; color: var(--club-muted); }
body[data-view="tonight"] .page-heading { display: none; }
.eyebrow, .grouphead { font-family: var(--font-body); font-size: .73rem; font-weight: 600; letter-spacing: .11em; line-height: 1.5; text-transform: uppercase; color: #63705f; }
.club-hero { display: grid; grid-template-columns: minmax(0, 1fr) 310px; position: relative; overflow: hidden; background: var(--club-green); color: var(--club-paper); border-radius: 5px; min-height: 361px; padding: 39px 45px 33px; gap: 45px; }
.hero-copy { position: relative; z-index: 2; }
.hero-overline { font-size: .69rem; font-weight: 500; letter-spacing: .16em; display: flex; align-items: center; gap: 12px; color: #e0d8be; }
.hero-overline > span:last-child { font-size: 19px; }
.hero-rule { display: inline-block; width: 30px; height: 1px; background: var(--club-brass); }
.club-hero .hero-heading { font: 64px/1.03 Georgia, serif; letter-spacing: -.035em; color: #f6f1df; margin: 23px 0 17px; text-transform: none; }
.club-hero .hero-heading em { font-weight: 400; color: #c9cba3; }
.hero-intro { font-size: .88rem; line-height: 1.6; color: #e0e4d5; }
.hero-bottom { display: flex; gap: 20px; align-items: center; margin-top: 26px; }
.hero-state { color: #e8ebdb; display: flex; align-items: center; gap: 8px; font-size: .76rem; }
.hero-state::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #b8c893; flex-shrink: 0; }
.hero-share { background: transparent; border: 0; border-left: 1px solid #607769; color: #f5f1dc; border-radius: 0; font-size: .76rem; padding: 4px 0 4px 20px; min-height: 44px; display: inline-flex; align-items: center; gap: 12px; }
.hero-ticket { z-index: 2; position: relative; align-self: center; background: #f6f1df; color: var(--club-green); padding: 21px 26px 17px; border: 1px solid #e5dfc8; box-shadow: 5px 6px 0 #0b2a2280; transform: rotate(1.5deg); }
.hero-ticket::before, .hero-ticket::after { content: ''; position: absolute; width: 15px; height: 15px; background: var(--club-green); border-radius: 50%; top: 63%; }
.hero-ticket::before { left: -9px; }.hero-ticket::after { right: -9px; }
.ticket-top { display: flex; align-items: center; justify-content: space-between; text-transform: uppercase; font-size: .7rem; letter-spacing: .13em; border-bottom: 1px solid #c9ceb9; padding-bottom: 10px; }
.ticket-top > span:last-child { font-size: 23px; line-height: 1; }
.ticket-date { display: flex; align-items: baseline; justify-content: center; gap: 12px; margin: 5px 0 0; }
#heroDate { font: 100px/.99 Georgia, serif; letter-spacing: -7px; }
#heroMonth { font-size: .75rem; text-transform: uppercase; letter-spacing: .15em; }
.ticket-venue { text-align: center; font-size: .75rem; line-height: 1.3; margin: 9px 0 20px; overflow-wrap: anywhere; }
.ticket-details { border-top: 1px dashed #b2bba4; padding-top: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ticket-details > span { display: flex; flex-direction: column; }
.ticket-details > span:last-child { border-left: 1px solid #cbd0be; padding-left: 16px; }
.ticket-details small { font-size: .62rem; line-height: 1.4; color: #5c6858; }
.ticket-details strong { font-family: Georgia,serif; font-weight: 400; font-size: 1.55rem; }
.ticket-doors { font-size: .69rem; color: #62705d; margin-top: 10px; text-align: center; }
.hero-watermark { position: absolute; width: 180px; height: auto; right: 350px; bottom: -36px; opacity: .055; transform: rotate(-10deg); pointer-events: none; }
.club-notice { margin-top: 16px; padding: 15px 20px; background: #e8e9dc; border-left: 3px solid #a58b51; font-size: .94rem; }
.evening-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(270px, 1fr); gap: 36px; margin-top: 34px; align-items: start; }
.evening-primary { min-width: 0; }
.evening-aside { border-left: 1px solid var(--club-rule); padding-left: 34px; }
.club-aside-panel { padding: 5px 0 26px; }
.club-aside-panel + .club-aside-panel { border-top: 1px solid var(--club-rule); padding-top: 25px; }
.club-aside-panel h2 { font: 1.55rem/1.2 Georgia, serif; letter-spacing: -.035em; margin-top: 8px; color: var(--club-green); }
.aside-heading { display: flex; justify-content: space-between; gap: 15px; align-items: center; }
.aside-suit { font: 45px Georgia, serif; color: #8a977f; }
.bigdate { display: none; }
.club-welcome { display: flex; gap: 20px; padding: 27px 28px; background: var(--club-card); border: 1px solid var(--club-rule); border-radius: 4px; box-shadow: 0 3px 0 #e7e5d9; }
.club-welcome { flex-direction:row; }.club-welcome > div:last-child { min-width:0; flex:1; }
.club-aside-panel,.host-desk,.host-briefing { display:block; }
.host-section { border:1px solid var(--club-rule); border-radius:4px; margin:12px 0; background:var(--club-card); }
.host-section > summary { padding:19px 24px; min-height:64px; font:1.3rem/1.3 Georgia,serif; color:var(--club-green); cursor:pointer; }
.host-section[open] > summary { border-bottom:1px solid var(--club-rule); background:#ecefdf; }
#adminTools .host-section > section { padding:22px 24px; margin:0 !important; border:0; }
.host-section .panel { border:0; padding:0; box-shadow:none; background:transparent; }.host-section .sechead { margin-bottom:0; }
#adminTools:not([hidden]) { gap:0; }.host-section summary::marker { color:#7a8a63; }
.host-field { display:flex; flex:1 1 160px; flex-direction:column; gap:6px; min-width:0; font-size:.88rem; color:var(--club-ink); }
.host-field input,.host-field select { width:100%; min-width:0; }
.host-field ~ .btn { align-self:flex-end; }
.welcome-number { font: 18px Georgia,serif; padding: 6px 0; color: #9b9d83; }
.club-welcome h2 { font: 1.9rem/1.2 Georgia, serif; letter-spacing: -.035em; margin: 9px 0 12px; color: var(--club-green); }
.club-welcome p:not(.eyebrow) { font-size: .9rem; color: #64705f; line-height: 1.65; }
.club-welcome .btn { margin-top: 22px; min-width: 230px; justify-content: space-between; gap: 45px; }
.btn, .btn.sm, .btn.big, .btn.ghost, .btn.danger { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 12px 19px; border-radius: 4px; font-family: var(--font-body); font-size: .94rem; font-weight: 600; line-height: 1.3; letter-spacing: 0; text-transform: none; background: var(--club-green); color: #fffdf7; border: 1px solid var(--club-green); box-shadow: none; text-decoration: none; }
.btn.big { min-height: 58px; font-size: 1rem; }
.btn.ghost { background: transparent; color: var(--club-green); border: 1px solid #b9c3b1; }
.btn.danger { color: #92393c; background: #fbefea; border-color: #d5b6ab; }
.btn:hover { background: #254f40; color: #fff; }
.btn.ghost:hover { background: #e7eddf; color: var(--club-green); }
.btn.danger:hover { background: #f2ddd5; color: #7a2c30; }
.btn:disabled { opacity: .55; }
.btnrow { gap: 10px; flex-wrap: wrap; }
.linkbtn { color: var(--club-green); font-size: .86rem; font-weight: 500; min-height: 46px; padding: 9px 0; text-decoration: underline; text-decoration-color: #b6c0ac; text-underline-offset: 5px; line-height: 1.4; }
.text, .plain, .finder input, select, textarea, input[type="time"] { min-height: 52px; padding: 12px 14px; background: #fffdf7; color: #243a31; border: 1px solid #aebaa5; border-radius: 4px; font-size: 1rem; box-shadow: none; }
textarea { width: 100%; resize: vertical; min-height: 110px; }
.text::placeholder, .finder input::placeholder { color: #74806c; opacity: 1; }
.mecard, .mecard[data-s="in"], .mecard[data-s="none"] { background: var(--club-card); color: var(--club-ink); border: 1px solid var(--club-rule); border-top: 3px solid #9b9e75; border-radius: 4px; padding: 27px 28px; margin: 0; box-shadow: 0 3px 0 #e7e5d9; }
.mecard .me-hi { font-size: .73rem; letter-spacing: .1em; color: #64715f; text-transform: uppercase; font-weight: 600; }
.mecard .me-msg { font: 1.65rem/1.3 Georgia, serif; font-weight: 400; letter-spacing: -.03em; color: var(--club-green); margin-top: 10px; }
.me-note { font-size: .9rem; color: #697361; }
.me-pay, .me-standing { margin-top: 20px; border-top: 1px solid var(--club-rule); padding-top: 14px; }
.me-paid { color: var(--club-green); font-size: .94rem; line-height: 1.55; }
.switch { background: transparent; border: 0; color: var(--club-green); min-height: 52px; width: 100%; gap: 20px; }
.switch-label { font-size: .94rem; font-weight: 600; }
.switch-hint { font-size: .83rem; line-height: 1.6; color: #65715f; margin-top: 3px; }
.switch-track { background: #cbd2c0; }.switch[aria-checked="true"] .switch-track { background: var(--club-green); }
.club-availability { margin-top: 20px; }
.club-answer-options { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 12px; }
.club-answer-options .btn { flex: 1 1 auto; min-height: 54px; }
.club-answer-options .btn[aria-pressed="true"] { outline: 2px solid #aeb99d; outline-offset: 3px; }
.club-answer-status { font-size: .88rem; color: #50644f; }
.club-availability .field-hint { margin-top:12px; }
.club-arrival-summary { font-size: .88rem; color: #5f7059; margin-top: 15px; }
.club-seatpass { margin-top: 20px; display: grid; grid-template-columns: auto 1fr; column-gap: 20px; background: var(--club-green); color: var(--club-paper); padding: 22px; border-radius: 4px; }
.seatpass-label { grid-column: 1/-1; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: #d0d6ba; }
.seatpass-number { font: 2.6rem/1.1 Georgia, serif; }.seatpass-detail { align-self: center; font-size: .94rem; }
.club-seatpass .btn { color:#f4edda; border-color:#9faf89; grid-column:1/-1; margin-top:16px; }
.night-timeline { list-style: none; margin: 24px 0 10px; padding: 0; }
.night-timeline li { position: relative; display: grid; grid-template-columns: 72px 1fr; gap: 18px; padding: 0 0 23px 18px; margin: 0 0 0 3px; border-left: 1px solid #ccd2bf; }
.night-timeline li:last-child { padding-bottom: 0; border-left-color: transparent; }
.night-timeline li::before { content: ''; position: absolute; width: 7px; height: 7px; left: -4px; top: 8px; border-radius: 50%; background: #fffdf7; border: 1px solid #8f9e80; }
.timeline-time { font-size: .83rem; font-weight: 600; color: #4d6248; padding-top: 1px; }
.timeline-detail { font-size: .86rem; color: #697461; line-height: 1.55; }
.timeline-detail strong { display: block; font-size: .94rem; font-weight: 500; color: #334b37; margin-bottom: 3px; }
.fixture-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; text-align: left; background: transparent; border: 0; border-bottom: 1px solid var(--club-rule); padding: 17px 0; min-height: 70px; color: #304c38; border-radius: 0; }
.fixture-card:hover, .fixture-card[aria-current] { background: #e9eddf; }
.fixture-date { font-size: .94rem; font-weight: 500; }.fixture-status { font-size: .77rem; color: #65735d; }
.fixture-card { flex-wrap:wrap; column-gap:8px; row-gap:4px; }.fixture-date { flex:1 1 65%; }.fixture-status { text-align:right; }.fixture-action { font-size:.75rem; color:#5e7053; flex-basis:100%; }
.calendar-link { display: flex; align-items: center; justify-content: space-between; min-height: 50px; font-size: .78rem; margin-top: 9px; text-decoration: none; }
.club-motto { padding: 20px 0 10px; color: #788269; text-align: center; }
.club-motto > span { font-size: .75rem; letter-spacing: .15em; }
.club-motto p { font: 1.35rem/1.35 Georgia,serif; margin-top: 14px; color: #5e6d56; }
.roster { border-top: 1px solid var(--club-rule); margin-top: 31px; padding-top: 27px; gap: 20px; }
.rostertop { align-items: center; gap: 20px; }
.rostertop h2 { font: 1.6rem/1.2 Georgia,serif; letter-spacing: -.035em; color: var(--club-green); margin-top: 5px; }
.count { gap: 9px; align-items: center; padding: 0; }
.count-n { font: 2.5rem/1 Georgia,serif; letter-spacing: -.06em; color: var(--club-green); }
.count-meta { gap: 1px; }.count-l, .count-sub { font-family: var(--font-body); font-size: .7rem; letter-spacing: 0; text-transform: none; color: #6c785f; }
.finder { max-width: none; }.finder input { background-color: var(--club-card); border-radius: 4px; min-height: 54px; padding-left: 16px; }
.findprompt { font-size: .94rem; color: #4e6149; margin: 0 0 12px; }
.names { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.answer-filter { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:15px 0; font-size:.9rem; color:#53684b; }.answer-filter select { min-width:180px; max-width:65%; min-height:48px; }
.name[data-s="in"] { background:#e9efdf; border-color:#b4c2a5; }.name[data-s="maybe"] .state-tag { background:#efe9d3; color:#735e2c; }.name[data-s="out"] .state-tag { background:#eee8e0; color:#66574b; }.state-tag { font-size:.75rem; padding:5px 8px; border-radius:3px; }
.name { min-height: 64px; border: 1px solid #d3d9c7; background: #faf9f1; color: var(--club-ink); border-radius: 4px; padding: 12px 13px; box-shadow: none; font-size: .94rem; }
.name.in { border-color: #b4c2a5; background: #e9efdf; color: #254630; }
.name .who { white-space: normal; overflow: visible; text-overflow: clip; font-size: .94rem; line-height: 1.35; }
.name .av, .avatar, .av { background: #e4e8da; color: #5c6e50; border: 0; font-size: .76rem; border-radius: 50%; }
.name.in .av { background: #d3dec3; color: #36552c; }
.name .status { font-size: .72rem; }
.toggles { gap: 10px; }.toggles .btn { width: auto; flex: 1; font-size: .83rem; }
.grouphead { margin-top: 10px; }.hint, .empty, .me-note, .sechead p, .sechead-sub { font-size: .9rem; line-height: 1.6; color: #65705f; }
.selfadd { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }.selfadd .text { min-width: 0; flex: 1 1 200px; }
.selfadd .btn { flex: 0 0 auto; }.selfadd + .hint { margin-top: 8px; }
.sechead { margin-bottom: 20px; }.sechead h2 { font: 1.9rem/1.2 Georgia,serif; text-transform: none; letter-spacing: -.025em; color: var(--club-green); }.sechead p { margin-top: 9px; max-width: 750px; }
.panel { background: var(--club-card); border: 1px solid var(--club-rule); border-radius: 4px; padding: 24px; box-shadow: none; }
#view-admin section { margin-bottom: 30px; }#view-admin #adminTools > section { border-top: 1px solid var(--club-rule); padding-top: 28px; }
#loginBox { max-width: 650px; padding: 10px 0 30px; }
.host-desk { padding: 30px; background: var(--club-green); color: var(--club-paper); border-radius: 4px; }
.host-summary h2, .host-desk h2 { font: 2rem/1.2 Georgia,serif; color: #f8f3e3; margin-bottom: 12px; }.host-summary p, .host-note { color: #d1dcc6; font-size: .9rem; }
.host-counts { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin: 23px 0; border-top: 1px solid #4c6a55; border-bottom: 1px solid #4c6a55; padding: 20px 0; }
.host-count { display: flex; flex-direction: column; gap: 3px; font-size: .83rem; color: #d1dcc6; padding: 0 15px; border-left: 1px solid #4c6a55; }.host-count:first-child { border-left: 0; padding-left: 0; }
.host-count strong { font: 2.3rem/1 Georgia,serif; color: #fff8df; }.host-steps { list-style: none; counter-reset: steps; padding: 0; display: grid; grid-template-columns: repeat(4,1fr); gap: 15px; margin: 24px 0; }.host-steps li { counter-increment: steps; font-size: .9rem; color: #d6dfcb; }.host-steps li::before { content: counter(steps); width: 30px; height: 30px; display: block; line-height: 30px; text-align: center; border: 1px solid #6a8067; color: #d6dfcb; border-radius: 50%; margin-bottom: 10px; }.host-steps li[data-state="done"]::before { content:'✓'; background:#b7c297; color:#173e34; }.host-steps li[data-state="current"]::before { background:#f4eccf; border-color:#f4eccf; color:#173e34; }.host-steps li[data-state="current"] { color:#fff8df; }
.host-actions { display: flex; flex-wrap: wrap; gap: 10px; }.host-desk .btn { background:#f4edda; border-color:#f4edda; color:#173e34; }.host-desk .btn.ghost { background:transparent; color:#f4edda; border-color:#8d9f86; }.host-note { margin-top:16px; }
.host-desk .eyebrow { color:#c9d5ba; }.host-step-number { display:none; }.host-steps p { font-size:.82rem; line-height:1.5; margin-top:6px; }.host-arrival-notes { margin-top:22px; border-top:1px solid #4c6a55; padding-top:16px; }.host-arrival-notes summary { cursor:pointer; min-height:44px; }.host-arrival-note { border-top:1px solid #4c6a55; padding:14px 0; font-size:.9rem; }.host-arrival-note p { color:#d1dcc6; margin-top:6px; }
.host-briefing { background: var(--club-card); border:1px solid var(--club-rule); padding:24px 28px; }.host-briefing h2 { font:1.6rem Georgia,serif; color:var(--club-green); }.briefing-summary { font-size:.94rem; margin:12px 0; }.briefing-message { color:#65705f; margin-bottom:16px; white-space:pre-wrap; }
.briefing-form, .arrival-form { display:grid; gap:16px; }.form-field { display:flex; flex-direction:column; gap:7px; font-size:.94rem; }.form-field > span { font-weight:600; }.field-hint { font-size:.83rem; color:#66725f; }
.whoami { color:#4f6247; font-size:.94rem; margin:20px 0; }.subn { color:var(--club-green); font:2.1rem Georgia,serif; }.subtotals { border-bottom:1px solid var(--club-rule); padding-bottom:20px; margin-bottom:20px; gap:24px; }.subtotals .eyebrow { font-size:.7rem; }
.scoring-guide { border:1px solid var(--club-rule); border-radius:4px; padding:15px 19px; margin:0 0 24px; background:#eeeee2; }.scoring-guide summary { min-height:30px; cursor:pointer; color:var(--club-green); font-size:.94rem; }.keyline { margin:15px 0 0; font-size:.86rem; color:#5b6d50; }
.table { border:1px solid var(--club-rule); border-radius:4px; background:var(--club-card); box-shadow:none; overflow:hidden; }.table.mine { border:2px solid #57754d; background:var(--club-card); }.table-head, .tablehead { background:#e5e9d8; color:var(--club-green); padding:20px; }.table h3, .table h2 { color:var(--club-green); font:1.5rem Georgia,serif; }.seat, .doorname { border-color:#d8dece; font-size:1rem; min-height:58px; }.seat .who { font-size:1rem; }.seat.out { background:#f2efe5; }.seat.winner { background:#eee7ca; }.outbtn { min-height:48px; padding:9px 14px; background:#f6e9e1; border:1px solid #c6ada1; color:#92393c; border-radius:4px; font-size:.88rem; }.outbtn.undo { background:#eef1e4; color:#34572f; border-color:#bac7a8; }.doorname .who { font-size:.94rem; }
.clockpanel { background:var(--club-green); color:#f5efda; border-color:var(--club-green); }.clockpanel .clk-level,.clockpanel .clk-blinds,.clockpanel .clk-time,.clockpanel .hint { color:#f5efda; }.clockpanel .btn { background:#edead7; border-color:#edead7; color:#173e34; }.clockmini { flex-wrap:wrap; gap:15px; }.clk-time { font-size:2.5rem; font-variant-numeric:tabular-nums; }.clockov { background:#12362d; color:#f6f0dd; }.clockov .btn { background:#f6f0dd; color:#173e34; }.ov-time { color:#f6f0dd; }
.league { background:var(--club-card); font-size:1rem; border:1px solid var(--club-rule); border-radius:4px; width:100%; }.league th { background:#e8ebdc; color:#4f6246; font-size:.76rem; letter-spacing:.06em; padding:17px 16px; }.league td { background:var(--club-card); border-color:var(--club-rule); padding:18px 16px; font-size:1rem; color:#33472f; }.league .who { min-width:0; white-space:normal; font-weight:500; }.league td.who,.league th.who { position:static; left:auto; }.league .rk { color:#758368; width:60px; }.league .total { font:1.5rem Georgia,serif; color:var(--club-green); }.league tr.bubble-edge td { border-bottom:2px dashed #9a8a51; }.league tr.is-me td { background:#e9efde; }.league-detail { display:none; }.league.expanded .league-detail { display:table-cell; }.league.expanded { min-width:900px; }.tablescroll { border-radius:4px; border:0; }.bubbletag { color:#62723b; background:#e8edcf; border:1px solid #c3cea5; font-size:.67rem; padding:3px 6px; margin-left:10px; border-radius:3px; }.seasonbar { margin-bottom:20px; gap:12px; }.seasonbar select { max-width:100%; }
.honours, .awards { gap:16px; }.award,.champ,.week { background:var(--club-card); border-color:var(--club-rule); color:var(--club-green); border-radius:4px; padding:24px; }.award .ttl { font-size:.83rem; color:#65735d; }.award .val { font:2rem Georgia,serif; color:#856e36; }
.prizes { display:grid; grid-template-columns:1fr 2fr 2fr; gap:25px; padding:25px 0; border:0; border-top:1px solid var(--club-rule); border-bottom:1px solid var(--club-rule); border-radius:0; background:transparent; margin-top:44px; }.prizes h2 { font:1.5rem Georgia,serif; color:var(--club-green); align-self:center; }.prize { align-items:center; margin:0; gap:13px; }.prize p { font-size:.83rem; line-height:1.6; color:#63705a; }.prize strong { color:#3d5335; font-weight:600; }.prize-mark { width:40px; height:40px; border:1px solid #c3c5a6; border-radius:50%; color:#8b774a; font:1rem Georgia,serif; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:transparent; }
.callink { font-size:.83rem; margin:20px 0 0; text-align:center; }.clubfoot { padding:25px 0 0; font-size:.69rem; letter-spacing:.08em; color:#748169; }.clubfoot img { width:27px; height:30px; }.orglink { margin-top:8px; text-align:center; }.note { padding:22px; border:1px solid var(--club-rule); background:#eeeee3; font-size:.83rem; margin-top:20px; }
#calLink { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:10px 4px; }
.lockbar,.offbar,.banner { border-radius:4px; border-color:#c4c9ac; background:#ecebd7; color:#4e583a; font-size:.94rem; margin:16px 0; padding:16px 20px; }.banner.bad { background:#f5e7dd; color:#873e35; border-color:#d4b3a3; }
.tipcard { background:#eaeedc; border:1px solid #c5ceb2; border-radius:4px; margin-top:20px; padding:20px; font-size:.94rem; }
.dlg { background:#10291fc2; backdrop-filter:blur(3px); z-index:100; padding:24px; }.dlg-box { background:var(--club-card); color:var(--club-ink); border:1px solid #dddcc8; border-top:4px solid #9c9966; border-radius:6px; max-width:560px; padding:30px; box-shadow:0 20px 100px #081c1840; max-height:90dvh; overflow-y:auto; }.dlg-box h2 { font:1.9rem/1.2 Georgia,serif; color:var(--club-green); letter-spacing:-.03em; margin-bottom:17px; }.dlg-box p { font-size:1rem; line-height:1.55; color:#55664d; }.dlg-btns { gap:10px; margin-top:24px; }.dlg-btns .btn { min-height:54px; }.dlg .who { font-size:1rem; }.picklist { max-height:45vh; overflow-y:auto; }.club-help-list { padding-left:24px; }.club-help-list li { margin:14px 0; }.club-help-list strong { color:var(--club-green); }
.dlg-box::before { display:none; }.club-help-list { padding-left:0; }.club-help-list h3 { font:1.2rem Georgia,serif; margin:22px 0 9px; color:#173e34; }.form-field label { font-weight:600; }
.toast { background:var(--club-green); color:#fff8e2; border:1px solid #7c8e6d; border-radius:4px; padding:14px 20px; font-size:.94rem; line-height:1.5; z-index:110; max-width:600px; box-shadow:0 8px 30px #20382726; }.toast.bad { background:#803d37; color:#fff9ed; }.toast-undo { color:#fff4cb; border-color:#bac4a0; min-height:46px; font-size:.94rem; }
.badge,.chip,.rowlist,.ledger,.ledger-head { font-size:.94rem; }.rowlist button,.ledger-head { min-height:52px; }.chip { background:#e9ecdc; color:#3f5737; border-color:#c1ccaf; border-radius:4px; min-height:48px; }.chip.on { background:#dce6cb; border-color:#91a776; }.postingsoon { background:#e7ecd8; color:#416037; padding:15px; }.tablemode { background:#e1e9d1; color:#37522d; border-color:#becda7; }
@media (max-width:1050px) {
  .wrap { padding-left:28px; padding-right:28px; }nav.tabs { gap:21px; }.datefield .eyebrow { display:none; }.club-hero { padding:35px; gap:25px; grid-template-columns:minmax(0,1fr) 275px; }.club-hero .hero-heading { font-size:58px; }.hero-ticket { padding:20px; }.evening-layout { gap:25px; grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr); }.evening-aside { padding-left:25px; }.names { grid-template-columns:1fr; }.club-welcome { padding:24px; gap:15px; }.hero-intro br { display:none; }.club-navrow { flex-wrap:wrap; gap:0; }.datefield { margin-left:auto; }
}
@media (max-width:760px) {
  html { font-size:17px; }html[data-reading="large"] { font-size:20px; }.wrap { padding:0 19px 112px; }.club-masthead { min-height:95px; padding:20px 0; gap:12px; }.club-brand { gap:10px; }.club-brand img { width:34px; height:39px; }.club-wordmark { font-size:31px; letter-spacing:-1.5px; }.club-byline { font-size:.54rem; letter-spacing:.08em; margin-top:7px; }.club-utilities { gap:7px; }.reading-label { display:none; }.reading-size { padding:4px; min-width:36px; }.signin { min-height:44px; max-width:98px; padding:7px 9px; font-size:.72rem; gap:5px; }.signin > span:last-child { display:none; }
  .club-navrow { min-height:0; }.club-navrow .datefield { width:100%; justify-content:space-between; margin:12px 0; }.datefield .eyebrow { display:block; font-size:.72rem; }.datefield select.plain { max-width:220px; }
  nav.tabs { position:fixed; inset:auto 0 0; width:100%; display:flex; justify-content:space-around; gap:0; padding:7px 8px calc(8px + env(safe-area-inset-bottom)); border-top:1px solid #c6cdb9; background:#fbf9f0; box-shadow:0 -5px 18px #2538220a; z-index:30; }
  nav.tabs button { flex:1 1 0; flex-direction:column; justify-content:center; gap:5px; min-width:0; min-height:58px; padding:5px 2px; border:0; color:#67765d; font-size:.73rem; line-height:1.2; white-space:normal; border-radius:4px; }
  nav.tabs .tl-wide { display:none; }nav.tabs .tl-short { display:inline; }
  nav.tabs button svg { width:22px; height:22px; }nav.tabs button[aria-current="page"] { background:#e8eddc; color:#20482e; border:0; }.page-heading { border:0; padding:25px 0; }.page-heading h1 { font-size:2.1rem; }
  .club-hero { margin-top:20px; padding:27px 25px 23px; grid-template-columns:1fr 137px; gap:16px; min-height:280px; border-radius:4px; }.hero-overline { font-size:.56rem; letter-spacing:.12em; gap:7px; }.hero-rule { width:14px; }.hero-overline > span:last-child { display:none; }.club-hero .hero-heading { font-size:45px; margin:22px 0 14px; }.hero-intro { font-size:.78rem; max-width:190px; line-height:1.55; }.hero-ticket { padding:13px 12px 12px; width:137px; box-shadow:3px 4px 0 #0b2a2280; }.ticket-top { font-size:.5rem; letter-spacing:.06em; padding-bottom:7px; }.ticket-top > span:last-child { font-size:15px; }.ticket-date { flex-direction:column; gap:0; align-items:center; margin-top:8px; }#heroDate { font-size:70px; letter-spacing:-4px; }#heroMonth { font-size:.6rem; letter-spacing:.12em; margin:3px 0; }.ticket-venue { font-size:.58rem; margin:8px 0 12px; line-height:1.4; }.ticket-details { gap:6px; padding-top:9px; }.ticket-details > span:last-child { padding-left:8px; }.ticket-details small { font-size:.5rem; }.ticket-details strong { font-size:1.15rem; margin-top:3px; }.ticket-doors { font-size:.55rem; margin-top:8px; }.hero-bottom { margin-top:18px; flex-direction:column; align-items:flex-start; gap:0; }.hero-state { font-size:.66rem; }.hero-share { border:0; padding:4px 0; font-size:.69rem; min-height:40px; }.hero-watermark { width:120px; right:110px; bottom:25px; }
  .evening-layout { grid-template-columns:1fr; gap:30px; margin-top:24px; }.evening-aside { padding-left:0; border-left:0; border-top:1px solid var(--club-rule); padding-top:25px; }.club-welcome { padding:23px 20px; }.club-welcome h2 { font-size:1.8rem; }.club-welcome p:not(.eyebrow) { font-size:.94rem; }.club-welcome p br { display:none; }.club-welcome .btn { min-width:0; width:100%; gap:20px; }.welcome-number { font-size:15px; }.mecard,.mecard[data-s] { padding:24px 21px; }.mecard .me-msg { font-size:1.65rem; }.club-answer-options { gap:8px; }.club-answer-options .btn.big { flex-basis:100%; }.club-answer-options .btn:not(.big) { flex-basis:calc(50% - 4px); min-width:0; font-size:.94rem; }.club-answer-options .btn { min-height:54px; }.roster { margin-top:27px; padding-top:24px; }.names { grid-template-columns:1fr; }.name,.name .who { font-size:1rem; }.name { min-height:64px; padding:12px 14px; }.roster .hint { font-size:.94rem; }.rostertop h2 { font-size:1.65rem; }.toggles { flex-direction:column; }.toggles .btn { flex:auto; width:100%; font-size:.94rem; }.night-timeline li { grid-template-columns:80px 1fr; }.timeline-time { font-size:.94rem; }.timeline-detail { font-size:.94rem; }.timeline-detail strong { font-size:1rem; }.club-aside-panel .eyebrow { font-size:.75rem; }.fixture-date { font-size:1rem; }.fixture-status,.calendar-link { font-size:.88rem; }
  .prizes { grid-template-columns:1fr; gap:18px; padding:24px 0; margin-top:30px; }.prize p { font-size:.94rem; }.prizes h2 { font-size:1.6rem; }.clubfoot { font-size:.68rem; }.callink { font-size:.94rem; }
  .btn, .btn.sm, .btn.ghost { min-height:52px; font-size:.94rem; }.panel { padding:20px; }.sechead h2 { font-size:1.8rem; }.sechead p,.hint { font-size:.94rem; }.host-desk { padding:23px 20px; }.host-summary h2,.host-desk h2 { font-size:1.9rem; }.host-counts { grid-template-columns:repeat(4,1fr); gap:4px; }.host-count { padding:0 8px; font-size:.72rem; }.host-count strong { font-size:2rem; }.host-steps { grid-template-columns:repeat(2,1fr); gap:17px; }.host-actions { flex-direction:column; }.host-actions .btn { width:100%; }.host-briefing { padding:22px; }.table .seat .who { font-size:1rem; }.league th { padding:15px 9px; font-size:.7rem; }.league td { padding:16px 9px; font-size:.94rem; }.league .rk { width:36px; }.league .total { font-size:1.45rem; }.bubbletag { display:block; width:fit-content; margin:6px 0 0; }.seasonbar { flex-wrap:wrap; }.seasonbar .btn { width:100%; }
  .dlg { padding:13px; }.dlg-box { padding:25px 21px; max-height:88dvh; border-radius:6px; }.dlg-box h2 { font-size:1.8rem; }.dlg-btns { flex-direction:column; }.dlg-btns .btn { width:100%; min-height:56px; }.toast { bottom:94px; width:calc(100% - 28px); max-width:none; font-size:1rem; }.toast-undo { min-height:48px; }
}
@media (max-width:370px) {
  .wrap { padding-left:14px; padding-right:14px; }.club-wordmark { font-size:28px; }.club-brand img { width:29px; height:34px; }.club-byline { font-size:.48rem; }.signin { max-width:78px; font-size:.65rem; }.club-hero { padding:23px 19px; grid-template-columns:minmax(0,1fr) 117px; gap:12px; }.club-hero .hero-heading { font-size:38px; }.hero-ticket { width:117px; padding:12px 9px; }.hero-intro { font-size:.72rem; }.ticket-top { font-size:.45rem; }.ticket-date #heroDate { font-size:60px; }.ticket-details strong { font-size:1rem; }.hero-overline { font-size:.5rem; }.hero-rule { display:none; }.club-welcome { gap:12px; padding:22px 16px; }.welcome-number { display:none; }.club-answer-options .btn:not(.big) { flex-basis:100%; }.host-counts { grid-template-columns:repeat(2,1fr); gap:17px; }.host-count:nth-child(3) { border:0; padding-left:0; }
}
@media (max-width:760px) {
  .club-hero { grid-template-columns:minmax(0,1fr) 128px; min-height:252px; padding:24px 21px 21px; gap:15px; margin-top:12px; }
  .club-hero .hero-heading { font-size:39px; margin:18px 0 13px; letter-spacing:-.045em; }.hero-intro { display:none; }.hero-bottom { margin-top:12px; }.hero-ticket { width:128px; }.hero-ticket #heroDate { font-size:65px; }.ticket-venue { font-size:.6rem; }.ticket-top { font-size:.52rem; }.ticket-details small { font-size:.55rem; }.ticket-details strong { font-size:1.2rem; }.ticket-doors { font-size:.58rem; }
  .hero-share { font-size:.76rem; }.hero-state { font-size:.73rem; }.hero-overline { font-size:.58rem; }.club-notice { font-size:.9rem; padding:13px 16px; }.club-masthead { min-height:89px; padding:17px 0; }.club-byline { max-width:180px; font-size:.52rem; }.club-brand img { width:32px; height:36px; }.club-utilities { gap:3px; }.club-brand { gap:9px; }.club-wordmark { font-size:30px; }.evening-layout { margin-top:20px; }.club-welcome { padding:21px; }.club-welcome .btn { margin-top:17px; }.club-welcome h2 { margin:6px 0 9px; }
  .hero-copy { align-self:center; }.hero-watermark { bottom:-25px; right:120px; }.host-steps p { font-size:.9rem; }.host-summary .eyebrow { font-size:.73rem; }.club-navrow .datefield { margin:9px 0; }
}
@media (max-width:370px) { .club-hero { padding:21px 17px; grid-template-columns:minmax(0,1fr) 113px; gap:12px; }.hero-ticket { width:113px; }.club-hero .hero-heading { font-size:34px; }.hero-state { font-size:.65rem; }.hero-ticket #heroDate { font-size:58px; }.club-byline { max-width:135px; }.hero-overline { font-size:.5rem; }.ticket-top { font-size:.47rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { animation:none !important; transition:none !important; } }
@media print { .club-utilities,nav.tabs,.orglink,.toast,.btn { display:none !important; }.wrap { max-width:none; padding:0; }.club-hero { -webkit-print-color-adjust:exact; print-color-adjust:exact; }.evening-layout { display:block; }.evening-aside { display:none; } }

/* Host: tonight's controls open, the rest as tiles that open as pages. */
#hostToolbox { display: none !important; }
.host-tonight { display: grid; gap: 12px; margin: 14px 0 0; }
.host-tonight > section { margin: 0 !important; }
.host-tonight .sechead { margin-bottom: 8px; }
.host-manage { margin: 26px 0 8px; }
.host-manage-h { font: 1.35rem/1.2 Georgia, serif; color: var(--club-green); margin: 0 0 12px; }
.host-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 720px) { .host-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.host-tile { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; min-height: 78px; padding: 14px 30px 14px 16px; text-align: left; font: inherit; color: var(--club-ink); background: var(--club-card); border: 1px solid var(--club-rule); border-radius: 6px; cursor: pointer; }
.host-tile[hidden] { display: none; }
.host-tile::after { content: "›"; position: absolute; right: 13px; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: #8a977f; }
.host-tile:hover { border-color: #b9c3b1; }
.host-tile:focus-visible { outline: 2px solid var(--color-focus, #2d5a4a); outline-offset: 2px; }
.host-tile-t { font: 1.06rem/1.2 Georgia, serif; color: var(--club-green); }
.host-tile-s { font-size: .8rem; line-height: 1.35; color: #64705f; overflow-wrap: anywhere; }
.host-signout { display: block; margin: 18px 0 0; }
body.host-in-page[data-view="admin"] #hostDesk,
body.host-in-page[data-view="admin"] #hostBriefing,
body.host-in-page[data-view="admin"] .host-tonight,
body.host-in-page[data-view="admin"] #hostManage,
body.host-in-page[data-view="admin"] #whoAmI { display: none !important; }
.host-page { margin-top: 4px !important; }
.host-page[hidden] { display: none !important; }
.host-pagebar { margin: 0 0 10px; }
.host-back { font-weight: 600; }
.info-btn { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-left: 10px; padding: 0; border-radius: 50%; border: 1px solid #b9c3b1; background: transparent; color: var(--club-green); font: italic 600 .82rem/1 Georgia, serif; vertical-align: middle; cursor: pointer; }
.info-btn[aria-expanded="true"] { background: #e7eddf; }
.sechead .explain { margin-top: 6px; }

/* Money: one list at a time. */
.seg { display: flex; gap: 4px; padding: 4px; margin: 14px 0 12px; background: #e9ebdf; border: 1px solid var(--club-rule); border-radius: 8px; overflow-x: auto; scrollbar-width: none; }
.seg[hidden] { display: none; }
.seg-b { flex: 1 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-height: 46px; padding: 6px 12px; font: 600 .9rem/1.2 var(--font-body); color: #4d5a49; background: transparent; border: 0; border-radius: 6px; cursor: pointer; }
.seg-b[hidden] { display: none; }
.seg-b[aria-selected="true"] { background: var(--club-card); color: var(--club-green); box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.seg-n { font-size: .7rem; font-weight: 500; color: #8c6d2f; }
.seg-n:empty { display: none; }
.tab-off { display: none !important; }
#view-money .money-tabs ~ #moneyOrg > section, #view-money #kittySection { margin-top: 0; }
#view-money .sechead h2 { font-size: 1.2rem; }
#view-money .sechead p { font-size: .85rem; margin-top: 2px; }
/* Tighter rows: one line each, two columns when there's room. */
#subsList.names { display: grid; grid-template-columns: 1fr; gap: 0; }
@media (min-width: 640px) { #subsList.names { grid-template-columns: 1fr 1fr; column-gap: 16px; } }
#subsList .name.payrow { min-height: 46px; padding: 6px 4px; gap: 8px; border-bottom: 1px solid var(--club-rule); border-radius: 0; flex-wrap: nowrap; min-width: 0; }
#subsList .name.payrow .who { flex: 1 1 auto; font-size: 1rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#subsList .name.payrow .paystate { flex: 0 1 auto; min-width: 0; font-size: .78rem; color: #64705f; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#subsList .name.payrow .mark, #subsList .name.payrow .owes, #subsList .name.payrow .btn { flex: none; }
#subsList .name.payrow .btn.sm { min-height: 36px; padding: 6px 12px; font-size: .82rem; margin-left: 0; }
.ledger .lrow .lhead { padding-top: 6px; padding-bottom: 6px; }
.ledger .lrow { border-bottom: 1px solid var(--club-rule); }
.host-manage-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.host-manage-head .host-manage-h { margin: 0; }
.host-manage-head #planNight { min-height: 40px; padding: 8px 14px; }
/* Switching Money tabs keeps the tabs still itself; the browser's own
   scroll anchoring would move the page as the list changes. */
#view-money, #view-money * { overflow-anchor: none; }
