@charset "UTF-8";
:root{--navy:#132e38;--navy-dark:#102731;--gold:#b58d4b;--gold-light:#eadfc9;--ink:#21333b;--muted:#737e82;--line:#e6e8e4;--paper:#f5f5f0;--white:#fff;--radius:18px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input,label{-webkit-tap-highlight-color:transparent}button,a,input{touch-action:manipulation}button{cursor:pointer}a{color:inherit}svg{width:22px;height:22px;flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b58d4b;outline-offset:4px}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:absolute;top:-70px;left:20px;z-index:5;background:#fff;padding:12px}.skip-link:focus{top:10px}
.topbar{min-height:94px;padding:20px max(32px,calc((100vw - 1400px)/2));background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;flex-shrink:0}.brand img{object-fit:contain}.brand strong{font-size:21px;letter-spacing:2.3px;display:block;font-weight:700}.brand strong b{font-weight:400}.brand small{display:block;font-size:9px;letter-spacing:1.5px;margin-top:5px;color:#6a767c}.header-right{display:flex;gap:25px;align-items:center;font-size:12px;color:#6c787b}.header-divider{height:25px;width:1px;background:var(--line)}.portal-tag{color:var(--navy);font-weight:600;display:flex;gap:9px;align-items:center}.gold-dot{height:7px;width:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px #f6f0e6}.page-shell{max-width:1464px;margin:auto;padding:45px 32px 28px}
.welcome{display:grid;grid-template-columns:1fr 350px;align-items:center;gap:45px;margin-bottom:43px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:650;letter-spacing:2px;color:#8b703d;margin:0 0 17px}.eyebrow>span{height:1px;width:27px;background:var(--gold)}h1{margin:0;font-weight:500;font-size:clamp(34px,3.3vw,48px);line-height:1.14;letter-spacing:-1.8px}h1>span{color:#89938e}.intro{font-size:13px;line-height:1.85;color:#72807f;margin:17px 0}.today{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600;color:#647478}.today svg{width:14px;height:14px}.time-divider{height:12px;width:1px;background:#cbd1cb;margin:0 3px}
.queue-card{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);background:var(--navy);color:#fff;padding:25px 28px 21px;box-shadow:0 16px 32px -15px #19323c50;min-height:226px}.queue-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;font-weight:600;letter-spacing:1.5px}.live-badge{display:flex;align-items:center;gap:6px;border-radius:50px;background:#ffffff0d;border:1px solid #ffffff18;padding:5px 9px;font-size:9px;letter-spacing:.2px;color:#d4ddd5}.live-badge>span{width:5px;height:5px;border-radius:50%;background:#c0a263}.live-badge.connected>span{background:#92cdb1}.queue-number{display:block;font-weight:300;font-size:86px;line-height:1.15;letter-spacing:-3px;font-variant-numeric:tabular-nums;margin:4px 0 10px;color:#f2e1bb;overflow-wrap:anywhere}.queue-bottom{border-top:1px solid #ffffff20;padding-top:14px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#acbdc2}.queue-bottom svg{width:18px;height:18px}.queue-decoration{position:absolute;border:1px solid #ffffff07;width:220px;height:280px;border-radius:50%;right:-95px;top:-50px;z-index:-1;transform:rotate(25deg);box-shadow:0 0 0 28px #ffffff03,0 0 0 56px #ffffff03,0 0 0 84px #ffffff03}
.workspace-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px}.section-kicker{font-size:9px;letter-spacing:1.8px;font-weight:700;color:var(--gold)}.workspace-heading h2{margin:6px 0 0;font-size:22px;letter-spacing:-.5px;font-weight:550}.simple-note{display:flex;align-items:center;gap:7px;font-size:11px;color:#87908b}.simple-note svg{width:15px;height:15px;color:#a08d65}
.registration-grid{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(0,1.2fr);gap:22px;align-items:stretch}.panel{background:#fff;border:1px solid #e2e6e1;border-radius:var(--radius);padding:27px;box-shadow:0 4px 12px #263d3810}.panel-title{display:flex;align-items:center;gap:12px;margin-bottom:28px}.step-number{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#9d803f;background:#f7f3ea;border:1px solid #e9e0cd;font-size:12px;flex-shrink:0}.panel-title h3{font-size:17px;font-weight:600;letter-spacing:-.3px;margin:0}.panel-title p{font-size:11px;color:var(--muted);margin:5px 0 0;line-height:1.5}.service-count{margin-left:auto;color:#8b9695;border:1px solid var(--line);border-radius:5px;padding:5px 7px;white-space:nowrap;font-size:8px;letter-spacing:1px}
.identity-panel>label{display:block;font-size:9px;letter-spacing:1.2px;font-weight:650;color:#63716f;margin-bottom:10px}.input-wrap{position:relative}.input-wrap input{width:100%;height:64px;border:1px solid #cfd7cf;border-radius:10px;background:#fafbf8;padding:12px 46px 12px 17px;font-size:21px;letter-spacing:.8px;color:var(--navy);transition:border-color .2s,box-shadow .2s}.input-wrap input::placeholder{font-size:17px;color:#adb5b0;letter-spacing:.3px}.input-wrap input:focus{outline:0;border-color:#b39860;box-shadow:0 0 0 3px #b3986019;background:#fff}.input-wrap input[aria-invalid=true]{border-color:#ad513f}.input-wrap button{position:absolute;right:10px;top:13px;width:36px;height:38px;color:#8b9690;border:0;background:transparent;font-size:22px;border-radius:6px}.field-hint{font-size:10px;line-height:1.6;color:#8a9690;margin:10px 0 27px}.keyboard-label{display:flex;align-items:center;gap:7px;color:#8b9690;font-size:8px;letter-spacing:1.1px;margin-bottom:13px}.keyboard-label svg{width:15px;height:15px}.keyboard{display:flex;flex-direction:column;gap:6px;user-select:none}.key-row{display:flex;gap:5px;justify-content:center}.key-row button{min-width:0;flex:1;height:39px;border:1px solid #e2e6e0;background:#f7f8f5;border-radius:6px;box-shadow:0 2px 0 #e8eae5;color:#3c4c48;font-size:12px;font-weight:600;transition:background .15s,transform .15s}.key-row button:hover{background:#edf0e8;border-color:#bfc9b8}.key-row button:active{transform:translateY(2px);box-shadow:none}.key-row:nth-child(3){padding:0 14px}.key-row:nth-child(4){padding:0 28px}.key-row button.key-delete{flex:1.8;color:#7d8981;font-size:17px}.key-row button.key-space{flex:0 1 65%;font-size:10px;font-weight:400;color:#879187}.identity-note{display:flex;gap:9px;border-top:1px solid var(--line);margin-top:25px;padding-top:17px;color:#859086}.identity-note svg{width:16px;height:16px;margin-top:2px}.identity-note p{font-size:10px;line-height:1.65;margin:0;max-width:270px}
.service-grid{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:9px}.service-card{position:relative;display:flex;align-items:center;gap:10px;min-height:75px;border:1px solid #e4e8e2;border-radius:10px;padding:13px 11px;cursor:pointer;transition:background .2s,border .2s,box-shadow .2s}.service-card:last-child{grid-column:1/-1}.service-card input{position:absolute;opacity:0;width:1px;height:1px}.service-card:has(input:focus-visible){outline:3px solid var(--gold);outline-offset:3px}.service-card:hover{border-color:#b8c4b6;background:#fcfcf9}.service-card:has(input:checked){border-color:#9d8655;background:#fbf8f0;box-shadow:0 0 0 1px #9d86551c}.service-card:has(input:disabled){cursor:wait;opacity:.6}.service-icon{width:34px;height:34px;background:#f3f5f1;border:1px solid #e9ece6;border-radius:9px;display:grid;place-items:center;color:#728274;flex-shrink:0}.service-icon svg{width:18px;height:18px}.service-card:has(input:checked) .service-icon{background:#ede4d0;color:#92743d;border-color:#e8dbbf}.service-copy{min-width:0}.service-copy strong{display:block;font-size:12px;font-weight:600}.service-copy small{display:block;font-size:9px;margin-top:5px;color:#869186;line-height:1.3}.radio-mark{width:13px;height:13px;border:1px solid #dce1d6;border-radius:50%;margin-left:auto;flex-shrink:0}.service-card:has(input:checked) .radio-mark{background:#9a804b;border-color:#9a804b;box-shadow:inset 0 0 0 3px #fff}.submit-area{display:flex;align-items:center;gap:16px;border-top:1px solid var(--line);margin-top:21px;padding-top:18px}.submit-area>p{flex:1;font-size:10px;line-height:1.6;color:#829085;margin:0}#register-button{display:flex;align-items:center;justify-content:center;gap:21px;padding:14px 19px;min-height:48px;border:1px solid var(--navy);background:var(--navy);color:#fff;border-radius:9px;box-shadow:0 4px 9px #18333318;font-size:11px;font-weight:600;transition:background .2s,transform .2s}#register-button:hover{background:#254853;transform:translateY(-1px)}#register-button svg{width:16px;height:16px;color:#d8c18c}.notice{font-size:12px;line-height:1.65;background:#f1f4ef;border:1px solid #dce4d7;color:#3b5646;border-radius:9px;padding:13px 15px;margin-top:15px}.notice.error{background:#fff4ef;border-color:#ead4c9;color:#8a4933}.notice.success{background:#eef6f0;border-color:#ccdfd0;color:#325c41}.print-link{display:flex;align-items:center;gap:10px;border:1px solid #b3cbb6;border-radius:9px;padding:13px 15px;margin-top:10px;color:#325c41;text-decoration:none;font-size:13px;font-weight:600}.print-link svg:last-child{margin-left:auto}
.how-it-works{display:flex;align-items:center;gap:18px;padding:26px 3px 0;font-size:10px;color:#738079;flex-wrap:wrap}.how-label{font-size:8px;color:#9ba59c;font-weight:700;letter-spacing:1px;margin-right:6px}.how-it-works>div{display:flex;gap:7px;align-items:center}.how-it-works>div>span{font-size:8px;color:#a18b5c;background:#eaece3;padding:4px;border-radius:4px}.how-it-works>b{font-size:12px;color:#b3baad;font-weight:400}.how-it-works p{margin:0 0 0 auto;font-size:9px;color:#919c92}footer{max-width:1400px;margin:0 auto;padding:23px 0;display:flex;justify-content:space-between;gap:16px;align-items:center;border-top:1px solid #e0e5db;color:#929c94;font-size:9px}.footer-mark{letter-spacing:2px;color:#607168;font-size:11px}.footer-mark b{font-weight:400}
@media(min-width:1500px){.page-shell{padding-top:56px}.welcome{margin-bottom:50px}.panel{padding:30px}.key-row button{height:43px}.service-card{min-height:79px}}
@media(max-width:1100px){.topbar{padding:18px 24px}.location-tag,.header-divider{display:none}.page-shell{padding:32px 24px 24px}.welcome{grid-template-columns:1fr 300px;gap:25px}.registration-grid{grid-template-columns:minmax(310px,.85fr) minmax(0,1.15fr);gap:16px}.panel{padding:21px}.service-grid{gap:8px}.service-icon{width:29px;height:29px}.service-card{padding:11px 9px;gap:7px}.service-copy strong{font-size:11px}.service-copy small{font-size:8px}.service-count{display:none}.submit-area{align-items:stretch;flex-direction:column;gap:10px}.how-it-works{gap:12px}.how-it-works p{width:100%;margin:0}footer{margin:0 24px}footer>span:nth-child(2){display:none}}
@media(max-width:760px){.topbar{min-height:80px;padding:15px 20px}.brand strong{font-size:17px;letter-spacing:1.6px}.brand small{font-size:7px;letter-spacing:.7px}.brand img{width:33px;height:38px}.brand{gap:10px}.header-right{display:none}.page-shell{padding:28px 18px 24px}.welcome{grid-template-columns:1fr;gap:24px;margin-bottom:30px}.welcome-copy{padding:0 4px}h1{font-size:40px}.intro{font-size:12px}.eyebrow{font-size:8px;letter-spacing:1.5px}.queue-card{min-height:170px;padding:20px 23px}.queue-number{font-size:64px;margin:2px 0 7px}.queue-bottom{padding-top:10px}.workspace-heading h2{font-size:21px}.simple-note{display:none}.registration-grid{grid-template-columns:1fr;gap:18px}.panel{padding:22px}.panel-title{margin-bottom:23px}.panel-title p{font-size:10px}.service-count{display:block}.service-copy strong{font-size:12px}.service-copy small{font-size:9px}.service-icon{width:33px;height:33px}.service-card{min-height:78px}.submit-area{gap:12px}#register-button{min-height:52px;font-size:13px}.how-it-works{row-gap:14px;column-gap:9px;font-size:9px}.how-label{width:100%}.how-it-works>div{gap:5px}.how-it-works>b{display:none}.how-it-works p{font-size:10px}footer{margin:0 18px;font-size:8px}.footer-mark{font-size:9px;white-space:nowrap}}
@media(max-width:380px){.panel{padding:18px}.service-grid{grid-template-columns:1fr}.service-card:last-child{grid-column:auto}.service-count{display:none}.brand strong{font-size:15px}.brand small{font-size:6px}.key-row button{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
/* Readable controls for public kiosks and narrow screens. */
.panel-title p { font-size: 12px; }
.service-copy strong { font-size: 14px; }
.service-copy small { font-size: 11px; line-height: 1.45; }
.service-card { min-height: 82px; }
.key-row button { min-height: 44px; font-size: 14px; }
.field-hint, .identity-note p { font-size: 11px; }
.input-wrap button { width: 44px; height: 44px; top: 10px; right: 5px; }
.submit-area > p { font-size: 11px; }
#register-button { font-size: 12px; }
@media (max-width: 1100px) and (min-width: 761px) {
    .service-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .service-grid { grid-template-columns: 1fr; }
    .service-card { min-height: 74px; padding: 13px; gap: 12px; }
    .service-count { display: none; }
    .key-row { gap: 3px; }
    .key-row button { font-size: 12px; }
    .key-row:nth-child(3) { padding: 0 8px; }
    .key-row:nth-child(4) { padding: 0 12px; }
}

/* Fixed-height kiosk layout: reserve feedback space so success/errors never
   push the print button below the screen. Mobile retains its normal layout. */
.registration-feedback { display:flex; align-items:center; gap:14px; margin-top:12px; }
.registration-feedback .notice { flex:1; margin:0; }
.registration-feedback .print-link { margin:0; flex-shrink:0; min-height:48px; }
.feedback-idle { font-size:12px; color:#738079; margin:0; }
.registration-feedback:has(.notice:not([hidden])) .feedback-idle { display:none; }
@media (min-width:960px) and (min-height:620px) {
    body { height:100vh; height:100dvh; display:grid; grid-template-rows:56px minmax(0,1fr) 28px; }
    .topbar { min-height:0; padding:6px 22px; }
    .brand img { height:36px; width:32px; }
    .brand strong { font-size:17px; }
    .brand small { font-size:8px; }
    .header-right { font-size:11px; gap:14px; }
    .page-shell { width:100%; min-height:0; max-width:1600px; margin:0 auto; padding:12px 20px 6px; display:grid; grid-template-rows:84px minmax(0,1fr) 66px; gap:12px; }
    .welcome { grid-template-columns:1fr 360px; gap:20px; margin:0; min-height:0; }
    .welcome-copy { padding:0; }
    .eyebrow { margin:0 0 6px; font-size:9px; }
    h1 { font-size:25px; letter-spacing:-.7px; line-height:1.2; }
    h1 br { display:none; }
    h1>span { margin-left:6px; }
    .intro { display:none; }
    .today { margin-top:7px; font-size:11px; }
    .queue-card { min-height:0; height:84px; padding:10px 18px; display:grid; grid-template-columns:1fr auto; grid-template-rows:1fr 1fr; align-items:center; border-radius:13px; }
    .queue-top { grid-column:1; font-size:9px; gap:8px; }
    #recent_activity { grid-column:2; grid-row:1/3; margin-left:15px; }
    .queue-number { font-size:52px; line-height:1; margin:0; letter-spacing:-2px; }
    .queue-bottom { grid-column:1; padding-top:6px; font-size:9px; }
    .queue-bottom svg { display:none; }
    .workspace-heading,.how-it-works { display:none; }
    .registration-grid { min-height:0; grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); gap:16px; }
    .panel { min-height:0; padding:16px; border-radius:14px; display:flex; flex-direction:column; }
    .panel-title { margin-bottom:12px; min-height:36px; gap:10px; }
    .panel-title h3 { font-size:17px; }
    .panel-title p { font-size:11px; margin-top:3px; }
    .service-count { display:none; }
    .identity-panel>label { margin-bottom:6px; font-size:10px; }
    .input-wrap input { height:54px; font-size:23px; }
    .input-wrap button { top:5px; }
    .field-hint { margin:6px 0 10px; font-size:11px; }
    .keyboard-label { margin-bottom:7px; }
    .keyboard { flex:1; min-height:0; display:grid; grid-template-rows:repeat(5,minmax(44px,1fr)); gap:5px; max-height:330px; }
    .key-row { min-height:0; gap:5px; }
    .key-row button { height:100%; min-height:44px; font-size:18px; }
    .key-row button.key-space { font-size:13px; }
    .identity-note { display:none; }
    .service-grid { flex:1; min-height:0; grid-template-columns:1fr 1fr; grid-template-rows:repeat(4,minmax(54px,1fr)); gap:8px; }
    .service-card { min-height:0; padding:8px 10px; gap:9px; }
    .service-copy strong { font-size:14px; line-height:1.2; }
    .service-copy small { font-size:10px; line-height:1.25; margin-top:4px; }
    .service-icon { width:30px; height:30px; }
    .submit-area { flex-direction:row; align-items:center; padding-top:10px; margin-top:10px; gap:12px; }
    .submit-area>p { font-size:11px; }
    #register-button { min-height:52px; padding:12px 16px; font-size:14px; gap:12px; }
    .registration-feedback { margin:0; min-height:0; gap:12px; }
    .registration-feedback .notice { padding:9px 14px; font-size:13px; line-height:1.4; }
    .registration-feedback .print-link { min-height:52px; padding:12px 16px; background:#e7f2e9; font-size:15px; }
    footer { width:calc(100% - 40px); max-width:1560px; margin:0 auto; padding:5px 0; font-size:9px; }
}
@media (min-width:960px) and (min-height:620px) and (max-height:719px) {
    .page-shell { grid-template-rows:64px minmax(0,1fr) 60px; gap:8px; padding-top:8px; }
    .welcome,.queue-card { height:64px; }
    .queue-number { font-size:44px; }
    .eyebrow { display:none; }
    h1 { font-size:22px; }
    .panel { padding:12px; }
    .panel-title { margin-bottom:8px; min-height:30px; }
    .panel-title p,.keyboard-label { display:none; }
    .field-hint { margin:4px 0 6px; font-size:10px; }
    .input-wrap input { height:48px; }
    .input-wrap button { top:2px; }
    .keyboard { gap:4px; }
    .service-copy small { display:none; }
    .service-grid { gap:6px; }
    .submit-area { margin-top:7px; padding-top:7px; }
}
@media (max-width:760px) {
    .registration-feedback { flex-direction:column; align-items:stretch; }
}

/* Service cards submit directly, without an extra confirmation button. */
button.service-card { background:#fff; text-align:left; color:var(--ink); font-family:inherit; }
button.service-card.is-selected { border-color:#9d8655; background:#fbf8f0; box-shadow:0 0 0 1px #9d86551c; }
button.service-card.is-selected .service-icon { background:#ede4d0; color:#92743d; border-color:#e8dbbf; }
button.service-card.is-selected .radio-mark { background:#9a804b; border-color:#9a804b; box-shadow:inset 0 0 0 3px #fff; }
button.service-card:disabled { cursor:wait; opacity:.6; }
/* Consistent kiosk shell, with accessible settings on every screen. */
@media (max-width:760px) { .topbar .header-right { display:flex; } .topbar .portal-tag { display:none; } }
@media (min-width:960px) and (min-height:620px) {
    .panel { border-color:#dce3d9; box-shadow:0 6px 20px #122f3810; }
    .panel-title { border-bottom:1px solid #edf0e9; padding-bottom:9px; }
    .service-card.is-selected { box-shadow:inset 3px 0 #b29254; }
}
