/* Part 15: member self check-in for services and programmes. */
.agcm-service-checkin{background:#f4f7fb}
.agcm-service-checkin__layout{align-items:start;display:grid;gap:34px;grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr)}
.agcm-service-checkin__aside{background:linear-gradient(145deg,#031c42,#0757b5);border-radius:24px;color:#fff;padding:36px;position:sticky;top:24px}
.agcm-service-checkin__aside h2{color:#fff;font-size:clamp(1.8rem,3vw,2.6rem);margin:16px 0 9px}
.agcm-service-checkin__aside p{color:rgba(255,255,255,.76);line-height:1.7}
.agcm-service-checkin__aside ul{border-top:1px solid rgba(255,255,255,.14);display:grid;gap:13px;list-style:none;margin:25px 0 0;padding:24px 0 0}
.agcm-service-checkin__aside li{color:rgba(255,255,255,.86);font-size:.88rem;padding-left:22px;position:relative}
.agcm-service-checkin__aside li::before{background:var(--agcm-yellow);border-radius:50%;content:"";height:8px;left:0;position:absolute;top:.55em;width:8px}
.agcm-service-checkin__status{border:1px solid rgba(255,255,255,.25);border-radius:50px;display:inline-flex;font-size:.72rem;font-weight:900;letter-spacing:.08em;padding:7px 11px;text-transform:uppercase}
.agcm-service-checkin__status.is-open{background:#dff7e8;border-color:#9de0b5;color:#17633a}
.agcm-service-checkin__status.is-closed{background:rgba(255,255,255,.1);color:#fff}
.agcm-service-checkin__card{background:#fff;border:1px solid #dfe7f2;border-radius:24px;box-shadow:0 18px 55px rgba(10,40,88,.09);padding:38px}
.agcm-service-checkin__card h2{font-size:clamp(1.8rem,3vw,2.45rem);margin:8px 0 10px}
.agcm-form-label{color:var(--agcm-blue);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.agcm-service-checkin__help{color:#66758d;line-height:1.7;margin:0 0 24px}
.agcm-attendance-lookup{display:flex;flex-direction:column;gap:17px}
.agcm-attendance-lookup label{display:flex;flex-direction:column;gap:8px}
.agcm-attendance-lookup label>span{color:#263957;font-size:.82rem;font-weight:800}
.agcm-attendance-lookup input[type=text]{background:#fff;border:1px solid #c8d7e9;border-radius:12px;color:#172944;font:inherit;min-height:54px;padding:12px 15px;width:100%}
.agcm-attendance-lookup input[type=text]:focus{border-color:var(--agcm-blue);box-shadow:0 0 0 4px rgba(7,87,181,.12);outline:0}
.agcm-attendance-lookup .agcm-button{border:0;cursor:pointer;justify-self:start;width:max-content}
.agcm-attendance-trap{height:0;left:-9999px;overflow:hidden;position:absolute;width:0}
.agcm-member-match{background:#f5f8fc;border:1px solid #dde7f3;border-radius:18px;margin:22px 0;padding:22px}
.agcm-member-match dl{display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.agcm-member-match dl>div{border-bottom:1px solid #dfe7f1;padding:14px}
.agcm-member-match dt{color:#728098;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.agcm-member-match dd{color:#172944;font-weight:800;margin:5px 0 0;overflow-wrap:anywhere}
.agcm-attendance-confirm{align-items:center;display:flex;flex-wrap:wrap;gap:18px}
.agcm-attendance-confirm .agcm-button{border:0;cursor:pointer}
.agcm-attendance-confirm>a{color:var(--agcm-blue);font-size:.85rem;font-weight:800}
.agcm-service-checkin__closed{background:#f6f8fb;border:1px dashed #bdcadd;border-radius:16px;display:flex;flex-direction:column;gap:5px;padding:24px}
.agcm-service-checkin__closed strong{color:#172944}
.agcm-service-checkin__closed span{color:#6b7890;font-size:.9rem}
.agcm-attendance-notice{border-radius:14px;display:flex;flex-direction:column;gap:3px;margin-bottom:22px;padding:16px 18px}
.agcm-attendance-notice--success{background:#e4f7eb;border:1px solid #a9dfbd;color:#17633a}
.agcm-attendance-notice--info{background:#eaf3ff;border:1px solid #b9d6fa;color:#164f91}
.agcm-attendance-notice--error{background:#fff1f1;border:1px solid #efbcbc;color:#842525}
.agcm-attendance-notice span{font-size:.85rem;line-height:1.5}
@media(max-width:800px){.agcm-service-checkin__layout{grid-template-columns:1fr}.agcm-service-checkin__aside{position:static}.agcm-service-checkin__card{padding:27px 22px}}
@media(max-width:560px){.agcm-member-match dl{grid-template-columns:1fr}.agcm-attendance-confirm{align-items:stretch;flex-direction:column}.agcm-attendance-confirm .agcm-button{width:100%}}
