body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.client-app{background:#f6f4ef;display:flex;min-height:100vh}.client-logo{border-radius:15px;display:grid;flex-shrink:0;height:46px;overflow:hidden;place-items:center;width:46px}.client-logo img{height:32px;object-fit:contain;width:32px}.client-sidebar{background:#0b3a2e;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;flex-shrink:0;justify-content:space-between;min-height:100vh;overflow-x:hidden;padding:1.5rem;width:270px;z-index:1001}.client-brand{align-items:center;display:flex;gap:.8rem;margin-bottom:2rem;width:100%}.client-brand>div:nth-child(2),.client-sidebar-footer>div:nth-child(2){min-width:0}.client-brand strong,.client-sidebar-footer strong{color:#fff;display:block;line-height:1.2}.client-brand span,.client-sidebar-footer span{color:#b9d2c5;display:block;font-size:.9rem}.client-sidebar .client-nav{align-items:stretch;display:flex;flex-direction:column;gap:.55rem;width:100%}.client-sidebar .client-nav a{align-items:center;background:#0000;border:none;border-radius:14px;box-sizing:border-box;color:#d4e6dc;display:flex;flex-direction:row;font-weight:700;gap:.75rem;justify-content:flex-start;line-height:1.2;min-width:0;overflow-wrap:break-word;padding:.9rem 1rem;text-align:left;text-decoration:none;transition:background .2s ease,color .2s ease;white-space:normal;width:100%}.client-sidebar .client-nav a svg{flex-shrink:0;height:19px;width:19px}.client-sidebar .client-nav a.active,.client-sidebar .client-nav a:hover{background:#ffffff1f;color:#fff}.client-sidebar-footer{border-top:1px solid #ffffff24;padding-top:1rem}.client-avatar{background:#e8f3eb;border-radius:50%;color:#0b3a2e;display:grid;flex-shrink:0;font-weight:900;height:42px;place-items:center;width:42px}.client-avatar.small{height:34px;width:34px}.client-main{flex:1 1;min-width:0;overflow-x:hidden;padding:2rem}.client-mobile-header,.client-sidebar-close,.client-sidebar-overlay{display:none}@media (max-width:900px){.client-app{display:block;padding-top:78px}.client-mobile-header{align-items:center;background:#0b3a2e;box-shadow:0 4px 18px #0000001f;box-sizing:border-box;color:#fff;display:flex;height:78px;inset:0 0 auto 0;justify-content:space-between;padding:0 1.25rem;position:fixed;z-index:999}.client-mobile-brand{align-items:center;display:flex;gap:.75rem;min-width:0}.client-mobile-brand>div:nth-child(2){min-width:0}.client-mobile-brand strong{color:#fff;display:block;line-height:1.2}.client-mobile-brand span{color:#b9d2c5;display:block;font-size:.85rem}.client-mobile-brand .client-logo{height:42px;width:42px}.client-mobile-brand .client-logo img{height:29px;width:29px}.client-menu-button,.client-sidebar-close{background:#ffffff1f;border:none;border-radius:12px;color:#fff;cursor:pointer;display:grid;flex-shrink:0;height:44px;padding:0;place-items:center;width:44px}.client-menu-button:hover,.client-sidebar-close:hover{background:#fff3}.client-menu-button svg,.client-sidebar-close svg{height:25px;width:25px}.client-sidebar{bottom:0;box-shadow:10px 0 30px #0003;height:100vh;left:0;min-height:100vh;overflow-x:hidden;overflow-y:auto;padding:1.5rem;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s ease;width:min(300px,86vw);z-index:1001}.client-sidebar.client-sidebar-open{transform:translateX(0)}.client-sidebar .client-brand{margin-bottom:2rem}.client-sidebar-close{margin-left:auto}.client-sidebar .client-nav{align-items:stretch;display:flex;flex-direction:column;width:100%}.client-sidebar .client-nav a{flex-direction:row;justify-content:flex-start;width:100%}.client-sidebar-overlay{background:#0000006b;border:none;cursor:pointer;display:block;height:100%;inset:0;margin:0;padding:0;position:fixed;width:100%;z-index:1000}.client-main{box-sizing:border-box;padding:1.5rem;width:100%}}@media (max-width:576px){.client-app{padding-top:70px}.client-mobile-header{height:70px;padding:0 1rem}.client-mobile-brand .client-logo{height:39px;width:39px}.client-mobile-brand .client-logo img{height:27px;width:27px}.client-mobile-brand strong{font-size:.95rem}.client-mobile-brand span{font-size:.78rem}.client-menu-button{height:40px;width:40px}.client-sidebar{padding:1.25rem;width:min(292px,88vw)}.client-sidebar .client-nav a{padding:.85rem .9rem}.client-main{padding:1rem}}.client-sidebar-bottom{border-top:1px solid #ffffff24;box-sizing:border-box;display:flex;flex-direction:column;gap:.65rem;padding-top:1rem;width:100%}.client-sidebar-footer{align-items:center;border-top:none;box-sizing:border-box;display:flex;gap:.75rem;padding:.25rem .5rem;width:100%}.client-sidebar-footer>div:nth-child(2){min-width:0}.client-sidebar-footer strong{color:#fff;display:block;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-sidebar-footer span{color:#b9d2c5;display:block;font-size:.85rem;margin-top:.1rem}.client-logout-button{align-items:center;background:#0000;border:none;border-radius:14px;box-sizing:border-box;color:#d4e6dc;cursor:pointer;display:flex;font:inherit;font-weight:700;gap:.75rem;justify-content:flex-start;line-height:1.2;min-height:44px;padding:.8rem 1rem;text-align:left;transition:background .2s ease,color .2s ease;width:100%}.client-logout-button svg{flex-shrink:0;height:19px;width:19px}.client-logout-button:hover{background:#ffffff1f;color:#fff}.client-logout-button:focus-visible{outline:3px solid #e8f3eb59;outline-offset:2px}.client-logout-button:active{background:#ffffff2b}.login-page{align-items:center;background:radial-gradient(circle at top left,#e8f3eb,#0000 42%),#f6f4ef;display:flex;justify-content:center;min-height:100vh;padding:2rem}.login-card{background:#fff;border:1px solid #e0ded6;border-radius:28px;box-shadow:0 24px 70px #14372b24;display:grid;grid-template-columns:.95fr 1.05fr;max-width:940px;min-height:580px;overflow:hidden;width:100%}.login-visual{align-items:center;background:radial-gradient(circle at top left,#ffffff8c,#0000 40%),linear-gradient(145deg,#dceee2,#edf5ee);display:flex;justify-content:center;overflow:hidden;padding:3rem;position:relative;text-align:center}.login-visual:after,.login-visual:before{background:#1d6d4f12;border-radius:50%;content:"";position:absolute}.login-visual:before{height:260px;right:-90px;top:-110px;width:260px}.login-visual:after{bottom:-90px;height:210px;left:-70px;width:210px}.login-visual-content{max-width:340px;position:relative;z-index:1}.login-visual-icon{background:#fff;border-radius:20px;box-shadow:0 14px 35px #14372b1f;color:#1d6d4f;display:grid;font-size:1.8rem;height:68px;margin:0 auto 1.5rem;place-items:center;width:68px}.login-visual h1{color:#14372b;font-family:Georgia,serif;font-size:2.4rem;line-height:1.15;margin:0 0 1.75rem}.login-visual h2{color:#17382d;font-size:1.25rem;margin:0 0 .4rem}.login-visual p{color:#5d6f65;line-height:1.5;margin:0}.login-visual span{background:#ffffffbf;border-radius:999px;color:#1d6d4f;display:inline-block;font-size:.82rem;font-weight:700;letter-spacing:.03em;margin-top:.9rem;padding:.4rem .8rem}.login-form{display:flex;flex-direction:column;justify-content:center;padding:3rem}.login-badge{align-items:center;background:#e8f3eb;border-radius:999px;color:#1d6d4f;display:inline-flex;font-size:.82rem;font-weight:700;gap:.45rem;margin-bottom:1rem;padding:.45rem .8rem;width:-webkit-fit-content;width:fit-content}.login-badge svg{font-size:.9rem}.login-form h2{color:#14372b;font-family:Georgia,serif;font-size:2rem;margin:0 0 .5rem}.login-intro{color:#62736a;line-height:1.55;margin:0 0 1.5rem}.login-field,.login-main-form{display:flex;flex-direction:column}.login-form label{color:#263d32;font-size:.92rem;font-weight:700;margin:.85rem 0 .4rem}.login-form input{background:#fff;border:1px solid #d8d8d0;border-radius:12px;color:#17382d;font:inherit;outline:none;padding:.9rem .95rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;width:100%}.login-form input::placeholder{color:#9aa39d}.login-form input:hover:not(:disabled){border-color:#bfc8c1}.login-form input:focus{border-color:#1d6d4f;box-shadow:0 0 0 3px #1d6d4f1f}.login-form input:disabled{background:#f3f3f0;cursor:not-allowed}.password-field{align-items:center;display:flex;position:relative}.password-field input{padding-right:3.25rem}.password-toggle{background:#0000;border:none;border-radius:9px;color:#66776e;cursor:pointer;display:grid;font-size:1.1rem;height:38px;place-items:center;position:absolute;right:.55rem;transition:color .2s ease,background .2s ease;width:38px}.password-toggle:hover:not(:disabled){background:#edf5ef;color:#1d6d4f}.password-toggle:focus-visible{outline:2px solid #1d6d4f;outline-offset:1px}.password-toggle:disabled{cursor:not-allowed;opacity:.55}.login-row{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin:1rem 0 1.25rem}.remember-row{align-items:center;color:#62736a!important;cursor:pointer;display:inline-flex;flex-direction:row;font-size:.9rem!important;font-weight:500!important;gap:.55rem;margin:0!important}.remember-row input{accent-color:#1d6d4f;cursor:pointer;height:17px;margin:0;padding:0;width:17px}.text-button{background:#0000;border:none;color:#1d6d4f;cursor:pointer;font-size:.9rem;font-weight:700;padding:0}.text-button:hover:not(:disabled){text-decoration:underline}.text-button:disabled{cursor:not-allowed;opacity:.55}.login-submit{border-radius:12px;font-size:.95rem;font-weight:700;min-height:48px;width:100%}.login-error,.login-success{align-items:flex-start;border-radius:12px;display:flex;font-size:.9rem;gap:.65rem;line-height:1.45;margin-bottom:1rem;padding:.85rem .95rem}.login-error{background:#fff2f1;border:1px solid #efceca;color:#9b352d}.login-success{background:#e8f3eb;border:1px solid #cfe1d6;color:#1f684d}.login-error svg,.login-success svg{flex-shrink:0;margin-top:.15rem}.login-field-error{color:#a13b34;display:none;font-size:.82rem;margin-top:.35rem}.was-validated input:invalid{border-color:#c75a51}.was-validated input:invalid:focus{box-shadow:0 0 0 3px #c75a511f}.was-validated .password-field:has(input:invalid)~.login-field-error,.was-validated input:invalid~.login-field-error{display:block}.forgot-box{background:#fafbf9;border:1px solid #e1e4df;border-radius:16px;margin-top:1.5rem;padding:1.35rem}.forgot-heading{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.forgot-box h3{color:#14372b;font-family:Georgia,serif;font-size:1.25rem;margin:0 0 .35rem}.forgot-box p{color:#66736b;font-size:.9rem;line-height:1.5;margin:0 0 .75rem}.forgot-close{background:#0000;border:none;border-radius:9px;color:#66736b;cursor:pointer;display:grid;flex-shrink:0;font-size:1.6rem;height:34px;line-height:1;place-items:center;width:34px}.forgot-close:hover{background:#e8eee9;color:#17382d}@media (max-width:800px){.login-page{align-items:flex-start;padding:1rem}.login-card{border-radius:22px;grid-template-columns:1fr;max-width:560px;min-height:auto}.login-visual{padding:2.25rem 1.5rem}.login-visual-icon{border-radius:16px;font-size:1.4rem;height:56px;margin-bottom:1rem;width:56px}.login-visual h1{font-size:1.85rem;margin-bottom:1.2rem}.login-form{padding:2rem}}@media (max-width:480px){.login-page{background:#fff;padding:0}.login-card{border:none;border-radius:0;box-shadow:none;min-height:100vh}.login-visual{padding:1.75rem 1.25rem}.login-visual h1{font-size:1.65rem}.login-form{justify-content:flex-start;padding:1.5rem}.login-form h2{font-size:1.75rem}.login-row{align-items:flex-start;gap:.75rem}.forgot-box{padding:1.1rem}}.spinner{align-items:center;display:flex;justify-content:center;min-height:240px;width:100%}.spinner-card{grid-gap:.8rem;background:#fff;border:1px solid #e7e6df;border-radius:20px;box-shadow:0 16px 40px #14372b14;display:grid;gap:.8rem;padding:1.5rem 1.75rem;place-items:center}.spinner-card p{color:#1f684d;font-weight:700;margin:0}.client-appointments-page{margin:0 auto;max-width:1050px;width:100%}.client-appointments-loading{align-items:center;display:flex;justify-content:center;min-height:360px}.client-appointments-sections{grid-gap:2.2rem;display:grid;gap:2.2rem}.client-appointments-section{grid-gap:1rem;display:grid;gap:1rem}.client-appointments-section-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.client-appointments-section-header h2{color:#14372b;font-family:Georgia,serif;font-size:1.4rem;margin:0 0 .2rem}.client-appointments-section-header p{color:#66736b;font-size:.9rem;margin:0}.client-appointments-section-header>span{background:#e8f3eb;border-radius:999px;color:#1f684d;display:grid;font-size:.85rem;font-weight:800;height:34px;min-width:34px;padding:0 .6rem;place-items:center}.client-past-section{border-top:1px solid #e7e6df;padding-top:1.5rem}.client-past-section .client-appointments-section-header>span{background:#f0efeb;color:#737b76}.client-appointments-list{grid-gap:.8rem;display:grid;gap:.8rem}.client-appointment-row{grid-gap:1rem;align-items:center;background:#fff;border:1px solid #e7e6df;border-radius:18px;box-shadow:0 12px 30px #14372b12;cursor:pointer;display:grid;gap:1rem;grid-template-columns:auto 1fr auto;padding:1rem;text-align:left;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease;width:100%}.client-appointment-row:hover{background:#f5faf7;border-color:#cfe1d6;transform:translateY(-1px)}.client-appointment-row:focus-visible{outline:3px solid #1f684d38;outline-offset:2px}.client-appointment-row-next{border-color:#b9d6c4;box-shadow:0 14px 34px #1f684d1a}.client-next-label{color:#1f684d;display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.05em;margin-bottom:.35rem;text-transform:uppercase;width:-webkit-fit-content;width:fit-content}.client-appointment-date-icon{background:#e8f3eb;border-radius:16px;color:#1f684d;display:grid;flex-shrink:0;font-size:1.3rem;height:48px;place-items:center;width:48px}.client-appointment-main{min-width:0}.client-appointment-main strong{color:#14372b;display:block;font-family:Georgia,serif;font-size:1.15rem;line-height:1.35;margin-bottom:.3rem}.client-appointment-time{align-items:center;color:#263d32;display:flex;font-weight:700;gap:.4rem;margin-bottom:.25rem}.client-appointment-time svg{color:#1f684d;flex-shrink:0}.client-appointment-main small{color:#66736b;display:block;line-height:1.4}.client-appointment-right{align-items:center;color:#1f684d;display:flex;font-size:1.1rem;justify-content:center}.client-appointment-row-past{background:#faf9f6;border-color:#eceae4;box-shadow:none;opacity:.68}.client-appointment-row-past:hover{background:#fff;border-color:#d9ddd8;opacity:1}.client-appointment-row-past .client-appointment-date-icon{background:#eeede9;color:#747c77}.client-appointment-row-past .client-appointment-main strong{color:#58625c}.client-appointment-row-past .client-appointment-time{color:#737c76}.client-appointment-row-past .client-appointment-main small,.client-appointment-row-past .client-appointment-time svg{color:#858d87}.client-appointment-row-past .client-appointment-right{color:#8a918d}.client-appointments-section-empty{align-items:center;background:#fbfaf7;border:1px dashed #d7ded9;border-radius:18px;color:#66736b;display:flex;gap:.9rem;padding:1.2rem}.client-appointments-section-empty>svg{color:#8da397;flex-shrink:0;font-size:1.5rem}.client-appointments-section-empty strong{color:#3c5147;display:block;margin-bottom:.2rem}.client-appointments-section-empty p{font-size:.9rem;line-height:1.45;margin:0}.client-appointments-empty{background:#fff;border:1px solid #e7e6df;border-radius:24px;box-shadow:0 18px 46px #14372b14;padding:2rem;text-align:center}.client-appointments-empty-icon{background:#e8f3eb;border-radius:22px;color:#1f684d;display:grid;font-size:2rem;height:68px;margin:0 auto 1rem;place-items:center;width:68px}.client-appointments-empty h2{color:#14372b;font-family:Georgia,serif;font-size:1.8rem;margin:0 0 .5rem}.client-appointments-empty p{color:#66736b;line-height:1.5;margin:0}.client-appointments-error-card{grid-gap:1rem;display:grid;gap:1rem;max-width:560px}.client-appointments-error{align-items:flex-start;background:#fff4f1;border:1px solid #f2c9c3;border-radius:14px;color:#a83a2d;display:flex;gap:.65rem;padding:.9rem 1rem}.client-appointments-error svg{flex-shrink:0;margin-top:.15rem}@media (max-width:700px){.client-appointments-sections{gap:1.8rem}.client-appointment-row{grid-template-columns:auto 1fr}.client-appointment-right{border-top:1px solid #e7e6df;grid-column:1/-1;justify-content:flex-end;padding-top:.7rem}.client-appointment-row-past .client-appointment-right{border-top-color:#eceae4}}@media (max-width:500px){.client-appointments-section-header h2{font-size:1.2rem}.client-appointments-section-header p{font-size:.85rem}.client-appointments-section-header>span{font-size:.8rem;height:30px;min-width:30px}.client-appointment-row{border-radius:16px;gap:.75rem;padding:.9rem}.client-appointment-date-icon{border-radius:14px;font-size:1.15rem;height:42px;width:42px}.client-appointment-main strong{font-size:1rem}.client-appointment-time{align-items:flex-start;font-size:.9rem}.client-next-label{font-size:.68rem}.client-appointment-row-past{opacity:.75}.client-appointments-empty{border-radius:20px;padding:1.4rem}.client-appointments-empty h2{font-size:1.5rem}.client-appointments-section-empty{align-items:flex-start;padding:1rem}}.client-book-appointment-link{align-items:center;background:#e8f3eb;border:1px solid #cfe1d6;border-radius:16px;color:#1f684d;cursor:pointer;display:flex;font-weight:800;gap:.65rem;margin-bottom:1.4rem;padding:.9rem 1rem;text-align:left;width:100%}.client-book-appointment-link span{flex:1 1}.client-book-appointment-link:hover{background:#dff0e4;border-color:#1f684d}.client-book-appointment-link:focus-visible{outline:3px solid #1f684d38;outline-offset:2px}.client-appointments-section-empty .secondary-btn{flex-shrink:0;margin-left:auto}.client-appointments-empty .secondary-btn{margin-top:1.2rem}@media (max-width:600px){.client-appointments-section-empty{flex-wrap:wrap}.client-appointments-section-empty .secondary-btn{margin-left:0;width:100%}}.appointment-details-page{margin:0 auto;max-width:900px;width:100%}.appointment-details-loading{align-items:center;display:flex;justify-content:center;min-height:360px}.appointment-details-back{background:#0000;border:none;color:#1f684d;cursor:pointer;font-weight:800;margin-bottom:1.2rem;padding:0}.appointment-details-back:hover{color:#18553f}.appointment-details-card,.appointment-details-error-card{background:#fff;border:1px solid #e7e6df;border-radius:24px;box-shadow:0 18px 46px #14372b14;padding:1.5rem}.appointment-details-top{align-items:flex-start;border-bottom:1px solid #e7e6df;display:flex;gap:1rem;padding-bottom:1.2rem}.appointment-details-icon{background:#e8f3eb;border-radius:18px;color:#1f684d;display:grid;flex-shrink:0;font-size:1.6rem;height:58px;place-items:center;width:58px}.appointment-details-status{background:#e8f3eb;border-radius:999px;color:#1f684d;display:inline-flex;font-size:.8rem;font-weight:800;margin-bottom:.5rem;padding:.3rem .7rem}.appointment-details-top h2{color:#14372b;font-family:Georgia,serif;font-size:1.7rem;margin:0 0 .25rem}.appointment-details-top p{color:#66736b;margin:0}.appointment-details-list{grid-gap:.75rem;display:grid;gap:.75rem;margin:1.2rem 0}.appointment-details-row{align-items:flex-start;background:#fbfaf7;border:1px solid #e7e6df;border-radius:16px;display:flex;gap:.85rem;padding:1rem}.appointment-details-row svg{color:#1f684d;flex-shrink:0;font-size:1.25rem;margin-top:.15rem}.appointment-details-row span{color:#66736b;display:block;font-size:.9rem;margin-bottom:.2rem}.appointment-details-row strong{color:#17382d;display:block;font-size:1rem}.appointment-details-note{background:#fff8e8;border:1px solid #f2d58a;border-radius:16px;padding:1rem}.appointment-details-note strong{color:#6b4b00;display:block;margin-bottom:.3rem}.appointment-details-note p{color:#6b4b00;line-height:1.5;margin:0}.appointment-details-error-card{margin:0 auto;max-width:520px;text-align:center}.appointment-details-error-card svg{color:#a83a2d;font-size:2.4rem;margin-bottom:.8rem}.appointment-details-error-card h1{color:#14372b;font-family:Georgia,serif;margin:0 0 .5rem}.appointment-details-error-card p{color:#66736b;margin-bottom:1rem}.appointment-details-primary-btn{background:#1f684d;border:none;border-radius:13px;color:#fff;cursor:pointer;font-weight:800;padding:.85rem 1rem}.appointment-details-primary-btn:hover{background:#18553f}@media (max-width:600px){.appointment-details-card,.appointment-details-error-card{border-radius:20px;padding:1.1rem}.appointment-details-top{display:block}.appointment-details-icon{margin-bottom:.9rem}.appointment-details-top h2{font-size:1.45rem}}.client-verify-page{background:radial-gradient(circle at top left,#1f684d1f,#0000 35%),#f6f4ef;padding:2rem}.client-verify-loading,.client-verify-page{align-items:center;display:flex;justify-content:center;min-height:100vh}.client-verify-loading{background:#f6f4ef}.client-verify-card{background:#fff;border:1px solid #e7e6df;border-radius:24px;box-shadow:0 24px 70px #14372b1f;max-width:460px;padding:2rem;text-align:center;width:100%}.client-verify-icon,.client-verify-success-icon{background:#e8f3eb;border-radius:22px;color:#1f684d;display:grid;font-size:2rem;height:68px;margin:0 auto 1.25rem;place-items:center;width:68px}.client-verify-card h1{color:#14372b;font-family:Georgia,serif;font-size:2rem;line-height:1.15;margin:0 0 .65rem}.client-verify-card p{color:#66736b;line-height:1.55;margin:0 0 1.4rem}.client-verify-error{align-items:flex-start;background:#fff4f1;border:1px solid #f2c9c3;border-radius:14px;color:#a83a2d;display:flex;gap:.6rem;margin-bottom:1rem;padding:.85rem;text-align:left}.client-verify-error svg{flex-shrink:0;margin-top:.15rem}.client-verify-field{margin-bottom:1rem;text-align:left}.client-verify-field label{color:#263d32;display:block;font-weight:700;margin-bottom:.4rem}.client-verify-field input{background:#fff;border:1px solid #dcd9cf;border-radius:12px;color:#17382d;outline:none;padding:.9rem 1rem;width:100%}.client-verify-field input:focus{border-color:#1f684d;box-shadow:0 0 0 3px #1f684d1f}.client-verify-field input.input-error{border-color:#a83a2d}.client-verify-field input.input-error:focus{border-color:#a83a2d;box-shadow:0 0 0 3px #a83a2d1f}.client-verify-feedback{color:#a83a2d;font-size:.85rem;margin-top:.35rem}.client-password-wrap{align-items:center;display:flex;position:relative}.client-password-wrap input{padding-right:3rem}.client-password-wrap button{background:#0000;border:none;border-radius:50%;color:#1f684d;cursor:pointer;display:grid;height:36px;place-items:center;position:absolute;right:.6rem;width:36px}.client-password-wrap button:hover{background:#e8f3eb}.client-verify-btn{align-items:center;background:#1f684d;border:none;border-radius:13px;color:#fff;cursor:pointer;display:inline-flex;font-weight:800;justify-content:center;padding:.95rem 1rem;text-decoration:none;width:100%}.client-verify-btn:hover{background:#18553f;color:#fff;text-decoration:none}@media (max-width:600px){.client-verify-page{padding:1rem}.client-verify-card{border-radius:20px;padding:1.4rem}.client-verify-card h1{font-size:1.65rem}}*{box-sizing:border-box}body{background:#f6f4ef;color:#17382d;font-family:Inter,Arial,sans-serif;margin:0}.app-footer a,.back-button,.client-nav a,.quick-link{text-decoration:none}button,input{font-family:inherit}button{cursor:pointer}.page-shell{margin:0 auto;max-width:1050px}.page-header{margin-bottom:1.4rem}.page-header h1{color:#14372b;font-family:Georgia,serif;font-size:2.1rem;margin:0 0 .4rem}.page-header p{color:#62736a;margin:0}.danger-btn,.primary-btn,.secondary-btn{border:none;border-radius:12px;font-weight:800;padding:.85rem 1rem}.primary-btn{background:#1d6d4f;color:#fff}.primary-btn:hover{background:#165840}.secondary-btn{background:#e8f3eb;color:#1d6d4f}.secondary-btn:hover{background:#d7eadf}.danger-btn{background:#fff4f1;border:1px solid #f2c9c3;color:#b42318}.danger-btn:hover{background:#ffe7e2}.dashboard-grid{grid-gap:1.2rem;display:grid;gap:1.2rem;grid-template-columns:1fr .85fr}.dashboard-card,.details-card,.details-form-card,.messages-card{background:#fff;border:1px solid #e0ded6;border-radius:22px;box-shadow:0 16px 40px #14372b14}.dashboard-card{padding:1.4rem}.next-card{display:flex;flex-direction:column;gap:1rem}.card-icon{background:#e8f3eb;border-radius:18px;color:#1d6d4f;display:grid;font-size:1.45rem;height:54px;place-items:center;width:54px}.card-label{color:#1d6d4f;font-size:.85rem;font-weight:800}.dashboard-card h2,.details-main h2{color:#14372b;font-family:Georgia,serif;margin:.35rem 0}.dashboard-card p{color:#62736a}.dashboard-card h3{color:#14372b;margin-top:0}.quick-link{background:#fff;border:1px solid #e0ded6;border-radius:14px;color:#17382d;justify-content:space-between;margin-top:.7rem;padding:.9rem;width:100%}.quick-link,.quick-link div{align-items:center;display:flex}.quick-link div{font-weight:700;gap:.7rem}.quick-link:hover{background:#f5faf7}.appointments-list{grid-gap:.8rem;display:grid;gap:.8rem}.appointment-row{align-items:center;background:#fff;border:1px solid #e0ded6;border-radius:18px;box-shadow:0 10px 24px #14372b0f;display:flex;justify-content:space-between;padding:1rem;text-align:left;width:100%}.appointment-row:hover{background:#f5faf7}.appointment-row small,.appointment-row span,.appointment-row strong{display:block}.appointment-row strong{color:#14372b;margin-bottom:.25rem}.appointment-row span{color:#263d32;font-weight:700}.appointment-row small{color:#62736a;margin-top:.25rem}.appointment-right{align-items:center;display:flex;gap:.75rem}.status-pill{background:#e8f3eb;border-radius:999px;display:inline-flex;font-size:.8rem;padding:.35rem .7rem}.back-button,.status-pill{color:#1d6d4f;font-weight:800}.back-button{background:#0000;border:none;margin-bottom:1rem}.details-card{align-items:flex-start;display:flex;gap:1rem;padding:1.4rem}.details-main{flex:1 1}.details-main>strong{color:#17382d;display:block;font-size:1.15rem}.details-list{border-top:1px solid #e0ded6;margin:1.2rem 0}.details-list div{grid-gap:1rem;border-bottom:1px solid #e0ded6;display:grid;gap:1rem;grid-template-columns:160px 1fr;padding:.85rem 0}.details-list span{color:#62736a}.details-list strong{color:#17382d}.details-actions{display:flex;flex-wrap:wrap;gap:.7rem}.messages-card{display:grid;grid-template-columns:310px 1fr;min-height:520px;overflow:hidden}.messages-list{background:#fbfaf7;border-right:1px solid #e0ded6;padding:.8rem}.message-preview{background:#0000;border:none;border-radius:14px;margin-bottom:.5rem;padding:.9rem;text-align:left;width:100%}.message-preview.active,.message-preview:hover{background:#e8f3eb}.message-preview strong{color:#14372b;display:block;margin-bottom:.25rem}.message-preview span{color:#62736a;font-size:.9rem}.chat-panel{display:flex;flex-direction:column;min-height:520px}.chat-header{align-items:center;border-bottom:1px solid #e0ded6;display:flex;gap:.7rem;padding:1rem}.chat-header span,.chat-header strong{display:block}.chat-header span{color:#62736a;font-size:.9rem}.chat-messages{display:flex;flex:1 1;flex-direction:column;gap:.8rem;padding:1rem}.bubble{border-radius:18px;line-height:1.45;max-width:70%;padding:.85rem 1rem}.bubble.mine{align-self:flex-end;background:#1d6d4f;border-bottom-right-radius:6px;color:#fff}.bubble.theirs{align-self:flex-start;background:#f0eee8;border-bottom-left-radius:6px;color:#17382d}.chat-input{border-top:1px solid #e0ded6;display:flex;gap:.7rem;padding:1rem}.chat-input input{border:1px solid #dcd9cf;border-radius:999px;flex:1 1;outline:none;padding:.85rem 1rem}.chat-input button{background:#1d6d4f;border:none;border-radius:50%;color:#fff;display:grid;height:46px;place-items:center;width:46px}.details-form-card{grid-gap:.85rem;display:grid;gap:.85rem;max-width:620px;padding:1.4rem}.details-form-card label{color:#263d32;font-weight:800}@media (max-width:900px){.client-app{display:block}.client-sidebar{min-height:auto;padding:1rem;width:100%}.client-brand{margin-bottom:1rem}.client-nav{grid-template-columns:repeat(4,1fr)}.client-nav button{font-size:.85rem;justify-content:center}.client-sidebar-footer{display:none}.client-main{padding:1rem}.dashboard-grid,.messages-card{grid-template-columns:1fr}.messages-list{border-bottom:1px solid #e0ded6;border-right:none}.login-card{grid-template-columns:1fr}.login-visual{min-height:240px}}@media (max-width:600px){.login-page{padding:1rem}.login-form{padding:1.4rem}.client-nav{grid-template-columns:1fr 1fr}.appointment-row{align-items:flex-start;gap:1rem}.appointment-right{align-items:flex-end;flex-direction:column}.details-card{display:block}.details-card .card-icon{margin-bottom:1rem}.details-list div{gap:.25rem;grid-template-columns:1fr}.details-actions{display:grid}.bubble{max-width:88%}}.book-page{margin:0 auto;max-width:780px;width:100%}.book-progress{grid-gap:.6rem;background:#fff;border:1px solid #e7e6df;border-radius:18px;box-shadow:0 10px 30px #14372b0d;display:grid;gap:.6rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.2rem;padding:.75rem}.book-progress-step{align-items:center;border-radius:12px;color:#8a958e;display:flex;font-size:.9rem;font-weight:800;gap:.45rem;justify-content:center;min-width:0;padding:.55rem .7rem}.book-progress-step.active{background:#e8f3eb;color:#1f684d}.book-progress-step.completed{color:#1f684d}.book-progress-number{background:#f0f1ed;border-radius:50%;display:grid;flex-shrink:0;font-size:.8rem;height:28px;place-items:center;width:28px}.book-progress-step.active .book-progress-number{background:#1f684d;color:#fff}.book-progress-step.completed .book-progress-number{background:#0000;color:#1f684d;font-size:1.15rem}.book-card{background:#fff;border:1px solid #e7e6df;border-radius:24px;box-shadow:0 18px 46px #14372b14;padding:1.5rem}.book-step-card{margin:0 auto;max-width:680px;width:100%}.book-section-header{align-items:flex-start;display:flex;gap:.9rem;margin-bottom:1.4rem}.book-icon{background:#e8f3eb;border-radius:17px;color:#1f684d;display:grid;flex-shrink:0;font-size:1.4rem;height:52px;place-items:center;width:52px}.book-section-header h2{color:#14372b;font-family:Georgia,serif;font-size:1.45rem;margin:0 0 .25rem}.book-section-header p{color:#66736b;line-height:1.45;margin:0}.book-calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.book-calendar-header strong{color:#14372b;font-family:Georgia,serif;font-size:1.25rem}.book-calendar-header button{background:#fff;border:1px solid #e7e6df;border-radius:12px;color:#1f684d;cursor:pointer;display:grid;font-size:1.5rem;font-weight:800;height:40px;place-items:center;transition:background .15s ease,border-color .15s ease;width:40px}.book-calendar-header button:hover{background:#e8f3eb;border-color:#cfe1d6}.book-calendar-weekdays{grid-gap:.4rem;display:grid;gap:.4rem;grid-template-columns:repeat(7,1fr);margin-bottom:.4rem}.book-calendar-weekdays span{color:#66736b;font-size:.8rem;font-weight:800;text-align:center}.book-calendar-grid{grid-gap:.4rem;display:grid;gap:.4rem;grid-template-columns:repeat(7,1fr)}.book-calendar-day{background:#f7f5ef;border:1px solid #eee9df;border-radius:14px;color:#a0a29f;cursor:not-allowed;display:grid;font:inherit;min-height:58px;min-width:0;place-items:center;position:relative;transition:background .15s ease,border-color .15s ease,transform .15s ease}.book-calendar-day-blank{background:#0000;border-color:#0000}.book-calendar-day span{font-weight:800}.book-calendar-day.available{background:#e8f3eb;border-color:#cfe1d6;color:#14372b;cursor:pointer}.book-calendar-day.available:hover{background:#dff0e4;border-color:#1f684d;transform:translateY(-1px)}.book-calendar-day.selected{background:#1f684d;border-color:#1f684d;color:#fff}.book-time-grid{grid-gap:.7rem;display:grid;gap:.7rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.2rem}.book-time-btn{background:#fff;border:1px solid #e7e6df;border-radius:14px;color:#17382d;cursor:pointer;font-weight:800;min-height:48px;padding:.85rem;transition:background .15s ease,border-color .15s ease,transform .15s ease}.book-time-btn:hover{background:#f5faf7;border-color:#1f684d;transform:translateY(-1px)}.book-time-btn.active{background:#1f684d;border-color:#1f684d;color:#fff}.book-primary-btn{background:#1f684d;border:none;border-radius:14px;color:#fff;cursor:pointer;font-weight:800;padding:.95rem 1rem;transition:background .15s ease;width:100%}.book-primary-btn:hover{background:#18553f}.book-primary-btn:disabled{background:#c7d4cc;cursor:not-allowed}.book-secondary-btn{background:#fff;border:1px solid #d7ded9;border-radius:14px;color:#1f684d;cursor:pointer;font-weight:800;margin-top:.75rem;padding:.95rem 1rem;transition:background .15s ease,border-color .15s ease;width:100%}.book-secondary-btn:hover{background:#e8f3eb;border-color:#c2d7ca}.book-secondary-btn:disabled{cursor:not-allowed;opacity:.6}.book-success-card{background:#fff;border:1px solid #e7e6df;border-radius:24px;box-shadow:0 18px 46px #14372b14;margin:0 auto;max-width:560px;padding:2rem;text-align:center;width:100%}.book-review-card{max-width:600px}.book-success-icon{background:#e8f3eb;border-radius:24px;color:#1f684d;display:grid;font-size:2.2rem;height:72px;margin:0 auto 1.2rem;place-items:center;width:72px}.book-error-icon{background:#fff0ed;color:#a83a2d}.book-success-card h1{color:#14372b;font-family:Georgia,serif;font-size:2rem;margin:0 0 .6rem}.book-success-card>p{color:#66736b;line-height:1.55;margin:0 0 1.2rem}.book-summary-box{grid-gap:.85rem;background:#fbfaf7;border:1px solid #e7e6df;border-radius:16px;display:grid;gap:.85rem;margin-bottom:1.2rem;padding:1rem;text-align:left}.book-summary-box div+div{border-top:1px solid #e7e6df;padding-top:.85rem}.book-summary-box span{color:#66736b;display:block;font-size:.85rem;margin-bottom:.2rem}.book-summary-box strong{color:#17382d;display:block;font-size:1.05rem}.book-error-box{align-items:flex-start;background:#fff4f1;border:1px solid #f2c9c3;border-radius:14px;color:#a83a2d;display:flex;gap:.6rem;line-height:1.45;margin-bottom:1rem;padding:.85rem;text-align:left}.book-error-box svg{flex-shrink:0;margin-top:.1rem}.book-calendar-day:focus-visible,.book-calendar-header button:focus-visible,.book-primary-btn:focus-visible,.book-secondary-btn:focus-visible,.book-time-btn:focus-visible{outline:3px solid #1f684d40;outline-offset:2px}@media (max-width:600px){.book-progress{border-radius:15px;gap:.25rem;padding:.5rem}.book-progress-step{font-size:.76rem;gap:.3rem;padding:.5rem .25rem}.book-progress-number{font-size:.72rem;height:25px;width:25px}.book-card{border-radius:20px;padding:1rem}.book-section-header{gap:.75rem;margin-bottom:1.2rem}.book-icon{border-radius:15px;font-size:1.2rem;height:46px;width:46px}.book-section-header h2{font-size:1.25rem}.book-section-header p{font-size:.9rem}.book-calendar-header strong{font-size:1.1rem}.book-calendar-weekdays{gap:.25rem}.book-calendar-weekdays span{font-size:.68rem}.book-calendar-grid{gap:.25rem}.book-calendar-day{border-radius:10px;font-size:.85rem;min-height:44px}.book-calendar-day small{bottom:3px;font-size:.58rem;height:16px;min-width:16px;padding:0 3px;right:3px}.book-time-grid{grid-template-columns:repeat(2,1fr)}.book-success-card{border-radius:20px;padding:1.4rem}.book-success-icon{border-radius:20px;font-size:1.8rem;height:62px;width:62px}.book-success-card h1{font-size:1.65rem}}@media (max-width:380px){.book-progress-label{display:none}.book-calendar-day{min-height:40px}.book-time-grid{grid-template-columns:1fr}}.book-calendar-key{align-items:center;color:#66736b;display:flex;font-size:.85rem;font-weight:700;gap:1.2rem;margin-bottom:1rem}.book-calendar-key>div{align-items:center;display:flex;gap:.4rem}.book-calendar-key-colour{border-radius:5px;display:block;flex-shrink:0;height:14px;width:14px}.book-calendar-key-colour.available{background:#e8f3eb;border:1px solid #cfe1d6}.book-calendar-key-colour.booked{background:#eeeaf8;border:1px solid #bdb3df}.book-calendar-day.booked{background:#eeeaf8;border-color:#bdb3df;color:#493a78;cursor:pointer}.book-calendar-day.booked:hover{background:#e3ddf4;border-color:#7564ae;color:#3e306c;transform:translateY(-1px)}.book-existing-card{max-width:620px}.book-existing-icon{background:#eeeaf8;color:#59458e}.book-existing-list{grid-gap:.85rem;display:grid;gap:.85rem;margin-bottom:1.2rem}.book-existing-appointment{background:#fbfaf7;border:1px solid #e7e6df;border-radius:16px;padding:1rem;text-align:left}.book-existing-appointment h2{color:#14372b;font-family:Georgia,serif;font-size:1.2rem;margin:0 0 .85rem}.book-existing-details{grid-gap:.8rem;display:grid;gap:.8rem;grid-template-columns:1fr 1fr}.book-existing-details div{background:#fff;border:1px solid #eceae4;border-radius:12px;padding:.8rem}.book-existing-details span{color:#66736b;display:block;font-size:.82rem;margin-bottom:.2rem}.book-existing-details strong{color:#17382d;display:block;line-height:1.4}@media (max-width:600px){.book-calendar-key{align-items:flex-start;flex-direction:column;gap:.45rem}.book-existing-details{grid-template-columns:1fr}}.client-settings-page{margin:0 auto;max-width:950px;width:100%}.client-settings-grid{grid-gap:1rem;display:grid;gap:1rem}.client-settings-card{background:#fff;border:1px solid #e7e6df;border-radius:24px;box-shadow:0 18px 46px #14372b14;padding:1.4rem}.client-settings-header{align-items:flex-start;display:flex;gap:.9rem;margin-bottom:1.2rem}.client-settings-danger-icon,.client-settings-icon{border-radius:17px;display:grid;flex-shrink:0;font-size:1.4rem;height:52px;place-items:center;width:52px}.client-settings-icon{background:#e8f3eb;color:#1f684d}.client-settings-danger-icon{background:#fff4f1;color:#a83a2d}.client-settings-header h2{color:#14372b;font-family:Georgia,serif;font-size:1.45rem;margin:0 0 .25rem}.client-settings-header p{color:#66736b;line-height:1.45;margin:0}.client-settings-field{margin-bottom:1rem}.client-settings-field label{color:#263d32;display:block;font-weight:800;margin-bottom:.4rem}.client-settings-password{align-items:center;display:flex;position:relative}.client-settings-password input{border:1px solid #dcd9cf;border-radius:13px;color:#17382d;outline:none;padding:.9rem 3rem .9rem 1rem;width:100%}.client-settings-password input:focus{border-color:#1f684d;box-shadow:0 0 0 3px #1f684d1f}.client-settings-password button{background:#0000;border:none;border-radius:50%;color:#1f684d;cursor:pointer;display:grid;height:38px;place-items:center;position:absolute;right:.55rem;width:38px}.client-settings-password button:hover{background:#e8f3eb}.client-settings-error,.client-settings-success{align-items:flex-start;border-radius:14px;display:flex;gap:.6rem;margin-bottom:1rem;padding:.85rem}.client-settings-error{background:#fff4f1;border:1px solid #f2c9c3;color:#a83a2d}.client-settings-success{background:#e8f3eb;border:1px solid #cfe1d6;color:#1f684d}.client-settings-error svg,.client-settings-success svg{flex-shrink:0;margin-top:.1rem}.client-settings-danger-btn,.client-settings-primary-btn,.client-settings-secondary-btn{border-radius:14px;cursor:pointer;font-weight:800;padding:.95rem 1rem;width:100%}.client-settings-primary-btn{background:#1f684d;border:none;color:#fff}.client-settings-primary-btn:hover{background:#18553f}.client-settings-secondary-btn{background:#fff;border:1px solid #d7ded9;color:#1f684d}.client-settings-secondary-btn:hover{background:#e8f3eb}.client-settings-danger-btn{background:#a83a2d;border:none;color:#fff}.client-settings-danger-btn:hover{background:#8d2f24}.client-settings-danger-btn:disabled,.client-settings-primary-btn:disabled,.client-settings-secondary-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:600px){.client-settings-card{border-radius:20px;padding:1rem}.client-settings-header{display:block}.client-settings-danger-icon,.client-settings-icon{margin-bottom:.8rem}.client-settings-header h2{font-size:1.3rem}}.reset-page{align-items:center;background:radial-gradient(circle at top left,#1f684d1f,#0000 35%),#f6f4ef;display:flex;justify-content:center;min-height:100vh;padding:2rem}.reset-card{background:#fff;border:1px solid #e7e6df;border-radius:24px;box-shadow:0 24px 70px #14372b1f;max-width:440px;padding:2rem;text-align:center;width:100%}.reset-icon{background:#e8f3eb;border-radius:22px;color:#1f684d;display:grid;font-size:2rem;height:68px;margin:0 auto 1.25rem;place-items:center;width:68px}.reset-error-icon{background:#fff4f1;color:#a83a2d}.reset-card h1{color:#14372b;font-family:Georgia,serif;font-size:2rem;margin:0 0 .6rem}.reset-card p{color:#66736b;line-height:1.5;margin:0 0 1.3rem}.reset-field{margin-bottom:1rem;text-align:left}.reset-field label{color:#263d32;display:block;font-weight:800;margin-bottom:.4rem}.reset-password-wrap{align-items:center;display:flex;position:relative}.reset-password-wrap input{border:1px solid #dcd9cf;border-radius:13px;color:#17382d;outline:none;padding:.9rem 3rem .9rem 1rem;width:100%}.reset-password-wrap input:focus{border-color:#1f684d;box-shadow:0 0 0 3px #1f684d1f}.reset-password-wrap button{background:#0000;border:none;border-radius:50%;color:#1f684d;cursor:pointer;display:grid;height:38px;place-items:center;position:absolute;right:.55rem;width:38px}.reset-password-wrap button:hover{background:#e8f3eb}.reset-error{align-items:flex-start;background:#fff4f1;border:1px solid #f2c9c3;border-radius:14px;color:#a83a2d;display:flex;gap:.6rem;margin-bottom:1rem;padding:.85rem;text-align:left}.reset-error svg{flex-shrink:0;margin-top:.1rem}.reset-primary-btn{background:#1f684d;border:none;border-radius:14px;color:#fff;cursor:pointer;display:inline-flex;font-weight:800;justify-content:center;padding:.95rem 1rem;text-decoration:none;width:100%}.reset-primary-btn:hover{background:#18553f;color:#fff}.reset-primary-btn:disabled{background:#c7d4cc;cursor:not-allowed}@media (max-width:600px){.reset-page{padding:1rem}.reset-card{border-radius:20px;padding:1.4rem}.reset-card h1{font-size:1.65rem}}
/*# sourceMappingURL=main.8b7ccdce.css.map*/