:root{color:#14213d;background:#eff7f5;font-family:Inter,system-ui}*{box-sizing:border-box}body{margin:0}main{max-width:560px;margin:auto;padding:28px}.brand{color:#118263;margin-bottom:50px;font-size:22px;font-weight:800}article{text-align:center;background:#fff;border-radius:24px;padding:40px 28px;box-shadow:0 16px 60px #194b3b20}small,.muted{color:#667085}.welcome-title,.queue-title{margin:14px 0;font-size:34px}.queue-context{margin-bottom:8px;font-size:20px;font-weight:750}.availability{border-radius:99px;margin:20px 0;padding:9px 16px;font-weight:750;display:inline-block}.available,.ticket-waiting{color:#087557;background:#d9f7ed}.unavailable{color:#667085;background:#f2f4f7}.ticket-called{color:#7a4d00;background:#fff0c7}.ticket-inservice{color:#174ea6;background:#e1edff}.ticket-completed{color:#087557;background:#d9f7ed}.ticket-cancelled,.ticket-noshow{color:#b42318;background:#fee4e2}.public-metrics{grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 24px;display:grid}.public-metrics div{background:#f5f8fa;border-radius:12px;gap:5px;padding:16px;display:grid}.public-metrics strong{font-size:22px}.public-metrics span{color:#667085;font-size:13px}button{color:#fff;font:inherit;background:#08a77b;border:0;border-radius:10px;padding:14px 20px;font-weight:750}button:disabled{opacity:.55}.join-error{color:#b42318}.ticket-number{margin:10px;font-size:64px}.call-notice{background:#fff0c7;border-radius:14px;gap:10px;margin-bottom:22px;padding:20px;display:grid}.call-notice strong{font-size:28px}.issued-at{margin:22px 0;font-size:13px}.secondary-button{color:#14213d;background:#e8eef2}.danger-button{background:#b42318}.branch-page{max-width:760px}.branch-heading{text-align:center;margin-bottom:28px}.branch-heading h1{margin:10px 0;font-size:36px}.branch-heading p{margin:8px;font-size:20px;font-weight:750}.service-list{gap:18px;display:grid}.service-card{text-align:left;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:26px;display:grid}.service-card h2{margin:6px 0}.queue-summary{color:#667085;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.queue-summary .availability{margin:0}.service-action{text-align:center;color:#fff;background:#08a77b;border-radius:10px;grid-column:1/-1;padding:14px 20px;font-weight:750;text-decoration:none}.service-action.disabled{color:#667085;background:#e8eef2}.service-card .muted{margin:6px 0}.date-filter{justify-content:center;align-items:end;gap:12px;margin:24px 0;display:flex}.date-filter label{text-align:left;gap:7px;font-weight:700;display:grid}.date-filter input{font:inherit;border:1px solid #cbd5e1;border-radius:9px;padding:12px}.slot-list{grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0;display:grid}.slot{border:1px solid #cbd5e1;border-radius:10px;gap:5px;padding:14px;display:grid}.slot span{color:#667085;font-size:12px}.booking-form{gap:14px;margin:20px 0;display:grid}.booking-form>label{text-align:left;gap:6px;font-weight:700;display:grid}.booking-form>label input{font:inherit;border:1px solid #cbd5e1;border-radius:9px;padding:12px}.slot input{margin:auto}.slot:has(input:checked){background:#eaf9f4;border-color:#08a77b}.appointment-status{color:#087557;background:#d9f7ed;border-radius:99px;margin:18px;padding:9px 15px;font-weight:800;display:inline-block}.appointment-date{font-size:20px;font-weight:750}.confirmation-code{background:#f5f8fa;border-radius:12px;gap:8px;margin:20px 0;padding:20px;display:grid}.confirmation-code strong{letter-spacing:.12em;font-size:30px}.appointment-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin:20px 0;display:flex}@media (max-width:600px){.service-card{grid-template-columns:1fr}.queue-summary{justify-content:flex-start}.branch-heading h1{font-size:30px}.slot-list{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.public-metrics{grid-template-columns:1fr}.ticket-number{font-size:52px}}
.portal-page{max-width:960px}.portal-hero{text-align:center;margin-bottom:32px}.portal-hero h1{margin:10px 0;font-size:42px}.portal-hero p{color:#667085;font-size:18px}.branch-list{gap:24px;display:grid}.branch-card{text-align:left}.branch-card>header{margin-bottom:22px}.branch-card h2{margin:6px 0}.public-service{border-top:1px solid #e4e7ec;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:20px 0;display:grid}.public-service h3{margin:8px 0;font-size:22px}.public-service p{margin:6px 0}.public-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.public-actions .service-action,.public-actions .action-link{grid-column:auto}.mode-badge{color:#087557;background:#eaf9f4;border-radius:99px;padding:6px 10px;font-size:12px;font-weight:800;display:inline-block}.schedule-hint{margin-top:-12px}.empty-slots{background:#f5f8fa;border-radius:12px;margin:20px 0;padding:24px}.slot-list .slot{color:#14213d;background:#fff;font-weight:400}.slot-list .slot.selected{background:#eaf9f4;border-color:#08a77b;box-shadow:0 0 0 2px #08a77b33}.booking-review{text-align:left;background:#f5f8fa;border-radius:14px;padding:20px}.booking-review h2{margin-top:0}.booking-review dl{gap:10px;display:grid}.booking-review dl div{grid-template-columns:90px 1fr;gap:10px;display:grid}.booking-review dt{color:#667085}.booking-review dd{margin:0;font-weight:750}.review-actions{justify-content:center;gap:10px;display:flex}@media (max-width:600px){main{padding:18px}.brand{margin-bottom:28px}.portal-hero h1{font-size:32px}.public-service{grid-template-columns:1fr}.public-actions{justify-content:stretch}.public-actions a,.public-actions span{text-align:center;width:100%}.date-filter{flex-direction:column;align-items:stretch}.date-filter button{width:100%}article{padding:28px 20px}}
