:root{font-family:system-ui,-apple-system,"Tahoma",sans-serif;color:#153b36;background:#f4f7f6;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{height:88px;padding:0 5%;background:white;border-bottom:1px solid #dfe9e5;display:flex;align-items:center;gap:40px}.brand{display:flex;gap:10px;align-items:center;font-size:24px;font-weight:850;color:#14735e;text-decoration:none;letter-spacing:1px}.light{font-weight:400}nav{display:flex;gap:8px;margin:auto}nav a{padding:12px 18px;color:#6b7d77;text-decoration:none;font-size:14px;border-radius:8px}nav a.active{background:#e5f2ed;color:#12684f;font-weight:700}.connection{font-size:12px;color:#9b6232}.connection.online{color:#168365}.connection.online:before{content:'●';margin-right:7px}main{max-width:1280px;margin:auto;padding:44px 40px 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:11px;font-weight:750;color:#338672;letter-spacing:2px}h1{font-size:34px;line-height:1.4;letter-spacing:-1px;margin:10px 0}h2{font-size:18px;margin:0}.muted{color:#7b8b85;font-size:13px}.date{text-align:right;font-size:12px;color:#7b8b85}.date strong{display:block;font-size:26px;color:#315b50;margin-top:6px;font-variant-numeric:tabular-nums}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:26px}.stats article{border:1px solid #dfe9e5;border-radius:13px;padding:20px 24px;background:white;display:grid;grid-template-columns:1fr auto;gap:8px}.stats span{font-size:13px;color:#5f756c}.stats strong{grid-column:2;grid-row:1/3;font-size:36px;font-weight:600;color:#1d775e}.stats small{font-size:11px;color:#94a39c}.columns{display:grid;grid-template-columns:0.9fr 1.3fr;gap:24px}.issue-card{background:#123e35;color:white;border-radius:16px;text-align:center;padding:30px 38px}.badge{font-size:10px;letter-spacing:2px;color:#a8d3bf}.ticket-icon{font-size:48px;color:#b9e3ca;margin:18px 0 10px}.issue-card h2{font-size:24px}.issue-card p{font-size:13px;line-height:1.9;color:#abc7bc}.issue-card small{display:block;font-size:10px;margin-top:16px;color:#a8c6b7}button{border:1px solid #d3e2db;background:white;color:#225d4b;padding:13px 20px;border-radius:9px;font:inherit;font-size:14px;cursor:pointer;font-weight:650}button:hover{filter:brightness(.96)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:#176a50;color:white;border-color:#176a50}.issue-card .primary{width:100%;background:#d5f4a1;border:0;color:#203c2a;margin-top:14px;display:flex;justify-content:space-between;font-size:18px}.panel{background:white;border:1px solid #dfe9e5;border-radius:15px;padding:26px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.live{font-size:10px;color:#248260;letter-spacing:1px}.counter-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.counter-card{background:#f4f8f5;border:1px solid #e6eeea;border-radius:11px;padding:18px;text-align:center}.counter-card .label{color:#7b8e83;font-size:12px}.counter-card strong{display:block;font-size:38px;letter-spacing:2px;margin:8px 0;color:#1c6c50;font-variant-numeric:tabular-nums}.counter-card small{font-size:10px;color:#8a9c91}.hint{border-top:1px solid #eaf0ec;margin-top:20px;padding-top:18px;color:#899b90;font-size:11px}.waiting-panel{margin-top:25px}.pill{display:inline-block;border-radius:20px;background:#edf4ef;color:#458264;font-size:12px;padding:3px 9px;margin-left:7px}.waiting-list{display:flex;gap:10px;flex-wrap:wrap}.queue-chip{background:#f4f7f4;border:1px solid #e4ece5;border-radius:8px;padding:13px 20px;font-size:18px;font-weight:650;color:#426b55}.empty{padding:18px 0;color:#95a399;font-size:13px}footer{display:flex;justify-content:space-between;font-size:10px;color:#8b9e92;padding-top:26px}footer span:first-child{letter-spacing:1px;font-weight:750}#myTicket{margin-top:20px;background:#ffffff14;border:1px dashed #92b3a0;padding:15px;border-radius:9px}#myTicket strong{display:block;font-size:48px;color:#d5f4a1}#message{min-height:20px;color:#a34c35;font-size:14px}.login{max-width:480px;margin:auto}label{font-size:13px}input,select{font:inherit;border:1px solid #d5e3db;border-radius:8px;padding:10px;background:white;color:#234e3c}input{display:block;width:100%;margin:8px 0 18px}.current{text-align:center;padding:30px;font-size:60px;color:#1b7051}.actions{display:flex;flex-wrap:wrap;gap:12px}.danger{color:#ae6144}body.tv main{max-width:1800px}body.tv .stats{display:none}body.tv #displayServing{grid-template-columns:repeat(4,1fr)}body.tv .counter-card{padding:40px 10px;background:#123e35}body.tv .counter-card strong{font-size:clamp(40px,6vw,110px);color:#d5f4a1}body.tv .counter-card .label{color:#c2d8cb;font-size:20px}body.tv .counter-card small{color:#a9c8b5;font-size:15px}[hidden]{display:none!important}:focus-visible{outline:3px solid #82af4c;outline-offset:3px}@media(max-width:760px){header{height:auto;padding:18px 20px;gap:14px;flex-wrap:wrap}.brand{font-size:20px}nav{order:3;width:100%;justify-content:center}nav a{padding:9px 12px;font-size:12px}.connection{margin-left:auto}main{padding:24px 18px}.page-heading{align-items:flex-start}h1{font-size:25px}.date{max-width:120px;font-size:10px}.date strong{font-size:22px}.eyebrow{font-size:9px}.stats{gap:8px}.stats article{padding:13px;display:flex;flex-direction:column}.stats strong{font-size:29px}.stats span{font-size:11px}.stats small{font-size:9px}.columns{grid-template-columns:1fr}.panel{padding:20px}.section-title{flex-wrap:wrap}h2{font-size:16px}.section-title>.muted{font-size:10px}.issue-card{padding:25px}body.tv #displayServing{grid-template-columns:repeat(2,1fr)}footer{gap:20px;font-size:9px}}
#pairPanel{margin-bottom:24px}#pairPin{text-align:center;font-size:32px;letter-spacing:12px;font-variant-numeric:tabular-nums}#pairStatus{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-size:13px;color:#2b795c}#pairStatus button{padding:7px 12px;font-size:12px}#staffPairCode{font-size:26px;letter-spacing:5px;color:#176a50}
/* TV board: prioritize service counters and queue numbers at a distance. */
body.tv{background:#092b25;color:#f3fff5}
body.tv header{height:62px;background:#0d342c;border-color:#285144;padding:0 3%;gap:20px}
body.tv .brand{color:#d5f4a1;font-size:20px}
body.tv nav a{color:#b5cfc1;padding:8px 12px}
body.tv nav a.active{background:#254e3e;color:#e4ffc6}
body.tv .connection.online{color:#c4eba5}
body.tv main{max-width:none;padding:24px 3% 16px}
body.tv .page-heading{margin-bottom:18px}
body.tv .eyebrow,body.tv #subtitle,body.tv #pairStatus,body.tv footer{display:none!important}
body.tv h1{font-size:clamp(23px,2.5vw,42px);margin:0;color:#f3fff5}
body.tv .date,body.tv .date strong{color:#b9d1bf}
body.tv #display>.section-title h2{font-size:clamp(16px,1.4vw,26px);color:#b9d1bf;font-weight:500}
body.tv #display>.section-title{margin-bottom:16px}
body.tv #display>.section-title button{background:#163f32;color:#d9eacc;border-color:#38604a;font-size:12px;padding:8px 12px}
body.tv #displayServing{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
body.tv #displayServing .counter-card{padding:24px 14px;border:2px solid #44694c;border-radius:18px;background:#153e30;min-height:clamp(210px,30vh,380px);display:flex;flex-direction:column;align-items:center;justify-content:center}
body.tv #displayServing .counter-card .label{font-size:clamp(26px,3vw,60px);font-weight:750;color:white;line-height:1.3}
body.tv #displayServing .counter-card strong{font-family:Arial,system-ui,sans-serif;font-size:clamp(78px,11vw,220px);font-weight:800;letter-spacing:2px;line-height:1.05;margin:12px 0;color:#daff94;white-space:nowrap}
body.tv #displayServing .counter-card small{font-size:clamp(14px,1.4vw,26px);color:#c2d8bd}
body.tv .waiting-panel{margin-top:20px;background:#0e3229;border-color:#325240;padding:18px 22px}
body.tv .waiting-panel h2{font-size:clamp(18px,1.6vw,28px);color:#e0efd6}
body.tv .waiting-panel .section-title{margin-bottom:12px}
body.tv .waiting-panel .muted{color:#a9c2ad}
body.tv .queue-chip{font-family:Arial,system-ui,sans-serif;background:#204632;color:#e3f5c8;border-color:#44634a;font-size:clamp(24px,2.5vw,48px);padding:8px 18px}
body.tv #message:empty{display:none}
body.tv .login{color:#153b36}
@media(max-width:600px){body.tv header{height:auto;padding:12px}body.tv main{padding:18px 12px}body.tv #displayServing{gap:10px}body.tv #displayServing .counter-card{min-height:190px;padding:16px 6px}body.tv #displayServing .counter-card .label{font-size:22px}body.tv #displayServing .counter-card strong{font-size:clamp(48px,12vw,74px)}body.tv .date{max-width:100px}body.tv .waiting-panel .muted{display:none}}
/* Public ticket kiosk: latest number above a large touch target. */
.issue-card{display:flex;flex-direction:column;justify-content:center}
.issue-card .ticket-icon{display:none}
.issue-card h2{margin-top:20px}
.issue-card #myTicket{margin:14px 0 20px;padding:20px 12px;background:#ffffff0a;border:1px solid #6a917c;border-radius:14px}
.issue-card #myTicket>span{display:block;font-size:14px;line-height:1.7;color:#c4dccb}
.issue-card #myTicket strong{font-family:Arial,system-ui,sans-serif;font-size:clamp(80px,8vw,144px);font-weight:800;letter-spacing:2px;line-height:1.1;margin:10px 0 14px;color:#daff94;white-space:nowrap}
.issue-card #issue{min-height:108px;padding:24px 28px;font-size:clamp(28px,3vw,44px);font-weight:800;align-items:center;border-radius:14px;margin:0;box-shadow:0 6px 0 #092d23;touch-action:manipulation}
.issue-card #issue:active:not(:disabled){transform:translateY(3px);box-shadow:0 3px 0 #092d23}
.issue-card #issue:disabled{opacity:.6}
@media(max-width:760px){.issue-card #myTicket strong{font-size:clamp(80px,20vw,120px)}.issue-card #issue{min-height:100px;font-size:32px}.issue-card #myTicket>span{font-size:13px}}
