@font-face{font-family:Noto Sans;src:url(/assets/noto-regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Noto Sans;src:url(/assets/noto-semibold.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Noto Sans;src:url(/assets/noto-bold.ttf)format("truetype");font-weight:700;font-display:swap}:root{color:#1c2430;--blue:#0f62a6;--navy:#0b3b66;--line:#cbd5e1;--muted:#526173;--tint:#e8f1fa;--yellow:#f2c14e;--error:#a32323;--green:#17603c;background:#f6f8fb;font-family:Noto Sans,Microsoft JhengHei,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a{color:var(--blue);text-underline-offset:4px}h1,h2,h3{color:var(--navy);text-wrap:balance;letter-spacing:-.025em;margin:0 0 16px;font-weight:600;line-height:1.25}h1{font-size:2rem}h2{font-size:1.375rem}h3{font-size:1.125rem}p{max-width:70ch;margin:0 0 14px}strong{font-weight:600}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}::selection{background:var(--yellow);color:var(--navy)}input,textarea{caret-color:var(--blue);accent-color:var(--blue)}html{scrollbar-color:var(--blue) var(--tint)}button:disabled{cursor:not-allowed;color:#5b6675;background:#e2e8ef;border-color:#bbc5d1}input,select,textarea{color:#1c2430;background:#fff;border:1px solid #78889c;border-radius:7px;width:100%;min-width:0;min-height:48px;padding:10px 12px}input:read-only{background:#f1f4f8}select{padding-inline-end:28px}textarea{resize:vertical}input::placeholder{color:var(--muted)}label{color:var(--navy);font-size:.875rem;font-weight:600}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field .hint{margin:0}.fields{gap:20px;margin-block:22px;display:grid}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.button{border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:7px;min-height:48px;padding:11px 19px;font-size:.9375rem;font-weight:600;line-height:1.4}.button:hover:not(:disabled){background:#0b4d83;border-color:#0b4d83}.secondary{color:var(--blue);background:#fff}.secondary:hover:not(:disabled){background:var(--tint);color:var(--navy);border-color:var(--blue)}.text-button{color:var(--blue);text-underline-offset:4px;background:0 0;border:0;min-height:44px;padding:8px 4px;font-size:.875rem;font-weight:600;text-decoration:underline}.text-button:hover:not(:disabled){color:var(--navy)}.text-button:disabled,.tab:disabled{color:#647184;background:0 0;border-color:#0000}.site-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:24px;padding:20px max(24px,50% - 620px);display:flex}.brand{color:var(--navy);flex-shrink:0;align-items:center;gap:12px;font-size:1.25rem;font-weight:600;line-height:1.2;text-decoration:none;display:flex}.brand small{letter-spacing:0;margin-top:7px;font-size:.75rem;font-weight:400;display:block}.header-controls{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.header-controls .field{gap:3px}.header-controls .field label{font-size:.75rem}.header-controls select{max-width:180px;min-height:44px;font-size:.875rem}.synthetic-banner{color:#624600;text-align:center;background:#fff0c4;padding:12px 24px;font-size:.875rem;font-weight:600}.patient-layout{max-width:1240px;margin:auto;padding:36px 24px 52px}.patient-shell{grid-template-columns:minmax(240px,.8fr) minmax(400px,1.2fr);align-items:start;gap:64px;display:grid}.welcome{padding-block:24px}.welcome h1{max-width:15ch;margin-bottom:22px;font-size:2.75rem;line-height:1.2}.welcome>p{color:var(--muted)}.practice-photo{aspect-ratio:1.5;object-fit:cover;border-radius:12px;width:100%;margin-block:28px}.patient-app{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:0;overflow:hidden}.tabs{border-bottom:1px solid var(--line);gap:20px;padding-inline:24px;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;min-height:58px;padding:12px 0;font-size:.875rem;font-weight:600}.tab:hover:not(:disabled){color:var(--blue)}.tab.selected{border-color:var(--blue);color:var(--blue)}.app-body,.auth-panel{padding:28px}.auth-panel p{color:var(--muted)}.auth-panel .button{margin-top:12px}.local-signin{flex-wrap:wrap;gap:12px;display:flex}.messages:empty{display:none}.messages{margin-bottom:24px}.error,.notice{color:#624600;overflow-wrap:anywhere;background:#fff8e5;border:1px solid #d8b457;border-radius:7px;margin-block:16px;padding:14px 16px}.error{color:var(--error);background:#fff1f1;border-color:#d5a1a1}.notice p{margin:8px 0 0}.hint{color:var(--muted);font-size:.875rem;line-height:1.6}.steps{color:var(--muted);justify-content:space-between;gap:20px;margin:0 0 28px;padding:0;font-size:.75rem;list-style:none;display:flex}.steps li{align-items:center;gap:7px;display:flex}.steps li span{border:1px solid #8996a6;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;display:grid}.steps .current{color:var(--navy);font-weight:600}.steps .current span{background:var(--blue);color:#fff;border-color:var(--blue)}.hold-banner{background:var(--tint);color:var(--navy);border-radius:7px;margin-bottom:20px;padding:12px 14px;font-size:.875rem}.hold-banner strong{font-variant-numeric:tabular-nums;padding-inline:7px}.hold-banner .hint{display:block}.availability{border-top:1px solid var(--line);margin-top:30px;padding-top:24px}.times{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0;display:grid}.time{min-height:48px;color:var(--navy);font-variant-numeric:tabular-nums;background:#fff;border:1px solid #78889c;border-radius:7px;padding:9px 12px;font-size:.875rem}.time:hover:not(:disabled){background:var(--tint)}.time.selected{background:var(--tint);border:2px solid var(--blue);padding:8px 11px;font-weight:600}.waitlist-area{margin-top:24px}.waitlist-form{border-top:1px solid var(--line);padding-top:20px}.empty{color:var(--muted);padding-block:20px;font-size:.9375rem}.checkbox{color:#1c2430;align-items:flex-start;gap:12px;margin-block:22px;font-size:.9375rem;font-weight:400;display:flex}.checkbox input{flex-shrink:0;width:20px;height:20px;min-height:20px;margin-top:3px}.actions{flex-wrap:wrap;justify-content:space-between;gap:14px;margin-top:26px;display:flex}.summary{margin:20px 0}.summary>div{border-bottom:1px solid var(--line);padding-block:12px}dt{color:var(--muted);font-size:.8125rem}dd{color:var(--navy);overflow-wrap:anywhere;margin:3px 0 0;font-weight:600}.summary dd{font-size:.9375rem}.section-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.section-head h2{margin:0}.appointment-row{border-top:1px solid var(--line);padding-block:24px}.appointment-row h3{margin-bottom:10px}.appointment-row p{margin-bottom:7px}.status{color:var(--navy);background:var(--tint);overflow-wrap:anywhere;border-radius:4px;max-width:100%;padding:3px 8px;font-size:.8125rem;font-weight:600;display:inline-block}.status.positive{color:var(--green);background:#e7f3eb}.status.caution{color:#624600;background:#fff0c4}.row-actions{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.confirmation{background:#fff8e5;border:1px solid #d8b457;border-radius:7px;width:100%;padding:16px}.confirmation .button{margin-inline-end:16px}.workspace{max-width:1320px;margin:auto;padding:36px 24px 52px}.staff-shell{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.staff-shell>h1{padding:26px 28px 0;font-size:1.75rem}.workspace-content{padding:28px}.toolbar{flex-wrap:wrap;align-items:end;gap:20px;margin-bottom:20px;display:flex}.toolbar .field{width:220px}.office-schedules{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;margin-top:28px;display:grid}.office-schedule h2{border-bottom:1px solid var(--line);margin-bottom:0;padding-bottom:14px}.staff-appointment,.external-slot{border-bottom:1px solid var(--line);padding-block:20px}.appointment-heading{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px;display:flex}.staff-appointment h3{margin-bottom:6px}.staff-appointment>p{margin-bottom:8px}.staff-appointment>.field{max-width:280px;margin-top:12px}.staff-action{margin-top:16px;font-size:.875rem}.staff-action summary{cursor:pointer;color:var(--blue);text-underline-offset:4px;min-height:44px;padding-block:10px;text-decoration:underline}.staff-action form{padding:14px 0}.staff-action .field{margin-bottom:16px}.external-slot{color:var(--muted);background:#f6f8fb;padding-inline:12px}.external-slot p{margin:6px 0 0;font-size:.875rem}.sync-facts{border-block:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-block:26px 36px;padding-block:22px;display:grid}.sync-facts dd{font-size:1.125rem}.issue-list{margin:0;padding:0;list-style:none}.issue-list li{border-bottom:1px solid var(--line);padding-block:18px}.issue-list li strong{overflow-wrap:anywhere}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th{text-align:start;color:var(--navy);background:#f6f8fb}td,th{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:14px 16px}td:last-child{max-width:240px}.contacts{border-top:1px solid var(--line);max-width:1240px;color:var(--muted);grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 48px;margin:auto;padding:32px 24px;font-size:.875rem;display:grid}.contacts h2,.contacts>.hint{grid-column:1/-1}.contacts h2{margin:0;font-size:1rem}.contacts strong{color:var(--navy)}.contacts p{margin:6px 0}.loading{min-height:280px;padding:40px 24px}.skip-link{z-index:20;background:#fff;padding:12px;position:absolute;top:-100px;left:20px}.skip-link:focus{top:12px}@media (max-width:960px){.patient-shell{grid-template-columns:1fr;gap:28px;max-width:680px;margin:auto}.welcome{padding:0}.welcome h1{max-width:24ch;font-size:2rem}.welcome .practice-photo{display:none}.welcome .hint{margin-bottom:0}.header-controls{gap:14px}.office-schedules{grid-template-columns:1fr}.sync-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.site-header{flex-wrap:wrap;gap:14px;padding:16px 20px}.brand{font-size:1.125rem}.brand img{width:42px;height:42px}.header-controls{justify-content:space-between;gap:10px;width:100%}.header-controls .field{max-width:140px}.header-controls .text-button{font-size:.8125rem}.patient-layout,.workspace{padding:24px 16px 36px}.patient-shell{gap:22px}.welcome h1{margin-bottom:14px;font-size:1.75rem}.welcome p{font-size:.9375rem}.app-body,.auth-panel,.workspace-content{padding:22px 18px}.tabs{gap:22px;padding-inline:18px}.tab{font-size:.8125rem}.two{grid-template-columns:1fr;gap:16px}.steps{gap:8px;font-size:.6875rem}.steps li{gap:5px}.steps li span{width:20px;height:20px}.times{grid-template-columns:repeat(2,minmax(0,1fr))}.actions .button{flex:1}.section-head{flex-wrap:wrap;align-items:flex-start}.section-head .button{min-height:44px}.workspace .auth-panel{border:1px solid var(--line);background:#fff;border-radius:12px}.staff-shell>h1{padding-inline:18px}.toolbar{gap:16px}.toolbar .field,.toolbar>.button{width:100%}.sync-facts{gap:20px}.contacts{grid-template-columns:1fr;gap:20px;padding:26px 20px}.synthetic-banner{text-align:start;padding:12px 16px}.appointment-heading{flex-wrap:wrap;align-items:start}.local-signin{flex-direction:column}.local-signin .button{width:100%}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media (forced-colors:active){.status,.notice,.error,.synthetic-banner{border:1px solid canvastext}.tab.selected{border-bottom:3px solid highlight}.time.selected{border-color:highlight}}.field-error{color:var(--error);margin:0;font-size:.875rem;line-height:1.6}.provider-preview{align-items:center;gap:14px;min-width:0;margin:20px 0;display:flex}.provider-preview img{object-fit:cover;border-radius:7px;flex-shrink:0;width:56px;height:70px}.provider-preview strong{color:var(--navy);overflow-wrap:anywhere;font-size:.875rem}.provider-preview p{margin:4px 0 0}.otp-form{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.otp-form .button,.app-body>form>.button{margin-top:16px}.contacts a{align-items:center;min-height:44px;display:inline-flex}.checkbox{min-height:44px}
