:root{color:#17312f;font-synthesis:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f2f7f5;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html{background:#f2f7f5;min-width:320px}body{min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button,input,select{font:inherit}button{color:#fff;cursor:pointer;touch-action:manipulation;background:#0f766e;border:0;border-radius:12px;min-height:44px;padding:.72rem 1rem;font-weight:700}button:disabled{opacity:.55;cursor:wait}button.secondary{color:#0b5f58;background:#dff2ee}button.ghost{color:#0f766e;background:0 0}button.danger{color:#a32924;background:#fff0ef}input,select{width:100%;min-height:44px;color:inherit;background:#fff;border:1px solid #c9dbd7;border-radius:10px;padding:.72rem}label{gap:.4rem;font-size:.88rem;font-weight:700;display:grid}h1,h2,h3,p{margin-top:0}.card{background:#fff;border:1px solid #dce8e5;border-radius:18px;box-shadow:0 12px 35px #104a4412}.login-shell{min-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));background:radial-gradient(circle at 0 0,#d7f1e9,#0000 42%);place-items:center;display:grid}.login-card{gap:1rem;width:min(420px,100%);padding:2rem;display:grid}.eyebrow{color:#0f766e;letter-spacing:.16em;margin-bottom:.35rem;font-size:.72rem;font-weight:900}.app-shell{max-width:1050px;min-height:100dvh;margin:0 auto;padding:1.5rem 1.5rem 8rem}.app-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.doctor-short-name{color:#0f766e;overflow-wrap:anywhere;min-width:0;margin:0;font-size:1rem;font-weight:800}.cancelled-toggle{color:#71807d;background:#edf1f1;border:1px solid #dce5e3;flex:none;place-items:center;width:42px;min-height:42px;padding:0;display:grid}.cancelled-toggle .appointment-status{color:#7b8987;background:#dfe5e4;width:30px;height:30px}.cancelled-toggle .appointment-status svg{width:19px;height:19px}.cancelled-toggle:hover,.cancelled-toggle:focus-visible{background:#e5ebea}.cancelled-toggle.active{color:#a62d4b;background:#fff0f4;border-color:#efb9c6}.cancelled-toggle.active .appointment-status{color:#b62f51;background:#ffe6ec}.cancelled-toggle.active:hover,.cancelled-toggle.active:focus-visible{background:#ffe6ec}.schedule-screen{min-width:0}.schedule-panel{margin-bottom:1rem;padding:.75rem}.week-calendar{background:#f2f6f7;border-radius:14px;grid-template-columns:36px repeat(7,minmax(42px,1fr)) 36px;gap:.38rem;min-width:0;padding:.45rem;display:grid}.week-arrow,.week-day{min-width:0;box-shadow:none;border-radius:9px}.week-arrow{color:#9aa9af;background:#e9eef0;padding:0;font-size:1.45rem;font-weight:700}.week-day{color:#15324a;background:#fff;border:1px solid #e2e8ea;grid-template-rows:auto 1fr auto;place-items:center;gap:.1rem;min-height:76px;padding:.4rem .15rem;font-weight:500;display:grid}.week-day-name{text-transform:uppercase;font-size:.72rem;font-weight:500}.week-day strong{align-self:center;font-size:1.2rem;line-height:1}.week-month{color:#82949b;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.68rem;line-height:1.1;overflow:hidden}.week-day.weekend{color:#9dacb2;background:#edf1f2}.week-day.selected{color:#fff;background:#68abc1;border-color:#68abc1}.week-day.selected .week-month{color:#fff}.week-arrow:hover,.week-arrow:focus-visible{color:#55747e;background:#dfe7e9}.week-day:hover,.week-day:focus-visible{border-color:#68abc1}.week-day.selected:hover,.week-day.selected:focus-visible{background:#579bb2}.create-button{right:max(1.5rem,50vw - 525px + 1.5rem);bottom:calc(5.75rem + env(safe-area-inset-bottom));z-index:8;background:#0f766e;border-radius:14px;place-items:center;width:64px;height:64px;min-height:64px;padding:0;display:grid;position:fixed;box-shadow:0 10px 24px #0f766e4d}.create-button span{font-size:2.4rem;font-weight:300;line-height:1;display:block;transform:translateY(-.08em)}.create-button:hover,.create-button:focus-visible{background:#0b5f58;transform:translateY(-1px);box-shadow:0 12px 28px #0f766e61}.create-button:active{transform:translateY(1px)}.appointments{gap:.75rem;display:grid}.appointment-card{background:#fff;border:1px solid #dce8e5;border-radius:16px;grid-template-columns:78px minmax(0,1fr);display:grid;overflow:hidden}.appointment-when{align-content:start;justify-items:center;gap:.55rem;padding:1rem 0 .85rem;display:grid}.appointment-time-button{color:#0f766e;white-space:nowrap;background:#f7fbfa;border:1px solid #bdd8d3;border-radius:9px;min-width:0;min-height:38px;padding:.2rem .45rem;box-shadow:0 2px 6px #0f766e14}.appointment-time-button:hover,.appointment-time-button:focus-visible{background:#e8f4f1;border-color:#0f766e;box-shadow:0 3px 9px #0f766e26}.appointment-time-button:active{box-shadow:none;transform:translateY(1px)}.appointment-time-button time{font-size:1.3rem;font-weight:900}.appointment-status-button{background:#fff;border:1px solid #cfd8e7;border-radius:50%;place-items:center;width:42px;min-height:42px;padding:0;display:grid;box-shadow:0 2px 6px #4548961a}.appointment-status-button:hover,.appointment-status-button:focus-visible{background:#f0f0ff;border-color:#7475ee;box-shadow:0 3px 9px #4548962b}.appointment-status-button:active{box-shadow:none;transform:translateY(1px)}.appointment-status-button .appointment-status{width:32px;height:32px}.appointment-card-open{width:100%;min-width:0;color:inherit;text-align:left;background:#fff;border-radius:0;padding:1rem;display:block}.appointment-card-open:hover,.appointment-card-open:focus-visible{background:#f8fbfa}.visit-call-button svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.appointment-main{min-width:0}.appointment-main h3{overflow-wrap:anywhere;margin-bottom:.2rem}.appointment-main p{color:#637673;overflow-wrap:anywhere;margin-bottom:.4rem}.appointment-services{margin:.55rem 0}.appointment-services strong{margin-bottom:.15rem;font-size:.88rem;display:block}.appointment-services ul{color:#7b8987;gap:.1rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.appointment-services li,.appointment-services-total{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.75rem;display:grid}.appointment-services li span{overflow-wrap:anywhere}.appointment-services li b,.appointment-services-total b{color:#53625f;white-space:nowrap}.appointment-services-total{color:#53625f;border-top:1px solid #e4ecea;margin-top:.3rem;padding-top:.3rem;font-size:.84rem}.appointment-status{color:#667674;background:#eef2f2;border-radius:50%;place-items:center;width:34px;height:34px;display:inline-grid}.appointment-status svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.status-AwaitingConfirmation{color:#b77900;background:#fff4d6}.status-ConfirmedByPatient{color:#3267c8;background:#e7f0ff}.status-ApprovedByRegistar{color:#7557ce;background:#efeaff}.status-Arrived{color:#198754;background:#dcf6e9}.status-InProgress{color:#168192;background:#dff6f8}.status-Finished{color:#596966;background:#e7edec}.status-CancelledByPatient{color:#c44a43;background:#ffebe9}.status-CancelledByRegistar{color:#b62f51;background:#ffe6ec}.status-NoShow{color:#65717d;background:#eceff2}.actions{gap:.5rem;display:flex}.dialog-backdrop{z-index:10;background:#0a1f1d85;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{overscroll-behavior:contain;gap:1rem;width:min(680px,100%);max-height:92dvh;padding:1.25rem;display:grid;overflow:auto}.dialog-title{justify-content:space-between;align-items:center;display:flex}.dialog-title h2{margin-bottom:0}.dialog-actions{display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.wide{grid-column:1/-1}.slots{flex-wrap:wrap;gap:.45rem;display:flex}.slot{color:#315c57;background:#edf5f3}.slot.selected{color:#fff;background:#0f766e}.error{color:#a32924;background:#fff2f1;border-radius:10px;margin:0;padding:.7rem}.empty{text-align:center;color:#637673;padding:3rem 1rem}.bottom-tabs{z-index:7;min-height:72px;padding:.45rem max(1rem, env(safe-area-inset-right)) calc(.45rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-top:1px solid #dce5e3;grid-template-columns:repeat(2,minmax(0,180px));justify-content:center;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 26px #182f2c14}.bottom-tab{color:#4f827d;background:0 0;border-radius:12px;align-content:center;place-items:center;gap:.15rem;min-height:58px;padding:.25rem;font-size:.76rem;display:grid}.bottom-tab svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:25px;height:25px}.bottom-tab.active{color:#0f766e}.bottom-tab:hover,.bottom-tab:focus-visible{color:#0b5f58;background:#e8f4f1}.profile-screen{gap:1rem;display:grid}.profile-screen>h1{font-size:1.65rem}.profile-card{text-align:center;justify-items:center;gap:1rem;padding:2rem;display:grid}.profile-photo{color:#7475ee;background:#e8e9ff;border-radius:50%;place-items:center;width:124px;height:124px;display:grid}.profile-photo svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:58px;height:58px}.profile-card h2{overflow-wrap:anywhere;margin:0}.profile-logout{width:min(320px,100%);margin-top:.5rem}.visit-screen{gap:1rem;display:grid}.visit-header{place-items:center;min-height:44px;display:grid;position:relative}.visit-header h1{margin:0;font-size:1.65rem}.visit-back{color:#17312f;background:0 0;place-items:center;width:44px;padding:0;display:grid;position:absolute;left:0}.visit-back svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:27px;height:27px}.visit-card{gap:1.15rem;padding:1.35rem;display:grid}.visit-card>.appointment-status-button{justify-self:start}.visit-field{border-bottom:1px solid #e4ecea;gap:.25rem;padding-bottom:1rem;display:grid}.visit-field:last-child{border-bottom:0;padding-bottom:0}.visit-field>span,.visit-field small{color:#778784;font-size:.84rem}.visit-field>strong,.visit-field>a{color:#17312f;overflow-wrap:anywhere;font-size:1.02rem}.visit-field>.visit-call-button{color:#686ae0;background:#e8e9ff;border-radius:50%;place-items:center;width:48px;height:48px;text-decoration:none;display:grid}.visit-call-button:hover,.visit-call-button:focus-visible{background:#dcdcff}.visit-services{gap:.7rem;margin:.2rem 0 0;padding:0;list-style:none;display:grid}.visit-services li{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.75rem;display:grid}.visit-services li>span{overflow-wrap:anywhere;min-width:0}.visit-services li small{color:#778784;font-weight:400}.visit-services li>b{white-space:nowrap}.visit-services-total{border-top:1px solid #e4ecea;justify-content:space-between;gap:1rem;margin-top:.8rem;padding-top:.8rem;display:flex}.visit-actions{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.reschedule-screen{gap:1rem;display:grid}.reschedule-card{gap:1rem;padding:1.25rem;display:grid}.reschedule-patient{border-bottom:1px solid #e4ecea;gap:.2rem;padding-bottom:1rem;display:grid}.reschedule-patient span{color:#778784;font-size:.84rem}.reschedule-calendar{min-width:0}.reschedule-slots{gap:.65rem;display:grid}.reschedule-slots h2{margin:0;font-size:1.05rem}.slots-message{color:#778784;margin:0;padding:.75rem 0}.status-screen{gap:1rem;display:grid}.current-status-card{align-items:center;gap:.9rem;padding:1rem;display:flex}.current-status-card>div{gap:.15rem;display:grid}.current-status-card span{color:#778784;font-size:.82rem}.status-options{gap:.65rem;display:grid}.status-options h2{margin:.35rem 0 .15rem;font-size:1.05rem}.status-option{color:#17312f;text-align:left;background:#fff;border:1px solid #dce8e5;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;width:100%;padding:.8rem;display:grid}.status-option:hover,.status-option:focus-visible{background:#f8fbfa;border-color:#bfcfcb}.status-option-CancelledByRegistar{color:#a32943;border-color:#f1d8dc}.status-option-arrow{fill:none;stroke:#9baba8;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}@media (width<=680px){input,select{font-size:16px}.app-shell{padding:max(.9rem, env(safe-area-inset-top)) max(.9rem, env(safe-area-inset-right)) calc(6.25rem + env(safe-area-inset-bottom)) max(.9rem, env(safe-area-inset-left))}.app-header{align-items:flex-start;margin-bottom:1rem}.schedule-panel{z-index:5;padding:.55rem;position:sticky;top:.5rem;box-shadow:0 8px 24px #104a441c}.week-calendar{grid-template-columns:30px repeat(7,minmax(0,1fr)) 30px;gap:.25rem;padding:.35rem}.week-day{min-height:72px;padding-inline:.05rem}.week-day-name{font-size:.65rem}.week-day strong{font-size:1.08rem}.week-month{font-size:.6rem}.create-button{right:max(1rem, env(safe-area-inset-right));bottom:calc(5.75rem + env(safe-area-inset-bottom));width:62px;height:62px;min-height:62px}.appointment-card{grid-template-columns:68px minmax(0,1fr)}.appointment-when{gap:.4rem;padding:.9rem 0 .75rem}.appointment-time-button time{font-size:1.08rem}.appointment-card-open{padding:.9rem}.appointment-main h3{font-size:1rem}.actions{grid-column:1/-1}.actions button{flex:1 1 0}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.dialog-backdrop{align-items:end;padding:0}.dialog{width:100%;max-height:calc(100dvh - max(1rem, env(safe-area-inset-top)));padding:0 1rem calc(1rem + env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0;border-radius:22px 22px 0 0;gap:.9rem;margin:0}.dialog-title{z-index:2;background:#fff;border-bottom:1px solid #e7efed;margin:0 -1rem;padding:1rem;position:sticky;top:0}.dialog-title h2{font-size:1.25rem}.dialog-actions{bottom:calc(-1rem - env(safe-area-inset-bottom));z-index:2;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:linear-gradient(#ffffffeb,#fff 35%);margin:0 -1rem;position:sticky}.slots{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.slot{min-width:0;padding-inline:.35rem}.empty{padding:2.25rem .75rem}.bottom-tabs{grid-template-columns:repeat(2,1fr)}.profile-screen>h1{font-size:1.45rem}.profile-card{padding:1.5rem 1rem}.visit-header h1{font-size:1.4rem}}@media (width<=390px){.login-card{padding:1.35rem}.app-header{gap:.5rem}.doctor-short-name{font-size:.9rem}.actions{flex-direction:column}.slots{grid-template-columns:repeat(3,minmax(0,1fr))}.week-calendar{grid-template-columns:26px repeat(7,minmax(0,1fr)) 26px;gap:.18rem;padding:.25rem}.week-day{min-height:66px}.week-day-name{font-size:.58rem}.week-day strong{font-size:1rem}.week-month{font-size:.55rem}}
