@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";.patient-switcher{margin:14px 0;padding:13px 14px;border:1px solid #dbe7f7;border-radius:13px;background:#fff;color:#294663}.patient-switcher-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px;color:#7a8fa9;font-size:11px;line-height:1.5}.patient-switcher-heading>span{display:inline-flex;align-items:center;gap:6px}.patient-switcher-heading>small{font-size:10px;color:#96a5b7}.patient-switcher-control{position:relative;display:flex;align-items:center;gap:10px;min-height:47px}.patient-switcher-avatar{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:#edf4ff;color:#3475c9}.patient-switcher-person{display:grid;flex:1;min-width:0;gap:5px}.patient-switcher-person>strong{overflow:hidden;color:#284866;font-size:16px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.patient-switcher-person>span{display:flex;align-items:center;gap:6px;color:#8b9bb0;font-size:11px}.patient-switcher-person i{padding:2px 5px;border-radius:4px;background:#eef4fe;color:#6f91c0;font-size:9px;font-style:normal}.patient-switcher-select-label{display:flex;align-items:center;gap:4px;flex:0 0 auto;min-height:36px;color:#326ec1;font-size:12px}.patient-switcher-control>select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}.patient-switcher-control:focus-within{outline:3px solid #a9caf366;outline-offset:5px;border-radius:7px}.patient-switcher-empty{margin:0;color:#8b9bb0;font-size:11px;line-height:1.7}.pagination-control[data-v-a59ee8ed]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:14px 2px;color:#7c8ea3;font-size:12px}.pagination-total[data-v-a59ee8ed]{white-space:nowrap}.pagination-actions[data-v-a59ee8ed]{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.pagination-size[data-v-a59ee8ed]{display:flex;align-items:center;gap:6px;white-space:nowrap}.pagination-size select[data-v-a59ee8ed],.pagination-actions button[data-v-a59ee8ed]{min-height:32px;border:1px solid #dce5ef;border-radius:7px;background:#fff;color:#49627e;font:inherit}.pagination-size select[data-v-a59ee8ed]{padding:0 26px 0 9px}.pagination-actions button[data-v-a59ee8ed]{padding:0 10px;cursor:pointer}.pagination-actions button[data-v-a59ee8ed]:disabled{color:#b3bfcb;background:#f7f9fc;cursor:default}.pagination-current[data-v-a59ee8ed]{min-width:68px;text-align:center;white-space:nowrap}.pagination-control button[data-v-a59ee8ed]:focus-visible,.pagination-control select[data-v-a59ee8ed]:focus-visible{outline:3px solid #adcaf0;outline-offset:2px}@media(max-width:520px){.pagination-control[data-v-a59ee8ed]{justify-content:center}.pagination-total[data-v-a59ee8ed]{width:100%;text-align:center}.pagination-actions[data-v-a59ee8ed]{justify-content:center;gap:6px}.pagination-size select[data-v-a59ee8ed],.pagination-actions button[data-v-a59ee8ed]{min-height:34px}.pagination-current[data-v-a59ee8ed]{min-width:60px}}.portal-services{--service-blue: #2864d6;--service-blue-light: #edf4ff;--service-border: #e6edf5;--service-copy: #263f5b;min-height:calc(100dvh - 58px);padding:18px 16px calc(var(--patient-tabbar-height, 62px) + 24px);background:#f5f8fc;color:var(--service-copy)}.portal-services button,.portal-services select{font-family:inherit}.portal-services button:disabled{cursor:default;opacity:.55}.portal-services button:focus-visible,.portal-services select:focus-visible,.portal-services a:focus-visible{outline:3px solid #2864d640;outline-offset:3px}.service-intro{display:flex;align-items:center;gap:12px;margin:0 0 18px}.service-intro-icon{width:46px;height:46px;display:grid;place-items:center;flex:0 0 46px;border:1px solid #dce9fc;border-radius:14px;background:#eaf2ff;color:var(--service-blue)}.service-intro h1{margin:0;font-size:18px;line-height:1.4;font-weight:650}.service-intro p{margin:5px 0 0;color:#7b8ba0;font-size:11px;line-height:1.6}.service-card{padding:16px;margin:12px 0 0;border:1px solid var(--service-border);border-radius:15px;background:#fff;box-shadow:0 4px 18px #254b7304}.service-card h2{margin:0;color:var(--service-copy);font-size:14px;line-height:1.6}.service-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:10px;color:#8a98aa}.service-card-top>span{min-width:0;overflow-wrap:anywhere}.service-status{padding:4px 8px;flex:0 0 auto;border-radius:6px;font-size:10px;font-weight:500;line-height:1.4}.service-status.is-pending{background:#fff4e2;color:#b37822}.service-status.is-complete{background:#eaf5ef;color:#378763}.service-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:0 20px;border:0;border-radius:10px;background:var(--service-blue);color:#fff;font-size:12px;font-weight:600}.service-full-button{width:100%}.service-empty{display:grid;justify-items:center;align-content:center;gap:12px;padding:32px 20px;text-align:center}.service-empty>svg,.service-empty-icon{color:#7da2da}.service-empty-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:#edf4ff}.service-empty p{max-width:280px;margin:0;color:#8997a8;font-size:11px;line-height:1.75}.service-empty .service-primary{margin-top:4px}.service-loading{display:grid;justify-items:center;align-content:center;gap:12px;min-height:180px;color:#7d92ae;font-size:12px}.service-spinning{animation:service-spin 1s linear infinite}@keyframes service-spin{to{transform:rotate(360deg)}}.service-error{margin:12px 0;padding:13px;border:1px solid #f1d9d5;border-radius:11px;background:#fff8f6;color:#ab6255}.service-error p{margin:0 0 9px;font-size:11px;line-height:1.7}.service-error button{display:flex;align-items:center;gap:5px;padding:5px 0;border:0;background:none;color:#a76053;font-size:11px;font-weight:600}.service-feedback{display:flex;align-items:flex-start;gap:7px;margin:12px 0;padding:11px;border-radius:10px;background:#eaf6ef;color:#4d8066;font-size:11px;line-height:1.6}.service-feedback>svg{flex:0 0 auto;margin-top:1px}.service-feedback>span{flex:1;min-width:0}.service-feedback button{flex:0 0 auto;border:0;padding:0;background:none;color:#4d8066;font-size:10px}.service-patient-filter{display:flex;align-items:center;gap:8px;height:45px;margin:12px 0;padding:0 12px;border:1px solid var(--service-border);border-radius:10px;background:#fff;color:#7a8da3;font-size:11px}.service-patient-filter select{flex:1;min-width:0;width:100%;height:100%;border:0;padding:0 16px 0 6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;background:transparent;color:#38516e;font-size:12px;text-align:right}.service-patient-filter>svg{flex:0 0 auto}.service-patient-selection{margin:14px 0}.service-patient-selection .patient-switcher{margin-bottom:8px}.service-query-scope{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 3px;color:#8c9bb0;font-size:11px;line-height:1.5}.service-query-scope>span{min-width:0}.service-query-scope strong{color:#4c729f;font-weight:600;overflow-wrap:anywhere}.service-query-scope .service-text-button{flex:0 0 auto;min-height:30px;font-size:10px}.service-detail-person{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding:9px 10px;border-radius:8px;background:#f0f5fd;color:#8396ae;font-size:11px}.service-detail-person strong{margin-left:auto;color:#335b88;font-size:12px;font-weight:600;overflow-wrap:anywhere}.service-tabs{display:flex;gap:6px;padding:4px;margin:15px 0 12px;border:1px solid #e9eef5;border-radius:11px;background:#edf2f8}.service-tabs button{flex:1;min-width:0;min-height:34px;border:0;border-radius:8px;background:transparent;color:#8a98aa;font-size:11px}.service-tabs button.active{background:#fff;color:var(--service-blue);box-shadow:0 2px 6px #263f5b08;font-weight:600}.bill-overview{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:13px 0 0;padding:18px;border:1px solid #d7e7ff;border-radius:14px;background:linear-gradient(115deg,#e7f0ff,#f3f8ff);color:var(--service-blue)}.bill-overview>div{display:grid;gap:8px}.bill-overview>div>span{color:#708db5;font-size:11px}.bill-overview strong{font-size:28px;line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums}.bill-overview strong small{margin-right:4px;font-size:16px;font-weight:500}.bill-overview>svg{color:#93b4e5}.service-record-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;margin-top:9px;color:#8a98aa;font-size:10px;line-height:1.6}.service-record-meta>span:first-child{display:inline-flex;align-items:center;gap:4px;color:#6f849d}.bill-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px}.bill-card-bottom>strong{font-size:21px;line-height:1.2;color:#274664;font-weight:600;font-variant-numeric:tabular-nums}.bill-card-bottom>strong small{margin-right:3px;font-size:12px}.service-detail-button,.report-open-button{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:32px;padding:0 10px;border:1px solid #dce7f6;border-radius:7px;background:#f8fbff;color:var(--service-blue);font-size:10px}.is-open{transform:rotate(180deg)}.bill-detail{margin-top:15px;padding-top:12px;border-top:1px solid #edf1f7}.bill-item-heading,.bill-item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;font-size:10px}.bill-item-heading{padding-top:0;color:#9aa6b5}.bill-item strong{min-width:0;color:#5f748b;font-size:11px;font-weight:500;overflow-wrap:anywhere}.bill-item>span{flex:0 0 auto;color:#7e90a4;font-variant-numeric:tabular-nums}.bill-pay-hint{margin:14px 0 10px;color:#8998aa;font-size:10px;line-height:1.65}.service-detail-line{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:11px;color:#9aa6b5;font-size:10px}.service-detail-line>strong{max-width:65%;color:#657c95;font-size:10px;font-weight:500;overflow-wrap:anywhere;text-align:right}.service-footnote{margin:13px 0 0;color:#9aa7b7;font-size:10px;line-height:1.75}.report-progress{display:flex;align-items:center;gap:5px;margin-top:14px;color:#8093aa;font-size:10px;line-height:1.6}.report-progress>svg{flex:0 0 auto}.report-open-button{width:100%;min-height:35px;margin-top:13px}.report-detail{margin-top:14px;padding-top:14px;border-top:1px solid #edf1f7}.report-detail-heading{display:flex;align-items:center;gap:6px;color:#6384ae;font-size:11px}.report-detail-heading strong{flex:1;font-weight:600;color:#3a597a}.report-detail-heading span{padding:2px 6px;border:1px solid #e0e9f6;border-radius:4px;font-size:9px}.report-content{margin:12px 0 0;padding:13px;border:1px solid #e8eef5;border-radius:9px;background:#f8fafd;color:#627891;font-size:11px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.message-toolbar{display:flex;align-items:center;justify-content:space-between;margin:10px 0 13px;gap:10px}.service-text-button{display:inline-flex;align-items:center;gap:5px;border:0;padding:5px 0;background:transparent;color:#6483ac;font-size:11px}.service-text-button.is-selected{color:var(--service-blue);font-weight:600}.service-text-button>span{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:5px;background:#e7effc;color:var(--service-blue);font-size:9px}.service-message{display:flex;align-items:flex-start;gap:11px;width:100%;margin-top:10px;padding:15px 13px;border:1px solid var(--service-border);border-radius:13px;background:#fff;text-align:left}.service-message.unread{border-color:#d7e6ff}.message-type-icon{position:relative;width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:11px;background:#edf3fd;color:#7298d0}.message-type-icon>i{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:#ed957c}.message-copy{min-width:0;flex:1;display:grid;gap:8px}.message-title{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:5px 8px}.message-title strong{color:#405b77;font-size:12px;line-height:1.6;font-weight:600}.message-title time{color:#a0acba;font-size:9px;white-space:nowrap}.message-content{color:#8292a6;font-size:11px;line-height:1.75;overflow-wrap:anywhere}.message-link{display:inline-flex;align-items:center;gap:2px;color:#6b91c5;font-size:10px}.hospital-overview{padding:19px 17px;background:linear-gradient(140deg,#fff,#f7faff)}.hospital-eyebrow{font-size:9px;letter-spacing:.15em;color:#8aa3c4}.hospital-overview h2{margin:7px 0 0;font-size:20px;letter-spacing:-.02em}.hospital-tagline{margin:7px 0 20px;color:#90a0b3;font-size:11px;line-height:1.7}.hospital-info-row{display:flex;align-items:flex-start;gap:10px;padding:13px 0 0;margin-top:13px;border-top:1px solid #edf1f7;color:#7b9ac3}.hospital-info-row svg{margin-top:2px;flex:0 0 auto}.hospital-info-row div{min-width:0;display:grid;gap:6px}.hospital-info-row span{color:#9aa8ba;font-size:10px}.hospital-info-row p,.hospital-info-row a{margin:0;color:#58728f;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.hospital-info-row a{color:var(--service-blue);text-decoration:none}.hospital-notice h2{display:flex;align-items:center;gap:7px;font-size:12px}.hospital-notice h2 svg{color:#7e9ac2}.hospital-notice p{margin:11px 0 0;color:#7c8fa5;font-size:11px;line-height:1.85;white-space:pre-wrap}.service-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:25px}.service-section-heading h2{margin:0;font-size:14px;font-weight:600}.service-section-heading>span{color:#9aa8ba;font-size:10px}.hospital-floors{margin-top:12px;padding:0 15px;border:1px solid var(--service-border);border-radius:14px;background:#fff}.hospital-floor{display:flex;align-items:flex-start;gap:13px;padding:16px 0;border-top:1px solid #edf1f7}.hospital-floor:first-child{border-top:0}.hospital-floor>span{display:grid;place-items:center;min-width:42px;min-height:35px;flex:0 0 auto;padding:4px 7px;border-radius:9px;background:#edf3fd;color:#6489bd;font-size:11px;font-weight:600}.hospital-floor p{min-width:0;margin:0;padding-top:5px;color:#6d839d;font-size:11px;line-height:1.9;white-space:pre-wrap}.service-small-empty{color:#8d9eb2;font-size:11px;line-height:1.8}.portal-services>.service-full-button{margin-top:20px}@media(max-width:360px){.portal-services{padding-left:12px;padding-right:12px}.service-intro p{font-size:10px}.service-card{padding:14px 12px}.service-title{flex-wrap:wrap}.hospital-overview h2{font-size:18px}}@media(prefers-reduced-motion:reduce){.service-spinning{animation:none}}.portal-settings-fields{min-width:0;margin:0;padding:0;border:0}.portal-settings-fields>.primary-button{margin-top:22px}.portal-settings-loading{margin:0 0 18px;color:#6c83a0;font-size:12px;line-height:1.6}.portal-settings-fields:disabled .portal-module-switch{cursor:default;opacity:.6}.portal-module-settings{margin-top:28px;padding-top:23px;border-top:1px solid #e7edf5}.portal-module-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.portal-module-heading h2{margin:0;color:#294767;font-size:15px}.portal-module-heading p{margin:7px 0 0;color:#8092a7;font-size:12px;line-height:1.6}.portal-module-heading>span{flex:0 0 auto;padding:5px 9px;border-radius:6px;background:#edf4ff;color:#2e67b5;font-size:11px;line-height:1.5}.portal-module-note{margin:13px 0 16px;color:#7e90a6;font-size:11px;line-height:1.8}.portal-module-list{border:1px solid #e4ecf7;border-radius:11px;overflow:hidden}.portal-module-row{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:16px;background:#fff}.portal-module-row+.portal-module-row{border-top:1px solid #edf1f7}.portal-module-row.is-closed{background:#fafbfd}.portal-module-copy{min-width:0}.portal-module-copy h3{margin:0;color:#365374;font-size:13px;font-weight:600}.portal-module-copy p{margin:6px 0 0;color:#8294aa;font-size:11px;line-height:1.65}.portal-module-switch{flex:0 0 auto;display:flex;align-items:center;gap:8px;min-width:81px;min-height:36px;padding:4px 0;border:0;background:transparent;color:#788da6;font-size:11px}.portal-module-switch-track{position:relative;width:37px;height:22px;display:block;flex:0 0 auto;border-radius:12px;background:#c9d4e1;transition:background .15s}.portal-module-switch-track i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #203d6520;transition:transform .15s}.portal-module-switch[aria-checked=true]{color:#2869be}.portal-module-switch[aria-checked=true] .portal-module-switch-track{background:#2a70cc}.portal-module-switch[aria-checked=true] .portal-module-switch-track i{transform:translate(15px)}.portal-module-switch:focus-visible{outline:3px solid #a9c9f3;outline-offset:3px;border-radius:6px}@media(max-width:650px){.portal-module-row{gap:13px;padding:14px 12px}.portal-module-copy p{font-size:11px}.portal-module-heading{gap:9px}.portal-module-heading>span{padding:4px 6px;font-size:10px}.portal-module-switch{gap:5px;min-width:74px}}@media(prefers-reduced-motion:reduce){.portal-module-switch-track,.portal-module-switch-track i{transition:none}}.portal-booking-settings{margin-top:28px;padding-top:23px;border-top:1px solid #e7edf5}.portal-booking-grid{margin-top:17px}.portal-booking-grid label>small{color:#8a9bb0;font-size:11px;line-height:1.6;font-weight:400}.portal-booking-note{margin:15px 0 0;padding:12px 14px;border-radius:9px;background:#f3f7fd;color:#6f87a4;font-size:11px;line-height:1.8}.portal-closure-confirmation{margin-top:23px;padding:20px;border:1px solid #eed4aa;border-radius:12px;background:#fffbf4;scroll-margin-top:85px}.portal-closure-confirmation>h2{margin:0;color:#795824;font-size:16px}.portal-closure-modules{margin:12px 0;color:#8d682e;font-size:13px;line-height:1.7;font-weight:600}.portal-closure-explain,.portal-closure-note{margin:12px 0;color:#8b7b62;font-size:12px;line-height:1.8}.portal-impact-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:15px 0}.portal-impact-counts>div{display:grid;gap:8px;padding:13px 10px;border:1px solid #eee1cb;border-radius:9px;background:#fff}.portal-impact-counts dt{color:#9a8b73;font-size:11px;line-height:1.5}.portal-impact-counts dd{margin:0;color:#7a5926;font-size:21px;font-variant-numeric:tabular-nums}.portal-closure-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}.portal-closure-actions button{min-height:38px;padding-inline:15px;font-size:12px}@media(max-width:650px){.portal-impact-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-closure-confirmation{padding:16px}.portal-closure-actions{display:grid;grid-template-columns:1fr}.portal-closure-actions button{width:100%}}.portal-records{color:#34516f}.portal-records-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px}.portal-records-toolbar h2{margin:0;font-size:16px;color:#294767}.portal-records-toolbar p{margin:8px 0 0;font-size:12px;color:#8294a8;line-height:1.7}.portal-records-toolbar-actions{display:flex;gap:9px;flex-shrink:0}.portal-records-toolbar-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;height:auto;padding:9px 13px;font-size:12px}.portal-records-search{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0}.portal-records-search label{display:flex;align-items:center;gap:8px;width:min(100%,340px);padding:0 12px;border:1px solid #e0e8f2;border-radius:8px;color:#8b9eb2}.portal-records-search input{width:100%;min-width:0;height:38px;padding:0;border:0;background:transparent;font:inherit;font-size:12px;outline:none;color:#3b5876}.portal-records-search label:focus-within{border-color:#7da7df;box-shadow:0 0 0 2px #e5efff}.portal-records-search>span{font-size:11px;color:#8194aa;white-space:nowrap}.portal-records-table td small{display:block;margin-top:5px;color:#879bb1;font-size:10px;line-height:1.6;overflow-wrap:anywhere}.portal-records-table td strong{font-weight:600}.portal-records-table td{font-size:12px;line-height:1.7}.portal-records-table td:nth-child(2){max-width:220px;white-space:normal}.portal-records-loading{padding:40px 20px;text-align:center;color:#7d92ac;font-size:12px}.portal-records-note{padding:11px 13px;border-radius:8px;background:#f1f6fd;color:#7187a2;font-size:11px;line-height:1.8}.portal-records-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:24px;background:#14263b70;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.portal-records-dialog{width:min(100%,700px);max-height:calc(100dvh - 48px);overflow:auto;border-radius:15px;background:#fff;box-shadow:0 14px 70px #10203630;color:#365170}.portal-records-dialog>header{display:flex;justify-content:space-between;gap:14px;padding:22px 24px 18px;border-bottom:1px solid #e8edf5}.portal-records-dialog h2{margin:0;font-size:18px;color:#294767}.portal-records-dialog header p{margin:8px 0 0;color:#8294a9;font-size:12px;line-height:1.7}.portal-records-dialog form{padding:21px 24px}.portal-records-dialog fieldset{min-width:0;margin:0;padding:0;border:0}.portal-records-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.portal-records-grid label{display:grid;gap:8px;min-width:0;font-size:12px;color:#5c7390}.portal-records-wide{grid-column:1/-1}.portal-records-dialog input:not([type=checkbox]),.portal-records-dialog select,.portal-records-dialog textarea{box-sizing:border-box;min-width:0;width:100%;border:1px solid #dfe7f2;border-radius:7px;padding:10px 11px;font:inherit;font-size:12px;color:#345370;background:#fff;outline:none}.portal-records-dialog select{height:40px;padding-right:25px;text-overflow:ellipsis}.portal-records-dialog input:focus,.portal-records-dialog select:focus,.portal-records-dialog textarea:focus{border-color:#7da7df;box-shadow:0 0 0 2px #e9f1ff}.portal-records-dialog textarea{resize:vertical;min-height:130px;line-height:1.8}.portal-records-dialog fieldset:disabled input,.portal-records-dialog fieldset:disabled select,.portal-records-dialog fieldset:disabled textarea,.portal-records-dialog select:disabled{background:#f7f9fc;color:#7f91a6}.portal-records-dialog .icon-button{flex-shrink:0;min-width:32px;height:32px;display:grid;place-items:center;padding:5px;border:0;border-radius:6px;background:transparent;color:#8497ac}.portal-records-dialog .icon-button:hover{background:#f2f6fb}.portal-records-dialog button:disabled{cursor:default;opacity:.55}.portal-record-items-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px}.portal-record-items-heading h3{margin:0;font-size:13px;font-weight:600;color:#486380}.portal-record-items-labels,.portal-record-item{display:grid;grid-template-columns:minmax(0,1fr) 70px 100px 32px;gap:8px;align-items:center}.portal-record-items-labels{margin-bottom:8px;font-size:10px;color:#8194aa}.portal-record-item+.portal-record-item{margin-top:9px}.portal-record-item input{padding-inline:9px!important}.portal-record-total{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:15px 0 22px;font-size:11px;color:#8697ab}.portal-record-total strong{font-size:19px;color:#3167aa;font-variant-numeric:tabular-nums}.portal-record-confirm{display:flex;align-items:flex-start;gap:8px;margin-top:18px;padding:12px;border:1px solid #eadfc8;border-radius:8px;color:#8c7750;background:#fffcf5;font-size:11px;line-height:1.8}.portal-record-confirm input{margin:3px 0 0;flex-shrink:0;accent-color:#3271bd}.portal-records-dialog footer{display:flex;justify-content:flex-end;gap:10px;padding-top:22px;margin-top:22px;border-top:1px solid #e8edf5}.portal-records-dialog footer button{height:40px;font-size:12px}.portal-records-dialog .portal-form-error{font-size:12px;line-height:1.8}.portal-records button:focus-visible,.portal-records-dialog button:focus-visible{outline:3px solid #adcaf0;outline-offset:2px}@media(max-width:700px){.portal-records-toolbar{flex-direction:column;gap:14px}.portal-records-toolbar-actions{width:100%}.portal-records-toolbar-actions button:last-child{margin-left:auto}.portal-records-backdrop{padding:10px}.portal-records-dialog{max-height:calc(100dvh - 20px);border-radius:12px}.portal-records-dialog>header{padding:18px 16px 14px}.portal-records-dialog form{padding:17px 16px}.portal-records-grid{grid-template-columns:1fr;gap:14px}.portal-record-items-labels,.portal-record-item{grid-template-columns:minmax(0,1fr) 56px 78px 28px;gap:5px}.portal-records-dialog .icon-button{min-width:28px}.portal-record-item input{font-size:11px!important;padding-inline:7px!important}.portal-records-table table{min-width:700px}.portal-records-dialog footer{position:sticky;bottom:-17px;padding:14px 0;background:#fff;margin-top:18px}.portal-records-dialog footer button{flex:1}.portal-records-search{gap:9px}.portal-records-search label{width:100%}}.patient-qr{margin:13px 0 0;padding:17px;border:1px solid #dce7f7;border-radius:14px;background:#fff;color:#294663;text-align:center}.patient-qr-heading{display:flex;align-items:center;gap:10px;text-align:left}.patient-qr-heading>span{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:10px;background:#eaf2ff;color:#2468cf}.patient-qr-heading>div{flex:1;min-width:0}.patient-qr-heading h3{margin:0;font-size:13px;color:#294663}.patient-qr-heading p{margin:4px 0 0;font-size:10px;line-height:1.5;color:#8293aa;overflow-wrap:anywhere}.patient-qr-heading>small{padding:3px 6px;border-radius:5px;background:#edf4ff;color:#6b88ae;font-size:9px;white-space:nowrap}.patient-qr-person{display:flex;align-items:center;justify-content:center;gap:8px;margin:19px 0 4px;color:#28435f}.patient-qr-person strong{font-size:15px;overflow-wrap:anywhere}.patient-qr-person span{padding:3px 7px;border-radius:5px;background:#f1f5fa;color:#8193a9;font-size:10px}.patient-qr-image-button{display:grid;justify-items:center;width:100%;padding:0;border:0;background:#fff;color:#7b8fa9}.patient-qr-image-button>img{display:block;width:min(100%,260px);height:auto;aspect-ratio:1;max-width:100%;background:#fff;image-rendering:pixelated}.patient-qr-image-button>span{display:flex;align-items:center;gap:5px;font-size:10px;line-height:1.6}.patient-qr-number{display:grid;gap:5px;margin:14px 0 0;min-width:0}.patient-qr-number>span{font-size:10px;color:#91a0b3}.patient-qr-number strong{font-size:12px;font-weight:550;line-height:1.6;color:#405e82;overflow-wrap:anywhere;word-break:break-all;font-variant-numeric:tabular-nums;user-select:text;-webkit-user-select:text}.patient-qr-copy{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:12px 0 0;min-height:34px;padding:7px 12px;border:1px solid #dce7f7;border-radius:8px;background:#f6f9ff;color:#2468cf;font-size:11px}.patient-qr-feedback{margin:10px 0 0;padding:8px 10px;border-radius:7px;background:#edf5ff;color:#2468cf;font-size:11px;line-height:1.6}.patient-qr-hint{margin:12px 0 0;color:#8b9cb1;font-size:10px;line-height:1.7}.patient-qr-placeholder,.patient-qr-error{display:grid;justify-items:center;align-content:center;gap:10px;min-height:190px;padding:18px 5px;color:#8094af}.patient-qr-placeholder span,.patient-qr-error p{margin:0;font-size:11px;line-height:1.7}.patient-qr-error button{min-height:32px;padding:6px 10px;border:1px solid #dce7f7;border-radius:7px;background:#f6f9ff;color:#2468cf;font-size:11px}.patient-qr-compact{margin-top:13px;padding:15px}.patient-qr-compact .patient-qr-image-button>img{width:min(100%,205px)}.patient-qr-compact .patient-qr-person{margin-top:14px}.patient-qr-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px 15px calc(20px + env(safe-area-inset-bottom,0px));overflow:auto;background:#10254180;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.patient-qr-dialog{width:min(100%,370px);max-height:calc(100dvh - 40px - env(safe-area-inset-bottom,0px));padding:19px;overflow:auto;border:1px solid #e3ebf6;border-radius:18px;background:#fff;color:#294663;text-align:center;box-shadow:0 20px 70px #10254135}.patient-qr-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.patient-qr-dialog h2{margin:0;font-size:16px;text-align:left;color:#294663}.patient-qr-dialog>header button{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:0;border-radius:50%;background:#f1f5fa;color:#637f9f}.patient-qr-dialog-hospital{margin:13px 0 0;color:#8598b1;font-size:11px;line-height:1.6;overflow-wrap:anywhere}.patient-qr-dialog>img{display:block;width:min(100%,320px);height:auto;aspect-ratio:1;margin:2px auto 0;background:#fff;image-rendering:pixelated}.patient-qr-dialog .patient-qr-person{margin-top:12px}@media(max-width:360px){.patient-qr{padding:14px 10px}.patient-qr-dialog{padding:15px}.patient-qr-overlay{padding-inline:10px}}@media(prefers-reduced-motion:reduce){.patient-qr-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}}.cancel-appointment-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:grid;place-items:center;padding:18px;background:#132b4a80;overflow:auto}.cancel-appointment-dialog{width:min(100%,430px);max-height:calc(100dvh - 36px);overflow:auto;padding:22px;border-radius:17px;background:#fff;color:#294663;box-shadow:0 20px 60px #142c4c30}.cancel-appointment-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:15px}.cancel-appointment-dialog h2{margin:0;font-size:18px}.cancel-appointment-dialog>header button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:#f2f5fa;color:#68819f}.cancel-appointment-summary{display:grid;gap:6px;margin:18px 0;padding:14px;border-radius:10px;background:#f0f5fd}.cancel-appointment-summary strong{font-size:14px}.cancel-appointment-summary p{margin:0;color:#7085a0;font-size:12px;line-height:1.6}.cancel-appointment-summary small{color:#8c9bb0;font-size:10px;overflow-wrap:anywhere}.cancel-appointment-refund{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.cancel-appointment-refund span{font-size:13px;color:#748ba5}.cancel-appointment-refund strong{font-size:23px;color:#285fa8}.cancel-appointment-hint{margin:13px 0;color:#8496ac;font-size:12px;line-height:1.7}.cancel-appointment-reason{display:grid;gap:7px;margin-top:15px;color:#526e90;font-size:13px}.cancel-appointment-reason select,.cancel-appointment-reason textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid #dce7f5;border-radius:8px;background:#fff;color:#294663;font:inherit}.cancel-appointment-reason textarea{resize:vertical}.cancel-appointment-error{display:flex;align-items:center;gap:6px;padding:11px;border-radius:8px;background:#fff1ee;color:#b56355;font-size:12px;line-height:1.7}.cancel-appointment-error button{border:0;background:none;color:inherit;text-decoration:underline}.cancel-appointment-dialog footer{display:flex;gap:10px;margin-top:20px}.cancel-appointment-dialog footer button{flex:1;min-width:0;padding-inline:10px;font-size:13px}.cancel-appointment-dialog .cancel-appointment-confirm{background:#b86759}@media(max-width:600px){.cancel-appointment-backdrop{align-items:end;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px))}.cancel-appointment-dialog{padding:20px}}:root{font-family:DM Sans,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#14283e;background:#f4f7f8;font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-weight:400;--teal:#087d78;--teal-dark:#066a66;--ink:#14283e;--muted:#78899a;--line:#e5ebef;--mint:#e6f7f3;--paper:#fff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.phone-surface{position:relative;width:min(100%,430px);min-height:100vh;margin:0 auto;background:#fff;box-shadow:0 0 40px #1539500b}.mobile-header{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;border-bottom:1px solid #edf0f2;background:#fff;position:sticky;top:0;z-index:5}.header-title{position:absolute;left:50%;transform:translate(-50%);font-size:17px;font-weight:650;letter-spacing:.02em}.icon-button{width:32px;height:32px;border:0;background:transparent;color:#21374b;display:grid;place-items:center}.mine-link{border:0;background:transparent;color:var(--teal);font-size:13px;font-weight:600;padding:7px 0}.booking-content{padding:16px 18px 0}.hospital-line{display:flex;align-items:center;gap:11px;padding:4px 0 19px;border-bottom:1px solid #eff2f4;color:var(--teal)}.hospital-line>div{display:grid;gap:2px;color:var(--ink)}.hospital-line strong{font-size:15px}.hospital-line small{font-size:11px;color:var(--muted)}.demo-tag{margin-left:auto;font-size:10px;color:#7f929e;border:1px solid #e3e9ec;padding:4px 7px;border-radius:5px}.section-block{padding-top:18px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.section-head h2{margin:0;font-size:15px;font-weight:650;letter-spacing:.01em}.muted{font-size:11px;color:#8898a7}.department-rail{display:flex;gap:8px;overflow:auto;padding-bottom:3px;scrollbar-width:none}.department-rail::-webkit-scrollbar,.date-rail::-webkit-scrollbar{display:none}.department-chip{white-space:nowrap;border:1px solid #e5ebef;background:#fff;color:#637487;border-radius:7px;padding:8px 14px;font-size:12px}.department-chip.chosen{border-color:#8fcfc4;background:#e8f7f3;color:var(--teal-dark);font-weight:650}.doctor-card{display:flex;gap:12px;align-items:flex-start;margin:15px 0 6px;padding:13px 12px;border:1px solid #e8eef1;border-radius:10px}.doctor-avatar{flex:0 0 48px;height:52px;display:grid;place-items:center;color:#087d78;background:linear-gradient(140deg,#d7f0eb,#eff9f7);border-radius:9px}.doctor-copy{min-width:0;display:grid;gap:4px}.doctor-copy>strong{font-size:15px;line-height:1.25}.doctor-copy>span{font-size:11px;color:#617488}.doctor-copy p{margin:3px 0 0;color:#82919c;font-size:11px;line-height:1.55}.doctor-select{border:0;color:#9ba8b1;background:none;margin-left:auto;padding:5px}.schedule-title{margin-top:20px}.date-rail{display:grid;grid-template-columns:repeat(7,minmax(46px,1fr));gap:5px;overflow:auto;scrollbar-width:none}.date-tile{border:1px solid #e6ebee;border-radius:8px;background:#fff;padding:8px 3px 7px;display:grid;justify-items:center;gap:5px;color:#758596}.date-tile span{font-size:10px;white-space:nowrap}.date-tile strong{font-size:12px;font-weight:600;color:#293c51}.date-tile i{font-style:normal;font-size:9px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#eef2f4;color:#748797}.date-tile.chosen{border-color:#9dd7cb;background:#e7f7f3;color:var(--teal)}.date-tile.chosen strong{color:#075f5c}.date-tile.chosen i{background:var(--teal);color:#fff}.slot-block{padding-top:20px}.slot-list{display:grid;gap:8px}.slot-row{min-height:52px;width:100%;display:flex;align-items:center;gap:10px;border:1px solid #e5ebef;border-radius:8px;background:#fff;padding:9px 11px;text-align:left;color:var(--ink)}.slot-row.chosen{border-color:#15998d;background:#f0fbf8;box-shadow:0 0 0 1px #15998d inset}.slot-row:disabled{background:#f8f9fa;color:#aab4bc;cursor:not-allowed}.slot-radio{width:16px;height:16px;border:1px solid #d4dfe4;border-radius:50%;display:grid;place-items:center;color:#fff;flex:0 0 auto}.slot-row.chosen .slot-radio{background:var(--teal);border-color:var(--teal)}.slot-time{font-size:12px;font-weight:550}.slot-fee{margin-left:auto;font-size:11px;color:#5d7080}.slot-remaining{font-size:10px;color:var(--teal);white-space:nowrap}.patient-select-block{padding-top:21px}.add-link{border:0;background:none;color:var(--teal);font-size:11px;font-weight:600;padding:4px 0}.patient-row{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;border:1px solid #e5ebef;border-radius:9px;background:#fff;margin:0 0 8px;padding:11px 12px}.patient-row.chosen{border-color:#69bbae;background:#effaf7}.patient-info{display:grid;gap:5px}.patient-info strong{font-size:13px}.patient-info strong small{font-size:10px;font-weight:400;color:#8695a1;margin-left:5px}.patient-info>span{font-size:10px;color:#8493a0}.radio-dot{width:18px;height:18px;border:1px solid #d6e0e4;border-radius:50%;display:grid;place-items:center;color:#fff}.patient-row.chosen .radio-dot{background:var(--teal);border-color:var(--teal)}.safe-space{height:88px}.bottom-action{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;gap:15px;background:#fff;padding:12px 18px max(13px,env(safe-area-inset-bottom));border-top:1px solid #edf0f2}.bottom-action>div{display:grid;gap:2px}.bottom-action small{color:#8a98a4;font-size:10px}.bottom-action>div strong{font-size:20px;color:#b77431}.primary-button,.secondary-button{height:43px;border:0;border-radius:8px;padding:0 18px;font-size:13px;font-weight:650;letter-spacing:.01em}.primary-button{background:var(--teal);color:#fff;box-shadow:0 3px 7px #087d7822}.primary-button:hover{background:var(--teal-dark)}.primary-button:disabled{background:#a9cbc6;box-shadow:none;cursor:not-allowed}.bottom-action .primary-button{flex:1}.secondary-button{background:#eef4f4;color:#385a62;border:1px solid #e0eaea}.confirm-content{padding:28px 20px 100px;text-align:center}.confirm-mark,.payment-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;margin:12px auto 16px;color:var(--teal);background:#e7f6f3}.confirm-content h1,.success-content h1{font-size:21px;margin:0;font-weight:650}.confirm-subtitle{font-size:12px;color:#8795a1;margin:8px 0 22px}.summary-sheet,.payment-sheet{border:1px solid #e6ecef;border-radius:11px;background:#fff;text-align:left;padding:15px}.summary-doctor{display:flex;align-items:center;gap:11px;padding-bottom:15px;border-bottom:1px solid #edf0f2}.doctor-avatar.small{flex-basis:40px;height:42px}.summary-doctor>div:last-child{display:grid;gap:4px}.summary-doctor strong{font-size:14px}.summary-doctor span{font-size:11px;color:#7c8d9b}.summary-line{display:flex;justify-content:space-between;gap:15px;padding:13px 0 0;font-size:11px;color:#8a98a4}.summary-line strong{color:#33485a;text-align:right;font-weight:550}.summary-line.total{margin-top:12px;border-top:1px solid #edf0f2;color:#596e7c;align-items:center}.summary-line.total strong{font-size:20px;color:#b77431;font-weight:700}.notice{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:16px;color:#84939d;font-size:10px}.notice svg{color:#4d9c8e;flex:0 0 auto}.confirm-action{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(100%,430px);padding-bottom:max(13px,env(safe-area-inset-bottom))}.confirm-action .secondary-button{min-width:100px}.confirm-action .primary-button{flex:1}.payment-content{padding-top:38px}.payment-icon{border-radius:50%}.payment-sheet{display:grid;grid-template-columns:1fr auto;gap:15px;color:#85939f;font-size:11px;align-items:center}.payment-sheet strong{font-size:11px;color:#33485a;font-weight:550}.payment-sheet .amount{font-size:24px;color:#b77431;font-weight:700}.pay-method{display:flex;align-items:center;gap:10px;width:100%;margin-top:13px;padding:13px;border:1px solid #a9d8ce;border-radius:9px;background:#f2faf8;text-align:left;color:#33485a;font-size:12px}.wechat-mark{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#09a66d;color:#fff;font-weight:700}.selected-check{margin-left:auto;width:17px;height:17px;display:grid;place-items:center;background:var(--teal);color:#fff;border-radius:50%}.success-content{text-align:center;padding:67px 20px 40px}.success-icon{margin:0 auto 16px;width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#e1f6ee;color:#15916f}.success-content>p{font-size:12px;color:#86949f;margin:8px 0 22px}.success-ticket{border:1px solid #e4ebee;border-radius:11px;padding:15px;text-align:left}.ticket-top{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:1px dashed #dce5e8;color:#83919e;font-size:10px}.ticket-top strong{font-size:10px;font-weight:550;color:#627586}.ticket-doctor{display:grid;gap:4px;padding:14px 0}.ticket-doctor strong{font-size:18px}.ticket-doctor span{font-size:11px;color:#82919e}.ticket-detail{display:flex;justify-content:space-between;gap:12px;padding:8px 0;color:#8795a0;font-size:10px}.ticket-detail strong{color:#394f60;font-weight:550;text-align:right}.ticket-detail .paid-text{color:#148b6e}.success-actions{display:flex;gap:10px;margin-top:18px}.success-actions button{flex:1}.mine-content{padding:18px 17px 76px;min-height:calc(100vh - 58px)}.mine-overview{display:flex;align-items:center;justify-content:space-between;padding:16px 17px;border-radius:10px;background:#eaf7f4}.mine-overview>div{display:grid;gap:5px}.mine-overview span{font-size:11px;color:#6e8589}.mine-overview strong{font-size:26px;color:#183b4d}.overview-icon{width:42px;height:42px;display:grid;place-items:center;background:#d5efea;border-radius:12px;color:var(--teal)}.appointment-list{display:grid;gap:12px;margin-top:14px}.appointment-card{padding:14px;border:1px solid #e7ecef;border-radius:10px}.appointment-card-head{display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid #edf0f2;font-size:11px;color:#6b7d8d}.appointment-card-head strong{font-size:10px;font-weight:600}.status-success{color:#13866b}.status-pending{color:#c2812e}.appointment-doctor{display:grid;gap:5px;padding:12px 0}.appointment-doctor strong{font-size:15px}.appointment-doctor span,.appointment-foot{font-size:10px;color:#85939e}.appointment-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f2;padding-top:10px}.appointment-foot button{color:var(--teal);background:none;border:0;font-size:11px;font-weight:600}.empty-state{min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#9ba8b1;font-size:11px}.empty-state svg{color:#b2c6c7}.mine-empty{min-height:55vh}.mine-empty strong{color:#415667;font-size:14px}.mine-empty .primary-button{margin-top:6px;padding:0 25px}.mobile-tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(100%,430px);height:59px;padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:space-around;border-top:1px solid #ecf0f2;background:#fff}.tab-item{display:grid;align-content:center;justify-items:center;gap:3px;border:0;background:none;color:#8d9ba5;font-size:9px;min-width:80px}.tab-item.selected{color:var(--teal)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10202b70;z-index:30;display:flex;align-items:flex-end;justify-content:center}.patient-modal{width:min(100%,430px);background:#fff;border-radius:18px 18px 0 0;padding:18px 20px max(22px,env(safe-area-inset-bottom));text-align:left;box-shadow:0 -8px 30px #14283e12}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h2{font-size:17px;margin:0}.patient-modal>p{color:#8795a0;font-size:11px;margin:7px 0 18px}.patient-modal label{display:grid;gap:7px;margin-top:12px;color:#566a79;font-size:11px}.patient-modal input{height:43px;border:1px solid #e0e8eb;border-radius:7px;padding:0 11px;outline:none;color:var(--ink);font-size:12px}.patient-modal input:focus{border-color:#52aa9e}.modal-submit{width:100%;margin-top:20px}.toast-message{position:fixed;z-index:50;left:50%;bottom:90px;transform:translate(-50%);padding:10px 14px;border-radius:8px;background:#203746ef;color:#fff;white-space:nowrap;font-size:12px;box-shadow:0 5px 18px #13293c25}.toast-enter-active,.toast-leave-active{transition:opacity .2s,transform .2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,8px)}.admin-shell{display:flex;min-height:100vh;background:#f7f9fa;padding-top:0}.admin-sidebar{width:224px;flex:0 0 224px;background:#fff;border-right:1px solid #e8edef;display:flex;flex-direction:column;min-height:100vh}.admin-brand{height:65px;display:flex;align-items:center;gap:10px;padding:0 21px;border-bottom:1px solid #edf0f2;font-size:14px;white-space:nowrap}.brand-icon{width:29px;height:29px;border-radius:8px;background:#e5f5f1;color:var(--teal);display:grid;place-items:center}.admin-nav{padding:20px 10px;display:grid;gap:5px}.admin-nav button,.admin-sidebar-bottom button{height:43px;display:flex;align-items:center;gap:11px;padding:0 13px;border:0;border-radius:7px;background:transparent;color:#627383;text-align:left;font-size:12px}.admin-nav button.active{background:#e6f5f2;color:#087d78;font-weight:650}.admin-sidebar-bottom{margin-top:auto;padding:12px 10px 18px;border-top:1px solid #edf0f2}.admin-sidebar-bottom button{width:100%;font-size:11px;color:#82909a}.admin-main{min-width:0;flex:1}.admin-topbar{height:65px;background:#fff;border-bottom:1px solid #e8edef;display:flex;align-items:center;justify-content:space-between;padding:0 28px}.breadcrumb{display:flex;gap:10px;align-items:center;color:#82919e;font-size:11px}.breadcrumb strong{font-weight:550;color:#33485a}.admin-user{display:flex;align-items:center;gap:8px;color:#87939c;font-size:10px}.admin-user svg{margin-left:10px;color:#8293a1}.admin-user strong{font-size:11px;color:#415466;font-weight:600}.admin-content{padding:26px 30px 35px;max-width:1550px;margin:0 auto}.admin-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.admin-heading h1{margin:0 0 7px;font-size:23px;letter-spacing:-.02em}.admin-heading p{margin:0;color:#86939e;font-size:12px}.add-schedule{height:38px;font-size:11px}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:17px}.stat-card{min-height:91px;padding:17px 19px;border:1px solid #e8edef;border-radius:9px;background:#fff;display:grid;gap:9px}.stat-card span{font-size:11px;color:#7f8e99}.stat-card strong{font-size:24px;line-height:1;color:#1b344a;font-weight:650}.stat-card:nth-child(3) strong{color:#168571}.stat-card small{font-size:11px;font-weight:400;color:#7c8c98;margin-left:6px}.filter-bar{display:flex;align-items:flex-end;gap:14px;margin-bottom:14px;padding:13px;background:#fff;border:1px solid #e8edef;border-radius:9px}.filter-bar label{display:grid;gap:6px;color:#7f8e99;font-size:10px;min-width:140px;flex:1}.filter-bar input,.filter-bar select{height:34px;min-width:0;border:1px solid #e0e7ea;border-radius:6px;padding:0 10px;background:#fff;color:#485d6e;font-size:11px;outline:none}.filter-button{display:flex;align-items:center;justify-content:center;gap:6px;height:34px;min-width:80px;padding:0 14px;border:0;border-radius:6px;background:var(--teal);color:#fff;font-size:11px}.table-wrap{border:1px solid #e5ebee;border-radius:9px;background:#fff;overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:10px}thead{background:#f7f9fa}th{height:40px;color:#667888;font-weight:600;text-align:left;border-bottom:1px solid #e5ebee}td{height:43px;color:#506374;border-bottom:1px solid #edf1f3}th,td{padding:0 12px}tbody tr:hover{background:#fbfdfd}.status-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:5px;background:#e6f7ef;color:#218561;font-size:9px}.status-pill.pending{background:#fff4e1;color:#b27623}.table-action{border:0;background:transparent;padding:4px 3px;color:var(--teal);font-size:10px}.table-empty{text-align:center!important;height:108px;color:#9aa6af}.table-foot{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#8996a0;font-size:10px}.table-foot span{color:#b0bac1}.order-table table{min-width:800px}.order-table .table-empty{font-size:11px}.admin-shell .table-wrap table{min-width:1020px}@media(max-width:700px){.phone-surface{box-shadow:none}.booking-content{padding-left:15px;padding-right:15px}.admin-shell{padding-top:0}.admin-sidebar{width:58px;flex-basis:58px}.admin-brand{justify-content:center;padding:0}.admin-brand strong,.admin-nav button:not(.active):after,.admin-nav button,.admin-sidebar-bottom button{font-size:0}.admin-nav{padding:14px 7px}.admin-nav button{justify-content:center;padding:0}.admin-nav button svg{width:19px;height:19px}.admin-sidebar-bottom{padding:10px 7px}.admin-sidebar-bottom button{justify-content:center;padding:0}.admin-sidebar-bottom button svg{width:17px;height:17px}.admin-topbar{padding:0 13px}.admin-content{padding:20px 12px}.admin-heading h1{font-size:20px}.admin-heading p{font-size:10px}.stat-row{gap:7px}.stat-card{min-height:78px;padding:13px 11px}.stat-card span{font-size:9px}.stat-card strong{font-size:20px}.stat-card small{font-size:9px}.filter-bar{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:10px}.filter-bar label{min-width:0}.filter-button{grid-column:span 2;width:100%}.admin-user{gap:5px}.admin-user>span:nth-child(2){display:none}.admin-user svg{margin-left:0}.table-wrap{margin-right:-2px}}@media(min-width:701px){.phone-surface{margin-top:78px;min-height:calc(100vh - 78px);border-radius:16px 16px 0 0;overflow:hidden}.mobile-header{top:0}.admin-shell{padding-top:64px}.admin-sidebar{min-height:calc(100vh - 64px)}.admin-topbar{position:sticky;top:64px;z-index:5}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}@media(max-width:700px){.admin-topbar{gap:8px}.breadcrumb{gap:5px}}.schedule-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:grid;place-items:center;padding:18px;background:#0f263770}.schedule-modal{width:min(100%,460px);padding:22px;border-radius:12px;background:#fff;box-shadow:0 18px 60px #10283d30}.schedule-modal>p{margin:7px 0 20px;color:#84929d;font-size:11px}.schedule-modal label{display:grid;gap:7px;margin-top:13px;color:#5e7181;font-size:11px}.schedule-modal input,.schedule-modal select{height:39px;min-width:0;border:1px solid #e0e8eb;border-radius:7px;padding:0 10px;background:#fff;color:#334b5d;font-size:12px;outline:none}.schedule-modal input:focus,.schedule-modal select:focus{border-color:#59ada2}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.schedule-modal footer{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.schedule-modal footer button{height:38px;font-size:11px}.home-page,.profile-page{min-height:calc(100vh - 78px);padding:0 18px 82px;background:#f5f8f7;color:var(--ink)}.home-top{height:66px;display:flex;align-items:center;justify-content:space-between}.home-hospital{display:flex;align-items:center;gap:10px}.home-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#e2f2ee;color:#087d78}.home-hospital>div{display:grid;gap:3px}.home-hospital strong{font-size:14px}.home-hospital small{display:flex;align-items:center;gap:3px;color:#82929b;font-size:10px}.notice-button,.profile-notice{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:#fff;color:#536c77}.home-banner{position:relative;display:flex;justify-content:space-between;min-height:188px;overflow:hidden;padding:20px 19px;border-radius:18px;background:linear-gradient(112deg,#0d827d,#179c91 58%,#37b1a0);color:#fff;box-shadow:0 10px 22px #11857924}.banner-copy{position:relative;z-index:1}.banner-copy>span{font-size:11px;letter-spacing:.12em;color:#d1f1e9}.banner-copy h1{margin:9px 0 6px;font-size:25px;line-height:1.25;letter-spacing:.01em}.banner-copy p{margin:0;color:#d6f1eb;font-size:10px;letter-spacing:.05em}.banner-copy button{height:30px;display:flex;align-items:center;gap:5px;margin-top:14px;padding:0 11px;border:0;border-radius:16px;background:#fff;color:#087d78;font-size:10px;font-weight:700}.banner-art{position:absolute;right:5px;top:5px;width:170px;height:178px;display:grid;place-items:center;color:#d4f3eb}.banner-art>svg{position:relative;z-index:2;padding:17px;width:105px;height:105px;border-radius:34px;background:#ffffff20;transform:rotate(-9deg)}.banner-orbit{position:absolute;width:145px;height:145px;border:1px solid #d7f4ed55;border-radius:50%;box-shadow:0 0 0 19px #d7f4ed12,0 0 0 39px #d7f4ed0d}.banner-cross{position:absolute;right:24px;top:11px;font-size:27px;color:#d6f5ed;opacity:.8}.home-quick{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:9px;margin-top:13px}.home-quick button{min-width:0;display:grid;justify-items:start;gap:6px;padding:13px 10px;border:1px solid #edf1ef;border-radius:13px;background:#fff;text-align:left;box-shadow:0 3px 10px #1f483b06}.home-quick button>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#e2f4ef;color:#11877d}.home-quick button>span.quick-blue{background:#eaf1ff;color:#5273b6}.home-quick button>span.quick-gold{background:#fff3e4;color:#c8863c}.home-quick strong{font-size:11px;white-space:nowrap}.home-quick small{font-size:9px;color:#97a3a5;white-space:nowrap}.home-section{margin-top:22px}.home-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.home-section-title h2,.profile-section-head h2{margin:0;font-size:15px;letter-spacing:.01em}.home-section-title p{margin:4px 0 0;color:#95a0a2;font-size:10px}.home-section-title>button,.profile-section-head>button{display:flex;align-items:center;gap:2px;border:0;background:none;color:#859497;font-size:10px}.home-departments{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.home-departments button{display:grid;justify-items:center;gap:6px;padding:12px 5px 10px;border:1px solid #edf1ef;border-radius:12px;background:#fff}.dept-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:12px;background:#e8f5f0;color:#228a7c}.dept-1{background:#eef0fb;color:#6977b1}.dept-2{background:#fff0ee;color:#ce7c72}.dept-3{background:#edf4ff;color:#5e84bb}.home-departments strong{font-size:11px}.home-departments small{font-size:9px;color:#9aa5a5}.home-notice{display:flex;align-items:center;gap:10px;margin-top:17px;padding:12px;border-radius:12px;background:#eaf4f1;color:#59726f}.notice-symbol{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#d8ebe5;color:#248879}.home-notice div{min-width:0;flex:1}.home-notice strong{font-size:10px}.home-notice p{margin:4px 0 0;color:#819391;font-size:9px}.home-tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);z-index:8;width:min(100%,430px);height:62px;padding:4px 8px max(5px,env(safe-area-inset-bottom));display:flex;justify-content:space-around;border-top:1px solid #eaf0ed;background:#ffffffed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.home-tabbar .tab-item{min-width:56px;color:#92a09f;font-size:9px}.home-tabbar .tab-item.selected{color:#07847b}.home-tabbar .tab-item svg{width:19px;height:19px}.profile-page{padding-left:0;padding-right:0}.profile-hero{padding:10px 20px 20px;background:linear-gradient(135deg,#0b807a,#15998f 72%,#27a998);color:#fff;border-radius:0 0 22px 22px}.profile-title{display:flex;align-items:center;justify-content:center;height:37px;font-size:16px;font-weight:650}.profile-notice{position:absolute;right:18px;top:16px;background:#fff2;color:#fff}.profile-user{display:flex;align-items:center;gap:12px;padding:15px 0 5px}.profile-avatar{width:54px;height:54px;display:grid;place-items:center;border:2px solid #ffffffa6;border-radius:50%;background:#ffffff2b;color:#fff}.profile-user>div:nth-child(2){flex:1}.profile-user h1{margin:0;font-size:18px}.profile-user p{margin:5px 0 0;color:#d4f0eb;font-size:10px}.profile-user>svg{color:#d6f1ec}.profile-stats{position:relative;display:grid;grid-template-columns:repeat(3,1fr);margin:-1px 15px 0;padding:15px 5px;border:1px solid #ebf0ee;border-radius:0 0 14px 14px;background:#fff;box-shadow:0 5px 15px #153f3008}.profile-stats button{display:grid;gap:5px;justify-items:center;border:0;border-right:1px solid #edf0ef;background:none}.profile-stats button:last-child{border:0}.profile-stats strong{font-size:19px;color:#183c4b}.profile-stats span{font-size:10px;color:#89999a}.profile-section{margin:16px 15px 0;padding:14px 13px 5px;border:1px solid #edf1ef;border-radius:14px;background:#fff}.profile-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.profile-section-head>button{color:#07847b}.profile-card-row{width:100%;display:flex;align-items:center;gap:10px;padding:11px 0;border:0;border-top:1px solid #f0f3f1;background:#fff;text-align:left}.profile-card-avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:#e7f4f0;color:#16867b}.profile-card-copy{display:grid;gap:4px;flex:1}.profile-card-copy strong{font-size:11px}.profile-card-copy strong small{margin-left:7px;padding:2px 5px;border-radius:4px;background:#e5f5f0;color:#16867b;font-size:8px;font-weight:500}.profile-card-copy>span{font-size:9px;color:#98a3a2}.profile-card-row>svg{color:#aab5b3}.profile-add-card{width:100%;display:flex;align-items:center;gap:8px;padding:12px 0;border:0;background:none;color:#6b817e;font-size:11px;text-align:left}.profile-add-card svg:last-child{margin-left:auto}.profile-menu{margin:13px 15px 0;padding:1px 13px;border:1px solid #edf1ef;border-radius:14px;background:#fff}.profile-menu button{width:100%;height:48px;display:flex;align-items:center;gap:10px;border:0;border-bottom:1px solid #f0f3f1;background:#fff;text-align:left}.profile-menu button:last-child{border-bottom:0}.profile-menu button>span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#eff6f3;color:#348b80}.profile-menu button strong{flex:1;font-size:11px;font-weight:550;color:#465d62}.profile-menu button>svg{color:#a6b2b0}.profile-version{margin:18px 0 0;text-align:center;color:#a4afad;font-size:9px}@media(min-width:701px){.home-page,.profile-page{min-height:calc(100vh - 78px)}}@media(max-width:390px){.home-page{padding-left:14px;padding-right:14px}.home-banner{min-height:177px;padding:18px 15px}.banner-art{right:-18px;opacity:.8}.banner-copy h1{font-size:23px}.home-quick{gap:6px}.home-quick button{padding:11px 7px}.home-quick small{font-size:8px}}.slot-row{min-height:54px;padding:0 13px;border-radius:11px;transition:background .16s,border-color .16s,transform .16s}.slot-row:not(:disabled):active{transform:scale(.99)}.slot-time{font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.02em}.slot-row.chosen{background:#eff9f6;border-color:#8ecdc0;box-shadow:0 3px 10px #087d7810}.appointment-card{box-shadow:0 5px 18px #153f3006}.appointment-foot{flex-wrap:wrap;gap:8px}.appointment-foot .cancel-link{padding:5px 0;color:#c26d61}.wechat-login{padding:7px 11px;border:1px solid #ffffff75;border-radius:18px;background:#ffffff1c;color:#fff;font-size:10px;white-space:nowrap}.profile-user>div:nth-child(2){min-width:0}.profile-user>div:nth-child(2) h1{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-modal input[type=time]{width:100%}.filter-summary{align-self:center;margin-left:auto;color:#718291;font-size:11px;white-space:nowrap}.danger-action{color:#ba655b}.settings-intro{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;margin-bottom:14px;border:1px solid #e8edef;border-radius:9px;background:linear-gradient(110deg,#fff,#f3faf8)}.settings-intro strong{font-size:14px;color:#294354}.settings-intro p{margin:5px 0 0;color:#82919b;font-size:11px}.settings-intro>span,.dictionary-toolbar>span{color:#7f8e99;font-size:11px}.dictionary-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;padding:0 2px}.dictionary-tabs{display:flex;gap:7px}.dictionary-tabs button{padding:8px 13px;border:1px solid #e4ebed;border-radius:7px;background:#fff;color:#71818e;font-size:11px}.dictionary-tabs button.active{border-color:#b6ded7;background:#eaf7f4;color:#087d78;font-weight:600}.schedule-modal .checkbox-label{display:flex;align-items:center;gap:8px}.schedule-modal .checkbox-label input{width:16px;height:16px;accent-color:var(--teal)}@media(max-width:800px){.admin-sidebar{width:190px;flex-basis:190px}.admin-content{padding:20px 16px}.admin-topbar{padding:0 16px}.filter-bar{flex-wrap:wrap}.filter-bar label{min-width:calc(50% - 8px)}}@media(max-width:600px){.admin-sidebar{width:64px;flex-basis:64px}.admin-brand{padding:0;justify-content:center}.admin-brand strong,.admin-nav button{font-size:0}.admin-nav button{justify-content:center;padding:0}.admin-nav button svg{flex:0 0 auto}.admin-sidebar-bottom button{justify-content:center;font-size:0;padding:0}.admin-content{padding:15px 10px}.admin-heading h1{font-size:19px}.admin-topbar{padding:0 10px}.admin-user>span:nth-child(2),.admin-user strong{display:none}.filter-bar label{min-width:100%}.dictionary-tabs{flex-wrap:wrap}.admin-heading{gap:10px}.stat-row{gap:6px}.stat-card{padding:12px 10px}}.home-tabbar{border-top:0;box-shadow:0 -8px 18px #153f300b;-webkit-backdrop-filter:none;backdrop-filter:none}.wechat-login-notice{display:grid;gap:8px;margin:15px;padding:16px;border:1px solid #dceee9;border-radius:13px;background:#f1faf7;color:#385c5b}.wechat-login-notice strong{font-size:13px;color:#214c4b}.wechat-login-notice span,.profile-auth-hint{font-size:11px;line-height:1.65;color:#788b8b}.wechat-login-notice .primary-button{justify-self:start;min-width:110px;margin-top:3px}.booking-login-notice{margin:20px 0}.profile-auth-hint{margin:12px 0 8px}.profile-card-entry{padding:0 0 7px;border-top:1px solid #f0f3f1}.profile-card-entry .profile-card-row{border-top:0}.patient-card-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 0 3px}.patient-card-actions button{border:1px solid #e4eeeb;border-radius:7px;padding:6px 9px;background:#f8fbfa;color:#48716d;font-size:10px}.patient-card-actions button:disabled{opacity:.55;cursor:default}.patient-card-actions .danger-action{border-color:#f1dedb;background:#fff8f7;color:#c56c60}.patient-modal label select{width:100%;min-height:42px;padding:0 10px;border:1px solid #e0e8eb;border-radius:8px;background:#fff;color:var(--ink)}.patients-page{min-height:calc(100vh - 58px);padding:16px 16px 100px;background:#f5f8f7;color:var(--ink)}.patients-intro{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #e4efec;border-radius:13px;background:linear-gradient(120deg,#f0faf7,#fff)}.patients-intro-icon,.patients-empty-icon,.patients-login-icon{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:13px;background:#e4f4ef;color:var(--teal)}.patients-intro strong{font-size:14px}.patients-intro p{margin:4px 0 0;color:#849397;font-size:11px;line-height:1.5}.patients-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 2px 12px}.patients-toolbar>div{display:flex;align-items:baseline;gap:8px}.patients-toolbar strong{font-size:15px}.patients-toolbar span{color:#8a999b;font-size:11px}.patients-toolbar .primary-button{min-height:36px;padding:0 12px;border-radius:9px;font-size:11px}.patient-manage-card{margin:0 0 11px;padding:14px;border:1px solid #e7eeeb;border-radius:14px;background:#fff;box-shadow:0 4px 14px #153f3008}.patient-manage-head{display:flex;align-items:center;gap:11px}.patient-manage-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#e7f5f1;color:#16867b}.patient-manage-name{display:grid;gap:5px;flex:1;min-width:0}.patient-manage-name>strong{font-size:14px}.patient-manage-name>span{display:flex;align-items:center;gap:7px;color:#869497;font-size:11px}.patient-manage-name i{padding:2px 6px;border-radius:5px;background:#e6f6f2;color:#16867b;font-size:9px;font-style:normal}.patient-edit-button{border:1px solid #dcece8;border-radius:8px;padding:6px 10px;background:#f6fbf9;color:var(--teal);font-size:11px}.patient-manage-number{display:flex;align-items:center;justify-content:space-between;margin:13px 0 0;padding:11px 0;border-top:1px solid #f0f3f2;border-bottom:1px solid #f0f3f2}.patient-manage-number span{color:#89989a;font-size:11px}.patient-manage-number strong{color:#405865;font-size:12px;font-weight:600;letter-spacing:.03em}.patient-manage-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:10px}.patient-manage-actions button{min-height:31px;padding:0 10px;border:1px solid #e2ece9;border-radius:8px;background:#f8fbfa;color:#52716e;font-size:10px}.patient-manage-actions button:disabled{opacity:.6}.patient-manage-actions .danger-action{border-color:#f1e1de;background:#fff9f8;color:#c56c60}.patients-login-card,.patients-empty{display:grid;justify-items:center;gap:9px;margin-top:22px;padding:27px 18px;border:1px solid #e7eeeb;border-radius:15px;background:#fff;text-align:center}.patients-login-icon,.patients-empty-icon{width:52px;height:52px;border-radius:16px}.patients-login-card>strong,.patients-empty>strong{font-size:14px}.patients-login-card p,.patients-empty p{max-width:280px;margin:0;color:#879497;font-size:11px;line-height:1.65}.patients-login-card .primary-button,.patients-empty .primary-button{min-height:39px;margin-top:5px;padding:0 20px;border-radius:9px;font-size:12px}.patients-back-link{display:flex;align-items:center;gap:5px;margin:18px auto 0;border:0;background:none;color:#748985;font-size:11px}.appointment-order-number{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;color:#86949f;font-size:10px}.appointment-order-number strong{font-size:10px;color:#586c7c;font-weight:550;font-variant-numeric:tabular-nums}.appointment-detail-link{display:flex;align-items:center;justify-content:center;gap:3px;width:100%;margin-top:10px;padding:9px 0 0;border:0;border-top:1px solid #edf0f2;background:none;color:var(--teal);font-size:11px;font-weight:600}.appointment-detail-page{min-height:calc(100vh - 117px);padding:18px 17px 90px;background:#f7f9f9}.detail-status-card{display:flex;align-items:center;gap:12px;padding:18px;border-radius:12px;background:linear-gradient(120deg,#e6f7f2,#f0faf8);color:var(--teal)}.detail-status-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#d5eee8}.detail-status-card>div{display:grid;gap:5px}.detail-status-card strong{font-size:16px}.detail-status-card span{font-size:11px;color:#718a89}.detail-card{margin-top:13px;padding:16px;border:1px solid #e8edef;border-radius:12px;background:#fff}.detail-card h2{margin:0 0 8px;padding-bottom:12px;border-bottom:1px solid #edf0f2;font-size:14px;color:var(--ink)}.detail-line{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:9px 0;color:#85939e;font-size:11px}.detail-line strong{max-width:68%;color:#354c5d;font-size:11px;font-weight:550;text-align:right;overflow-wrap:anywhere}.detail-line .detail-order-no{font-variant-numeric:tabular-nums;color:#536a79}.detail-actions{display:grid;gap:9px;margin-top:16px}.detail-actions .primary-button,.detail-actions .secondary-button{width:100%}.detail-actions .detail-cancel{color:#b9675b}.guide-page{min-height:calc(100vh - 117px);padding:18px 16px 96px;background:#f6f9fa;color:var(--ink)}.guide-hero{display:flex;align-items:center;gap:12px;padding:17px;border:1px solid #e3edf1;border-radius:14px;background:linear-gradient(120deg,#edf5ff,#fff)}.guide-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:#e1edff;color:#5276b5}.guide-hero strong{font-size:14px}.guide-hero p{margin:5px 0 0;color:#8292a2;font-size:11px}.guide-card{margin-top:12px;padding:15px 15px 12px;border:1px solid #e7edf0;border-radius:13px;background:#fff}.guide-card h2{display:flex;align-items:center;gap:9px;margin:0 0 10px;font-size:13px;color:#2c4559}.guide-card h2 span{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:#eaf1ff;color:#5276b5;font-size:10px}.guide-card ul{display:grid;gap:9px;margin:0;padding-left:18px;color:#6f8191;font-size:11px;line-height:1.65}.guide-card li::marker{color:#7c9ac9}.guide-notice{display:flex;align-items:flex-start;gap:8px;margin-top:13px;padding:12px;border-radius:11px;background:#edf4fb;color:#667f9c;font-size:10px;line-height:1.6}.guide-notice svg{flex:0 0 auto;margin-top:1px;color:#6689bd}.guide-action{width:100%;margin-top:14px;background:#5276b5;box-shadow:0 3px 7px #5276b522}.department-picker .section-head{align-items:flex-end}.department-picker .section-head>div{display:grid;gap:4px}.department-current{max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--teal);font-size:10px}.department-search{height:43px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid #e5ebef;border-radius:9px;background:#f8faf9;color:#84939b}.department-search:focus-within{border-color:#8fcfc4;background:#fff;box-shadow:0 0 0 3px #e8f7f3}.department-search input{min-width:0;flex:1;height:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.department-search input::placeholder{color:#9ba8ae}.department-search input::-webkit-search-cancel-button{display:none}.department-search>button{width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:50%;background:#e8efed;color:#76878a}.department-filters{display:flex;gap:8px;margin:10px 0}.department-filters button{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #e7ecee;border-radius:20px;background:#fff;color:#687b86;font-size:10px}.department-filters button span{color:#9aa6aa}.department-filters button.active{border-color:#b5ded6;background:#eaf7f4;color:#087d78;font-weight:650}.department-filters button.active span{color:#087d78}.department-results{max-height:246px;overflow-y:auto;border:1px solid #edf1f1;border-radius:10px;background:#fff;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d8e4e1 transparent}.department-results.compact{max-height:300px}.department-result{width:100%;min-height:58px;display:flex;align-items:center;gap:10px;padding:8px 11px;border:0;border-bottom:1px solid #f0f3f2;background:#fff;text-align:left;color:var(--ink)}.department-result:last-child{border-bottom:0}.department-result:active{background:#f4faf8}.department-result.chosen{background:#f2faf8}.department-result-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:10px;background:#edf7f4;color:#248a7e}.department-result-copy{min-width:0;flex:1;display:grid;gap:4px}.department-result-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}.department-result-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#94a0a5;font-size:9px}.department-result-count{white-space:nowrap;color:#8a999f;font-size:9px}.department-result-check{flex:0 0 auto;color:#087d78}.department-result-arrow{flex:0 0 auto;color:#b3bec0}.department-no-results{min-height:155px;display:grid;justify-items:center;align-content:center;gap:7px;color:#9aa8aa;text-align:center}.department-no-results>strong{font-size:12px;color:#526a71}.department-no-results>span{font-size:10px}.department-no-results>button{margin-top:4px;border:0;background:transparent;color:var(--teal);font-size:11px;font-weight:600}.booking-login-hint{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;padding:11px 12px;border-radius:9px;background:#f2faf8;color:#718781;font-size:10px;line-height:1.5}.booking-login-hint button{display:flex;align-items:center;gap:2px;flex:0 0 auto;padding:5px 0;border:0;background:transparent;color:var(--teal);font-size:10px;font-weight:650}:root{--patient-tabbar-height: calc(62px + env(safe-area-inset-bottom, 0px)) }html,body,#app,.app-shell{min-height:100%}.app-shell,.phone-surface{min-height:100dvh}.home-page,.profile-page{min-height:100dvh;padding-bottom:calc(var(--patient-tabbar-height) + 16px)}.home-page{color:#34494a}.home-page .home-hospital>div{color:#34494a}.home-page .home-quick button,.home-page .home-departments button{color:#34494a}.mine-content{padding-bottom:calc(var(--patient-tabbar-height) + 16px)}.booking-content{padding-bottom:calc(var(--patient-tabbar-height) + 100px)}.confirm-content{padding-bottom:calc(var(--patient-tabbar-height) + 84px)}.success-content{padding-bottom:calc(var(--patient-tabbar-height) + 24px)}.home-tabbar{position:fixed;right:0;bottom:0;left:0;width:min(100%,430px);height:var(--patient-tabbar-height);margin-inline:auto;padding:4px 8px env(safe-area-inset-bottom,0px);transform:none;z-index:20}.booking-content>.bottom-action{position:fixed;bottom:var(--patient-tabbar-height);left:50%;width:min(100%,430px);transform:translate(-50%);z-index:19;padding-bottom:12px}.confirm-action{bottom:var(--patient-tabbar-height);padding-bottom:12px}.booking-content .safe-space{height:0}.booking-content{padding-top:12px}.booking-stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 16px;padding:11px 10px;border:1px solid #e8efee;border-radius:12px;background:#fbfdfd}.booking-step{display:flex;align-items:center;gap:6px;min-width:0;color:#9aa7a8;font-size:10px;white-space:nowrap}.booking-step-number{width:21px;height:21px;flex:0 0 21px;display:grid;place-items:center;border-radius:50%;background:#edf1f1;color:#819091;font-size:10px;font-weight:650}.booking-step.active{color:#087d78;font-weight:650}.booking-step.active .booking-step-number,.booking-step.complete .booking-step-number{background:#087d78;color:#fff}.booking-step.complete{color:#638e87}.booking-step-panel{min-height:55vh;padding-bottom:10px}.booking-step-heading{margin:4px 1px 15px}.booking-step-heading>span{color:#13877d;font-size:11px;font-weight:600}.booking-step-heading h2{margin:5px 0;color:#20394a;font-size:18px}.booking-step-heading p{margin:0;color:#89979e;font-size:11px;line-height:1.55}.registration-type-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:13px 0 3px}.registration-type-picker button{min-width:0;min-height:63px;display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #e4ebed;border-radius:11px;background:#fff;color:#71828d;text-align:left}.registration-type-picker button.active{border-color:#85c8bc;background:#f0faf7;color:#087d78;box-shadow:0 0 0 1px #85c8bc inset}.registration-type-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:10px;background:#e6f5f1;color:#16877b}.registration-type-icon.expert{background:#fbf1e2;color:#bd8535}.registration-type-picker button>span:nth-child(2){min-width:0;flex:1;display:grid;gap:3px}.registration-type-picker strong{color:#344d5b;font-size:12px}.registration-type-picker small{overflow:hidden;color:#8b999e;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.registration-type-picker button.active strong{color:#087d78}.date-picker-block{padding-top:16px}.booking-choice-summary{position:relative;display:grid;gap:10px;margin:4px 0 2px;padding:14px 65px 14px 14px;border:1px solid #e5eeeb;border-radius:12px;background:linear-gradient(135deg,#f5fbf9,#fff)}.booking-choice-summary>div{display:flex;justify-content:space-between;gap:12px;color:#829196;font-size:10px}.booking-choice-summary strong{max-width:68%;overflow:hidden;color:#344e5a;font-size:11px;font-weight:600;text-align:right;text-overflow:ellipsis;white-space:nowrap}.booking-choice-summary>button{position:absolute;top:50%;right:12px;transform:translateY(-50%);padding:7px 10px;border:1px solid #dcece7;border-radius:8px;background:#fff;color:#087d78;font-size:10px}.booking-step-action{gap:9px}.booking-step-action>.primary-button{min-width:0;padding-inline:12px;flex:1}.booking-step-action>.secondary-button{min-width:72px;padding-inline:10px}.step-action-count{min-width:47px;display:grid;justify-items:center;gap:2px}.step-action-count small{color:#829196;font-size:9px}.step-action-count strong{color:#405c62;font-size:13px;white-space:nowrap}.relationship-picker{min-width:0;margin:17px 0 0;padding:0;border:0}.relationship-picker legend{margin-bottom:9px;color:#566a79;font-size:11px}.relationship-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.relationship-options button{min-height:40px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 8px;border:1px solid #e5ebef;border-radius:9px;background:#fff;color:#637487;font-size:12px;transition:border-color .16s,background-color .16s,color .16s}.relationship-options button.selected{border-color:#9dd7cb;background:#eaf7f4;color:#087d78;font-weight:650}.relationship-options button:focus-visible{outline:3px solid #087d7833;outline-offset:2px}.doctor-picker{padding-top:15px}.doctor-choices{display:grid;gap:9px}.doctor-card{width:100%;min-width:0;margin:0;padding:12px;align-items:center;text-align:left;color:var(--ink);background:#fff;transition:border-color .16s,background-color .16s,box-shadow .16s}.doctor-card.chosen{border-color:#8fcfc4;background:#f1faf8;box-shadow:0 0 0 1px #8fcfc4 inset}.doctor-card .doctor-copy{flex:1}.doctor-card .doctor-introduction{display:-webkit-box;overflow:hidden;color:#82919c;font-size:11px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.doctor-search{margin:0 0 10px}.doctor-card .doctor-availability{justify-self:start;margin-top:2px;padding:3px 7px;border-radius:999px;background:#e9f7f2;color:#16866f;font-size:10px;line-height:1.25}.doctor-card .doctor-availability.unavailable{background:#f2f4f5;color:#89969e}.date-rail{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.date-tile{min-width:0;min-height:72px;padding:8px 1px;gap:5px}.date-tile span{font-size:10px;color:#82919c}.date-tile strong{font-size:12px}.date-tile i{width:auto;min-width:29px;height:17px;padding:0 4px;border-radius:999px;font-size:9px;white-space:nowrap}.date-tile.date-has-slots:not(.chosen) i{background:#e8f6f1;color:#16866f}.date-tile.date-no-slots:not(.chosen) i{background:#f4f5f6;color:#9aa5ab}.booking-empty-state{min-height:112px;display:grid;justify-items:center;align-content:center;gap:7px;padding:18px 14px;border:1px dashed #e1e9e9;border-radius:12px;background:#fbfdfc;text-align:center;color:#91a0a2}.booking-empty-state svg{color:#8dbdb3}.booking-empty-state strong{color:#536a70;font-size:12px}.booking-empty-state span{font-size:10px}.doctor-choice-mark{width:24px;height:24px;flex:0 0 24px;display:grid;place-items:center;border:1px solid #dfe8eb;border-radius:50%;color:#9ba8b1}.doctor-card.chosen .doctor-choice-mark{border-color:var(--teal);background:var(--teal);color:#fff}.doctor-empty{min-height:90px;margin:12px 0;border:1px dashed #dfe8eb;border-radius:10px;background:#fbfdfd}@media(max-width:700px){input,select,textarea{font-size:16px!important}.phone-surface,.home-tabbar{width:100%}}:root{--teal:#2468cf;--teal-dark:#1b50a0;--mint:#edf4ff}.portal-demo-banner{padding:8px 16px;background:#eaf2ff;color:#486c9c;font-size:10px;line-height:1.5;text-align:center}.phone-surface .home-page,.phone-surface .profile-page{background:#f5f8fc}.phone-surface .home-banner,.phone-surface .profile-hero{background:linear-gradient(120deg,#194f9f,#2a76d7 65%,#56a0e7)}.phone-surface .home-mark,.phone-surface .home-quick button>span,.phone-surface .profile-menu button>span,.phone-surface .notice-symbol{background:#eaf2ff;color:#2468cf}.phone-surface .banner-copy button{color:#205db6}.phone-surface .banner-copy>span,.phone-surface .banner-copy p,.phone-surface .profile-user p{color:#e5efff}.phone-surface .banner-orbit{border-color:#cce2ff66;box-shadow:0 0 0 19px #cce2ff12,0 0 0 39px #cce2ff0d}.phone-surface .banner-art{color:#e2efff}.phone-surface .banner-cross{color:#d8ebff}.phone-surface .home-notice{background:#eaf2fc;color:#375e8e}.phone-surface .home-notice p{color:#6c83a0;line-height:1.65}.phone-surface .home-tabbar .tab-item.selected,.phone-surface .booking-step.active{color:#2468cf}.phone-surface .booking-step.active .booking-step-number,.phone-surface .booking-step.complete .booking-step-number{background:#2468cf}.phone-surface .slot-row.chosen,.phone-surface .doctor-card.chosen,.phone-surface .department-chip.chosen,.phone-surface .date-tile.chosen,.phone-surface .registration-type-picker button.active,.phone-surface .relationship-options button.selected{border-color:#90b7ec;background:#eff5ff;color:#2468cf;box-shadow:none}.phone-surface .doctor-card.chosen .doctor-choice-mark{background:#2468cf;border-color:#2468cf}.phone-surface .date-tile.chosen strong,.phone-surface .registration-type-picker button.active strong{color:#215cae}.phone-surface .wechat-login-notice,.phone-surface .patients-intro,.phone-surface .detail-status-card{background:#edf4ff;border-color:#dce8fa}.phone-surface .patients-intro-icon,.phone-surface .patient-manage-avatar,.phone-surface .detail-status-icon,.phone-surface .patients-login-icon,.phone-surface .patients-empty-icon{background:#e0edff;color:#2468cf}.phone-surface .patient-manage-name i{background:#e9f1ff;color:#2468cf}.portal-login-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:13px;border:1px solid #dbe7f9;border-radius:12px;background:#edf4ff}.portal-login-entry>div{display:grid;gap:4px;min-width:0}.portal-login-entry strong{font-size:12px;color:#274f84}.portal-login-entry span{color:#788fae;font-size:10px;line-height:1.5}.portal-login-entry button{flex:0 0 auto;padding:8px 11px;border:0;border-radius:8px;background:#2468cf;color:#fff;font-size:11px}.portal-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.portal-service-grid button{position:relative;display:grid;gap:5px;min-height:92px;padding:16px 10px 14px 53px;border:1px solid #e6edf7;border-radius:13px;background:#fff;text-align:left;color:#29445f}.portal-service-grid button>span{position:absolute;top:20px;left:13px;color:#3474c8}.portal-service-grid strong{font-size:12px}.portal-service-grid small{font-size:9px;color:#8c9bad;line-height:1.5}.portal-next-visit{display:flex;align-items:center;gap:11px;width:100%;margin-top:14px;padding:14px;border:1px solid #dce7f8;border-radius:12px;background:#fff;text-align:left;color:#2468cf}.portal-next-visit>span{display:grid;gap:6px;flex:1;min-width:0}.portal-next-visit strong{font-size:12px;color:#294c79}.portal-next-visit small{font-size:10px;line-height:1.5;color:#7b8fa9}.notice-button{position:relative}.portal-unread{position:absolute;top:-3px;right:-3px;min-width:15px;height:15px;padding:0 4px;border-radius:9px;background:#e05f61;color:#fff;font-size:9px;font-style:normal;line-height:15px}.portal-expiry{padding:11px 13px;border-radius:8px;background:#fff5e6;color:#9c6b23;font-size:11px;line-height:1.5}.portal-visit-ticket{text-align:center}.portal-visit-ticket>span{display:block;margin-top:17px;color:#8192a6;font-size:10px}.portal-visit-ticket>strong{display:block;margin:9px 0;font-size:15px;color:#2468cf;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.portal-visit-ticket p{color:#8a98aa;font-size:10px;line-height:1.7}.portal-visit-ticket button{width:100%;margin-top:6px}.portal-admin-login{display:grid;place-items:center;min-height:100dvh;padding:24px;background:linear-gradient(130deg,#edf3fc,#f8fafe)}.portal-admin-login form{display:grid;gap:15px;width:min(100%,410px);padding:32px;border:1px solid #e2eaf7;border-radius:19px;background:#fff;box-shadow:0 15px 60px #2545770d}.portal-login-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:16px;background:#eaf2ff;color:#2468cf}.portal-admin-login h1{margin:1px 0 0;font-size:21px;color:#223d60}.portal-admin-login p{margin:0;color:#8998a9;font-size:12px;line-height:1.7}.portal-admin-login label,.portal-settings label{display:grid;gap:8px;font-size:12px;color:#536c88}.portal-admin-login input,.portal-settings input,.portal-settings textarea{width:100%;min-width:0;padding:11px;border:1px solid #dce6f1;border-radius:8px;background:#fff;color:#28405d;outline:none;font:inherit}.portal-admin-login input:focus,.portal-settings input:focus,.portal-settings textarea:focus{border-color:#77a5e6;box-shadow:0 0 0 3px #2468cf12}.portal-admin-login small{color:#8194ac;font-size:11px;line-height:1.6}.portal-admin-login .primary-button{width:100%;margin-top:4px}.portal-admin-logout{display:flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #e2e9f1;border-radius:7px;background:#fff;color:#647b95;font-size:11px}.portal-settings{max-width:900px;padding:23px;border:1px solid #e4ebf5;border-radius:12px;background:#fff}.portal-settings-intro{margin:0 0 20px;font-size:12px;line-height:1.7;color:#8092a7}.portal-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.portal-settings-wide{grid-column:1/-1}.portal-settings textarea{resize:vertical;line-height:1.6}.portal-floor-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 0 12px}.portal-floor-heading h2{margin:0;font-size:15px;color:#294767}.portal-floor-heading button{font-size:11px;padding:8px 12px;min-height:34px}.portal-floor-edit{display:grid;grid-template-columns:minmax(100px,1fr) minmax(150px,3fr) auto;align-items:end;gap:12px;margin-bottom:14px}.portal-floor-edit>button{min-height:40px;border:0;background:#fff;font-size:12px}.portal-settings>.primary-button{margin-top:18px}.portal-form-error{padding:11px;border:1px solid #f2dad8;border-radius:8px;background:#fff4f2;color:#b75e54!important;font-size:12px;line-height:1.6}.portal-form-error button{border:0;background:none;color:inherit;text-decoration:underline}.portal-form-success{padding:11px;border-radius:8px;background:#edf5ff;color:#2468cf;font-size:12px;line-height:1.6}button:disabled{cursor:default;opacity:.6}.phone-surface .home-quick,.phone-surface .profile-stats{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}.electronic-card-page{min-height:calc(100dvh - 90px);padding:18px 16px calc(var(--patient-tabbar-height) + 24px);background:#f5f8fc}.electronic-card-intro{display:flex;align-items:center;gap:11px;color:#2468cf}.electronic-card-intro h1{margin:0;color:#2a4668;font-size:17px}.electronic-card-intro p{margin:6px 0 0;color:#8394ac;font-size:11px;line-height:1.6}.electronic-card-picker{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 0;padding:12px;border:1px solid #e0e9f7;border-radius:10px;background:#fff;color:#6f859f;font-size:11px}.electronic-card-picker select{max-width:70%;border:0;background:#fff;color:#284c7b;padding:4px;font-size:12px}.electronic-card-manage{width:100%;margin-top:16px}.patient-show-code{display:flex;align-items:center;gap:5px}.patient-manage-actions{flex-wrap:wrap}.electronic-card-unavailable,.portal-modules-empty{padding:16px;color:#7c8ea6;font-size:12px;line-height:1.7;text-align:center}.appointment-query-scope{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:12px 0}.appointment-query-scope button{padding:8px 10px;border:1px solid #dce7f6;border-radius:8px;background:#fff;color:#316bb7;font-size:11px}.appointment-query-scope button[aria-pressed=true]{background:#edf4ff}.appointment-query-scope small{color:#8396ad;font-size:10px}.admin-nav button.active{background:#eaf2ff;color:#2468cf}@media(min-width:701px){.admin-shell{padding-top:0}.admin-sidebar{min-height:100vh}.admin-topbar{top:0}}@media(max-width:390px){.portal-service-grid button{padding-left:43px;padding-right:6px}.portal-service-grid button>span{left:10px}.portal-service-grid small{font-size:9px}.portal-login-entry{padding:11px;gap:8px}}@media(max-width:650px){.portal-settings{padding:16px}.portal-settings-grid{grid-template-columns:1fr}.portal-floor-edit{grid-template-columns:1fr auto}.portal-floor-edit label:nth-child(2){grid-column:1;grid-row:2}.portal-floor-edit>button{grid-column:2;grid-row:2}.portal-admin-login form{padding:25px}}
