.patient-app{background:var(--ground);min-height:100dvh;color:var(--fg);font-family:var(--font-sans);font-size:14px;line-height:1.5}.patient-app *{box-sizing:border-box}.patient-app.is-embedded{min-height:0}.patient-app output{display:block}.patient-dates,.patient-times{border:0;min-width:0;margin:0;padding:0}.patient-app h1,.patient-app h2,.patient-app h3{font-family:var(--font-sans)}.patient-app button,.patient-app input,.patient-app select,.patient-app textarea{font:inherit}.patient-app button,.patient-app label{-webkit-tap-highlight-color:transparent}.patient-app button:not(:disabled),.patient-app a{cursor:pointer}.patient-app label:has(input[type=radio]){cursor:pointer}.patient-app label:has(input[type=file]){cursor:pointer}.patient-app :focus-visible{outline:3px solid var(--accent);outline-offset:3px}.patient-topbar{background:var(--card);border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;gap:12px;height:72px;padding:0 max(24px,50% - 540px);display:flex}.patient-brand{letter-spacing:-.6px;color:var(--fg);align-items:center;gap:10px;font-size:19px;font-weight:600;text-decoration:none;display:inline-flex}.patient-brand-mark{border-radius:var(--radius);background:var(--accent);width:34px;height:34px;color:var(--on-accent);place-items:center;display:grid}.patient-brand-by{letter-spacing:-.1px;color:var(--dim);font-size:12px;font-weight:400}.patient-secure{color:var(--dim);align-items:center;gap:5px;font-size:12px;display:inline-flex}.patient-main{width:min(100% - 48px,1040px);margin:auto;padding:30px 0 0}.patient-progress{width:min(100%,560px);margin:0 auto 42px}.patient-progress ol{margin:0;padding:0;list-style:none;display:flex}.patient-progress li{color:var(--dim);flex:1;align-items:center;gap:8px;font-size:12px;display:flex;position:relative}.patient-progress li:last-child{flex:none}.patient-progress li:not(:last-child):after{content:"";background:var(--divider);flex:1;height:1px;margin:0 14px}.patient-progress .is-current{color:var(--accent);font-weight:600}.patient-step-number{border:1px solid var(--control);border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:11px;display:grid}.patient-progress .is-current .patient-step-number{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.patient-progress .is-done .patient-step-number{background:var(--accent-tint);border-color:var(--accent);color:var(--accent)}.patient-page-heading{max-width:650px;margin-bottom:24px}.patient-kicker{font-family:var(--font-mono);letter-spacing:.1em;color:var(--accent);margin-bottom:10px;font-size:10px;font-weight:500;display:block}.patient-page-heading h1{letter-spacing:-.8px;margin:0 0 12px;font-size:clamp(25px,4.5vw,33px);font-weight:500;line-height:1.15}.patient-page-heading p{color:var(--dim);max-width:590px;margin:0;font-size:14px;line-height:1.65}.patient-sample{background:var(--warning-tint);color:var(--warning);border:1px solid color-mix(in oklab, var(--warning) 22%, transparent);border-radius:var(--radius);align-items:center;gap:7px;margin-bottom:20px;padding:10px 13px;font-size:12px;font-weight:500;display:flex}.patient-sample>span:last-child{color:inherit;opacity:.92;font-weight:400}.patient-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.patient-practice-line{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;font-size:12px;display:flex}.patient-practice-line>span{color:var(--dim);align-items:center;gap:4px;display:flex}.patient-booking-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.patient-stack{flex-direction:column;gap:18px;min-width:0;display:flex}.patient-panel{background:var(--card);border:1px solid var(--divider);border-radius:var(--radius);min-width:0;padding:24px}.patient-section-title{color:var(--accent);align-items:center;gap:9px;margin-bottom:20px;display:flex}.patient-section-title h2{color:var(--fg);margin:0;font-size:16px;font-weight:500;line-height:1.3}.patient-section-number{font-family:var(--font-mono);color:var(--dim);border:1px solid var(--divider);border-radius:3px;padding:1px 4px;font-size:11px}.patient-subtle-tag{color:var(--dim);background:var(--raised);border-radius:3px;align-items:center;padding:3px 7px;font-size:10px;font-weight:500;line-height:1.5;display:inline-flex}.patient-section-title .patient-subtle-tag{flex-shrink:0;margin-left:auto}.patient-provider-list{border:0;gap:8px;margin:0;padding:0;display:grid}.patient-provider{border:1px solid var(--control);border-radius:var(--radius);align-items:center;gap:12px;padding:13px;transition:border-color .12s,background .12s;display:flex;position:relative}.patient-provider.selected{border-color:var(--accent);background:var(--accent-tint)}.patient-provider:has(:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.patient-provider>input{opacity:0;width:1px;height:1px;position:absolute}.patient-avatar{border-radius:var(--radius);background:var(--raised);width:40px;height:40px;color:var(--accent);font-family:var(--font-mono);flex-shrink:0;place-items:center;font-size:13px;font-weight:500;display:grid}.patient-provider.selected .patient-avatar{background:var(--card)}.patient-provider-text{flex-direction:column;flex:1;gap:2px;display:flex}.patient-provider-text strong{font-size:13px;font-weight:500}.patient-provider-text>span{color:var(--dim);font-size:12px}.patient-provider-text small{color:var(--dim);font-size:11px;line-height:1.4}.patient-radio{border:1px solid var(--control);border-radius:50%;flex-shrink:0;place-items:center;width:16px;height:16px;display:grid}.patient-provider.selected .patient-radio{border-color:var(--accent)}.patient-radio>span{background:var(--accent);border-radius:50%;width:8px;height:8px}.patient-check{cursor:pointer;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;display:flex}.patient-check input{width:17px;height:17px;accent-color:var(--accent);flex-shrink:0;margin:2px 0 0}.patient-check strong{font-weight:500}.patient-check small{color:var(--dim);margin-top:2px;font-size:11px;display:block}.patient-returning{border-top:1px solid var(--divider);margin-top:19px;padding-top:18px}.patient-returning strong{font-size:13px}.patient-calendar-heading{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.patient-calendar-heading>span{align-items:center;gap:7px;font-size:13px;font-weight:500;display:flex}.patient-calendar-heading>div{gap:5px;display:flex}.patient-icon-button{border:1px solid var(--control);border-radius:var(--radius);width:32px;height:32px;color:var(--dim);background:var(--card);flex-shrink:0;place-items:center;padding:0;display:grid}.patient-icon-button:disabled{opacity:.4;cursor:not-allowed}.patient-icon-button:hover:not(:disabled){background:var(--raised);color:var(--accent)}.patient-dates{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.patient-date{border:1px solid var(--control);background:var(--card);border-radius:var(--radius);flex-direction:column;align-items:center;gap:5px;padding:9px 0 7px;display:flex}.patient-date>span{color:var(--dim);font-size:10px}.patient-date>strong{font-size:17px;font-weight:500;line-height:1.2}.patient-date>i{background:0 0;border-radius:50%;width:4px;height:4px}.patient-date>i.has-slots{background:var(--accent)}.patient-date.selected{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.patient-date.selected>span{color:inherit}.patient-date.selected>i.has-slots{background:var(--on-accent)}.patient-times-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px;margin:22px 0 12px;display:flex}.patient-times-heading strong{font-size:12px;font-weight:500}.patient-times-heading>span{color:var(--dim);font-size:10px}.patient-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.patient-time{background:var(--card);border:1px solid var(--control);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:45px;padding:11px 8px;display:flex;position:relative}.patient-time strong{font-size:13px;font-weight:500}.patient-time>span{color:var(--dim);font-size:10px;line-height:1.3}.patient-time.selected{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.patient-time>svg{position:absolute;top:3px;right:3px}.patient-summary{background:var(--card);border:1px solid var(--divider);border-top:3px solid var(--accent);border-radius:var(--radius);min-width:0;padding:22px;position:sticky;top:24px}.patient-summary h2{letter-spacing:-.3px;margin:0 0 17px;font-size:19px;font-weight:500;line-height:1.3}.patient-summary>p{color:var(--dim);gap:7px;margin:10px 0;font-size:12px;line-height:1.6;display:flex}.patient-summary>p>svg{flex-shrink:0;margin-top:2px}.patient-summary>.patient-summary-provider{color:var(--fg);font-size:13px;font-weight:500}.patient-summary>.patient-subtle-tag{margin-top:6px}.patient-summary-divider{border-top:1px solid var(--divider);margin:22px 0 18px}.patient-next-list{flex-direction:column;gap:12px;margin:0 0 22px;padding:0;list-style:none;display:flex}.patient-next-list li{color:var(--dim);align-items:center;gap:6px;font-size:12px;display:flex}.patient-next-list svg{color:var(--accent)}.patient-button{background:var(--accent);min-height:43px;color:var(--on-accent);border:1px solid var(--accent);border-radius:var(--radius);text-align:center;justify-content:center;align-items:center;gap:9px;padding:10px 14px;font-size:12px;font-weight:500;line-height:1.4;text-decoration:none;display:inline-flex;position:relative}.patient-button.secondary{background:var(--card);border-color:var(--control);color:var(--fg)}.patient-button:hover:not(:disabled):not(.is-disabled){background:var(--accent-strong);color:var(--on-accent)}.patient-button.secondary:hover:not(:disabled):not(.is-disabled){background:var(--raised);color:var(--fg)}.patient-button:disabled,.patient-button.is-disabled{opacity:.5;cursor:not-allowed}.patient-summary>.patient-button{width:100%}.patient-summary>.patient-caption{color:var(--dim);text-align:center;justify-content:center;margin:10px 0 0;font-size:10px}.patient-help{color:var(--dim);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:28px auto;font-size:12px;display:flex}.patient-help a{text-underline-offset:3px;font-weight:500;text-decoration:underline}.patient-help>span{font-size:11px}.patient-footer{border-top:1px solid var(--divider);width:min(100% - 48px,1040px);color:var(--dim);justify-content:space-between;align-items:center;margin:30px auto 0;padding:20px 0 26px;font-size:10px;display:flex}.patient-footer>span{align-items:center;gap:5px;display:flex}.patient-footer strong{color:var(--fg);font-size:12px;font-weight:500}.patient-back{color:var(--dim);align-items:center;gap:5px;margin-bottom:20px;font-size:12px;text-decoration:none;display:inline-flex}.patient-back:hover,.patient-text-button:hover{text-decoration:underline}.patient-text-button{color:var(--accent);background:0 0;border:0;align-items:center;gap:5px;margin-top:10px;padding:0;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.patient-preview{background:var(--accent-tint);border:1px solid var(--divider);border-radius:var(--radius);align-items:flex-start;gap:12px;margin-bottom:20px;padding:17px 19px;display:flex}.patient-preview>svg{color:var(--accent);flex-shrink:0;margin-top:2px}.patient-preview strong{font-size:13px;font-weight:500}.patient-preview p{color:var(--dim);max-width:770px;margin:4px 0 0;font-size:12px}.patient-preview.active{border-color:var(--accent)}.patient-description{color:var(--dim);margin:-6px 0 16px;font-size:12px;line-height:1.65}.patient-label{flex-wrap:wrap;align-items:baseline;gap:7px;margin-bottom:7px;font-size:12px;font-weight:500;display:flex}.patient-label>span{color:var(--dim);font-size:10px;font-weight:400}.patient-input{border:1px solid var(--control);background:var(--card);width:100%;min-width:0;min-height:43px;color:var(--fg);border-radius:var(--radius);padding:10px 11px;font-size:14px;line-height:1.4;display:block}.patient-input::placeholder{color:var(--dim)}.patient-input[aria-invalid=true]{border-color:var(--destructive)}.patient-input:disabled{background:var(--raised);color:var(--dim);opacity:1}.patient-input-action{align-items:stretch;gap:8px;display:flex}.patient-input-action>.patient-input{flex:1;width:0}.patient-input-action>button{flex-shrink:0}.patient-code-block{margin-top:20px}.patient-code{letter-spacing:.3em;font-family:var(--font-mono)}.patient-inline-notice{background:var(--raised);border-radius:var(--radius);color:var(--fg);margin:12px 0 0;padding:10px 12px;font-size:12px}.patient-verified{color:var(--success);background:var(--success-tint);border-radius:3px;align-items:center;gap:4px;margin-left:auto;padding:3px 7px;font-size:10px;font-weight:500;display:flex}.patient-form-fields{border:0;flex-direction:column;gap:17px;min-width:0;margin:0;padding:0;display:flex}.patient-form-fields:disabled{opacity:1}.patient-form-fields:disabled .patient-check{color:var(--dim)}.patient-field-grid{grid-template-columns:1fr 1.3fr;gap:14px;display:grid}.patient-field-grid>div{min-width:0}.patient-field-help{color:var(--dim);margin:7px 0 0;font-size:11px;line-height:1.6}.patient-field-error{background:var(--destructive-tint);color:var(--destructive);border-radius:3px;margin:7px 0 0;padding:7px 9px;font-size:12px}.patient-error{background:var(--destructive-tint);color:var(--destructive);border:1px solid var(--destructive);border-radius:var(--radius);margin-bottom:18px;padding:16px 18px;font-size:12px}.patient-stack>.patient-error{margin-bottom:0}.patient-error p{margin:7px 0}.patient-error ul{margin:7px 0 0;padding-left:17px}.patient-error a{text-underline-offset:2px;text-decoration:underline}.patient-textarea{resize:vertical}.patient-upload{border:1px dashed var(--control);background:var(--ground);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:25px 15px;display:flex;position:relative}.patient-upload>svg{color:var(--accent);margin-bottom:3px}.patient-upload>strong{font-size:13px;font-weight:500}.patient-upload>span{color:var(--dim);font-size:10px}.patient-upload-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.patient-file-input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.patient-button:has(.patient-file-input:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.patient-file-list{flex-direction:column;gap:7px;margin-top:12px;display:flex}.patient-file-row{border:1px solid var(--divider);background:var(--ground);border-radius:var(--radius);align-items:center;gap:10px;padding:11px;display:flex}.patient-file-row>svg{color:var(--accent);flex-shrink:0}.patient-file-row>span:not(.patient-subtle-tag){flex:1;min-width:0}.patient-file-row strong{overflow-wrap:anywhere;font-size:12px;font-weight:500;display:block}.patient-file-row small{color:var(--dim);margin-top:2px;font-size:10px;display:block}.patient-private-note{color:var(--dim);align-items:flex-start;gap:6px;margin:0;font-size:10px;line-height:1.5;display:flex}.patient-private-note>svg{flex-shrink:0}.patient-summary-note{align-items:flex-start;gap:8px;margin-bottom:20px;display:flex}.patient-summary-note>svg{color:var(--accent);flex-shrink:0;margin-top:2px}.patient-summary-note>p{color:var(--dim);margin:0;font-size:12px;line-height:1.6}.patient-summary-note strong{color:var(--fg);font-weight:500;display:block}.patient-loading{text-align:center;color:var(--dim);padding:50px 20px}.patient-empty{color:var(--dim);margin:0;padding:15px 0 0;font-size:12px}.patient-empty-state{text-align:center;max-width:620px;margin:30px auto;padding:40px 28px}.patient-empty-state>svg{color:var(--accent);margin:0 auto 20px}.patient-empty-state h1{margin-bottom:14px;font-size:24px;font-weight:500}.patient-empty-state p{color:var(--dim);margin:12px 0;font-size:13px}.patient-empty-state .patient-button{margin-top:15px}.patient-receipt{text-align:center;max-width:640px;margin:28px auto;padding:40px}.patient-receipt-icon{background:var(--success-tint);width:64px;height:64px;color:var(--success);border-radius:50%;place-items:center;margin:0 auto 22px;display:grid}.patient-receipt-icon.sample{background:var(--accent-tint);color:var(--accent)}.patient-receipt>h1{letter-spacing:-.6px;margin-bottom:14px;font-size:28px;font-weight:500;line-height:1.2}.patient-receipt-lead{color:var(--dim);max-width:470px;margin:0 auto 23px;font-size:13px;line-height:1.8}.patient-not-booked{background:var(--warning-tint);color:var(--warning);border-radius:var(--radius);flex-direction:column;gap:4px;padding:14px;font-size:12px;display:flex}.patient-not-booked strong{font-weight:500}.patient-not-booked span{font-size:11px}.patient-receipt-detail{background:var(--ground);border:1px solid var(--divider);border-radius:var(--radius);margin:24px 0;padding:20px}.patient-receipt-detail>span{font-family:var(--font-mono);letter-spacing:.05em;color:var(--dim);margin-bottom:10px;font-size:10px;display:block}.patient-receipt-detail>strong{justify-content:center;align-items:center;gap:7px;font-size:16px;font-weight:500;display:flex}.patient-receipt-detail p{color:var(--dim);margin:8px 0 0;font-size:12px}.patient-receipt-detail .patient-reference{font-family:var(--font-mono);border-top:1px solid var(--divider);margin-top:15px;padding-top:14px;font-size:10px}.patient-what-next{text-align:left;margin:25px 0 30px}.patient-what-next h2{margin-bottom:20px;font-size:15px;font-weight:500}.patient-what-next>div{align-items:flex-start;gap:12px;margin-top:19px;display:flex}.patient-what-next>div>span{border:1px solid var(--divider);background:var(--ground);border-radius:var(--radius);width:28px;height:28px;color:var(--accent);flex-shrink:0;place-items:center;display:grid}.patient-what-next p{margin:0;font-size:12px}.patient-what-next strong{font-weight:500;display:block}.patient-what-next small{color:var(--dim);margin-top:4px;font-size:11px;display:block}.patient-skip{background:var(--card);color:var(--accent);z-index:10;padding:10px;position:absolute;top:-100px;left:10px}.patient-skip:focus{top:10px}@media (max-width:790px){.patient-booking-grid{grid-template-columns:1fr;gap:18px}.patient-summary{position:static}.patient-summary h2{font-size:18px}.patient-summary .patient-next-list{display:none}.patient-main{max-width:640px}.patient-progress{margin-bottom:30px}}@media (max-width:480px){.patient-topbar{height:60px;padding:0 16px}.patient-brand{gap:7px;font-size:17px}.patient-brand-mark{width:30px;height:30px}.patient-brand-by,.patient-secure{font-size:10px}.patient-main{width:calc(100% - 28px);padding-top:22px}.patient-progress li{gap:5px;font-size:10px}.patient-progress li:not(:last-child):after{margin:0 7px}.patient-step-number{width:21px;height:21px;font-size:10px}.patient-page-heading h1{font-size:27px}.patient-page-heading p{font-size:13px}.patient-sample{flex-wrap:wrap;gap:4px 6px;font-size:11px}.patient-sample>span:last-child{width:100%;padding-left:12px;font-size:10px}.patient-panel{padding:19px 15px}.patient-provider{gap:9px;padding:12px 10px}.patient-provider-text small{font-size:10px}.patient-avatar{width:34px;height:36px}.patient-section-title{gap:7px}.patient-section-title h2{font-size:15px}.patient-section-title .patient-subtle-tag{font-size:9px}.patient-dates{gap:4px}.patient-date{padding:9px 0 6px}.patient-date>span{font-size:9px}.patient-date>strong{font-size:16px}.patient-times{gap:6px}.patient-time strong{font-size:12px}.patient-time>span{font-size:9px}.patient-footer{gap:10px;width:calc(100% - 32px);font-size:9px}.patient-field-grid{grid-template-columns:1fr;gap:17px}.patient-input{font-size:16px}.patient-input-action>.patient-button{padding:10px}.patient-preview{gap:9px;padding:14px}.patient-preview p{font-size:11px}.patient-receipt{padding:30px 20px}.patient-receipt>h1{font-size:25px}.patient-receipt-detail{padding:17px 12px}.patient-receipt-detail>strong{font-size:14px}.patient-upload-actions{gap:7px}.patient-upload-actions .patient-button{padding:9px 12px}}
