/* OCC Santa: mobile-first, fluid layouts. All controls remain legible/tappable at 320px.
   Display preference affects density only; it never disables viewport reflow. */
:root {
  color-scheme: light;
  --evergreen:#243f35; --pine:#19372e; --gold:#b99758;
  --cream:#f5f0e6; --paper:#fff; --surface:#f4f1e9;
  --line:#d9ded8; --text:#252c2a; --muted:#39463e;
  --danger:#973f43; --green:#245b3d;
  --shadow:0 5px 22px #243d340c;
  --gutter:12px; --card-pad:17px; --button-min:48px;
}
*,*::before,*::after {box-sizing:border-box}
html {font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--surface);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body {margin:0;line-height:1.48;min-width:0}
button,input,textarea {font:inherit}
button {touch-action:manipulation}
a {color:#14513f;text-underline-offset:2px;overflow-wrap:anywhere}
a:hover {text-decoration-thickness:2px}
:focus-visible {outline:3px solid #bd8741;outline-offset:3px}
.wrap {width:calc(100% - 2 * var(--gutter));max-width:1140px;margin-inline:auto;min-width:0}
.narrow {max-width:730px}
.mast {background:linear-gradient(120deg,#19372e,#243f35 78%,#48634d);color:#fff;padding:19px 0 21px;border-bottom:4px solid var(--gold)}
.mast.compact {padding:15px 0 17px}
.mast-inner {display:flex;flex-direction:column;gap:14px;min-width:0}
.mast-copy {min-width:0}
.eyebrow {font-size:.68rem;letter-spacing:.16em;font-weight:800;color:#f1ce91}
.mast h1 {font-family:Georgia,serif;font-size:clamp(1.75rem,6.7vw,3.1rem);line-height:1.12;font-weight:500;margin:6px 0}
.mast p {color:#e0ede6;font-size:.91rem;margin:0;max-width:40ch}
.layout-picker {display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.layout-label {font-size:.75rem;font-weight:700;letter-spacing:.03em;color:#e8eee9}
.layout-choices {display:inline-flex;align-items:center;gap:2px;background:#ffffff1c;border:1px solid #ffffff65;border-radius:11px;padding:3px;max-width:100%}
.layout-option {background:transparent;color:#f3f7f3;border:1px solid transparent;border-radius:8px;min-height:44px;min-width:65px;padding:7px 10px;font-size:.8rem;font-weight:750;cursor:pointer}
.layout-option[aria-pressed="true"] {background:#fff;color:var(--evergreen);box-shadow:0 2px 8px #0a241c55}
.layout-option:focus-visible {outline-color:#fff}
.panel {background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:var(--card-pad);box-shadow:var(--shadow);margin:14px 0}
.panel:focus {outline:none}
.panel h2 {font-family:Georgia,serif;font-weight:500;font-size:clamp(1.45rem,5.2vw,1.85rem);line-height:1.2;margin:0 0 10px}
.panel p {overflow-wrap:anywhere}
.muted,.help {color:var(--muted)}
.small,.help {font-size:.86rem}
.help {margin:6px 0 12px}
.field {margin-top:18px;min-width:0}
label,legend {font-weight:730;display:block;margin-bottom:7px;line-height:1.35}
input:not([type=radio]):not([type=checkbox]),textarea {display:block;width:100%;min-width:0;padding:12px 13px;border:1px solid #9caea2;border-radius:10px;background:#fff;color:#242b28;font-size:16px;min-height:49px;outline-offset:3px}
input:focus,textarea:focus {border-color:#38755c;box-shadow:0 0 0 3px #38755c20}
input:disabled {opacity:.7}
textarea {resize:vertical;white-space:pre-wrap;min-height:112px}
.two-col {display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.required {color:#a5232b}
.charcount {text-align:right;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:5px}
.question {border:1px solid var(--line);padding:12px;border-radius:12px;margin:21px 0 13px;min-width:0}
.question legend {max-width:100%;padding:0 3px;font-size:1rem}
.choices {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.choices label {display:flex;align-items:center;gap:10px;min-width:0;min-height:52px;margin:0;padding:10px 13px;border:2px solid #d4ddd5;border-radius:10px;cursor:pointer;font-weight:710;user-select:none}
.choices label:has(input:checked) {border-color:var(--evergreen);background:#e9f3ed}
.choices input,.checklabel input {width:20px;height:20px;accent-color:var(--evergreen);flex-shrink:0}
.choices label:has(input:focus-visible) {outline:3px solid var(--gold);outline-offset:3px}
.consent {border-top:1px solid var(--line);padding-top:19px;margin-top:22px}
.checklabel {display:flex;align-items:flex-start;gap:12px;font-size:.91rem;font-weight:400;line-height:1.53;margin:0 0 20px;min-width:0}
.checklabel input {margin:3px 0 0}
.checklabel span {min-width:0;overflow-wrap:anywhere}
.btn {display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #8daba0;padding:11px 16px;border-radius:10px;text-align:center;text-decoration:none;font-size:.92rem;line-height:1.2;min-height:var(--button-min);font-weight:750;cursor:pointer;max-width:100%;overflow-wrap:anywhere;white-space:normal}
.btn.primary {background:var(--evergreen);color:#fff;border-color:var(--evergreen)}
.btn.primary:hover:not(:disabled) {background:#255c49}
.btn.secondary {color:var(--evergreen);background:#fff}
.btn:hover:not(:disabled) {filter:brightness(.97)}
.btn:disabled {opacity:.54;cursor:not-allowed}
.btn.big {display:flex;width:100%;padding:14px;margin-top:16px;min-height:54px;font-size:1rem}
.error {color:#b42329;font-weight:700;white-space:pre-wrap;overflow-wrap:anywhere}
.warning {color:#975100;font-weight:700;overflow-wrap:anywhere}
.actions {display:flex;flex-wrap:wrap;align-items:stretch;gap:9px;min-width:0}
.actions .btn {flex:1 1 155px;min-width:0}
.summary {display:grid;grid-template-columns:minmax(0,1fr);gap:3px;border-top:1px solid var(--line);padding-top:18px;margin:17px 0 20px}
.summary dt {font-weight:800;color:var(--muted)}
.summary dd {margin:0 0 13px;white-space:pre-wrap;overflow-wrap:anywhere}
.success {text-align:center}
.success-icon {display:grid;place-items:center;width:64px;height:64px;margin:0 auto 12px;background:#d9eee1;color:#195d38;border-radius:100%;font-size:2rem}
.ticket {color:var(--muted);font-weight:800}
.foot {padding:22px 0 calc(26px + env(safe-area-inset-bottom));color:#58685e;font-size:.82rem}
/* Staff queue: one-card-per-family preserves chronological scanning on small screens. */
.adminwrap {padding-top:8px}
.toolbar {display:flex;align-items:flex-start;justify-content:space-between;flex-direction:column;gap:12px;margin:17px 0}
.toolbar>div {min-width:0;max-width:100%}
.toolbar h2 {margin:0;font-family:Georgia,serif;font-size:clamp(1.4rem,4.4vw,1.8rem);font-weight:500}
.toolbar p {margin:4px 0}
.toolbar .actions {width:100%}
.toolbar .actions .btn {flex:1 1 140px;font-size:.84rem}
.stats {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.stat {padding:13px 12px;background:#fff;border:1px solid var(--line);border-radius:11px;display:flex;flex-direction:column;gap:2px;min-width:0}
.stat strong {font-size:clamp(1.05rem,4vw,1.43rem);line-height:1.25;overflow-wrap:anywhere}
.stat span {font-size:.8rem;color:var(--muted)}
.stats>.stat:last-child {grid-column:auto}
.queue {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:19px 0}
.queue-card {min-width:0;border:1px solid var(--line);background:#fff;border-radius:12px;padding:var(--card-pad);box-shadow:0 4px 14px #1e382407;overflow-wrap:anywhere}
.queue-card.is-active {border-left:5px solid #1b6851}
.queue-card.is-called {border-left:5px solid var(--gold)}
.queue-head {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}
.family-info {min-width:0}
.family-name {display:block;font-size:clamp(1.06rem,4.1vw,1.22rem);font-weight:750;line-height:1.32;overflow-wrap:anywhere}
.eta {font-weight:850;font-size:clamp(1rem,4vw,1.2rem);color:var(--evergreen);font-variant-numeric:tabular-nums;text-align:right;max-width:90px;line-height:1.25}
.tags {display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.tag {display:inline-flex;align-items:center;font-size:.7rem;font-weight:850;letter-spacing:.01em;padding:5px 8px;border-radius:6px;max-width:100%;overflow-wrap:anywhere}
.tag-red {color:#a01821;background:#ffebea}
.tag-green {color:#08733f;background:#e1f5e9}
.tag-neutral {color:#445a4c;background:#eaece8}
.queue-details {display:grid;grid-template-columns:minmax(0,1fr);gap:7px;color:var(--muted);font-size:.89rem;margin:16px 0}
.queue-detail {min-width:0;display:flex;flex-wrap:wrap;gap:5px;align-items:baseline}
.queue-detail-label {font-size:.77rem;font-weight:800;color:#5c6a61;min-width:54px}
.queue-detail a {overflow-wrap:anywhere}
.note-display {background:var(--cream);border-left:3px solid var(--gold);padding:11px 12px;overflow-wrap:anywhere;white-space:pre-wrap;font-size:.89rem;margin:14px 0}
.notes-area {margin:16px 0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.notes-area label {font-size:.86rem;margin:0}
.notes-area textarea {min-height:76px}
.notes-area .btn {width:100%}
.queue-card>.actions {border-top:1px solid var(--line);padding-top:14px}
.queue-card>.actions .btn {flex:1 1 100%}
.empty {padding:32px 20px;text-align:center;background:#fff;border:1px dashed #bbc9bf;border-radius:12px;color:var(--muted)}
.report-panel {margin-top:27px}
.report-panel .toolbar {margin-top:0}
.report-panel .toolbar .btn {flex:1 1 185px}
.status-message {padding:12px 15px;background:#e4f0e7;border:1px solid #afd1b9;border-radius:9px;overflow-wrap:anywhere}
.status-message.error {background:#fff0ed;border-color:#e5bcb5}
.table-scroll {overflow-x:auto;max-width:100%}
table {border-collapse:collapse;width:100%;font-size:.87rem}
th,td {text-align:left;border-bottom:1px solid #deded8;padding:12px 10px;vertical-align:top;overflow-wrap:anywhere}
th {background:#f6f6f1}
.mobile-dock {display:flex;align-items:stretch;position:fixed;bottom:0;left:0;right:0;z-index:20;gap:8px;padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid var(--line);background:#fffffff5;box-shadow:0 -6px 20px #17382d14;backdrop-filter:blur(12px)}
.mobile-dock .btn {flex:1 1 0;min-width:0}
.mobile-dock .btn:first-child {flex:2 1 0}
body.staff-page:has(#dashboard:not([hidden])) {padding-bottom:calc(82px + env(safe-area-inset-bottom))}
.visually-hidden {position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
[hidden] {display:none!important}
/* Stacked, labeled feedback rows for phone-size report viewing. */
@media(max-width:639px) {
  .table-scroll {overflow:visible}
  #feedback-area table,#feedback-area tbody,#feedback-area tr,#feedback-area td {display:block;width:100%}
  #feedback-area thead {display:none}
  #feedback-area tr {border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:6px 10px;background:#fff}
  #feedback-area td {display:grid;grid-template-columns:minmax(77px,30%) minmax(0,1fr);gap:10px;align-items:start;padding:10px 4px;border-bottom:1px solid var(--line)}
  #feedback-area td:last-child {border-bottom:0}
  #feedback-area td::before {content:attr(data-label);font-weight:800;color:var(--muted);font-size:.8rem}
}
@media(min-width:480px) {
  :root {--gutter:18px;--card-pad:22px}
  .mast {padding:24px 0}
  .panel {margin:18px 0}
  .queue-details {grid-template-columns:repeat(2,minmax(0,1fr))}
  .queue-card>.actions .btn {flex:1 1 190px}
  .notes-area {grid-template-columns:minmax(0,1fr) auto}
  .notes-area label {grid-column:1/-1}
  .notes-area .btn {width:auto;align-self:end}
}
@media(min-width:700px) {
  :root {--gutter:24px;--card-pad:26px}
  .mast-inner {flex-direction:row;justify-content:space-between;align-items:center;gap:20px}
  .layout-picker {justify-content:flex-end}
  .two-col {grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .summary {grid-template-columns:155px minmax(0,1fr);gap:12px}
  .summary dd {margin:0}
  .toolbar {flex-direction:row;align-items:center}
  .toolbar .actions {width:auto;justify-content:flex-end}
  .stats {grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .stats>.stat:last-child {grid-column:auto}
  .queue-details {grid-template-columns:repeat(3,minmax(0,1fr))}
  .mobile-dock {display:none}
  body.staff-page:has(#dashboard:not([hidden])) {padding-bottom:0}
}
@media(min-width:940px) {
  :root {--card-pad:28px}
  .mast h1 {font-size:3rem}
  .queue-card {padding:22px 26px}
  .queue-details {gap:20px}
  .notes-area {grid-template-columns:minmax(0,1fr) 145px}
}
/* Manually selected mobile view stays a comfortable one-column layout on a desktop. */
html[data-layout="mobile"] .narrow {max-width:600px}
html[data-layout="mobile"] .adminwrap {max-width:710px}
html[data-layout="mobile"] .mast-inner {flex-direction:column;align-items:stretch}
html[data-layout="mobile"] .layout-picker {justify-content:flex-start}
html[data-layout="mobile"] .two-col,html[data-layout="mobile"] .summary {grid-template-columns:minmax(0,1fr);gap:0}
html[data-layout="mobile"] .summary dd {margin-bottom:12px}
html[data-layout="mobile"] .toolbar {flex-direction:column;align-items:stretch}
html[data-layout="mobile"] .toolbar .actions {width:100%;justify-content:flex-start}
html[data-layout="mobile"] .queue-details {grid-template-columns:minmax(0,1fr)}
html[data-layout="mobile"] .notes-area {grid-template-columns:minmax(0,1fr)}
html[data-layout="mobile"] .notes-area label {grid-column:auto}
html[data-layout="mobile"] .notes-area .btn {width:100%}
html[data-layout="mobile"] .mobile-dock {display:flex}
html[data-layout="mobile"] body.staff-page:has(#dashboard:not([hidden])) {padding-bottom:calc(82px + env(safe-area-inset-bottom))}
/* Desktop preference means more compact cards, but even a 320px device never
   gets a forced 1100px viewport or microscopic scaled text. */
html[data-layout="desktop"] {--card-pad:14px}
html[data-layout="desktop"] .mast {padding-block:14px}
html[data-layout="desktop"] .panel {border-radius:8px;margin-block:10px}
html[data-layout="desktop"] .queue {gap:8px}
html[data-layout="desktop"] .queue-card {border-radius:8px}
html[data-layout="desktop"] .stat {padding:10px 12px}
html[data-layout="desktop"] .field {margin-top:12px}
html[data-layout="desktop"] .question {margin-block:14px}
html[data-layout="desktop"] .queue-details {margin-block:9px}
html[data-layout="desktop"] .notes-area {margin-block:10px}
@media(min-width:540px) {
  html[data-layout="desktop"] .two-col {grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  html[data-layout="desktop"] .summary {grid-template-columns:160px minmax(0,1fr);gap:10px}
  html[data-layout="desktop"] .summary dd {margin:0}
  html[data-layout="desktop"] .queue-details {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:760px) {
  html[data-layout="desktop"] .queue-details {grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:699px) {
  html[data-layout="desktop"] .mast-inner {gap:7px}
  html[data-layout="desktop"] .layout-picker {justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior:auto!important;transition:none!important}}
@media print {
  .mast,.foot,.stats,.queue,.mobile-dock,.toolbar>.actions,.status-message,.help,.btn,.toolbar p {display:none!important}
  body.staff-page,html[data-layout="mobile"] body.staff-page {padding-bottom:0!important}
  body {background:#fff;color:#000}
  .panel {box-shadow:none;border:0;padding:0}
  .report-panel,.report-panel .toolbar,.report-panel .toolbar h2 {display:block!important}
  .table-scroll {overflow:visible!important}
  #feedback-area table {display:table!important}
  #feedback-area thead {display:table-header-group!important}
  #feedback-area tbody {display:table-row-group!important}
  #feedback-area tr {display:table-row!important;border:0!important;padding:0!important}
  #feedback-area td {display:table-cell!important;padding:10px!important;border-bottom:1px solid #ccc!important}
  #feedback-area td::before {display:none!important}
}

/* Queue pause / close controls: mobile-first, full-size tap targets */
.section-list {margin:22px 0 26px;min-width:0}
.section-list>.toolbar {margin-bottom:8px}
.section-list>.queue {margin-top:11px}
.heading-count {font-family:system-ui,sans-serif;font-size:.7em;color:var(--muted)}
.queue-card.is-held {border-left:5px solid #a26e1f;background:#fffefa}
.tag-hold {background:#fff0d2;color:#83520e}
.eta-muted {color:#83520e}
.queue-card .btn.danger {background:#fff0ee;color:#991e25;border:1px solid #e8a5a8}
.queue-card .btn.danger:hover {background:#ffe1df}
.closed-list {display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:12px 0 24px}
.closed-item {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);background:#fff;border-radius:10px}
.closed-info {display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
@media(min-width:700px) {.closed-list{grid-template-columns:repeat(2,minmax(0,1fr))} .queue-card>.actions .btn{flex:1 1 185px}}
@media print {.section-list{display:none}}

/* Version 5: manual entry and confirmation status. */
.manual-back {margin:16px 0 0}
.manual-back .btn {display:inline-flex;width:auto;min-height:44px}
.confirmation-check {border-left:5px solid var(--green);background:#f0f7ef;padding:12px 16px;border-radius:9px;margin:13px 0}
.confirmation-hold {border-left:5px solid #a52731;background:#fff2ef;padding:12px 16px;border-radius:9px;margin:13px 0}
#pending-list .queue-card>label {margin:15px 0 10px;max-width:360px}
@media(max-width:479px){.mobile-dock .btn{font-size:.78rem;padding-inline:6px}.mobile-dock .btn:first-child{flex:1.45 1 0}}
@media print {.manual-back,.pending-section{display:none!important}}

.held-editor {border:1px solid var(--line);background:#f8f9f5;border-radius:10px;padding:16px;display:grid;gap:12px;margin-top:15px}
.held-editor label {display:block;font-size:.86rem}
.held-editor label>input,.held-editor label>textarea,.held-editor label>select {margin-top:6px;width:100%;min-width:0;min-height:48px;border:1px solid #9caea2;border-radius:9px;background:#fff;padding:10px;font-size:16px}
.held-editor h3 {margin:0;font-size:1.1rem}

/* v6: high-contrast, compact staff queue. No low-contrast gray-on-white text. */
body.staff-page {--muted:#27362f;--text:#101c17;--line:#b3c0b7;--card-pad:11px}
body.staff-page .muted,body.staff-page .help,body.staff-page .stat span,
body.staff-page .queue-details,body.staff-page .queue-detail-label,
body.staff-page .heading-count,body.staff-page .foot {color:#26392f}
body.staff-page .queue {gap:6px;margin:10px 0}
body.staff-page .queue-card {padding:10px 13px;border-color:#abb9ae;box-shadow:none;border-radius:8px}
body.staff-page .family-name {font-size:1rem;color:#10261b}
body.staff-page .queue-head {align-items:center}
body.staff-page .tags {margin-top:4px;gap:4px}
body.staff-page .tag {padding:3px 6px;font-size:.69rem}
body.staff-page .tag-neutral {color:#182e22;background:#dfe7df}
body.staff-page .tag-green {color:#075a30}
body.staff-page .tag-red {color:#941420}
body.staff-page .eta {font-size:1rem}
body.staff-page .queue-details {margin:6px 0;gap:5px 14px;grid-template-columns:repeat(2,minmax(0,1fr))}
body.staff-page .queue-detail {gap:4px;font-size:.84rem}
body.staff-page .queue-detail-label {min-width:0;color:#26392f}
body.staff-page .queue-card>.actions {border:0;padding:0;margin:6px 0 0;gap:6px}
body.staff-page .queue-card>.actions .btn {flex:0 1 auto;width:auto;min-height:36px;padding:7px 12px;font-size:.82rem}
body.staff-page .queue-extra,body.staff-page .action-more {font-size:.83rem;margin-top:6px}
body.staff-page .queue-extra>summary,body.staff-page .action-more>summary {cursor:pointer;color:#164d37;font-weight:750;list-style-position:inside;padding:3px 0}
body.staff-page .queue-extra .notes-area {margin:7px 0 3px}
body.staff-page .queue-extra .note-display {margin:6px 0;padding:7px}
body.staff-page .queue-extra textarea {min-height:66px}
body.staff-page .action-more>.actions {margin:5px 0;gap:6px}
body.staff-page .action-more .btn {min-height:36px;padding:6px 10px;font-size:.8rem}
body.staff-page .stat {padding:8px 10px}
body.staff-page .stats {gap:7px}
body.staff-page .help {line-height:1.4}
body.staff-page a {color:#07523a}
@media(min-width:940px) {body.staff-page .queue-card {padding:10px 14px}}
@media(max-width:470px) {body.staff-page .queue-details {grid-template-columns:1fr}body.staff-page .queue-card>.actions .btn{width:100%}}
/* v7: high-contrast, operations-first admin. Desktop queue reads like a table. */
body.staff-page {--muted:#24392d;--text:#0c2017;--line:#9aafa2;color:#0c2017}
body.staff-page .mast.compact {padding:6px 0;border-bottom-width:2px}
body.staff-page .mast h1 {font-size:1.35rem;font-family:system-ui,sans-serif;font-weight:800;margin:0}
body.staff-page .eyebrow {font-size:.58rem}
body.staff-page .mast-inner {flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
body.staff-page .layout-choices .layout-option {min-height:30px;padding:3px 7px}
body.staff-page .main-toolbar {margin:9px 0;align-items:center}
body.staff-page .main-toolbar h2 {font-family:system-ui,sans-serif;font-size:1.15rem;font-weight:800}
body.staff-page .main-toolbar .actions .btn {min-height:34px;padding:6px 9px;flex:0 0 auto}
body.staff-page .stats {grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
body.staff-page .stat {flex-direction:row;align-items:center;gap:8px;padding:5px 10px;border-radius:5px}
body.staff-page .stat strong {font-size:1.05rem;white-space:nowrap}
body.staff-page .stat span {font-size:.77rem;color:#26392f;font-weight:650}
body.staff-page .queue-card {display:grid;grid-template-columns:minmax(180px,2.2fr) minmax(145px,1.25fr) 82px minmax(145px,auto);align-items:center;gap:7px 10px;padding:5px 9px;border-radius:5px}
body.staff-page .queue-head {display:contents}
body.staff-page .family-info {grid-column:1;grid-row:1}
body.staff-page .family-name {font-size:.88rem;font-weight:800}
body.staff-page .tags {display:flex;flex-wrap:wrap;gap:3px;margin:1px 0 0}
body.staff-page .tag {padding:1px 4px;font-size:.62rem}
body.staff-page .queue-details {grid-column:2;grid-row:1;display:flex;gap:2px;flex-direction:column;margin:0;font-size:.76rem}
body.staff-page .queue-details .queue-detail {gap:4px;font-size:.76rem}
body.staff-page .queue-card>.eta {grid-column:3;grid-row:1}
body.staff-page .queue-head>.eta {grid-column:3;grid-row:1;font-weight:800;font-size:.9rem;text-align:center}
body.staff-page .queue-card>.actions {grid-column:4;grid-row:1;margin:0;justify-content:flex-end}
body.staff-page .queue-card>.actions .btn {min-height:33px;padding:5px 9px;font-size:.76rem;white-space:nowrap}
body.staff-page .queue-extra,body.staff-page .action-more {grid-column:1/-1;margin:0;font-size:.78rem}
body.staff-page .queue-card .action-more {grid-row:2}
body.staff-page .queue-card .queue-extra {grid-row:3}
body.staff-page .queue-card .warning,body.staff-page .queue-card .error {grid-column:1/-1;margin:2px}
body.staff-page .workflow-help {font-size:.79rem;color:#162d20;margin:7px 0}
body.staff-page .workflow-help p {margin:4px 0}
body.staff-page .staff-section {border:1px solid #9aafa2;background:#fff;border-radius:7px;margin:9px 0;padding:7px 10px}
body.staff-page .staff-section>summary {cursor:pointer;font-size:.89rem;font-weight:800;color:#0e2e1c}
body.staff-page .staff-section .section-list {margin:5px 0}
body.staff-page .staff-section .toolbar {margin:6px 0}
body.staff-page .tag-onway {background:#d9e7ff;color:#173b78;border:1px solid #6c91d5}
body.staff-page .read-only-template textarea {background:#e9edea;color:#314438}
body.staff-page .settings-meta,body.staff-page .reply-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
body.staff-page .template-fields {display:grid;gap:12px}
body.staff-page .template-fields textarea {min-height:88px}
body.staff-page .template-fields label,body.staff-page .reply-fields label {font-weight:750;font-size:.86rem}
body.staff-page .template-length {font-weight:500;color:#253d2e;font-size:.76rem}
body.staff-page .reply-fields input {max-width:100px}
body.staff-page .settings-footer {display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
body.staff-page .settings-page h2 {font-family:system-ui}
@media(max-width:820px){body.staff-page .queue-card{grid-template-columns:minmax(0,1fr) 75px;gap:5px}body.staff-page .family-info{grid-column:1;grid-row:1}body.staff-page .queue-head>.eta{grid-column:2;grid-row:1}body.staff-page .queue-details{grid-column:1;grid-row:2}body.staff-page .queue-card>.actions{grid-column:1/-1;grid-row:3;justify-content:flex-start}body.staff-page .queue-card .action-more{grid-row:4}body.staff-page .queue-card .queue-extra{grid-row:5}body.staff-page .stats{grid-template-columns:repeat(2,minmax(0,1fr))}body.staff-page .settings-meta,body.staff-page .reply-fields{grid-template-columns:1fr}}

/* Guest registration: compact, high-contrast and mobile-first. */
#entry-panel {--card-pad:18px}
#entry-panel h2 {margin-bottom:4px}
#entry-panel .checkin-intro {margin:0 0 9px;color:#263b31;font-size:.94rem}
#entry-panel .field {margin-top:11px}
#entry-panel .question {margin:13px 0 8px;padding:10px 12px}
#entry-panel .question .help {margin:2px 0 8px}
#entry-panel .choices label {min-height:45px;padding:8px 12px}
#entry-panel .optional-details {margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
#entry-panel .optional-details summary {font-weight:800;cursor:pointer;color:var(--evergreen);padding:4px 0}
#entry-panel .optional-details summary span {font-weight:500;color:#34493d}
#entry-panel .optional-details textarea {min-height:72px}
#entry-panel .release-consent {padding:11px 12px;background:#f2f7f2;border:1px solid #b5c9b8;border-radius:10px;margin-top:15px}
#entry-panel .release-consent .checklabel {margin:0}
#entry-panel .release-pending {display:block;font-weight:600;color:#70521f;margin-top:3px}
#entry-panel .consent {padding-top:12px;margin-top:12px}
#entry-panel .consent .checklabel {margin-bottom:11px}
#entry-panel .consent .help {font-size:.8rem;margin:0}
#entry-panel .btn.big {margin-top:12px}
@media(min-width:700px) {#entry-panel {--card-pad:22px}#entry-panel .two-col {gap:12px}}

/* Official branding (registration and staff headers). */
.checkin-logo-link{display:block;width:min(100%,440px);margin:7px 0 5px}.checkin-logo{display:block;width:100%;height:auto}.staff-logo-link{display:block;width:225px;max-width:100%;margin-bottom:9px}.staff-logo{display:block;width:100%;height:auto}@media(max-width:600px){.checkin-logo-link{width:min(100%,310px)}.staff-logo-link{width:190px}}

/* Three clear consent decisions; separate acknowledgment from optional permissions. */
#entry-panel .consent-section {margin-top:22px}
#entry-panel .consent-section h3 {font:600 clamp(1.18rem,2vw,1.45rem)/1.2 Georgia,serif;margin:0 0 4px;color:var(--evergreen)}
#entry-panel .consent-intro {font-size:.9rem;margin:0 0 12px;color:#34483c}
#entry-panel .consent-cards {display:grid;grid-template-columns:minmax(0,1fr);gap:13px}
#entry-panel .consent-card {display:flex;flex-direction:column;min-width:0;border:1px solid #cbd2c8;border-top:3px solid var(--gold);border-radius:11px;background:#faf9f5;overflow:hidden}
#entry-panel .consent-card h4 {font-size:1.06rem;line-height:1.3;color:#243f35;margin:0;padding:14px 14px 8px;min-height:68px}
#entry-panel .consent-required,#entry-panel .consent-optional {display:block;font-family:system-ui,sans-serif;font-size:.7rem;font-weight:750;letter-spacing:.04em;margin-top:5px;color:#5b4530;text-transform:uppercase}
#entry-panel .consent-optional {color:#46604d}
#entry-panel .consent-card-description {font-size:.88rem;line-height:1.55;color:#26332d;margin:0;padding:0 14px 14px;flex:1}
#entry-panel .consent-card-footer {margin-top:auto}
#entry-panel .consent-choice {display:flex;align-items:center;gap:10px;min-height:63px;margin:0;padding:13px 14px;background:#e8eee6;border-top:1px solid #cbd8cc;font-size:.92rem;font-weight:750;line-height:1.4;cursor:pointer;color:#19372e}
#entry-panel .consent-choice:has(input:checked) {background:#dbe9da}
#entry-panel .consent-choice input,#entry-panel .consent-subchoice input {flex-shrink:0;width:22px;height:22px;accent-color:var(--evergreen);margin:0}
#entry-panel .consent-subchoice {display:flex;align-items:flex-start;gap:10px;margin:0;padding:11px 14px;background:#f1f4ed;font-size:.81rem;line-height:1.4;font-weight:500;cursor:pointer;color:#293e32;border-top:1px solid #d1dfd3}
#entry-panel .consent-subchoice:has(input:disabled) {cursor:default}
#entry-panel .consent-afterword {font-size:.83rem;color:#35483e;margin:9px 0 0}
/* Widen registration only; review and confirmation screens remain compact. */
body:has(#entry-panel:not([hidden])) main.narrow {max-width:1120px}
#entry-panel .field,#entry-panel .two-col,#entry-panel .question,#entry-panel .optional-details,#entry-panel .checkin-intro {max-width:800px}
@media(min-width:820px) {
  #entry-panel .consent-cards {grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:820px) and (max-width:1030px) {
  #entry-panel .consent-card h4 {font-size:1rem}
  #entry-panel .consent-card-description {font-size:.84rem}
}
@media(max-width:819px) {
  body:has(#entry-panel:not([hidden])) main.narrow {max-width:730px}
  #entry-panel .consent-card h4 {min-height:0}
}

/* Compact guest confirmation: summary first, optional details last. */
#success-panel .success-intro{margin:0 auto 18px;color:#253c32}
#success-panel .success-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
#success-panel .success-metrics>div{background:#f0f1e9;border:1px solid #ccd5c8;border-radius:10px;padding:20px 12px;min-width:0}
#success-panel .success-metrics span{display:block;font-weight:700;color:#193b31;margin-bottom:9px}
#success-panel .success-metrics strong{display:block;font:700 clamp(27px,5vw,39px) Georgia,serif;color:#193b31}
#success-panel #success-guidance{font-weight:600;color:#17392d}
#success-panel .success-details{text-align:left;border-top:1px solid #d9e0d7;margin-top:22px;padding-top:15px}
#success-panel .success-details summary{cursor:pointer;font-weight:750;color:#193b31;padding:9px 2px}
#success-panel .success-details .summary{font-size:14px;line-height:1.5;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:9px 14px}
#success-panel .success-details .summary dt,#success-panel .success-details .summary dd{margin:0}
@media(max-width:520px){#success-panel .success-metrics>div{padding:14px 8px}#success-panel .success-details .summary{grid-template-columns:1fr;gap:2px}#success-panel .success-details .summary dd{margin-bottom:10px}}

/* v28: optional SMS opt-in is offered before the waiting-page CTA. */
#success-panel .confirmation-sms-optin{text-align:left;margin:18px 0 14px;padding:17px;background:#f5f0e6;border:1px solid #cbd5ca;border-radius:12px;color:#193b31}
#success-panel .confirmation-sms-optin h3{font:700 clamp(19px,4vw,23px) Georgia,serif;margin:0 0 8px}
#success-panel .confirmation-sms-optin p{margin:8px 0;line-height:1.5}
#success-panel .confirmation-sms-optin .sms-consent-copy{font-size:14px}
#success-panel .confirmation-sms-check{display:flex;align-items:center;gap:10px;margin:15px 0;font-weight:700}
#success-panel .confirmation-sms-check input{width:21px;height:21px;flex:none;accent-color:#24523e}
#success-panel .confirmation-sms-verify-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#success-panel .confirmation-sms-verify-row input{width:170px;max-width:100%}
#success-panel .confirmation-sms-optin button:disabled{opacity:.55;cursor:not-allowed}
#success-panel #confirmation-sms-feedback{font-size:14px;font-weight:600}
