/* Typography shared by the marketing site, workspace and managed tablet. */
:root {
  --studio-font: "Approval Sans", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --studio-ink: #263c35;
  --studio-muted: #596a61;
  --studio-rule: #e3e6dc;
  font-family: var(--studio-font);
}
body, button, input, select, textarea { font-family: var(--studio-font); }
body { -webkit-font-smoothing: antialiased; }
.workspace, .ops-screen, .display-screen { background: #f8f8f4; color: var(--studio-ink); }
.workspace .page-heading h1, .ops-screen .page-heading h1, .display-screen .page-heading h1 {
  font-size: clamp(21px,2vw,24px); line-height: 1.35; font-weight: 680; letter-spacing: -.045em;
}
.workspace .page-heading p, .workspace .field small, .workspace .document-item p { font-size: 12.5px; }
.workspace .brand, .ops-screen .brand, .display-screen .brand { font-size: 19px; font-weight: 700; }
.workspace .nav-item { font-size: 13px; }
.workspace .sidebar-primary { border-radius: 10px; }
.workspace .nav-item.active { background:#e9f1e9; color:#205e50; }
.workspace .demo-banner { background: #f2f3ee; color:#56665c; padding-top:6px; padding-bottom:6px; }
.workspace .demo-badge { background:#e3e9de; color:#486048; }
.workspace .app-header { height:60px; }
.workspace .stat strong, .workspace .board-metrics strong, .workspace .real-ticket .ticket-number, .display-board > strong {
  font-family: var(--studio-font); font-variant-numeric:tabular-nums;
}
.workspace .guide-card, .workspace .readable, .workspace .panel, .workspace .table-panel, .workspace .document-item,
.workspace .form-card, .workspace .console-board, .workspace .institution-card { border-color:var(--studio-rule); }
#content { min-width: 0; }

/* Three illustrated steps; the right place for details is below the strip. */
.story-guide, .queue-home { max-width:1140px; margin:0 auto; }
.story-heading, .queue-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 22px; }
.story-heading h1, .queue-heading h1 { font-size:24px; letter-spacing:-.048em; font-weight:680; line-height:1.4; margin:4px 0 0; }
.section-label, .queue-heading > span { font-size:12px; font-weight:520; color:var(--studio-muted); }
.buddy-tag { padding:5px 10px; border-radius:20px; display:flex; align-items:center; gap:5px; background:#fff0df; color:#845037; font-size:11px; }
.buddy-tag b { font-weight:670; }
.story-sequence { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; padding:0; margin:0; }
.story-card { background:#fff; border:1px solid var(--studio-rule); border-radius:18px; overflow:hidden; min-width:0; display:flex; flex-direction:column; }
.story-art { padding:10px 10px 0; }
.story-art img { width:100%; height:auto; display:block; border-radius:12px; }
.story-caption { padding:18px; position:relative; flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.story-index { font-size:11px; color:#67736b; letter-spacing:.065em; font-weight:620; }
.story-caption h2 { font-size:17px; font-weight:680; line-height:1.45; margin:6px 0; letter-spacing:-.035em; }
.story-caption p { font-size:13px; line-height:1.65; color:var(--studio-muted); margin:0 0 12px; }
.story-caption a, .story-place { display:inline-flex; gap:10px; align-items:center; font-size:12px; font-weight:630; color:#225e4d; margin-top:auto; padding:6px 0; min-height:30px; }
.story-caption a:hover { text-decoration:underline; text-underline-offset:4px; }
.arrival-rule { display:flex; align-items:center; gap:10px; border-radius:10px; background:#eef2e9; color:#405c46; margin:15px 0 26px; padding:11px 15px; }
.arrival-rule svg { width:20px; height:20px; display:block; }
.arrival-rule p { margin:0; font-size:13px; line-height:1.65; }
.story-faq { background:#fff; border:1px solid var(--studio-rule); border-radius:14px; padding:18px 22px 5px; }
.story-faq h2 { font-size:15px; margin:0 0 10px; }
.story-faq details { border-top:1px solid #ebeee7; }
.story-faq summary { display:flex; justify-content:space-between; align-items:center; list-style:none; cursor:pointer; padding:13px 0; color:#394d42; font-size:13px; font-weight:530; }
.story-faq summary::-webkit-details-marker, .pass-details summary::-webkit-details-marker { display:none; }
.story-faq summary::after { content:'+'; color:#67806c; font-size:16px; }
.story-faq details[open] summary::after { content:'−'; }
.story-faq p { margin:0 0 15px; font-size:13px; line-height:1.8; color:var(--studio-muted); }

/* The personal ticket and queue are the two primary reading surfaces. */
.queue-overview { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(200px,.85fr); gap:16px; margin-bottom:24px; }
.pocket-pass { display:flex; background:#e6f0e6; border:1px solid #ccdecd; border-radius:16px; min-width:0; overflow:hidden; }
.pass-main { padding:17px 21px; flex:1; min-width:0; }
.pass-label { color:#476c52; font-size:11px; font-weight:620; }
.pass-main h2 { font-size:19px; font-weight:680; margin:6px 0; line-height:1.4; color:#254c39; }
.pass-main p { font-size:12.5px; line-height:1.65; color:#526953; margin:0; }
.pass-main a { font-size:12px; font-weight:640; display:inline-block; color:#295c41; padding:6px 0; margin-top:5px; }
.pass-stub { display:grid; place-items:center; flex:0 0 27%; min-width:90px; border-left:2px dashed #becfb9; position:relative; background:#eff5e9; }
.pass-stub::before, .pass-stub::after { content:''; background:#f8f8f4; width:14px; height:14px; border:1px solid #ccdecd; border-radius:50%; position:absolute; left:-8px; }
.pass-stub::before { top:-8px; } .pass-stub::after { bottom:-8px; }
.pass-stub img { display:block; width:min(88%,100px); height:auto; }
.issued .pass-main h2 { font-size:27px; letter-spacing:-.035em; font-variant-numeric:tabular-nums; }
.inbox-counts { border:1px solid var(--studio-rule); border-radius:15px; padding:13px 18px 9px; background:#fff; }
.inbox-counts h2 { font-size:13px; margin:0 0 7px; font-weight:640; }
.inbox-counts a { display:flex; justify-content:space-between; align-items:center; padding:9px 0; border-top:1px solid #eceee8; }
.inbox-counts a span { font-size:12px; color:var(--studio-muted); }
.inbox-counts strong { color:#285742; font-size:17px; font-weight:640; font-variant-numeric:tabular-nums; }
.inbox-counts small { font-size:11px; margin-left:3px; font-weight:450; }
.counter-section { padding:19px 20px 5px; background:#fff; border:1px solid var(--studio-rule); border-radius:15px; }
.counter-title { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:12px; }
.counter-title h2, .queue-home .section-title h2 { font-size:16px; font-weight:665; letter-spacing:-.035em; }
.counter-section .filter-chips { padding-bottom:12px; }
.counter-section .chip { border-radius:20px; padding:5px 13px; min-height:32px; font-family:var(--studio-font); }
.counter-section .chip.active { color:#fff; background:#245d4d; border-color:#245d4d; }
.counter-list { display:block; }
.counter-row { display:grid; grid-template-columns:34px minmax(120px,1fr) 69px 65px 32px 52px; align-items:center; gap:12px; padding:13px 0; border-top:1px solid #e8ede6; }
.counter-code { display:grid; place-items:center; width:34px; height:36px; border-radius:9px; background:#f1ece2; color:#7a654a; font-size:14px; font-weight:640; }
.counter-row:nth-child(even) .counter-code { background:#e6eeed; color:#49766d; }
.counter-name { min-width:0; }
.counter-name h3 { font-size:14px; font-weight:640; margin:0 0 3px; }
.counter-name small { display:block; font-size:11.5px; line-height:1.55; color:#63736a; overflow-wrap:anywhere; }
.counter-state { justify-self:start; }
.counter-state .badge { font-size:10.5px; white-space:nowrap; }
.counter-wait { text-align:right; }
.counter-wait strong { font-size:18px; line-height:1.3; color:#294f3b; font-weight:670; font-variant-numeric:tabular-nums; }
.counter-wait small { font-size:11px; margin-left:2px; font-weight:475; }
.counter-wait span { display:block; font-size:11px; color:var(--studio-muted); }
.counter-star, .counter-detail { background:none; min-height:36px; }
.counter-star { font-size:20px; color:#758579; }
.counter-star[aria-pressed=true] { color:#ad6c21; }
.counter-detail { font-size:12px; font-weight:580; color:#395c48; padding:5px; }
.counter-detail span { font-size:15px; }
.counter-empty { padding:30px 0; color:var(--studio-muted); font-size:13px; text-align:center; }
.queue-home .recent-section { margin-top:24px; }

/* Receipts expose live status before secondary document details. */
.issued-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:16px; }
.issued-pass { padding:18px 20px; background:#fffdf5; border:1px solid #e0dbc9; border-radius:15px; min-width:0; }
.issued-pass header, .issued-face, .issued-stats { display:flex; justify-content:space-between; gap:14px; align-items:center; }
.issued-pass header { border-bottom:1px dashed #cdcdbb; padding-bottom:10px; font-size:12px; color:var(--studio-muted); }
.issued-face { padding:20px 0 14px; }
.issued-face span, .issued-face small { display:block; font-size:12px; color:var(--studio-muted); }
.issued-face strong { display:block; font-size:31px; line-height:1.3; font-weight:690; letter-spacing:-.045em; color:#205b44; margin:4px 0 7px; }
.issued-face b { font-size:14px; font-weight:630; }
.pass-progress { display:flex; list-style:none; padding:0; margin:12px 0 18px; }
.pass-progress li { flex:1; position:relative; padding-top:12px; color:#626f64; font-size:11px; }
.pass-progress li::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:#d9dfce; }
.pass-progress li.reached::before { background:#478364; }
.pass-progress [aria-current] { font-weight:700; color:#215b40; }
.issued-stats { padding:11px 0; border-top:1px dashed #d2d7c4; font-size:12px; color:#5a6d5d; }
.issued-stats b { font-size:14px; color:#31513a; }
.pass-details { border-top:1px solid #e4e7d8; font-size:12px; color:#5c6e60; }
.pass-details summary { padding:10px 0; cursor:pointer; }
.pass-details p { padding:2px 0 12px; line-height:1.8; }
.pass-cancel { padding:7px 0; background:none; color:#805a4a; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.unissued-pass { text-align:center; padding:24px 18px; border:1px dashed #d4dbc9; background:#fffdf8; border-radius:16px; }
.unissued-pass img { width:min(260px,100%); height:auto; border-radius:12px; }
.unissued-pass h2 { font-size:18px; margin:14px 0 6px; }
.unissued-pass p, .ticket-footnote { font-size:13px; line-height:1.75; color:var(--studio-muted); margin-bottom:16px; }
.ticket-footnote { margin-top:14px; }
.tablet-shell .tablet-brand { font-family:var(--studio-font); font-size:20px; }
.tablet-welcome-copy .arrival-scene { position:static; display:block; width:min(285px,85%); height:auto; margin:0 0 16px; border-radius:17px; }
.tablet-welcome-copy .tablet-eyebrow { font-size:12px; margin-bottom:6px; }
.tablet-shell .tablet-welcome-copy h1 { font-size:clamp(23px,2.5vw,29px); letter-spacing:-.04em; margin:0 0 9px; }
.tablet-shell .tablet-welcome-copy > p { font-size:14px; }
.tablet-shell .tablet-name-card h2,.tablet-shell .tablet-card h1,.tablet-shell .tablet-receipt h1 { font-size:21px; }
.tablet-shell .tablet-ticket-number { font:680 clamp(46px,6vw,70px)/1.25 var(--studio-font); font-variant-numeric:tabular-nums; }
.receipt-buddy { display:block; margin:0 auto 8px; }
@media (min-width:701px) and (max-width:1050px) {
  .counter-row { grid-template-columns:30px minmax(90px,1fr) 59px 42px 28px 43px; gap:7px; }
  .queue-overview { grid-template-columns:minmax(0,1.4fr) minmax(155px,.75fr); gap:12px; }
  .pass-main { padding:15px; } .pass-stub { min-width:70px; }
  .story-caption { padding:14px; }
}
@media(max-width:700px){
  .workspace #content { padding:20px 16px 25px; }
  .workspace .page-heading h1,.story-heading h1,.queue-heading h1 { font-size:21px; }
  .workspace .page-heading { margin-bottom:16px; }
  .workspace .app-header { height:54px; }
  .queue-heading { align-items:flex-start; flex-direction:column; gap:4px; margin-bottom:15px; }
  .queue-overview { grid-template-columns:1fr; gap:10px; margin-bottom:16px; }
  .pass-main { padding:13px 16px; } .pass-stub { flex-basis:26%; min-width:76px; }
  .pass-main h2 { font-size:17px; } .issued .pass-main h2 { font-size:24px; }
  .inbox-counts { display:grid; grid-template-columns:1fr 1fr; padding:0; gap:0; border-radius:10px; }
  .inbox-counts h2 { position:absolute; clip-path:inset(50%); width:1px; height:1px; overflow:hidden; }
  .inbox-counts a { border:0; padding:9px 13px; }
  .inbox-counts a+a { border-left:1px solid var(--studio-rule); }
  .counter-section { padding:14px 12px 2px; border-radius:12px; }
  .counter-title { gap:6px; }
  .counter-title .search-box { flex:0 1 155px; max-width:52%; }
  .counter-title .search-box input { font-size:12px; min-height:36px; }
  .counter-row { grid-template-columns:29px minmax(0,1fr) 42px 32px; grid-template-areas:"code name wait star" "state state detail detail"; gap:4px 8px; padding:12px 0 7px; }
  .counter-code { grid-area:code; width:29px; height:32px; font-size:13px; }
  .counter-name { grid-area:name; } .counter-name h3 { font-size:14px; } .counter-name small { font-size:11px; }
  .counter-state { grid-area:state; margin-left:37px; }
  .counter-wait { grid-area:wait; } .counter-star { grid-area:star; }
  .counter-detail { grid-area:detail; justify-self:end; min-height:30px; }
  .queue-home .recent-section { margin-top:19px; }
  .story-heading { margin:0 0 14px; gap:10px; }
  .story-heading h1 { margin-top:3px; }
  .buddy-tag { font-size:10.5px; gap:3px; }
  .story-sequence { grid-template-columns:1fr; gap:10px; }
  .story-card { display:grid; grid-template-columns:minmax(96px,38%) minmax(0,1fr); align-items:center; border-radius:13px; }
  .story-art { padding:8px 0 8px 8px; }
  .story-caption { padding:11px 12px; }
  .story-caption h2 { font-size:15px; margin:2px 0 4px; }
  .story-caption p { font-size:12.5px; line-height:1.55; margin:0 0 3px; }
  .story-caption a,.story-place { min-height:26px; font-size:11.5px; padding:3px 0; }
  .arrival-rule { margin:11px 0 17px; padding:10px 12px; }
  .arrival-rule p { font-size:12px; }
  .story-faq { padding:15px 15px 4px; }
  .story-faq summary { font-size:12.5px; padding:12px 0; }
  .tablet-welcome-copy .arrival-scene { max-width:140px; margin-bottom:12px; }
  .tablet-shell .tablet-ticket-number { font-size:49px; }
}
@media(min-width:701px) and (max-height:790px) {
  .tablet-welcome-copy .arrival-scene { width:240px; margin-bottom:12px; }
}

.station-entry,.guide-mobile-link a{display:inline-flex;align-items:center;gap:8px;color:#245e4d;font-size:13px;font-weight:600;min-height:38px}.guide-mobile-link{margin-top:12px}.tablet-shell #tablet-name[type=tel]{width:100%;height:66px;border:1.5px solid #a3ba9c;border-radius:10px;background:white;padding:12px 16px;color:#294b3a;font-size:23px;font-weight:550;letter-spacing:.01em}.tablet-shell #tablet-name[type=tel]::placeholder{font-size:20px;color:#748376}

.visit-types {display:flex;gap:8px;border:0;margin:0 0 18px;padding:0}
.visit-types legend {font-size:.84rem;font-weight:650;margin-bottom:8px}
.visit-types label {position:relative;flex:1;cursor:pointer}
.visit-types input {position:absolute;opacity:0}
.visit-types span {display:block;text-align:center;padding:12px 6px;background:#fff;border:1px solid #cfdcd7;border-radius:12px;color:#364d45;font-weight:600}
.visit-types input:checked+span {border:2px solid #22735c;color:#164d3d;background:#eff8f2;padding:11px 5px}
.visit-types input:focus-visible+span,.meeting-stars button:focus-visible {outline:3px solid #236c9b;outline-offset:3px}
.visit-types+.field {margin-top:10px}
.meeting-stars {border:0;border-top:1px dashed #cad7d0;margin:12px 0 0;padding-top:10px;min-width:0}
.meeting-stars legend {font-size:14px;font-weight:650;padding:0 6px}
.meeting-stars button {background:transparent;color:#596b63;border:0;min-width:40px;min-height:44px;font-size:23px;cursor:pointer}
.meeting-stars button[aria-pressed=true],.meeting-stars button.given {color:#97631e}
.meeting-stars small {display:block;color:#425d51;font-size:12px}
.tablet-card select {width:100%;min-height:48px}
[hidden] {display:none!important}

[data-schedule-calendar],[data-schedule-console],[data-schedule-mine]{display:grid;gap:16px;margin-block:18px}
[data-schedule-calendar] h2,[data-schedule-console] h2,[data-schedule-mine] h2{font-size:18px;margin:6px 0}
.schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:16px 0 0;font-variant-numeric:tabular-nums}
.schedule-weekday{font-size:12px;text-align:center;font-weight:650;line-height:30px;color:#4c6159}
.schedule-day{display:flex;align-items:flex-start;justify-content:space-between;gap:3px;flex-wrap:wrap;min-width:0;min-height:49px;border:1px solid #dfe7e3;border-radius:9px;background:white;padding:8px;color:#213d33;cursor:pointer}
.schedule-day:hover{background:#f1f6f3}.schedule-day[aria-pressed=true]{border-color:#266954;box-shadow:inset 0 0 0 1px #266954;background:#eaf5ee}
.schedule-day small{font-size:10px;white-space:nowrap;border-radius:7px;padding:2px 5px;background:#ccecdc;color:#184737}
[data-schedule-agenda],[data-upcoming]{display:grid;gap:10px}
.schedule-card{border:1px solid #dce6df;border-radius:14px;padding:16px;background:#fff}
.schedule-card h3,.schedule-form h3{margin:0;font-size:16px;color:#1f3e33}
.schedule-card ul,.schedule-form ul{padding-inline-start:18px;font-size:13px;line-height:1.8}
.schedule-form{max-width:38rem;margin-top:12px}.schedule-form [role=alert]{color:#92362f}
[data-schedule-editor]>summary,.schedule-card summary{cursor:pointer;padding-block:8px;color:#324e43}
[data-calendar-settings],.auth-provider{margin:14px 0;font-size:14px;color:#425b4f}
@media(max-width:600px){.schedule-grid{gap:2px}.schedule-day{display:block;padding:5px 2px;min-height:44px;text-align:center;border-radius:6px}.schedule-day small{display:block;padding:0 2px;font-size:9px}.schedule-weekday{line-height:24px}.schedule-form{padding:15px}.schedule-card{padding:12px}}

.delay-note{display:inline-block;padding:5px 9px;background:#fff1d9;color:#7a4017;border-radius:8px;font-size:13px;font-weight:650;margin:8px 0}.briefing-shortcut{text-align:right;margin:0 0 12px}.briefing-shortcut a{font-size:13px;font-weight:600;color:#2e6755}

.workspace .tablet-wait-stats .tablet-eta{font-family:inherit;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
