:root{color-scheme:light;--ink:#183f3b;--muted:#667c78;--green:#126b58;--line:#dfe8e2;--paper:#f5f7f2}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN',sans-serif}header{display:flex;align-items:center;gap:18px;padding:20px 5%;border-bottom:1px solid var(--line);background:#fff}.brand{font-weight:700;font-size:20px;text-decoration:none;color:var(--ink)}.brand span{font-weight:400;color:var(--muted);margin-left:10px}.dev{font-size:12px;background:#edf2e8;padding:4px 10px;border-radius:8px}header form{margin-left:auto}main{max-width:1100px;padding:42px 32px;margin:0 auto;min-height:75vh}h1{font-size:34px;line-height:1.3;margin:8px 0 12px;font-weight:650}h2{font-size:20px;margin:0 0 14px}.eyebrow{font-size:14px;letter-spacing:.06em;margin:0;color:var(--muted)}.muted{color:var(--muted);margin:6px 0 16px}.heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}.counts{display:flex;gap:34px}.counts strong{font-size:34px;font-weight:600}.counts small{display:block;font-size:12px;font-weight:400;color:var(--muted)}.fixture-note{font-size:12px;color:var(--muted);margin:0 0 18px}.patient-list{display:grid;gap:14px}.patient-card{display:grid;grid-template-columns:85px 1fr 150px 145px;gap:26px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:26px 30px;background:#fff;box-shadow:0 3px 15px #133e3404}.patient-card time{font-size:24px;font-variant-numeric:tabular-nums}.patient h2{margin:0 0 6px;font-size:21px}.badge{font-size:11px;letter-spacing:.08em;padding:4px 9px;border-radius:6px;background:#edf2ef;color:#46605a}.badge.new{background:#e3f2e6;color:#23683c}.badge.pending,.badge.unknown{background:#fff1d7;color:#936822}.ticket small{display:block;font-size:12px;color:var(--muted)}.ticket strong{font-size:29px;font-weight:500}.ticket span{font-size:14px;margin-left:5px}.button{display:inline-block;border:0;border-radius:10px;padding:12px 24px;background:var(--green);color:white;font-size:16px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}.button:hover{background:#075643}.button:focus-visible,input:focus,select:focus,textarea:focus{outline:3px solid #72b7a8;outline-offset:3px}.registered{color:#376b55;font-size:14px}.done{background:#f9fbf8}.quiet{border:0;background:none;color:var(--muted);font-size:13px;cursor:pointer}.back{color:var(--green);display:inline-block;margin-bottom:22px;text-decoration:none}.visit-form{max-width:800px}.visit-form section{background:white;border:1px solid var(--line);border-radius:14px;padding:26px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.field label{font-size:14px}.compact{max-width:240px}input:not([type=radio]):not([type=hidden]),select,textarea{font:inherit;border:1px solid #c7d5ce;border-radius:8px;background:#fff;padding:10px 12px;max-width:100%;width:100%;color:var(--ink)}textarea{resize:vertical}.options #id_ticket_action{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.options label{display:block;padding:10px 14px;border:1px solid var(--line);border-radius:8px;font-size:14px}.submit-row{display:flex;align-items:center;justify-content:space-between;margin:24px 0}.submit-row p{font-size:13px;color:var(--muted)}.submit-row .button{min-width:180px}.success{padding:16px 20px;margin-bottom:24px;background:#e5f2e8;border:1px solid #b7d5bd;border-radius:10px}.error,.errorlist{color:#973d32;font-size:14px}.errorlist{padding-left:20px}.login{max-width:420px;margin:30px auto}.login form{padding:26px;background:white;border:1px solid var(--line);border-radius:14px}.login button{width:100%}footer{text-align:center;color:var(--muted);font-size:12px;padding:26px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(max-width:700px){header{padding:16px;gap:10px}.brand{font-size:16px}.dev{font-size:10px}.brand span{margin-left:3px}main{padding:26px 16px}h1{font-size:28px}.heading{align-items:flex-start}.counts{gap:18px}.counts strong{font-size:25px}.patient-card{grid-template-columns:65px 1fr;gap:18px;padding:20px}.patient-card time{font-size:20px}.ticket{padding-left:0}.arrival{text-align:right}.form-grid{grid-template-columns:1fr;gap:0}.visit-form section{padding:20px}.submit-row{align-items:stretch;flex-direction:column}.submit-row .button{width:100%}.counts small{font-size:10px}.login{margin:10px auto}}
.booking-mobile{max-width:560px;margin:auto}.booking-mobile h1{font-size:28px}.booking-mobile form{margin:22px 0}.booking-mobile form>.button{margin-top:12px;width:100%;white-space:normal}.booking-mobile h2{margin-top:26px}.time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.time-choice{font:inherit;min-height:52px;background:white;border:1px solid #a8bfb4;border-radius:10px;color:var(--green);cursor:pointer}.time-choice:focus-visible{outline:3px solid #72b7a8}.booking-list{display:grid;gap:16px;margin:28px 0}.booking-card{padding:24px;background:white;border:1px solid var(--line);border-radius:16px}.booking-card h2{margin:4px 0 12px}.booking-card .back{margin-bottom:0;margin-right:20px;padding:8px 0}.cancel-row{border-top:1px solid var(--line);padding-top:22px}

/* First-visit decisions stay beside the completed visit, without recurring prompts. */
.care-card-controls{grid-column:1/-1;border-top:1px solid #dae3df;padding-top:12px}.care-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.care-actions .button{flex:1;min-width:90px;white-space:nowrap;padding:12px 8px;font-size:14px}.care-panel details{margin-top:12px}.care-consent-clauses{padding-left:1.3em}.care-consent-clauses li{margin-bottom:16px;line-height:1.8}.booking-contact{margin:16px 0}

.mfa-qr svg{max-width:100%;height:auto;width:240px}.recovery-codes{font-family:monospace;overflow-wrap:anywhere}.login input{max-width:100%;box-sizing:border-box}
.channel-entry{max-width:740px;margin:30px auto}.channel-options{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:30px 0}.channel-options .button{width:100%;box-sizing:border-box}.secondary{background:#f2f5ee!important;color:#243e37!important;border:1px solid #c6d2c4}.channel-options small{font-size:11px;margin-left:8px}.mobile-copy{display:none}.portal-qr svg{width:260px;max-width:100%;height:auto}.portal-qr{padding:20px;background:white;width:fit-content}button:disabled,[aria-disabled=true]{opacity:.5;pointer-events:none}label{max-width:100%}@media(max-width:600px){.channel-options{grid-template-columns:1fr;gap:14px}.desktop-copy,.desktop-qr{display:none}.mobile-copy{display:block}.channel-entry{margin:10px auto}}

.print-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:16px}.print-actions form{margin:0}.print-actions .button{min-height:48px;padding:12px 16px}.print-history{margin:28px 0;padding:22px;background:#fff;border:1px solid var(--line);border-radius:14px}.print-history article{border-top:1px solid var(--line);padding:14px 0}.print-hint{display:block;font-size:12px;color:var(--muted)}
