:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#203b39;background:#f7faf8;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #203b39;--muted: #647b78;--primary: #315f5b;--primary-dark: #244a47;--mint: #dcebe6;--line: #dce6e2;--surface: #fff;--danger: #a33d49;--amber: #9a641b;--shadow: 0 18px 50px rgba(37, 74, 70, .1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:#f7faf8}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-underline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.025em}h1{font-size:clamp(2rem,5vw,3.75rem);line-height:1.05}h2{font-size:1.45rem}p{color:var(--muted);line-height:1.65}svg{flex:0 0 auto}:focus-visible{outline:3px solid #e0a64b;outline-offset:3px}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:999;background:var(--ink);color:#fff;padding:.7rem 1rem;border-radius:.5rem}.skip-link:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:min(1160px,calc(100% - 2rem));margin-inline:auto}.narrow{max-width:780px}.brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--ink);font-weight:700;text-decoration:none;letter-spacing:-.02em}.brand-mark{display:inline-grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:40% 60% 55% 45%;background:var(--primary);color:#fff;font-size:.75rem}.button{display:inline-flex;justify-content:center;align-items:center;gap:.5rem;min-height:2.8rem;padding:.7rem 1rem;border:1px solid transparent;border-radius:.7rem;font-weight:700;text-decoration:none;cursor:pointer;transition:.15s ease}.button:disabled{cursor:not-allowed;opacity:.55}.button.primary{background:var(--primary);color:#fff}.button.primary:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}.button.secondary{background:var(--mint);border-color:#bdd7ce;color:var(--primary-dark)}.button.ghost{background:#fff;border-color:var(--line);color:var(--ink)}.button.danger{background:var(--danger);color:#fff}.button.light{background:#fff;color:var(--primary-dark)}.button.small{min-height:2.4rem;padding:.55rem .85rem}.button.full{width:100%}.danger-text{color:var(--danger)!important}.success-button{color:#165c46;background:#e6f5ed;border-color:#b9ddca}.public-header{position:relative;z-index:10;border-bottom:1px solid rgba(220,230,226,.75);background:#fbfdfceb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-inner{min-height:4.75rem;display:flex;align-items:center;justify-content:space-between}.public-nav{display:flex;align-items:center;gap:1.5rem}.public-nav>a:not(.button){color:#435e5b;font-weight:600;text-decoration:none}.public-menu-button{display:none}.hero{overflow:hidden;background:radial-gradient(circle at 80% 20%,#e7f2ee 0,transparent 34%),linear-gradient(155deg,#fbfdfc,#f1f7f4);padding:clamp(4rem,9vw,7.5rem) 0}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2.5rem,7vw,7rem);align-items:center}.eyebrow{display:inline-block;margin-bottom:.8rem;color:var(--primary);text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:700}.hero h1{max-width:720px;font-family:Georgia,Times New Roman,serif;font-weight:600}.hero-copy{max-width:650px;font-size:1.16rem}.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}.hero-card{position:relative;overflow:hidden;border:1px solid #d7e7e1;border-radius:1.3rem;background:#ffffffd9;box-shadow:var(--shadow);padding:2rem}.hero-card h2{font-family:Georgia,Times New Roman,serif;font-size:1.75rem}.calm-orb{position:absolute;width:8rem;height:8rem;border-radius:44% 56% 60% 40%;background:#e0eee9;right:-2.5rem;top:-3.5rem;transform:rotate(28deg)}.steps{list-style:none;display:grid;gap:1.4rem;padding:0;margin:1.5rem 0 0}.steps li{display:flex;gap:1rem}.steps li>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--mint);color:var(--primary);font-weight:700}.steps p{margin:.25rem 0 0;font-size:.92rem}.features-section{padding:6rem 0;background:#fff}.section-heading{text-align:center;margin-bottom:2.5rem}.section-heading h2{font-family:Georgia,Times New Roman,serif;font-size:2.5rem}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.feature-grid article{border:1px solid var(--line);border-radius:1rem;padding:1.7rem;background:#fbfdfc}.feature-grid svg{color:var(--primary);background:var(--mint);padding:.6rem;width:2.7rem;height:2.7rem;border-radius:.7rem}.feature-grid h3{margin:1.1rem 0 .45rem}.privacy-note{display:flex;justify-content:center;align-items:center;gap:.6rem;margin-top:2rem;color:var(--primary)}.privacy-note p{margin:0}.cta-section{padding:1.5rem 0 5rem;background:#fff}.cta-card{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2.2rem 2.5rem;border-radius:1.2rem;background:var(--primary);color:#fff}.cta-card h2{margin-bottom:.4rem}.cta-card p{color:#d7e7e4;margin:0}.public-footer{padding:2rem 0;border-top:1px solid var(--line)}.footer-inner,.footer-inner nav{display:flex;justify-content:space-between;gap:1.25rem;flex-wrap:wrap}.footer-inner p{margin:0}.legal-page{min-height:65vh;padding:5rem 0;background:#fff}.legal-page h1{font-family:Georgia,Times New Roman,serif}.legal-warning{border-left:4px solid #c5842d;background:#fff8e8;padding:1rem;border-radius:.4rem;color:#6d4a16;margin:2rem 0}.prose h2{margin-top:2rem}.not-found{min-height:100vh;display:grid;place-content:center;justify-items:center;text-align:center;padding:2rem}.not-found>span{color:var(--primary);font-weight:700;letter-spacing:.2em}.auth-page{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(circle at 20% 20%,#deece7,transparent 30%),#f7faf8}.auth-card{width:min(100%,470px);background:#fff;border:1px solid var(--line);border-radius:1.2rem;box-shadow:var(--shadow);padding:clamp(1.5rem,5vw,2.5rem)}.auth-brand{margin-bottom:2.2rem}.auth-heading h1{font-size:2rem;margin-bottom:.5rem}.form-stack{display:grid;gap:.7rem}.form-stack label,.form-grid label{font-weight:600;font-size:.9rem}input,select,textarea{width:100%;border:1px solid #bdcfca;border-radius:.65rem;padding:.72rem .8rem;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:3px solid rgba(49,95,91,.14)}input:disabled{background:#eef2f0;color:#63736f}.password-field{position:relative}.password-field input{padding-right:3rem}.password-field button{position:absolute;right:.4rem;top:.3rem;display:grid;place-items:center;border:0;background:transparent;width:2.3rem;height:2.3rem;color:var(--muted);cursor:pointer}.label-row{display:flex;justify-content:space-between;align-items:baseline}.label-row a{font-size:.85rem}.hint{color:var(--muted);font-weight:400}.checkbox-row{display:flex;gap:.65rem;align-items:flex-start;margin:.4rem 0;font-weight:400!important}.checkbox-row input{width:1rem;margin-top:.2rem;accent-color:var(--primary)}.auth-switch{margin:1.5rem 0 0;text-align:center}.feedback{display:flex;gap:.65rem;align-items:flex-start;border-radius:.7rem;padding:.85rem 1rem;margin-bottom:1rem;line-height:1.4}.feedback.error{background:#fff0f1;color:#8d2735;border:1px solid #f1c7cc}.feedback.success{background:#edf8f2;color:#176047;border:1px solid #c5e6d4}.feedback.warning{background:#fff8e8;color:#714c14;border:1px solid #efd9aa}.feedback.loading{color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;flex-direction:column;width:256px;padding:1.4rem 1rem;border-right:1px solid var(--line);background:#fff}.sidebar-brand{padding:0 .5rem 1.4rem}.user-summary{display:grid;padding:1rem;margin-bottom:1rem;border-radius:.8rem;background:#f0f6f3}.user-summary span{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.user-summary strong{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis}.sidebar nav{display:grid;gap:.25rem}.nav-link{display:flex;align-items:center;gap:.7rem;width:100%;padding:.7rem .8rem;border:0;border-radius:.65rem;background:transparent;color:#4c6562;font-weight:600;text-decoration:none;cursor:pointer}.nav-link:hover,.nav-link.active{color:var(--primary-dark);background:#e8f1ee}.sign-out{margin-top:auto}.app-main{min-height:100vh;margin-left:256px;padding:clamp(1.4rem,4vw,3rem)}.app-main>*{max-width:1240px;margin-inline:auto}.mobile-header{display:none}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2rem}.page-header h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:.45rem}.page-header p{margin-bottom:0}.page-actions{flex:0 0 auto}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.25rem}.metric-card{display:flex;gap:1rem;align-items:center;min-height:116px;padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:.9rem}.metric-card.emphasis{border-color:#deb970;background:#fffcf5}.metric-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.8rem;background:var(--mint);color:var(--primary)}.metric-icon.amber{background:#fff2d8;color:#946018}.metric-icon.blue{background:#e5eef7;color:#315e8a}.metric-card div{display:grid;gap:.25rem}.metric-card span{color:var(--muted);font-size:.86rem}.metric-card strong{font-size:1.55rem}.panel{padding:1.3rem;margin-bottom:1.25rem;background:#fff;border:1px solid var(--line);border-radius:.9rem}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;border-bottom:1px solid #edf1ef;margin-bottom:1rem}.panel-heading h2{margin:0 0 .3rem}.panel-heading h2 svg{vertical-align:middle;margin-right:.3rem}.panel-heading p{margin:0}.appointment-highlight{display:flex;align-items:center;gap:1rem}.date-tile{display:grid;place-items:center;min-width:3.6rem;min-height:3.6rem;border-radius:.7rem;background:var(--primary);color:#fff}.date-tile span{font-weight:700;font-size:1.2rem}.date-tile small{text-transform:uppercase}.appointment-highlight>div:nth-child(2){flex:1}.appointment-highlight p{margin:.2rem 0 0}.info-card{display:flex;gap:1rem;align-items:flex-start;padding:1.2rem;border:1px solid #c9ddd6;background:#edf6f2;border-radius:.9rem}.info-card h2{font-size:1rem;margin-bottom:.3rem}.info-card p{margin:0;color:#45615d}.info-card.compact{padding:.9rem;margin-bottom:1rem}.balance-pill{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;background:#fff;border:1px solid var(--line);border-radius:2rem}.balance-pill span{color:var(--muted)}.calendar-panel{padding:1rem;border:1px solid var(--line);border-radius:.9rem;background:#fff;overflow:auto}.fc{min-width:690px;--fc-border-color: #e2e9e6;--fc-button-bg-color: #315f5b;--fc-button-border-color: #315f5b;--fc-button-hover-bg-color: #244a47;--fc-button-active-bg-color: #203f3d;--fc-today-bg-color: #f3f8f6}.fc .fc-toolbar-title{font-size:1.15rem}.fc-event{cursor:pointer;border-radius:.35rem;padding:.15rem}.calendar-available{background:#d9eee5!important;border-color:#72ad94!important;color:#15543e!important}.calendar-pending{background:#fff0c9!important;border-color:#d9a23b!important;color:#68450b!important}.calendar-confirmed{background:#dceaf7!important;border-color:#6796c3!important;color:#234f78!important}.calendar-closed{background:#e9eceb!important;color:#64706d!important}.dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem;background:#12272594}.dialog{width:min(100%,500px);background:#fff;border-radius:1rem;box-shadow:var(--shadow);padding:1.5rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.5rem}.empty-state{text-align:center;padding:2.4rem 1rem;border:1px dashed #cbd9d5;border-radius:.8rem}.empty-state h3{margin-bottom:.4rem}.empty-state p{margin:0}.status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border:1px solid transparent;border-radius:999px;font-size:.76rem;font-weight:700;white-space:nowrap}.status-badge:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.status-pending{color:#805210;background:#fff6db;border-color:#efd391}.status-confirmed{color:#245b84;background:#eaf3fa;border-color:#bed8eb}.status-rejected{color:#943949;background:#fff0f2;border-color:#efc4cc}.status-cancelled{color:#5f6b68;background:#f0f2f1;border-color:#d6dcda}.status-completed{color:#1c654d;background:#e9f6ef;border-color:#bfdfcd}.status-no-show{color:#714e7c;background:#f6eef8;border-color:#ddc8e2}.tabs{display:flex;gap:.5rem;margin-bottom:1rem}.tabs button{border:0;border-radius:.7rem;padding:.7rem 1rem;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}.tabs button.active{background:#fff;color:var(--primary);box-shadow:0 2px 10px #254a4614}.tabs span{margin-left:.3rem;padding:.1rem .4rem;border-radius:1rem;background:#e6efec}.appointment-list,.request-list,.ledger-list,.patient-list,.audit-list,.simple-list{display:grid}.appointment-row{display:flex;align-items:center;gap:1rem;padding:1rem .3rem;border-bottom:1px solid #edf1ef}.appointment-row:last-child{border-bottom:0}.appointment-row>div:first-child{flex:1}.appointment-row p{margin:.2rem 0 0}.reason{color:#7c4550}.row-actions,.request-actions{display:flex;gap:.5rem;align-items:center}.late-note{max-width:260px;font-size:.78rem;color:#73521d}.package-summary{display:grid;grid-template-columns:260px 1fr;align-items:center;gap:2rem;margin-bottom:1.25rem;padding:1.5rem;border-radius:1rem;background:linear-gradient(135deg,#315f5b,#497d75);color:#fff}.package-summary p{color:#d9e8e4}.package-visual{display:grid;justify-items:center;gap:.5rem;padding:1.2rem;border-radius:.8rem;background:#ffffff1a}.package-visual strong{font-size:3rem}.ledger-row{display:flex;align-items:center;gap:1rem;padding:.85rem .2rem;border-bottom:1px solid #edf1ef}.ledger-row>div{flex:1}.ledger-row p{margin:.15rem 0 0;font-size:.85rem}.ledger-icon{display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:50%}.ledger-icon.positive{color:#176047;background:#e6f5ed}.ledger-icon.negative{color:#8f3a44;background:#fbedef}.positive-text{color:#176047}.negative-text{color:#8f3a44}.max-form{max-width:580px}.privacy-copy{padding:.8rem;background:#f5f7f6;border-radius:.6rem;font-size:.85rem}.request-row{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:center;padding:1rem .25rem;border-bottom:1px solid #edf1ef}.request-row p{margin:.2rem 0 0}.request-row>div:nth-child(2){display:grid;justify-items:start;gap:.35rem}.audit-list>div,.simple-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem .2rem;border-bottom:1px solid #edf1ef}.slot-admin-list>div{align-items:center}.slot-admin-list>div>span:first-child{flex:1}.slot-actions{display:flex}.admin-cancel-actions{flex-wrap:wrap}.audit-list span{text-transform:capitalize}.audit-list time{color:var(--muted)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.form-grid label{display:grid;gap:.35rem}.search-field{position:relative;display:block;max-width:580px;margin-bottom:1rem}.search-field svg{position:absolute;left:.8rem;top:.75rem;color:var(--muted)}.search-field input{padding-left:2.7rem}.patient-row{display:flex;align-items:center;gap:1rem;padding:.85rem .3rem;border-bottom:1px solid #edf1ef;color:var(--ink);text-decoration:none}.patient-row:hover{background:#f8fbfa}.patient-row>div{flex:1}.patient-row p{margin:.15rem 0 0}.avatar{display:grid;place-items:center;width:2.8rem;height:2.8rem;background:var(--mint);border-radius:50%;color:var(--primary)}.icon-button{display:grid;place-items:center;width:2.6rem;height:2.6rem;border:0;border-radius:.6rem;background:transparent;cursor:pointer}.icon-button.public-menu-button{display:none}.center-page{min-height:100vh;display:grid;place-items:center}@media(max-width:900px){.hero-grid,.feature-grid{grid-template-columns:1fr}.hero-card{max-width:620px}.feature-grid{gap:.8rem}.sidebar{transform:translate(-105%);transition:transform .2s ease}.sidebar.open{transform:translate(0)}.sidebar-scrim{position:fixed;inset:0;z-index:20;border:0;background:#12272566}.mobile-header{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;height:4rem;padding:0 1rem;border-bottom:1px solid var(--line);background:#fffffff2}.app-main{margin-left:0;padding-top:1.5rem}.admin-grid{grid-template-columns:1fr}.request-row{grid-template-columns:1fr 1fr}.request-actions{grid-column:1 / -1}}@media(max-width:680px){.icon-button.public-menu-button{display:grid}.public-nav{position:absolute;left:1rem;right:1rem;top:4.2rem;display:none;align-items:stretch;flex-direction:column;padding:1rem;border:1px solid var(--line);border-radius:.8rem;background:#fff;box-shadow:var(--shadow)}.public-nav.open{display:flex}.hero{padding:3.5rem 0}.hero h1{font-size:2.65rem}.features-section{padding:4rem 0}.cta-card,.page-header,.appointment-row{align-items:stretch;flex-direction:column}.page-actions .button,.page-actions .balance-pill{width:100%}.metric-grid{grid-template-columns:1fr}.metric-card{min-height:92px}.package-summary,.request-row{grid-template-columns:1fr}.request-actions{grid-column:auto;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.dialog-actions{flex-direction:column-reverse}.dialog-actions .button{width:100%}.footer-inner{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
