.patient-page { background: radial-gradient(circle at 12% 10%, rgba(33,158,188,.12), transparent 30%), linear-gradient(180deg, #f3f8fb 0%, #eef5f8 100%); }
.patient-bottom-nav { display: none; }
.patient-shell { width: min(1040px, calc(100% - 32px)); margin: 42px auto 72px; }
.patient-auth { min-height: 570px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); align-items: center; gap: 54px; }
.patient-auth-copy h1, .patient-welcome h1, .patient-page-title h1 { margin: 8px 0; color: #0d304a; font-size: clamp(32px, 5vw, 55px); line-height: 1.03; }
.patient-auth-copy > p, .patient-welcome p, .patient-page-title p { max-width: 610px; color: #587386; font-size: 15px; line-height: 1.65; }
.patient-security { margin-top: 25px; display: flex; flex-wrap: wrap; gap: 9px; }
.patient-security span { padding: 7px 11px; color: #17694f; background: #e3f6ee; border: 1px solid #b8e3d2; border-radius: 999px; font-size: 11px; font-weight: 800; }
.patient-card .patient-security { margin-top: 22px; padding-top: 17px; justify-content: center; border-top: 1px solid #e3ebf0; }
.patient-card .patient-security span { padding: 5px 9px; color: #597568; background: #f2f8f5; border-color: #d4e6dd; font-size: 9px; }
.patient-card { padding: 30px; background: rgba(255,255,255,.94); border: 1px solid #d5e4ec; border-radius: 18px; box-shadow: 0 24px 60px rgba(29,65,88,.14); }
.patient-card label { display: block; color: #26465c; font-size: 12px; font-weight: 800; }
.patient-card input { width: 100%; height: 52px; margin: 7px 0 15px; padding: 0 14px; color: #153b55; background: #f9fbfc; border: 1px solid #cbdbe4; border-radius: 10px; font-size: 16px; outline: none; }
.patient-card input:focus { border-color: #147da5; box-shadow: 0 0 0 4px rgba(20,125,165,.12); }
.patient-otp-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.patient-otp-label { display: block; margin: 0; text-align: left; }
.patient-otp-timer { display: inline-flex; align-items: center; gap: 6px; color: #60798a; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.patient-otp-timer strong { min-width: 48px; padding: 5px 7px; color: #0d7099; background: #e9f4f8; border-radius: 999px; font-size: 12px; text-align: center; font-variant-numeric: tabular-nums; }
.patient-otp-delivery { margin: 6px 0 18px; padding: 14px 16px; color: #315f73; background: #edf6f8; border-left: 4px solid #168a83; border-radius: 7px; font-size: 13px; line-height: 1.6; }
.patient-otp-delivery:empty { display: none; }
.patient-otp-timer.is-expired strong { color: #a43e2c; background: #fff0ec; }
.patient-otp-boxes { margin: 8px auto 19px; display: grid; grid-template-columns: repeat(6, 48px); justify-content: center; gap: 8px; }
.patient-card .patient-otp-boxes input { width: 48px; height: 58px; margin: 0; padding: 0; color: #123b55; background: #f9fbfc; border: 1px solid #c8d9e3; border-radius: 10px; font-size: 24px; font-weight: 900; text-align: center; font-variant-numeric: tabular-nums; caret-color: #147da5; }
.patient-card .patient-otp-boxes input:focus { background: #fff; border-color: #147da5; box-shadow: 0 0 0 3px rgba(20,125,165,.13); }
.patient-card .button { width: 100%; min-height: 48px; }
.patient-link, .patient-logout { color: #0e6691; background: transparent; border: 0; cursor: pointer; font-weight: 800; }
.patient-link { width: 100%; margin-top: 12px; }
.patient-form-status { min-height: 20px; margin: 14px 0 0; color: #a1432e; font-size: 12px; text-align: center; }
.patient-form-status.is-success { color: #087956; }
.patient-form-status.is-error { color: #a1432e; }
.patient-welcome { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; }
.patient-dashboard .patient-welcome { margin-bottom: 34px; }
.patient-dashboard .patient-next { margin-top: 0; margin-bottom: 34px; }
.patient-dashboard .patient-welcome + .patient-actions { margin-top: 12px; }
.patient-welcome h1 { font-size: clamp(31px, 5vw, 48px); }
.patient-logout { padding: 10px 15px; background: #fff; border: 1px solid #cfdee7; border-radius: 999px; }
.patient-membership-card { width: min(380px, 100%); aspect-ratio: 1.586; margin: 0 0 24px; padding: 20px; position: relative; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto; align-items: end; gap: 12px; color: #fff; background: linear-gradient(115deg, #103c74 0%, #11559b 52%, #087eb9 100%); border-radius: 8px; box-shadow: 0 14px 32px rgba(17,79,146,.24); }
.patient-membership-card::after { width: 150px; height: 150px; position: absolute; top: -80px; right: -30px; content: ''; border: 24px solid rgba(255,255,255,.1); border-radius: 50%; }
.patient-membership-card > div { min-width: 0; position: relative; z-index: 1; }
.patient-membership-brand { align-self: start; justify-self: end; text-align: right; }
.patient-membership-brand img { width: 160px; height: auto; display: block; }
.patient-membership-brand span, .patient-membership-identity small, .patient-membership-identity strong, .patient-membership-number small, .patient-membership-number strong { display: block; }
.patient-membership-brand span, .patient-membership-card small { color: #e0efff; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.patient-membership-identity { align-self: end; display: grid; grid-template-columns: 64px minmax(0,1fr); align-items: center; gap: 12px; }
.patient-membership-identity strong, .patient-membership-number strong { margin-top: 5px; overflow: hidden; font-size: 14px; }
.patient-membership-identity strong { display: -webkit-box; line-height: 1.2; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.patient-membership-number strong { text-overflow: ellipsis; white-space: nowrap; }
.patient-membership-photo { width: 64px; height: 64px; color: #fff; background: rgba(255,255,255,.16); border: 2px solid rgba(255,255,255,.8); border-radius: 50%; box-shadow: 0 5px 14px rgba(5,46,54,.2); }
.patient-membership-photo > img, .patient-membership-photo > .patient-avatar { width: 100%; height: 100%; display: grid; place-items: center; border: 0; border-radius: 50%; box-shadow: none; object-fit: cover; font-size: 18px; }
.patient-membership-number { padding-right: 42px; }
.patient-membership-number strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.patient-membership-copy { width: 34px; height: 34px; position: absolute; right: 0; bottom: -4px; display: grid; place-items: center; color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.25); border-radius: 7px; cursor: pointer; }
.patient-membership-copy:hover, .patient-membership-copy.is-copied { background: rgba(255,255,255,.3); }
.patient-dashboard-overview { margin-bottom: 24px; display: grid; grid-template-columns: 380px minmax(0,1fr); align-items: stretch; gap: 20px; }
.patient-dashboard-overview .patient-membership-card { margin: 0; }
.patient-dashboard-overview .patient-actions { grid-template-columns: repeat(2, minmax(0,1fr)); grid-template-rows: repeat(3, minmax(0,1fr)); align-self: stretch; }
.patient-dashboard-overview .patient-actions > * { min-height: 0; }
.patient-dashboard-overview .patient-actions > a:nth-child(1) { order: 1; }
.patient-dashboard-overview .patient-actions > a:nth-child(3) { order: 2; }
.patient-dashboard-overview .patient-actions > a:nth-child(2) { order: 3; }
.patient-dashboard-overview .patient-actions > button { order: 4; }
.patient-dashboard-overview .patient-actions > a:nth-child(4) { order: 5; }
.patient-dashboard-overview .patient-actions > a:nth-child(5) { order: 6; }
.patient-next { margin: 27px 0; padding: 24px 28px; position: relative; overflow: hidden; color: #fff; background: linear-gradient(125deg, #0c6c91 0%, #168a83 100%); border-radius: 17px; box-shadow: 0 16px 35px rgba(10,105,135,.19); }
.patient-next::after { width: 170px; height: 170px; position: absolute; right: -50px; bottom: -90px; content: ''; border: 28px solid rgba(255,255,255,.1); border-radius: 50%; }
.patient-next span, .patient-next strong, .patient-next p, .patient-next small { display: block; position: relative; z-index: 1; }
.patient-next span { font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.patient-next strong { margin-top: 8px; font-size: 23px; }
.patient-next p { margin: 6px 0; color: #e5f8f7; }
.patient-next small { width: fit-content; padding: 4px 8px; background: rgba(255,255,255,.15); border-radius: 999px; }
.patient-actions { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.patient-actions a, .patient-actions button { min-height: 78px; padding: 13px 15px; display: grid; grid-template-columns: 38px minmax(0,1fr); grid-template-rows: auto auto; align-content: center; column-gap: 11px; color: #183d55; background: #fff; border: 1px solid #d6e3eb; border-radius: 8px; box-shadow: 0 5px 16px rgba(32,67,89,.06); text-align: left; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.patient-actions button { width: 100%; font: inherit; cursor: pointer; }
.patient-actions a:hover, .patient-actions button:hover { transform: translateY(-3px); border-color: #95c5d7; box-shadow: 0 14px 30px rgba(32,67,89,.12); }
.patient-actions button:disabled { cursor: wait; opacity: .7; transform: none; }
.patient-actions i { width: 38px; height: 38px; grid-row: 1 / 3; display: grid; place-items: center; color: #0e789e; background: #e6f4f8; border-radius: 9px; font-style: normal; font-weight: 900; }
.patient-actions strong { align-self: end; margin: 0; font-size: 14px; }
.patient-actions span { align-self: start; margin-top: 2px; overflow: hidden; color: #6a8191; font-size: 10px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.patient-pharmacies[hidden] { display: none; }
.patient-pharmacies { margin-top: 24px; padding: 22px; background: #fff; border: 1px solid #d6e3eb; border-radius: 8px; box-shadow: 0 10px 28px rgba(32,67,89,.08); scroll-margin-top: 20px; }
.patient-pharmacies > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.patient-pharmacies > header small { color: #087956; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.patient-pharmacies h2 { margin: 3px 0 0; color: #173b53; font-size: 20px; }
.patient-pharmacies > header button { width: 38px; height: 38px; flex: 0 0 38px; padding: 0; color: #527083; background: #edf3f6; border: 0; border-radius: 50%; font-size: 25px; cursor: pointer; }
.patient-pharmacies-status { min-height: 19px; margin: 14px 0; color: #547183; font-size: 12px; }
.patient-pharmacies-status.is-error { color: #a1432e; }
.patient-pharmacies-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.patient-pharmacy-card { min-width: 0; padding: 16px; border: 1px solid #d9e5eb; border-radius: 8px; }
.patient-pharmacy-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.patient-pharmacy-card header small, .patient-pharmacy-card header strong { display: block; }
.patient-pharmacy-card header small { color: #087956; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.patient-pharmacy-card header strong { margin-top: 3px; color: #173b53; font-size: 14px; }
.patient-pharmacy-distance { flex: 0 0 auto; padding: 5px 7px; color: #0d7099; background: #e7f4f8; border-radius: 6px; font-size: 10px; font-weight: 900; }
.patient-pharmacy-address { margin: 10px 0; color: #647d8c; font-size: 11px; line-height: 1.45; }
.patient-pharmacy-discounts { display: grid; gap: 6px; }
.patient-pharmacy-discounts > div { padding: 9px; color: #285846; background: #eef8f4; border-left: 3px solid #168a65; border-radius: 6px; }
.patient-pharmacy-discounts strong, .patient-pharmacy-discounts span { display: block; }
.patient-pharmacy-discounts strong { font-size: 11px; }
.patient-pharmacy-discounts span { margin-top: 2px; font-size: 10px; line-height: 1.4; }
.patient-pharmacy-no-discount { color: #718894; font-size: 10px; }
.patient-pharmacy-directions { margin-top: 12px; display: inline-flex; color: #0d7099; font-size: 11px; font-weight: 900; }
.patient-dashboard-updates { margin: 0 0 24px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.patient-dashboard-section:only-child { grid-column: 1 / -1; }
.patient-dashboard-section header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 8px; }
.patient-dashboard-section h2 { margin: 0; color: #173b53; font-size: 16px; }
.patient-dashboard-section header a { color: #0e7098; font-size: 11px; font-weight: 900; }
.patient-dashboard-list { display: grid; gap: 6px; }
.patient-dashboard-list > a { min-width: 0; padding: 9px 11px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; color: #183d55; background: #fff; border: 1px solid #d6e3eb; border-radius: 8px; box-shadow: 0 4px 12px rgba(32,67,89,.04); }
.patient-dashboard-list > a:hover { border-color: #95c5d7; }
.patient-dashboard-list span { min-width: 0; }
.patient-dashboard-list span > strong, .patient-dashboard-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.patient-dashboard-list small { margin-top: 3px; color: #718894; font-size: 10px; }
.patient-dashboard-date { min-width: 74px; color: #607d8e; font-size: 11px; }
.patient-dashboard-date strong { color: #0e7098; font-size: 12px; }
.patient-dashboard-file { width: 30px; height: 30px; display: grid; place-items: center; color: #0e7098; background: #e7f4f8; border-radius: 7px; }
.patient-dashboard-list > a > i:last-child { color: #7d98a7; font-size: 11px; }
.patient-identity { display: flex; align-items: center; gap: 18px; }
.patient-identity > img, .patient-avatar { width: 74px; height: 74px; flex: 0 0 74px; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 8px 22px rgba(24,61,85,.15); object-fit: cover; }
.patient-avatar { display: grid; place-items: center; color: #fff; background: #0e789e; font-size: 27px; font-weight: 900; }
.patient-back { display: inline-flex; margin-bottom: 18px; color: #0e6e98; font-weight: 800; }
.patient-page-title { margin-bottom: 30px; }
.patient-page-title h1 { font-size: clamp(30px, 5vw, 47px); }
.patient-list-section { margin-top: 28px; }
.patient-list-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 11px; }
.patient-list-head h2 { margin: 0; color: #173b53; font-size: 20px; }
.patient-list-head span { min-width: 28px; padding: 4px 8px; color: #0e7098; background: #dfeff5; border-radius: 999px; text-align: center; font-weight: 900; }
.patient-appointment-list, .patient-document-list, .patient-attachment-list { display: grid; gap: 0; }
.patient-appointment-list, .patient-timeline { position: relative; }
.patient-appointment-list::before, .patient-timeline::before { width: 2px; position: absolute; top: 22px; bottom: 22px; left: 54px; content: ''; background: #cbdde6; }
.patient-appointment-list > article { padding: 17px; display: grid; grid-template-columns: 112px minmax(0,1fr) auto; align-items: center; gap: 16px; background: #fff; border: 1px solid #d8e4eb; border-radius: 13px; cursor: pointer; }
.patient-timeline-item { position: relative; margin-bottom: 12px; box-shadow: 0 7px 20px rgba(31,70,93,.05); }
.patient-date { position: relative; z-index: 1; padding: 9px 12px; background: #eef6f9; border: 1px solid #d4e5ec; border-radius: 9px; }
.patient-date small, .patient-date strong, .patient-date span { display: block; }
.patient-date small { margin-bottom: 3px; color: #087956; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.patient-date strong { color: #185573; font-size: 13px; }
.patient-date span { margin-top: 2px; color: #607d8e; font-size: 12px; }
.patient-appointment-list article > div:nth-child(2) > strong { color: #193c53; }
.patient-appointment-list p { margin: 4px 0; color: #6b8190; font-size: 12px; }
.patient-professional-line { color: #315a70 !important; font-weight: 850; }
.patient-professional-context { display: block; color: #718894; font-size: 11px; }
.patient-appointment-meta { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 7px; }
.patient-appointment-meta span { padding: 4px 7px; color: #547183; background: #eef5f8; border-radius: 6px; font-size: 10px; font-weight: 800; }
.patient-appointment-receipt-link { margin-top: 5px; display: inline-flex; color: #0d7099; font-size: 11px; font-weight: 900; }
.patient-appointment-receipt-link:hover, .patient-appointment-receipt-link:focus { color: #087e5f; text-decoration: underline; outline: none; }
.patient-row-actions { margin-top: 9px; display: flex; align-items: center; flex-wrap: wrap; gap: 7px 12px; }
.patient-row-actions .button { min-height: 34px; padding: 7px 12px; font-size: 11px; }
.patient-row-actions a:not(.button), .patient-row-actions button, .patient-document-actions button { padding: 0; color: #0d7099; background: transparent; border: 0; font: inherit; font-size: 11px; font-weight: 900; cursor: pointer; }
.patient-row-actions button:disabled, .patient-document-actions button:disabled { color: #78909d; cursor: default; }
.patient-status { padding: 5px 9px; color: #137052; background: #e2f5ed; border-radius: 999px; font-size: 10px; font-weight: 900; }
.patient-empty { padding: 35px; color: #718896; background: rgba(255,255,255,.75); border: 1px dashed #bfd0da; border-radius: 14px; text-align: center; }
.patient-document-list article { padding: 18px; display: grid; grid-template-columns: 112px 50px minmax(0,1fr) auto; align-items: center; gap: 14px; background: #fff; border: 1px solid #d7e3ea; border-radius: 14px; }
.patient-document-icon { width: 50px; height: 50px; display: grid; place-items: center; color: #0d7099; background: #e7f4f8; border-radius: 12px; font-size: 10px; font-weight: 900; }
.patient-document-list p { margin: 4px 0; color: #6b8190; font-size: 12px; }
.patient-document-list small { color: #8495a1; }
.patient-document-list small + small { display: block; margin-top: 3px; }
.patient-document-actions { display: grid; justify-items: end; gap: 6px; }
.patient-document-actions a, .patient-attachment-list a { color: #0d7099; font-size: 11px; font-weight: 900; }
.patient-profile-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); align-items: start; gap: 18px; }
.patient-profile-photo, .patient-profile-form { padding: 24px; background: #fff; border: 1px solid #d7e3ea; border-radius: 14px; box-shadow: 0 8px 24px rgba(32,67,89,.06); }
.patient-profile-photo { display: flex; align-items: center; flex-direction: column; text-align: center; }
.patient-photo-preview { position: relative; width: 126px; height: 126px; margin-bottom: 14px; overflow: visible; border: 4px solid #e6f1f5; border-radius: 50%; background: #0e789e; }
.patient-photo-preview img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.patient-photo-preview span { width: 100%; height: 100%; display: grid; place-items: center; color: #fff; font-size: 42px; font-weight: 900; border-radius: 50%; }
.patient-photo-camera { position: absolute; right: -7px; bottom: -3px; z-index: 2; display: grid; width: 36px; height: 36px; place-items: center; border: 3px solid #fff; border-radius: 50%; background: #147da5; color: #fff; cursor: pointer; box-shadow: 0 3px 9px rgba(22,54,74,.2); }
.patient-photo-camera:hover, .patient-photo-camera:focus-within { background: #0d5f82; }
.patient-photo-camera input { display: none; }
.patient-profile-photo > strong { color: #173b53; }
.patient-profile-photo > small { margin: 4px 0 18px; color: #748a98; }
.patient-profile-photo form { width: 100%; }
.patient-profile-photo .button { width: 100%; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.patient-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.patient-form-grid label { color: #26465c; font-size: 11px; font-weight: 850; }
.patient-form-grid input { width: 100%; height: 47px; margin-top: 6px; padding: 0 12px; color: #173b53; background: #f9fbfc; border: 1px solid #cbdbe4; border-radius: 8px; outline: none; }
.patient-form-grid input:focus { border-color: #147da5; box-shadow: 0 0 0 3px rgba(20,125,165,.1); }
.patient-form-grid input[readonly] { color: #60798a; background: #f0f4f6; }
.patient-form-grid input[name="data_nascimento"], .patient-form-grid input[name="numero"] { text-align: right; }
.patient-cep-status { display: block; min-height: 16px; margin-top: 4px; color: #4c7489; font-size: 10px; font-weight: 700; }
.patient-cep-status.is-success { color: #087956; }
.patient-cep-status.is-error { color: #a1432e; }
.patient-field-wide { grid-column: 1 / -1; }
.patient-profile-form > .button { margin-top: 20px; }
.patient-registration-request { margin-top: 22px; padding-top: 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-top: 1px solid #d7e3ea; }
.patient-registration-request p { margin: 4px 0 0; color: #748a98; font-size: 12px; line-height: 1.45; }
.patient-registration-request .button { flex: 0 0 auto; }
.patient-inline-status { min-height: 18px; margin: 10px 0 0; color: #a1432e; font-size: 11px; }
.patient-inline-status.is-success { color: #087956; }
.patient-photo-editor[hidden] { display: none; }
.patient-photo-editor { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 16px; }
.patient-photo-editor-backdrop { position: absolute; inset: 0; background: rgba(7,29,45,.72); backdrop-filter: blur(5px); }
.patient-photo-editor > section { width: min(500px, 100%); max-height: calc(100dvh - 24px); position: relative; overflow-y: auto; background: #fff; border-radius: 14px; box-shadow: 0 24px 70px rgba(4,28,45,.3); }
.patient-photo-editor header, .patient-photo-editor footer { padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.patient-photo-editor header { border-bottom: 1px solid #dbe6ec; }
.patient-photo-editor header small, .patient-photo-editor header strong { display: block; }
.patient-photo-editor header small { color: #718895; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.patient-photo-editor header strong { color: #173b53; font-size: 16px; }
.patient-photo-editor header > button { width: 38px; height: 38px; padding: 0; color: #527083; background: #edf3f6; border: 0; border-radius: 50%; font-size: 25px; line-height: 1; }
.patient-photo-editor-stage { width: min(390px, calc(100% - 32px)); aspect-ratio: 1; margin: 16px auto 10px; overflow: hidden; border-radius: 50%; background: #163246; box-shadow: 0 0 0 5px #e5eef3; touch-action: none; cursor: move; }
.patient-photo-editor-stage canvas { width: 100%; height: 100%; display: block; }
.patient-photo-editor-zoom { padding: 5px 20px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; color: #607a8a; }
.patient-photo-editor-zoom input { width: 100%; accent-color: #0e789e; }
.patient-photo-editor-tools { padding: 8px 16px 2px; display: flex; justify-content: center; gap: 8px; }
.patient-photo-editor-tools button { min-height: 38px; padding: 7px 12px; color: #28536b; background: #f1f6f8; border: 1px solid #cfdee6; border-radius: 8px; font-size: 11px; font-weight: 800; }
.patient-photo-editor footer { border-top: 1px solid #dbe6ec; }
.patient-photo-editor footer .button { flex: 1; }
.patient-photo-editor-open { overflow: hidden; }
.patient-appointment-dialog { width: min(620px, calc(100% - 24px)); max-height: calc(100dvh - 24px); padding: 0; overflow: auto; color: #173b53; background: #fff; border: 0; border-radius: 14px; box-shadow: 0 24px 70px rgba(4,28,45,.3); }
.patient-appointment-dialog::backdrop { background: rgba(7,29,45,.72); backdrop-filter: blur(4px); }
.patient-appointment-dialog > header, .patient-appointment-dialog > footer { padding: 17px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.patient-appointment-dialog > header { border-bottom: 1px solid #dbe6ec; }
.patient-appointment-dialog > header small, .patient-appointment-dialog > header strong { display: block; }
.patient-appointment-dialog > header small { margin-bottom: 4px; color: #718895; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.patient-appointment-dialog > header button { width: 38px; height: 38px; flex: 0 0 38px; padding: 0; color: #527083; background: #edf3f6; border: 0; border-radius: 50%; font-size: 25px; }
.patient-appointment-detail-grid { padding: 20px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.patient-appointment-detail-grid > div { padding: 12px; background: #f3f7f9; border-radius: 8px; }
.patient-appointment-detail-grid small, .patient-appointment-detail-grid strong { display: block; }
.patient-appointment-detail-grid small { margin-bottom: 4px; color: #718695; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.patient-appointment-dialog > section { padding: 0 20px 20px; }
.patient-appointment-dialog h3 { margin: 0 0 10px; font-size: 15px; }
.patient-dialog-documents { display: grid; gap: 8px; }
.patient-dialog-documents article { padding: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #f8fbfc; border: 1px solid #dbe6ec; border-radius: 8px; }
.patient-dialog-documents small { display: block; margin-top: 3px; color: #78909d; }
.patient-dialog-documents article > div:last-child { display: flex; gap: 12px; }
.patient-dialog-documents a, .patient-dialog-documents button, .patient-appointment-dialog > footer > a { padding: 0; color: #0d7099; background: transparent; border: 0; font-size: 11px; font-weight: 900; cursor: pointer; }
.patient-dialog-empty { margin: 0; padding: 18px; color: #718896; background: #f5f8fa; border-radius: 8px; text-align: center; }
.patient-appointment-dialog > footer { border-top: 1px solid #dbe6ec; }
.patient-appointment-dialog > footer .button { min-width: 110px; }
.patient-dialog-open { overflow: hidden; }
.patient-pdf-dialog { width: min(1080px, calc(100% - 24px)); height: min(860px, calc(100dvh - 24px)); padding: 0; overflow: hidden; color: #173b53; background: #eef3f6; border: 0; border-radius: 12px; box-shadow: 0 24px 70px rgba(4,28,45,.36); }
.patient-pdf-dialog::backdrop, .patient-request-dialog::backdrop { background: rgba(7,29,45,.76); backdrop-filter: blur(4px); }
.patient-pdf-dialog > header, .patient-pdf-dialog > footer { padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; }
.patient-pdf-dialog > header button { width: 38px; height: 38px; padding: 0; color: #527083; background: #edf3f6; border: 0; border-radius: 50%; font-size: 25px; }
.patient-pdf-dialog > .modal-body { height: calc(100% - 146px); min-height: 0; }
.patient-pdf-dialog > footer { justify-content: flex-end; border-top: 1px solid #d7e3ea; }
.patient-pdf-dialog > footer button { min-height: 38px; padding: 8px 12px; color: #0d7099; background: #edf5f8; border: 1px solid #ccdde5; border-radius: 7px; font-weight: 850; }
.patient-request-dialog { width: min(520px, calc(100% - 24px)); padding: 0; color: #173b53; background: #fff; border: 0; border-radius: 12px; box-shadow: 0 24px 70px rgba(4,28,45,.36); }
.patient-request-dialog header, .patient-request-dialog footer { padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.patient-request-dialog header { border-bottom: 1px solid #d7e3ea; }
.patient-request-dialog header small, .patient-request-dialog header strong { display: block; }
.patient-request-dialog header small { color: #718895; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.patient-request-dialog header button { width: 38px; height: 38px; padding: 0; color: #527083; background: #edf3f6; border: 0; border-radius: 50%; font-size: 25px; }
.patient-request-dialog label { padding: 18px 18px 8px; display: block; color: #31566c; font-size: 12px; font-weight: 800; }
.patient-request-dialog textarea { width: 100%; margin-top: 9px; padding: 12px; resize: vertical; color: #173b53; background: #f8fbfc; border: 1px solid #c8d9e2; border-radius: 8px; font: inherit; line-height: 1.5; }
.patient-request-dialog .patient-inline-status { padding: 0 18px; }
.patient-request-dialog footer { justify-content: flex-end; border-top: 1px solid #d7e3ea; }
.patient-review-dialog { width: min(560px, calc(100% - 24px)); padding: 0; color: #173b53; background: #fff; border: 0; border-radius: 12px; box-shadow: 0 24px 70px rgba(4,28,45,.36); }
.patient-review-dialog::backdrop { background: rgba(7,29,45,.76); backdrop-filter: blur(4px); }
.patient-review-dialog header, .patient-review-dialog footer { padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.patient-review-dialog header { border-bottom: 1px solid #d7e3ea; }
.patient-review-dialog header small, .patient-review-dialog header strong { display: block; }
.patient-review-dialog header small { margin-bottom: 3px; color: #087956; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.patient-review-dialog header strong { font-size: 18px; }
.patient-review-dialog header button { width: 38px; height: 38px; flex: 0 0 38px; padding: 0; color: #527083; background: #edf3f6; border: 0; border-radius: 50%; font-size: 25px; }
.patient-review-dialog fieldset { margin: 0; padding: 16px 18px 4px; border: 0; }
.patient-review-dialog legend { margin-bottom: 9px; color: #31566c; font-size: 12px; font-weight: 850; }
.patient-review-rating { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.patient-review-rating legend { grid-column: 1 / -1; }
.patient-review-rating label { min-height: 76px; display: grid; place-items: center; align-content: center; gap: 5px; color: #607987; background: #f5f9fa; border: 1px solid #d5e2e8; border-radius: 8px; cursor: pointer; }
.patient-review-rating input { position: absolute; opacity: 0; pointer-events: none; }
.patient-review-rating i { color: #d7a324; font-size: 22px; }
.patient-review-rating span { font-size: 12px; font-weight: 850; }
.patient-review-rating label:has(input:checked) { color: #fff; background: #0d7897; border-color: #0d7897; }
.patient-review-rating label:has(input:checked) i { color: #ffd65a; }
.patient-review-improvements { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.patient-review-improvements[hidden] { display: none; }
.patient-review-improvements legend { grid-column: 1 / -1; }
.patient-review-improvements label { padding: 10px; display: flex; align-items: center; gap: 8px; color: #496879; background: #f7fafb; border: 1px solid #dbe6eb; border-radius: 7px; font-size: 11px; font-weight: 750; }
.patient-review-comment { position: relative; padding: 14px 18px 8px; display: block; color: #31566c; font-size: 12px; font-weight: 850; }
.patient-review-comment span small { color: #78909d; font-weight: 600; }
.patient-review-comment textarea { width: 100%; margin-top: 8px; padding: 12px; resize: vertical; color: #173b53; background: #f8fbfc; border: 1px solid #c8d9e2; border-radius: 8px; font: inherit; line-height: 1.5; }
.patient-review-counter { position: absolute; right: 27px; bottom: 17px; color: #78909d; font-size: 9px; }
.patient-review-dialog .patient-inline-status { min-height: 20px; padding: 0 18px; }
.patient-review-dialog footer { justify-content: flex-end; border-top: 1px solid #d7e3ea; }
.patient-new-consultation-dialog { width: min(560px, calc(100% - 24px)); padding: 0; color: #173b53; background: #fff; border: 0; border-radius: 12px; box-shadow: 0 24px 70px rgba(4,28,45,.36); }
.patient-new-consultation-dialog::backdrop { background: rgba(7,29,45,.76); backdrop-filter: blur(4px); }
.patient-new-consultation-dialog > header { padding: 17px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid #d7e3ea; }
.patient-new-consultation-dialog > header small, .patient-new-consultation-dialog > header strong { display: block; }
.patient-new-consultation-dialog > header small { margin-bottom: 3px; color: #087956; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.patient-new-consultation-dialog > header strong { font-size: 18px; }
.patient-new-consultation-dialog > header button { width: 38px; height: 38px; flex: 0 0 38px; padding: 0; color: #527083; background: #edf3f6; border: 0; border-radius: 50%; font-size: 25px; }
.patient-consultation-options { padding: 18px; display: grid; gap: 10px; }
.patient-consultation-options > a { min-height: 94px; padding: 16px; display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 13px; color: #173b53; background: #f6fafb; border: 1px solid #d5e3e9; border-radius: 8px; }
.patient-consultation-options > a:first-child { color: #fff; background: #087956; border-color: #087956; }
.patient-consultation-options > a > i:first-child { width: 46px; height: 46px; display: grid; place-items: center; color: #0d7099; background: #e2f1f5; border-radius: 50%; font-size: 18px; }
.patient-consultation-options > a:first-child > i:first-child { color: #087956; background: #fff; }
.patient-consultation-options strong, .patient-consultation-options span { display: block; }
.patient-consultation-options strong { font-size: 15px; }
.patient-consultation-options span { margin-top: 4px; color: #68808e; font-size: 11px; line-height: 1.4; }
.patient-consultation-options > a:first-child span { color: #d9f1e9; }
.patient-consultation-options > a > i:last-child { font-size: 12px; }
.patient-request-list { display: grid; gap: 12px; }
.patient-request-list article { padding: 20px; background: #fff; border: 1px solid #d7e3ea; border-left: 4px solid #168a83; border-radius: 10px; }
.patient-request-list header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.patient-request-list header strong { color: #173b53; }
.patient-request-list header span { padding: 5px 8px; color: #0c6c5c; background: #e2f5ed; border-radius: 999px; font-size: 9px; font-weight: 900; }
.patient-request-list small { display: block; margin-top: 5px; color: #78909d; }
.patient-request-list p { margin: 12px 0 0; color: #496678; line-height: 1.55; }
.patient-request-answer { margin-top: 14px; padding: 12px; color: #315b4d; background: #eef8f4; border-radius: 8px; font-size: 12px; line-height: 1.5; }
.patient-request-answer strong { display: block; margin-bottom: 4px; }
.patient-attachment-list a { padding: 16px; display: flex; align-items: center; justify-content: space-between; background: #fff; border: 1px solid #d7e3ea; border-radius: 12px; }
.patient-attachment-list span { color: #6c8391; font-size: 11px; }
.appointment-receipt-shell { width: min(820px, calc(100% - 32px)); }
.appointment-receipt-success { margin-bottom: 22px; display: grid; grid-template-columns: 62px minmax(0, 1fr); align-items: center; gap: 18px; }
.appointment-receipt-success > span { width: 62px; height: 62px; display: grid; place-items: center; color: #fff; background: #079c74; border-radius: 50%; font-size: 28px; box-shadow: 0 10px 24px rgba(7,156,116,.22); }
.appointment-receipt-success small { color: #087e5f; font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.appointment-receipt-success h1 { margin: 4px 0; color: #102f4d; font-size: clamp(27px, 5vw, 42px); line-height: 1.08; }
.appointment-receipt-success p { margin: 0; color: #61798b; font-size: 13px; line-height: 1.5; }
.appointment-receipt { padding: 30px; background: #fff; border: 1px solid #d5e0e8; border-radius: 12px; box-shadow: 0 18px 42px rgba(14,55,87,.1); }
.appointment-receipt > header { padding-bottom: 18px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid #dfe7ed; }
.appointment-receipt > header span, .appointment-receipt > header strong { display: block; }
.appointment-receipt > header span { color: #698092; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.appointment-receipt > header strong { margin-top: 4px; color: #173f62; font-size: 18px; }
.appointment-receipt > header b { padding: 7px 10px; color: #087e5f; background: #e2f5ed; border-radius: 999px; font-size: 10px; }
.appointment-receipt-highlight { margin: 22px 0; padding: 20px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; color: #fff; background: linear-gradient(120deg, #0d579e 0%, #087e76 120%); border-radius: 10px; }
.appointment-receipt-highlight > div + div { padding-left: 20px; border-left: 1px solid rgba(255,255,255,.3); }
.appointment-receipt-highlight small, .appointment-receipt-highlight strong, .appointment-receipt-highlight span { display: block; }
.appointment-receipt-highlight small { color: #dceef5; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.appointment-receipt-highlight strong { margin-top: 5px; font-size: 25px; }
.appointment-receipt-highlight span { margin-top: 2px; color: #dceef5; font-size: 11px; }
.appointment-receipt dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.appointment-receipt dl > div { padding: 14px 0; border-bottom: 1px solid #e6edf1; }
.appointment-receipt dt { color: #718695; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.appointment-receipt dd { margin: 4px 0 0; color: #173854; font-size: 13px; font-weight: 750; }
.appointment-receipt-protocol { margin: 20px 0; padding: 13px 15px; background: #f3f7fa; border: 1px solid #d9e4eb; border-radius: 8px; }
.appointment-receipt-protocol span, .appointment-receipt-protocol code { display: block; }
.appointment-receipt-protocol span { color: #718695; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.appointment-receipt-protocol code { margin-top: 5px; color: #31526b; font-size: 11px; overflow-wrap: anywhere; }
.appointment-join { width: 100%; min-height: 52px; display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 850; }
.appointment-room-note { margin: 9px 0 0; color: #718695; font-size: 10px; text-align: center; }
.appointment-receipt-actions { margin-top: 16px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; }
.appointment-receipt-actions .button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; }
.appointment-receipt-actions > a:not(.button) { padding: 10px; color: #0d579e; font-size: 12px; font-weight: 800; }
@media (max-width: 700px) {
	.patient-page { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
	.patient-bottom-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 1040; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); min-height: 60px; padding: 5px 6px calc(5px + env(safe-area-inset-bottom)); border-top: 1px solid #d7e3e9; background: rgba(255,255,255,.97); box-shadow: 0 -4px 18px rgba(22,54,74,.1); }
	.patient-bottom-nav a { position: relative; display: flex; min-width: 0; min-height: 50px; align-items: center; justify-content: center; flex-direction: column; gap: 3px; color: #607888; font-size: 11px; font-weight: 700; text-align: center; text-decoration: none; }
	.patient-bottom-nav a .fa { font-size: 19px; }
	.patient-bottom-nav a.is-active { color: #147ba5; }
	.patient-bottom-nav a[href^="https://wa.me/"] { color: #168b50; }
	.patient-bottom-nav a.is-active::before { position: absolute; top: 0; width: 34px; height: 3px; border-radius: 0 0 3px 3px; background: #147ba5; content: ''; }
}
@media (max-width: 900px) { .patient-dashboard-overview { grid-template-columns: 1fr; } .patient-dashboard-overview .patient-actions { grid-template-rows: none; } }
@media (max-width: 760px) { .patient-registration-request { align-items: stretch; flex-direction: column; } .patient-dashboard-updates, .patient-pharmacies-list { grid-template-columns: 1fr; gap: 16px; margin-bottom: 20px; } }
@media (max-width: 600px) { .patient-appointment-detail-grid { grid-template-columns: 1fr; } .patient-dialog-documents article { align-items: flex-start; flex-direction: column; } .patient-appointment-dialog > footer { align-items: stretch; flex-direction: column; } .patient-appointment-dialog > footer .button { width: 100%; } }
@media (max-width: 760px) { .patient-auth { min-height: auto; grid-template-columns: 1fr; gap: 25px; } .patient-actions { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; } .patient-actions a { min-height: 132px; padding: 17px; border-radius: 12px; } .patient-actions a:nth-child(1), .patient-actions a:nth-child(2), .patient-actions a:nth-child(5) { grid-column: 1 / -1; } .patient-actions a:nth-child(1) { min-height: 145px; background: #0d6f91; border-color: #0d6f91; } .patient-actions a:nth-child(1) i { color: #0d6f91; background: #fff; } .patient-actions a:nth-child(1) strong, .patient-actions a:nth-child(1) span { color: #fff; } .patient-actions a:nth-child(2) { min-height: 118px; } .patient-actions a:nth-child(3), .patient-actions a:nth-child(4) { min-height: 138px; } .patient-actions a:nth-child(5) { min-height: 96px; } .patient-actions strong { font-size: 15px; } .patient-welcome h1, .patient-page-title h1 { font-size: 29px; } .patient-next { margin: 18px 0; padding: 20px; border-radius: 12px; } .patient-appointment-list article { grid-template-columns: 1fr; } .patient-status { width: fit-content; } .patient-document-list article { grid-template-columns: 44px minmax(0,1fr); } .patient-document-actions { grid-column: 1 / -1; justify-items: start; padding-top: 10px; border-top: 1px solid #edf2f5; } .patient-profile-layout { grid-template-columns: 1fr; } .patient-form-grid { grid-template-columns: 1fr; } .patient-field-wide { grid-column: auto; } }
@media (max-width: 480px) { .patient-shell { width: min(100% - 20px, 1040px); margin-top: 25px; } .patient-card { padding: 22px 17px; } .patient-welcome { flex-direction: column; } .patient-auth-copy h1 { font-size: 36px; } .patient-otp-head { align-items: flex-start; flex-direction: column; gap: 7px; } .patient-otp-boxes { grid-template-columns: repeat(6, minmax(36px, 42px)); gap: 5px; } .patient-card .patient-otp-boxes input { width: 100%; height: 52px; font-size: 21px; border-radius: 9px; } .appointment-receipt-success { grid-template-columns: 48px minmax(0, 1fr); gap: 12px; } .appointment-receipt-success > span { width: 48px; height: 48px; font-size: 22px; } .appointment-receipt { padding: 20px 15px; } .appointment-receipt-highlight { padding: 16px; gap: 12px; } .appointment-receipt-highlight > div + div { padding-left: 12px; } .appointment-receipt-highlight strong { font-size: 20px; } .appointment-receipt dl { grid-template-columns: 1fr; } .appointment-receipt-actions { align-items: stretch; flex-direction: column; } .appointment-receipt-actions .button, .appointment-receipt-actions > a { width: 100%; } }
@media (max-width: 480px) {
	.patient-shell { margin: 16px auto 45px; }
	.patient-welcome { align-items: center; flex-direction: row; gap: 8px; }
	.patient-identity { min-width: 0; gap: 10px; }
	.patient-identity > img, .patient-avatar { width: 52px; height: 52px; flex-basis: 52px; }
	.patient-identity > div { min-width: 0; }
	.patient-welcome h1 { overflow: hidden; margin: 3px 0 0; font-size: 23px; text-overflow: ellipsis; white-space: nowrap; }
	.patient-welcome p { display: none; }
	.patient-welcome .eyebrow { margin: 0; font-size: 9px; }
	.patient-logout { padding: 8px 10px; flex: 0 0 auto; font-size: 10px; }
	.patient-membership-card { width: 100%; min-height: 0; margin-right: auto; margin-left: auto; padding: 16px; gap: 10px; }
	.patient-membership-brand img { width: 142px; }
	.patient-membership-brand span, .patient-membership-card small { font-size: 8px; }
	.patient-membership-identity strong { font-size: 13px; }
	.patient-membership-brand { grid-column: 1 / -1; }
	.patient-membership-number strong { font-size: 16px; }
	.patient-photo-editor { padding: 8px; }
	.patient-photo-editor > section { max-height: calc(100dvh - 16px); }
	.patient-photo-editor-stage { width: min(330px, calc(100% - 36px)); margin-top: 13px; }
}
@media (max-width: 760px) {
	.patient-appointment-list::before, .patient-timeline::before { left: 44px; }
	.patient-appointment-list > article { grid-template-columns: 88px minmax(0,1fr); align-items: start; padding: 13px; gap: 12px; }
	.patient-date { padding: 8px; }
	.patient-status { grid-column: 2; }
	.patient-document-list article { grid-template-columns: 88px minmax(0,1fr); align-items: start; padding: 13px; gap: 10px 12px; }
	.patient-document-icon { display: none; }
	.patient-document-actions { grid-column: 2; display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 9px 14px; padding-top: 10px; }
	.patient-dialog-documents article > div:last-child { flex-wrap: wrap; }
	.patient-request-dialog footer { align-items: stretch; flex-direction: column-reverse; }
	.patient-request-dialog footer .button { width: 100%; }
}
@media (max-width: 600px) {
	.patient-pdf-dialog { width: 100%; height: 100dvh; max-width: none; max-height: none; border-radius: 0; }
	.patient-pdf-dialog > footer { overflow-x: auto; justify-content: flex-start; }
	.patient-pdf-dialog > footer button { flex: 0 0 auto; }
	.patient-new-consultation-dialog { width: calc(100% - 20px); }
	.patient-consultation-options { padding: 12px; }
	.patient-review-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); overflow-y: auto; }
	.patient-review-improvements { grid-template-columns: 1fr; }
	.patient-review-dialog footer { position: sticky; bottom: 0; background: #fff; }
}
@media (max-width: 760px) {
	.patient-actions { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
	.patient-actions a, .patient-actions button, .patient-actions a:nth-child(1), .patient-actions a:nth-child(2), .patient-actions a:nth-child(3), .patient-actions a:nth-child(4), .patient-actions a:nth-child(5) { min-height: 62px; padding: 10px; grid-column: auto; grid-template-columns: 34px minmax(0,1fr); border-radius: 8px; background: #fff; border-color: #d6e3eb; }
	.patient-actions a:nth-child(1) { grid-column: 1 / -1; order: -1; }
	.patient-actions a:nth-child(1) i { color: #0e789e; background: #e6f4f8; }
	.patient-actions a:nth-child(1) strong { color: #183d55; }
	.patient-actions i { width: 34px; height: 34px; }
	.patient-actions strong { align-self: center; font-size: 13px; }
	.patient-actions span { display: none; }
}
.patient-actions a:first-child { color: #fff; background: #087956; border-color: #087956; box-shadow: 0 8px 20px rgba(8,121,86,.2); }
.patient-actions a:first-child:hover { background: #066648; border-color: #066648; box-shadow: 0 14px 28px rgba(8,121,86,.26); }
.patient-actions a:first-child i { color: #087956; background: #fff; }
.patient-actions a:first-child strong { color: #fff; }
.patient-actions a:first-child span { color: #d9f1e9; }
@media print {
	.appointment-receipt-page { background: #fff; }
	.appointment-receipt-page .site-header, .appointment-receipt-page .site-footer, .appointment-receipt-success, .appointment-receipt-actions { display: none !important; }
	.appointment-receipt-shell { width: 100%; margin: 0; }
	.appointment-receipt { padding: 0; border: 0; box-shadow: none; }
	.appointment-join { color: #173854 !important; background: #fff !important; border: 1px solid #b8c9d5; }
}

/* Patient portal: touch targets, readable options and interaction feedback. */
.patient-page :where(a, button, input, textarea, select) { -webkit-tap-highlight-color: rgba(13,112,153,.16); }
.patient-page :where(a, button) { touch-action: manipulation; }
.patient-page :where(a, button, input, textarea, select):focus-visible,
.patient-review-rating label:has(input:focus-visible) { outline: 3px solid #147da5; outline-offset: 4px; }
.patient-page :where(.button, .patient-link, .patient-logout, .patient-back) { min-height: 44px; font-size: 14px; }
.patient-back { align-items: center; }
.patient-link { padding: 10px; }
.patient-page :is(.patient-membership-copy, .patient-pharmacies > header button, .patient-new-consultation-dialog > header button) { width: 44px; height: 44px; flex-basis: 44px; }
.patient-membership-number { padding-right: 54px; }
.patient-actions a, .patient-actions button { position: relative; min-height: 90px; border-radius: 12px; transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.patient-dashboard-overview .patient-actions > * { min-height: 90px; }
.patient-actions strong { font-size: 15px; line-height: 1.35; }
.patient-actions span { margin-top: 5px; color: #526c7c; font-size: 13px; line-height: 1.45; white-space: normal; overflow: visible; }
.patient-actions i { font-size: 18px; }
.patient-actions a:first-child span { color: #e3f5ee; }
.patient-actions button[aria-expanded="true"] { border-color: #147da5; background: #edf7fb; box-shadow: 0 0 0 2px rgba(20,125,165,.14); }
.patient-consultation-options > a { transition: background-color .15s ease, border-color .15s ease, transform .15s ease; }
.patient-consultation-options strong { font-size: 16px; line-height: 1.4; }
.patient-consultation-options span { font-size: 14px; line-height: 1.45; color: #526c7c; }
.patient-new-consultation-dialog { max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain; }
.patient-new-consultation-dialog > header { position: sticky; top: 0; z-index: 1; background: #fff; }
.patient-new-consultation-dialog > header strong { line-height: 1.4; }
.patient-actions :is(a, button):active, .patient-consultation-options > a:active { transform: scale(.98); box-shadow: inset 0 0 0 2px rgba(13,112,153,.3); }
.patient-page :where(.button, .patient-membership-copy, .patient-bottom-nav a):active { filter: brightness(.9); }
.patient-bottom-nav a { border-radius: 10px; }
.patient-bottom-nav a.is-active { background: #e9f5fa; }
.patient-page [aria-busy="true"] { cursor: progress; }
.patient-actions .is-loading > i::before { content: ''; width: 18px; height: 18px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: patient-loading .8s linear infinite; }
.patient-page .is-navigating { box-shadow: inset 0 0 0 2px #147da5; }
.patient-feedback { position: fixed; z-index: 1100; bottom: 24px; left: 50%; width: max-content; max-width: calc(100% - 32px); margin: 0; padding: 13px 18px; transform: translateX(-50%); color: #fff; background: #173b53; border-radius: 12px; box-shadow: 0 8px 26px rgba(7,29,45,.24); font-size: 14px; line-height: 1.5; pointer-events: none; }
.patient-feedback:empty { display: none; }
.patient-feedback.is-error { background: #923924; }
.patient-feedback.is-success { background: #086747; }
.patient-form-status, .patient-inline-status, .patient-pharmacies-status { font-size: 14px; line-height: 1.5; }
.patient-pharmacies-status { padding: 12px; background: #eef6fa; border-radius: 8px; }
.patient-pharmacies-status.is-error { color: #923924; background: #fff1eb; border-left: 3px solid #b64b32; }
.patient-pharmacy-address, .patient-pharmacy-discounts strong, .patient-pharmacy-discounts span { font-size: 13px; line-height: 1.5; }
.patient-pharmacy-directions { min-height: 44px; align-items: center; font-size: 14px; }
@keyframes patient-loading { to { transform: rotate(360deg); } }
@media (hover: hover) and (pointer: fine) {
    .patient-consultation-options > a:hover { background: #eaf5f9; border-color: #147da5; transform: translateY(-2px); }
    .patient-consultation-options > a:first-child:hover { background: #066648; border-color: #066648; }
}
@media (hover: none) {
    .patient-actions a:hover, .patient-actions button:hover { transform: none; }
    .patient-actions :is(a, button):active { transform: scale(.98); }
}
@media (max-width: 760px) {
    .patient-shell { width: calc(100% - 32px); }
    .patient-dashboard-overview .patient-actions, .patient-actions { gap: 12px; }
    .patient-actions a, .patient-actions button,
    .patient-actions a:nth-child(n) { min-height: 132px; padding: 16px; grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto 1fr; gap: 0; border-radius: 12px; }
    .patient-actions i { width: 40px; height: 40px; margin-bottom: 10px; grid-row: auto; }
    .patient-actions strong { align-self: start; font-size: 15px; }
    .patient-actions span { display: block; font-size: 13px; }
    .patient-actions a:first-child { grid-column: 1 / -1; min-height: 92px; grid-template-columns: 44px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 14px; background: #087956; border-color: #087956; }
    .patient-actions a:first-child i { width: 44px; height: 44px; margin: 0; grid-row: 1 / 3; align-self: center; }
    .patient-actions a:first-child strong { align-self: end; font-size: 17px; }
    .patient-actions a:first-child span { color: #e3f5ee; }
    .patient-card label, .patient-form-grid label { font-size: 14px; }
    .patient-page :where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) { font-size: 16px; }
    .patient-page .button { min-height: 48px; padding: 12px 18px; font-size: 16px; line-height: 1.4; }
    .patient-membership-brand span, .patient-membership-card small { font-size: 11px; line-height: 1.4; }
    .patient-membership-card { aspect-ratio: auto; min-height: 220px; }
    .patient-membership-identity strong { font-size: 15px; }
    .patient-membership-number strong { font-size: 18px; }
    .patient-pharmacies { padding: 16px; }
    .patient-consultation-options > a { padding: 16px 12px; grid-template-columns: 40px minmax(0,1fr) 12px; gap: 10px; }
    .patient-consultation-options > a > i:first-child { width: 40px; height: 40px; }
}
@media (max-width: 700px) {
    .patient-feedback { bottom: calc(84px + env(safe-area-inset-bottom)); }
    .patient-bottom-nav { gap: 2px; padding-right: max(8px, env(safe-area-inset-right)); padding-left: max(8px, env(safe-area-inset-left)); }
    .patient-bottom-nav a { min-height: 56px; font-size: 12px; gap: 5px; }
    .patient-bottom-nav a .fa { font-size: 21px; }
    .patient-page { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
}
@media (max-width: 360px) {
    .patient-shell { width: calc(100% - 24px); }
    .patient-actions a:nth-child(n), .patient-actions button { padding: 12px; }
    .patient-actions strong { font-size: 14px; }
    .patient-actions span { font-size: 13px; }
    .patient-bottom-nav a { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
    .patient-page *, .patient-page *::before, .patient-page *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* Pharmacy results must remain readable with long provider names and addresses. */
.patient-pharmacies > header > div, .patient-pharmacy-card header > div { min-width: 0; }
.patient-pharmacy-card { overflow-wrap: anywhere; }
.patient-pharmacy-card header strong { font-size: 16px; line-height: 1.4; }
.patient-pharmacy-card header small, .patient-pharmacies > header small { font-size: 11px; line-height: 1.4; }
.patient-pharmacy-distance { font-size: 12px; line-height: 1.4; white-space: nowrap; }
.patient-pharmacy-no-discount { font-size: 13px; line-height: 1.5; }
.patient-pharmacy-directions { justify-content: center; gap: 8px; padding: 10px 16px; background: #e9f5fa; border: 1px solid #bbdce9; border-radius: 8px; text-decoration: none; transition: background-color .15s ease, border-color .15s ease; }
.patient-pharmacy-directions:active { background: #cce7f1; border-color: #147da5; }
@media (hover: hover) and (pointer: fine) {
    .patient-pharmacy-directions:hover { background: #d9eef6; border-color: #147da5; }
}
@media (max-width: 760px) {
    .patient-pharmacy-card > header { flex-wrap: wrap; gap: 10px; }
    .patient-pharmacy-card header > div { flex: 1 1 160px; }
    .patient-pharmacy-directions { display: flex; width: 100%; min-height: 48px; font-size: 15px; }
    .patient-pharmacy-address { font-size: 14px; }
}

/* Consistent navigation and readability across the authenticated patient area. */
@media(min-width:761px){.patient-bottom-nav{position:static;display:flex;align-items:center;justify-content:space-between;gap:6px;width:min(1040px,calc(100% - 32px));margin:22px auto 0;padding:7px;background:rgba(255,255,255,.95);border:1px solid #d8e4eb;border-radius:12px;box-shadow:0 5px 18px rgba(31,70,93,.04)}.patient-bottom-nav a{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 13px;color:#526f80;text-decoration:none;font-size:13px;font-weight:700;border-radius:8px}.patient-bottom-nav a.is-active{background:#e7f3f9;color:#0d7099}.patient-bottom-nav a:hover{background:#f0f6f9}.patient-bottom-nav~.patient-shell{margin-top:28px}}
.patient-page .patient-back{display:inline-flex;align-items:center;min-height:40px}.patient-page .patient-page-title{margin-bottom:22px}.patient-page .patient-page-title h1{font-size:clamp(27px,3.4vw,38px);line-height:1.2}.patient-page .patient-page-title p{margin-top:8px;font-size:14px}
.patient-page :is(a,button,input,select,summary):focus-visible{outline:3px solid #2994c1;outline-offset:3px}.patient-page .patient-empty{padding:24px;color:#526f80;background:#fff;border:1px dashed #c4d8e3;border-radius:12px;font-size:14px;line-height:1.6}
.patient-page .patient-row-actions a,.patient-page .patient-row-actions button{display:inline-flex;align-items:center;min-height:36px;font-size:12px}.patient-page .patient-row-actions{gap:5px 14px}.patient-page .patient-appointment-summary>strong{font-size:15px;line-height:1.4}.patient-page .patient-document-actions a{min-height:36px;display:inline-flex;align-items:center}.patient-page .patient-request-list header{flex-wrap:wrap}.patient-page .patient-request-list p{line-height:1.65;overflow-wrap:anywhere}
.patient-page .patient-dashboard-overview .patient-return-shortcut{order:3}.patient-page .patient-dashboard-overview .patient-actions>a[href$="/solicitacoes"]{order:5}.patient-page .patient-dashboard-overview .patient-actions>a[href$="/documentos"]{order:4}
#return-original-modal>section{padding-top:18px}#return-original-modal .patient-appointment-detail-grid{padding-top:18px}#return-original-modal p[role="status"]{color:#587386;line-height:1.6}
@media(max-width:760px){.patient-bottom-nav a[target="_blank"]{display:none}.patient-bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.patient-page .patient-bottom-nav a{min-height:52px}.patient-page .patient-shell{margin-bottom:100px}.patient-page .patient-row-actions a,.patient-page .patient-row-actions button{min-height:40px}.patient-page .patient-form-grid input,.patient-page .patient-form-grid select{font-size:16px}.patient-page .patient-appointment-dialog>header button{width:44px;height:44px;flex-basis:44px}.patient-page .patient-dashboard-overview .patient-actions>a{grid-column:auto;min-height:112px}.patient-page .patient-dashboard-overview .patient-actions>a:first-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.patient-page *{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

.patient-list-search{margin:0 0 22px;max-width:520px}.patient-list-search label{display:block;font-size:12px;font-weight:700;color:#315367;margin-bottom:6px}.patient-list-search input{width:100%;min-height:44px;padding:10px 13px;border:1px solid #c4d8e3;border-radius:9px;background:#fff;color:#193c53;font:inherit}.patient-search-count{min-height:0;font-size:12px;color:#587386}.patient-search-count:empty{display:none}.patient-shell [hidden]{display:none!important}.patient-home-title{margin-bottom:18px}

.patient-professional-council{display:block;color:#60788b;font-size:12px;line-height:1.5;font-weight:500}.patient-professional-line{margin-bottom:2px!important}.patient-professional-council+.patient-professional-context{margin-top:3px}

/* Consultation changes use the existing support channel after an explicit choice. */
.patient-appointment-change-dialog>section{padding:18px 20px}
.patient-appointment-change-summary{margin:18px 20px 0;background:#f3f7f9;border-radius:10px}
.patient-appointment-change-summary>strong{display:block;font-size:15px;line-height:1.5}
.patient-appointment-change-summary p{margin:7px 0;color:#31566c}
.patient-appointment-change-summary .patient-professional-council{display:block}
.patient-appointment-change-notice p{margin:0 0 8px;line-height:1.6}
.patient-appointment-change-notice p:first-child{font-weight:700}
.patient-appointment-change-notice p:last-child{margin-bottom:0;color:#587386}
.patient-appointment-change-dialog>footer{justify-content:flex-end;flex-wrap:wrap}
.patient-appointment-dialog.patient-appointment-change-dialog>footer>a.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;min-height:44px;background:#0d7099;color:#fff;font:inherit;font-size:13px;font-weight:700;text-decoration:none;border-radius:8px}
.patient-page .patient-row-actions .patient-appointment-cancel{color:#9a3d45}
.patient-page .patient-row-actions button:focus-visible,.patient-appointment-dialog button:focus-visible,.patient-appointment-dialog a:focus-visible{outline:3px solid #2795c4;outline-offset:3px}
@media(max-width:600px){.patient-appointment-change-dialog>footer>a.button{width:100%}.patient-appointment-change-dialog>footer{flex-direction:column-reverse}.patient-appointment-change-dialog>section{padding:16px}.patient-appointment-change-summary{margin:16px 16px 0}}

/* Consultations and returns share the same timeline and navigation. */
.patient-consultation-heading{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:4px}
.patient-consultation-heading>strong{font-size:16px}
.patient-return-opportunities{margin:24px 0 32px;padding:20px;border:1px solid #bcdcd8;background:#f4faf9;border-radius:14px;scroll-margin-top:100px}
.patient-return-opportunities>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.patient-return-opportunities h2{font-size:19px;margin:0 0 4px;color:#15584f}
.patient-return-opportunities header p{margin:0;color:#526f73;font-size:13px}
.patient-return-opportunities header>span{background:#deefeb;color:#15584f;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700}
.patient-return-opportunity-list{display:grid;gap:10px}
.patient-return-opportunity-list>article{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border:1px solid #d3e7e3;border-radius:10px;padding:16px}
.patient-return-opportunity-list>article>div{display:grid;gap:3px;min-width:0}
.patient-return-opportunity-list>article>div>strong{font-size:15px}
.patient-return-opportunity-list>article>div>span{font-size:13px;color:#526f73}
.patient-return-opportunity-list>article>div>small:last-child{font-size:13px;margin-top:5px;color:#315c57}
.patient-return-opportunity-list .button{flex-shrink:0;min-height:42px}
.patient-consultations .rt-modals-only{margin:0}
.rt-remote-fragment>:not(dialog){display:none}
.rt-manage-appointment+.rt-manage-appointment{border-top:1px solid #d6e2ed;margin-top:14px;padding-top:14px}
.patient-consultations>.rt-feedback.is-success{padding:12px 16px;border:1px solid #b4ddd1;background:#eef9f4;border-radius:10px;color:#14634d}
.patient-consultations .patient-list-section{scroll-margin-top:100px}
@media(max-width:600px){
 .patient-return-opportunities{padding:14px;margin:20px 0 24px}
 .patient-return-opportunity-list>article{align-items:stretch;flex-direction:column;gap:12px;padding:14px}
 .patient-return-opportunity-list .button{text-align:center;width:100%;justify-content:center}
 .patient-consultation-heading{gap:6px}
}

.patient-status.is-unfulfilled{background:#f6eee4;color:#835329}

/* Patient subscription statement */
.patient-subscription-alert { display:flex; align-items:center; justify-content:space-between; gap:20px; background:#fff6e9; border:1px solid #dbb573; border-left:4px solid #b26a08; border-radius:12px; padding:18px 20px; margin:20px 0; color:#62420d; }
.patient-subscription-alert p { margin:6px 0 0; line-height:1.5; }
.patient-subscription-alert .button { flex-shrink:0; }
.patient-subscription-alert.is-current { background:#eaf7f0; border-color:#b8dfca; border-left-color:#16835a; color:#145c41; }
.patient-subscription-alert.is-current strong i { margin-right:5px; }
.patient-subscription .patient-page-title { margin-bottom:24px; }
.patient-subscription-summary { margin:24px 0 30px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.patient-subscription-summary > div { min-width:0; padding:20px; border:1px solid #d7e3ea; border-radius:12px; background:#fff; }
.patient-subscription-summary dt { margin-bottom:9px; color:#526c7c; font-size:13px; font-weight:700; }
.patient-subscription-summary dd { margin:0; color:#193c53; font-size:26px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.3; }
.patient-subscription-summary .patient-subscription-summary-note { margin-top:7px; color:#526c7c; font-size:12px; font-weight:400; line-height:1.5; }
.patient-subscription-summary .has-overdue { border-color:#e4caa4; background:#fffbf5; }
.patient-subscription-summary .has-overdue > dd:not(.patient-subscription-summary-note) { color:#895006; }
.patient-subscription-list-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; scroll-margin-top:100px; }
.patient-subscription-list-heading h2 { margin:0 0 6px; color:#193c53; font-size:23px; }
.patient-subscription-list-heading p { margin:0; color:#526c7c; font-size:13px; line-height:1.5; }
.patient-subscription-list-heading > a { padding:10px 0; display:inline-flex; align-items:center; gap:7px; color:#0d7099; font-size:13px; font-weight:700; flex-shrink:0; }
.patient-subscription-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.patient-subscription-filters button { min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:9px 14px; border:1px solid #c5d8e3; border-radius:9px; color:#31576d; background:#fff; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.patient-subscription-filters button span { min-width:23px; padding:2px 5px; color:#31576d; background:#eaf3f7; border-radius:6px; font-size:11px; }
.patient-subscription-filters button:hover { border-color:#6fa7be; background:#f4f9fb; }
.patient-subscription-filters button[aria-pressed="true"] { border-color:#116b8b; color:#fff; background:#116b8b; }
.patient-subscription-filters button[aria-pressed="true"] span { color:#fff; background:rgba(255,255,255,.16); }
.patient-subscription-filters button:focus-visible,.patient-subscription-bill-details summary:focus-visible { outline:3px solid #147da5; outline-offset:3px; }
.patient-subscription-filter-result { margin:-4px 0 16px; color:#526c7c; font-size:13px; }
.patient-subscription-plan { margin:0 0 22px; background:#fff; border:1px solid #d7e3ea; border-radius:14px; overflow:hidden; box-shadow:0 8px 24px rgba(32,67,89,.04); }
.patient-subscription-plan > header { padding:20px; display:flex; align-items:center; gap:13px; background:#f6fafc; }
.patient-subscription-plan-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; color:#0d7099; background:#e7f4f8; border-radius:10px; font-size:20px; }
.patient-subscription-plan > header > div { flex:1; min-width:0; }
.patient-subscription-plan h3 { margin:0; color:#193c53; font-size:18px; line-height:1.45; overflow-wrap:anywhere; }
.patient-subscription-plan header p { margin:3px 0 0; color:#526c7c; font-size:12px; }
.patient-subscription-plan-empty { padding:0 20px 18px; color:#526c7c; font-size:14px; line-height:1.5; }
.patient-subscription-columns,.patient-subscription-bill-main { display:grid; grid-template-columns:minmax(90px,.8fr) minmax(110px,1fr) minmax(110px,1fr) minmax(130px,1.2fr) minmax(140px,1.1fr); gap:16px; padding:18px 20px; align-items:center; }
.patient-subscription-columns { padding-top:10px; padding-bottom:10px; border-top:1px solid #dce7ed; color:#526c7c; background:#f6fafc; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.patient-subscription-columns > :last-child { text-align:right; }
.patient-subscription-bill { border-top:1px solid #dfe8ed; scroll-margin-top:100px; }
.patient-subscription-bill.is-overdue { box-shadow:inset 3px 0 #bd770d; background:#fffcf6; }
.patient-subscription-bill:target { position:relative; outline:3px solid #147da5; outline-offset:-3px; background:#f0f8fc; }
.patient-subscription-bill-main > div { min-width:0; display:flex; flex-direction:column; gap:5px; }
.patient-installment-title { color:#173f58; font-size:14px; }
.patient-subscription-due strong { color:#31576d; font-size:14px; font-weight:600; font-variant-numeric:tabular-nums; }
.patient-subscription-amount strong { color:#193c53; font-size:17px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.patient-subscription-bill small { color:#526c7c; font-size:11px; line-height:1.4; }
.patient-subscription-mobile-label { display:none; }
.patient-subscription-status { align-self:flex-start; display:inline-flex; align-items:center; gap:5px; padding:5px 9px; color:#526c7c; background:#edf2f5; border-radius:999px; font-size:11px; font-weight:700; line-height:1.45; }
.patient-subscription-status.is-overdue { color:#895006; background:#fff0d6; }
.patient-subscription-status.is-paid { color:#106446; background:#e2f5ed; }
.patient-subscription-status.is-open { color:#176787; background:#e6f3fa; }
.patient-subscription-bill .patient-subscription-bill-actions { align-items:flex-end; }
.patient-subscription-bill-actions .button { min-height:42px; padding:9px 13px; font-size:12px; }
.patient-subscription-bill-actions a { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:42px; padding:7px 0; color:#0d7099; font-size:13px; font-weight:700; }
.patient-subscription-action-note { max-width:150px; color:#526c7c; font-size:11px; text-align:right; line-height:1.5; }
.patient-subscription-bill-details { padding:0 20px 11px; }
.patient-subscription-bill-details summary { display:flex; align-items:center; gap:7px; width:fit-content; min-height:32px; margin-top:-8px; color:#0d7099; font-size:12px; font-weight:700; cursor:pointer; list-style:none; }
.patient-subscription-bill-details summary::-webkit-details-marker { display:none; }
.patient-subscription-bill-details summary:hover { text-decoration:underline; }
.patient-subscription-bill-details summary i { font-size:10px; }
.patient-subscription-bill-details[open] summary i { transform:rotate(180deg); }
.patient-subscription-bill-details > div { margin:8px 0 4px; padding:16px; background:#f4f8fa; border:1px solid #dce7ed; border-radius:9px; }
.patient-subscription-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0; }
.patient-subscription-facts > div { min-width:0; }
.patient-subscription-facts dt { color:#526c7c; font-size:11px; line-height:1.5; margin-bottom:5px; }
.patient-subscription-facts dd { margin:0; color:#193c53; font-size:13px; font-weight:700; line-height:1.5; }
.patient-subscription-facts .patient-subscription-reference { font-family:monospace; font-size:12px; font-weight:400; overflow-wrap:anywhere; }
.patient-subscription-documents { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.patient-subscription-documents .button { min-height:40px; padding:8px 12px; font-size:12px; }
.patient-subscription-help { display:flex; align-items:center; gap:16px; padding:22px; background:#edf6f9; border:1px solid #d1e4ed; border-radius:12px; }
.patient-subscription-help > i { color:#0d7099; font-size:26px; }
.patient-subscription-help > div { flex:1; }
.patient-subscription-help strong { color:#193c53; font-size:14px; }
.patient-subscription-help p { margin:6px 0 0; color:#526c7c; font-size:13px; line-height:1.5; }
.patient-subscription-help .button { flex-shrink:0; font-size:13px; }
.patient-subscription-empty > i,.patient-subscription-filter-empty > i { color:#0d7099; font-size:30px; }
.patient-subscription-empty h2,.patient-subscription-filter-empty h3 { color:#193c53; font-size:21px; }
.patient-subscription-empty p,.patient-subscription-filter-empty p { color:#526c7c; line-height:1.6; }
.patient-subscription [hidden] { display:none !important; }
@media(max-width:800px){
 .patient-subscription-columns { display:none; }
 .patient-subscription-bill-main { grid-template-columns:1fr 1fr; gap:16px 20px; }
 .patient-installment-heading { grid-column:1; grid-row:1; }
 .patient-subscription-state { grid-column:2; grid-row:1; align-items:flex-end; }
 .patient-subscription-state .patient-subscription-status { align-self:flex-end; }
 .patient-subscription-due { grid-column:1; grid-row:2; }
 .patient-subscription-amount { grid-column:2; grid-row:2; align-items:flex-end; }
 .patient-subscription-mobile-label { display:block; color:#526c7c; font-size:11px; }
 .patient-subscription-bill .patient-subscription-bill-actions { grid-column:1/-1; align-items:stretch; }
 .patient-subscription-bill-actions .button { width:100%; }
 .patient-subscription-action-note { max-width:none; text-align:left; }
 .patient-subscription-bill-actions a { align-self:flex-start; }
 .patient-subscription-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .patient-subscription-help { flex-wrap:wrap; }
 .patient-subscription-help .button { margin-left:42px; }
}
@media(max-width:600px){
 .patient-subscription-alert { align-items:stretch; flex-direction:column; }
 .patient-subscription-summary { gap:9px; grid-template-columns:1fr 1fr; margin:20px 0 25px; }
 .patient-subscription-summary > div { padding:16px; }
 .patient-subscription-summary > div:last-child { grid-column:1/-1; display:grid; grid-template-columns:1fr auto; align-items:center; column-gap:12px; }
 .patient-subscription-summary > div:last-child > dt { margin:0; }
 .patient-subscription-summary > div:last-child > dd:not(.patient-subscription-summary-note) { grid-column:2; grid-row:1/3; }
 .patient-subscription-summary .patient-subscription-summary-note { font-size:11px; }
 .patient-subscription-summary dd { font-size:23px; }
 .patient-subscription-list-heading { align-items:flex-start; flex-direction:column; gap:6px; }
 .patient-subscription-list-heading h2 { font-size:21px; }
 .patient-subscription-filters { display:grid; grid-template-columns:1fr 1fr; }
 .patient-subscription-filters button { font-size:12px; padding:9px 10px; }
 .patient-subscription-plan > header { padding:16px; flex-wrap:wrap; gap:10px; }
 .patient-subscription-plan header > .patient-subscription-status { margin-left:52px; }
 .patient-subscription-plan h3 { font-size:17px; }
 .patient-subscription-bill-main { padding:18px 16px 14px; }
 .patient-subscription-bill-details { padding:0 16px 12px; }
 .patient-subscription-bill-details summary { min-height:40px; }
 .patient-subscription-bill-details > div { padding:14px 12px; }
 .patient-subscription-facts { gap:16px 12px; }
 .patient-subscription-documents { flex-direction:column; }
 .patient-subscription-help { padding:18px 16px; }
 .patient-subscription-help .button { margin:0; width:100%; }
}

.subscription-pix-dialog { width:min(720px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:0; overflow:hidden; border:1px solid #c9dce8; border-radius:16px; color:#193c53; background:#fff; box-shadow:0 24px 80px rgba(12,33,48,.28); }
.subscription-pix-dialog[open] { display:flex; flex-direction:column; }
.subscription-pix-dialog [hidden] { display:none!important; }
.subscription-pix-dialog::backdrop { background:rgba(12,33,48,.65); }
.subscription-pix-dialog .subscription-pix-header { flex:0 0 auto; display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px 24px; border-bottom:1px solid #dce6ed; }
.subscription-pix-eyebrow { color:#527183; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.subscription-pix-dialog h2 { font-size:22px; line-height:1.3; margin:4px 0 0; }
#subscription-pix-context { margin:6px 0 0; color:#526c7c; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.subscription-pix-header > button { flex:0 0 44px; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:#eef5f8; font-size:28px; line-height:1; color:#31566c; cursor:pointer; }
.subscription-pix-body { min-height:0; padding:20px 24px; overflow:auto; overscroll-behavior:contain; }
.subscription-pix-total { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px; }
.subscription-pix-total > span { color:#526c7c; font-size:14px; }
#subscription-pix-amount { display:block; font-size:30px; font-weight:800; line-height:1.2; font-variant-numeric:tabular-nums; white-space:nowrap; }
.subscription-pix-feedback { display:flex; align-items:flex-start; gap:10px; padding:13px 15px; margin-bottom:20px; background:#eef6fa; color:#31566c; border:1px solid #d8e8ef; border-radius:10px; }
.subscription-pix-feedback > i { flex:0 0 auto; margin-top:3px; font-size:16px; }
.subscription-pix-dialog[data-state="loading"] #subscription-pix-state-icon { width:16px; height:16px; border:2px solid #c4dce7; border-top-color:#0d7099; border-radius:50%; animation:subscription-pix-spin .8s linear infinite; }
.subscription-pix-dialog[data-state="loading"] #subscription-pix-state-icon::before { content:none; }
@keyframes subscription-pix-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .subscription-pix-dialog[data-state="loading"] #subscription-pix-state-icon { animation:none!important; border-color:#0d7099; } }

#subscription-pix-status { margin:0; font-size:14px; line-height:1.55; }
.subscription-pix-dialog[data-state="paid"] .subscription-pix-feedback { color:#106446; background:#eaf7f0; border-color:#bde4cf; }
.subscription-pix-dialog[data-state="paid"] #subscription-pix-amount { color:#106446; }
.subscription-pix-dialog:is([data-state="error"],[data-state="unavailable"],[data-state="expired"]) .subscription-pix-feedback { color:#7b4c18; background:#fff5e6; border-color:#ecd3a9; }
.subscription-pix-methods { display:grid; grid-template-columns:250px minmax(0,1fr); gap:24px; }
.subscription-pix-dialog h3 { margin:0 0 7px; font-size:16px; line-height:1.4; }
.subscription-pix-methods p { margin:0 0 14px; color:#526c7c; font-size:13px; line-height:1.6; }
.subscription-pix-qr { padding-right:22px; border-right:1px solid #e0e9ee; }
.subscription-pix-qr-frame { min-height:220px; display:grid; place-items:center; padding:3px; background:#fff; border:1px solid #d7e3ea; border-radius:12px; }
#subscription-pix-image { display:block; width:220px; max-width:100%; height:auto; aspect-ratio:1; background:#fff; }
#subscription-pix-image-status { padding:20px; color:#526c7c; font-size:13px; line-height:1.6; text-align:center; }
.subscription-pix-copy-panel label { display:block; margin-bottom:6px; color:#31566c; font-size:12px; font-weight:700; }
#subscription-pix-code { display:block; width:100%; box-sizing:border-box; min-height:94px; resize:vertical; padding:10px 12px; margin:0 0 12px; border:1px solid #b9cdd9; border-radius:8px; background:#f7fafc; color:#31566c; font:12px/1.5 monospace; overflow-wrap:anywhere; }
#subscription-pix-copy { display:flex; align-items:center; justify-content:center; gap:9px; width:100%; min-height:46px; }
#subscription-pix-copy:disabled { opacity:.6; cursor:wait; }
#subscription-pix-copy-status { display:block; min-height:21px; margin-top:8px; color:#106446; font-size:12px; line-height:1.5; }
.subscription-pix-auto-note { display:flex; gap:9px; margin:18px 0 0; padding:13px 0 0; border-top:1px solid #e0e9ee; color:#526c7c; font-size:13px; line-height:1.6; }
.subscription-pix-auto-note i { margin-top:4px; }
.subscription-pix-unavailable { padding:17px; background:#f8fafc; border:1px solid #dce6ed; border-radius:10px; }
.subscription-pix-unavailable p { margin:0 0 10px; color:#526c7c; font-size:14px; line-height:1.6; }
.subscription-pix-unavailable a { display:inline-flex; align-items:center; gap:7px; min-height:44px; color:#0d7099; font-size:14px; font-weight:700; }
.subscription-pix-text-action { display:block; min-height:44px; margin-top:8px; padding:8px 0; border:0; background:transparent; color:#0d7099; font:inherit; font-size:13px; font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.subscription-pix-dialog > footer { flex:0 0 auto; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; padding:16px 24px; border-top:1px solid #dce6ed; background:#f8fbfc; }
.subscription-pix-dialog > footer .button { min-height:44px; }
#subscription-pix-refresh { color:#fff; background:#0d7099; border-color:#0d7099; }
#subscription-pix-refresh:disabled { opacity:.65; cursor:wait; }
#subscription-pix-receipts { display:flex; flex-wrap:wrap; gap:10px; }
#subscription-pix-receipts:not(:empty) { margin-top:18px; }
#subscription-pix-receipts a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 14px; color:#0d7099; background:#edf6fa; border:1px solid #c8dce7; border-radius:8px; font-size:14px; font-weight:700; }
.subscription-pix-dialog :is(button,a,textarea):focus-visible { outline:3px solid #147da5; outline-offset:3px; }
@media(max-width:600px) {
 .subscription-pix-dialog .subscription-pix-header { padding:16px; gap:12px; }
 .subscription-pix-dialog h2 { font-size:20px; }
 .subscription-pix-body { padding:16px; }
 .subscription-pix-methods { display:flex; flex-direction:column; gap:20px; }
 .subscription-pix-copy-panel { order:-1; }
 .subscription-pix-qr { padding-right:0; border-right:0; text-align:center; }
 .subscription-pix-qr-frame { width:228px; max-width:100%; margin:0 auto; }
 #subscription-pix-amount { font-size:27px; }
 .subscription-pix-dialog > footer { padding:12px 16px; }
 .subscription-pix-dialog > footer #subscription-pix-refresh { flex:1; }
 #subscription-pix-code { font-size:16px; }
}

/* Vouchers share the patient portal shell, navigation and button styles. */
.patient-vouchers .patient-page-title { margin-bottom: 26px; }
.patient-voucher-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.patient-voucher-card { overflow: hidden; background: #fff; border: 1px solid #d7e3ea; border-radius: 14px; box-shadow: 0 8px 24px rgba(32,67,89,.06); }
.patient-voucher-heading { padding: 24px 24px 18px; display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 14px; align-items: start; }
.patient-voucher-icon { width: 48px; height: 48px; display: grid; place-items: center; color: #0d7099; background: #e7f4f8; border-radius: 12px; font-size: 23px; }
.patient-voucher-heading h2 { margin: 0 0 6px; color: #193c53; font-size: 20px; line-height: 1.35; }
.patient-voucher-heading p { margin: 0; color: #526c7c; font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
.patient-voucher-status { padding: 7px 10px; display: inline-flex; gap: 6px; align-items: center; color: #106446; background: #e2f5ed; border-radius: 999px; font-size: 12px; font-weight: 800; line-height: 1.4; }
.patient-voucher-card.is-return .patient-voucher-status { color: #0e6285; background: #e5f3fa; }
.patient-voucher-card.is-closed .patient-voucher-status { color: #67513c; background: #f5eee5; }
.patient-voucher-content { padding: 0 24px 20px; display: flex; gap: 24px; align-items: center; justify-content: space-between; }
.patient-voucher-facts { min-width: 0; margin: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px 24px; flex: 1; }
.patient-voucher-facts > div { min-width: 0; }
.patient-voucher-facts dt { margin-bottom: 6px; color: #526c7c; font-size: 12px; line-height: 1.5; }
.patient-voucher-facts dd { margin: 0; color: #193c53; font-size: 14px; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.patient-voucher-facts .patient-voucher-price { font-size: 24px; line-height: 1.15; font-variant-numeric: tabular-nums; }
.patient-voucher-facts .patient-voucher-payment { margin-top: 5px; font-size: 12px; font-weight: 600; }
.patient-voucher-facts .patient-voucher-payment.is-paid { color: #106446; }
.patient-voucher-action { display: grid; justify-items: center; gap: 8px; flex: 0 0 auto; }
.patient-voucher-action .button, .patient-voucher-links .button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; }
.patient-voucher-action small { color: #526c7c; font-size: 12px; }
.patient-voucher-notice { margin: 0 24px 20px; padding: 12px 14px; display: flex; align-items: baseline; gap: 10px; color: #31576d; background: #f0f7fa; border-radius: 8px; font-size: 13px; line-height: 1.6; }
.patient-voucher-details { border-top: 1px solid #e0e9ee; }
.patient-voucher-details summary { min-height: 52px; padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #0d7099; font-size: 14px; font-weight: 700; cursor: pointer; list-style: none; }
.patient-voucher-details summary::-webkit-details-marker { display: none; }
.patient-voucher-details summary:hover { background: #f5fafc; }
.patient-voucher-details summary:focus-visible { outline: 3px solid #147da5; outline-offset: -4px; }
.patient-voucher-details[open] summary > i { transform: rotate(180deg); }
.patient-voucher-details > div { padding: 4px 24px 24px; }
.patient-voucher-facts .patient-voucher-code { font-family: monospace; font-size: 13px; font-weight: 500; }
.patient-voucher-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.patient-voucher-billing-note, .patient-voucher-help { color: #526c7c; font-size: 13px; line-height: 1.6; }
.patient-voucher-help { margin: 22px 0 0; }
.patient-voucher-help a { display: inline-block; padding: 8px 0; color: #0d7099; font-weight: 700; }
.patient-voucher-empty > i { font-size: 32px; color: #0d7099; }
.patient-voucher-empty h2 { margin: 16px 0 8px; color: #193c53; font-size: 21px; }
.patient-voucher-empty p { margin: 0 auto; max-width: 560px; color: #526c7c; line-height: 1.6; }
.patient-voucher-empty .patient-voucher-links { justify-content: center; }
@media (max-width: 900px) {
    .patient-voucher-heading { grid-template-columns: 48px minmax(0,1fr); }
    .patient-voucher-status { grid-column: 2; justify-self: start; }
    .patient-voucher-content { align-items: flex-start; flex-direction: column; gap: 20px; }
    .patient-voucher-facts { width: 100%; }
}
@media (max-width: 600px) {
    .patient-voucher-heading { padding: 18px 16px; gap: 10px 12px; }
    .patient-voucher-heading h2 { font-size: 18px; }
    .patient-voucher-content { padding: 0 16px 18px; }
    .patient-voucher-facts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 14px; }
    .patient-voucher-action, .patient-voucher-action .button { width: 100%; }
    .patient-voucher-notice { margin: 0 16px 18px; }
    .patient-voucher-details summary { padding: 16px; }
    .patient-voucher-details > div { padding: 4px 16px 20px; }
    .patient-voucher-links .button { flex: 1 1 auto; }
    .patient-voucher-empty { padding: 28px 18px; }
}
