:root{--green-700:#116530;--green-600:#167a3d;--green-100:#eaf6ed;--ink:#152118;--muted:#5d6a60;--line:#d9e4dc;--white:#fff}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--white);font-family:Arial,sans-serif}main{max-width:1100px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px}.brand{color:var(--green-700);font-size:1.25rem;font-weight:800}button{background:var(--green-700);border:0;border-radius:8px;color:#fff;font-weight:700;padding:12px 16px}button:focus-visible{outline:3px solid #76c893;outline-offset:3px}.hero{padding:72px 0 48px;max-width:650px}.hero h1{font-size:clamp(2.2rem,7vw,4.5rem);line-height:1;margin:8px 0 18px}.hero p{color:var(--muted);font-size:1.1rem;line-height:1.6}.eyebrow{color:var(--green-700)!important;font-size:.75rem!important;font-weight:800;letter-spacing:.09em}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:16px;gap:16px}article{border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--white)}article h2{color:var(--green-700);font-size:1rem;margin:0 0 10px}article p{color:var(--muted);line-height:1.45;margin:0}.login-shell{align-items:center;background:var(--green-100);display:flex;justify-content:center;max-width:none;min-height:100vh;padding:24px}.login-card{background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 36px rgba(17,101,48,.12);display:flex;flex-direction:column;max-width:420px;padding:32px;width:100%}.login-card h1{font-size:2rem;margin:4px 0 8px}.login-description{color:var(--muted);margin:0 0 28px}.login-card label{font-weight:700;margin:16px 0 7px}.login-card input{border:1px solid #9eafa3;border-radius:8px;font:inherit;min-height:44px;padding:10px}.login-card input:focus-visible{border-color:var(--green-700);outline:3px solid #bfe5c8}.login-card button{margin-top:24px;min-height:44px}.login-card button:disabled{cursor:not-allowed;opacity:.65}.form-error{color:#a2251b;line-height:1.4;margin:16px 0 0}.session-message{background:var(--green-100);border-radius:8px;color:var(--green-700);line-height:1.4;margin:0 0 8px;padding:10px 12px}.first-access-card{max-width:460px}.password-hint{color:var(--muted);line-height:1.4;margin-top:10px}.dashboard-shell{background:#f8fbf9;display:grid;grid-template-columns:247px minmax(0,1fr);max-width:none;min-height:100vh;padding:0}.sidebar{background:#fff;border-right:1px solid #e1e8e4;padding:26px 18px}.brand-lockup{gap:10px;margin:0 10px 34px;position:relative}.brand-lockup,.brand-mark{align-items:center;display:flex}.brand-mark{background:#19a463;border-radius:15px 3px 15px 3px;color:#fff;height:52px;justify-content:center;transform:skewY(-7deg);width:52px}.brand-lockup b,.brand-lockup small{display:block;line-height:.95}.brand-lockup b{color:#17231d;font-size:25px}.brand-lockup small{color:#17231d;font-size:17px;margin-top:4px}.collapse-button{background:#f7faf8;border:0;border-radius:50%;color:#66736c;margin-left:auto;min-height:34px;padding:7px;width:34px}.sidebar nav{display:grid;grid-gap:7px;gap:7px}.nav-item{align-items:center;background:transparent;border:0;border-radius:9px;color:#46524b;display:flex;font-size:15px;font-weight:500;gap:16px;min-height:45px;padding:0 16px;text-align:left;width:100%}.nav-item:focus-visible,.nav-item:hover{background:#f1f8f4;color:#0b6b45;outline:0}.nav-item--active{background:#eaf8f1;color:#0b6b45;font-weight:700}.sidebar-divider{border-top:1px solid #e1e8e4;margin:27px 7px 24px}.nav-section{color:#8b9690;font-size:12px;font-weight:700;margin:0 16px 12px}.dashboard-main{min-width:0}.topbar{background:#fff;border-bottom:1px solid #e1e8e4;display:flex;gap:20px;min-height:86px;padding:0 30px}.topbar h1{font-size:24px;font-weight:650;margin:0}.search-box{align-items:center;border:1px solid #d9e2dd;border-radius:10px;color:#66736c;display:flex;height:48px;margin-left:auto;max-width:333px;padding:0 13px;width:100%}.search-box input{border:0;color:#17231d;font:inherit;margin-left:10px;min-width:0;outline:0;width:100%}.search-box input::placeholder{color:#8b9690}.search-box kbd{color:#8b9690;font:inherit;font-size:13px;white-space:nowrap}.icon-button{align-items:center;background:transparent;border:0;color:#17231d;display:flex;justify-content:center;min-height:42px;padding:0;position:relative;width:42px}.notification i{background:#19a463;border:2px solid #fff;border-radius:50%;height:11px;position:absolute;right:6px;top:7px;width:11px}.account-button{background:transparent;border:0;color:#17231d;font-size:15px;gap:10px;min-height:48px;padding:0}.account-button,.avatar{align-items:center;display:flex}.avatar{background:linear-gradient(135deg,#bdebd3,#178854);border-radius:50%;color:#fff;font-size:16px;font-weight:800;height:40px;justify-content:center;width:40px}.dashboard-content{margin:0 auto;max-width:1170px;padding:30px 24px 42px}.welcome h2{font-size:33px;letter-spacing:-.7px;line-height:1.05;margin:0 0 7px}.welcome p{color:#66736c;font-size:17px;margin:0 0 28px}.metrics-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.metric-card,.panel{background:#fff;border:1px solid #e1e8e4;border-radius:14px}.metric-card{align-items:flex-start;display:flex;gap:16px;min-height:140px;padding:19px 17px}.metric-icon{align-items:center;background:#eaf8f1;border-radius:10px;color:#0b8352;display:flex;flex:0 0 auto;height:60px;justify-content:center;width:60px}.metric-icon--expense{background:#fdecee;color:#dc3545}.metric-body{display:grid;grid-gap:5px;gap:5px;min-width:0}.metric-body>span{font-size:14px}.metric-body strong{font-size:23px;letter-spacing:-.5px;white-space:nowrap}.metric-body small{align-items:center;color:#66736c;display:flex;font-size:13px;gap:6px;margin-top:10px;white-space:nowrap}.metric-body .change{color:#079655;font-size:14px;font-weight:750}.metric-body .change--negative{color:#dc3545}.client-stat em,.metric-body em{color:#8b9690;font-size:12px;font-style:normal;font-weight:400}.metric-note{padding-left:0}.dashboard-middle{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1.75fr) minmax(320px,1fr);margin-top:18px}.panel{padding:18px}.panel-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.panel-heading h3{font-size:18px;letter-spacing:-.3px;margin:0}.text-action{background:transparent;border:0;color:#079655;font-size:14px;font-weight:650;min-height:32px;padding:0}.period-tabs{display:flex;gap:7px}.period-tabs button{background:#f7f9f8;border:1px solid #e7ece9;border-radius:8px;color:#66736c;font-size:13px;min-height:35px;padding:0 15px}.period-tabs .is-selected{background:#19a463;border-color:#19a463;color:#fff}.chart-wrap{height:235px;width:100%}.chart-wrap svg{height:100%;overflow:visible;width:100%}.chart-grid path{fill:none;stroke:#e5ebe7;stroke-width:1}.income-line{fill:none;stroke:#0bac67;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.expense-line{fill:none;stroke:#24c989;stroke-dasharray:7 7;stroke-linecap:round;stroke-width:2}.income-dot{fill:#10ad67;stroke:#fff;stroke-width:2}.chart-wrap text{fill:#66736c;font-family:inherit;font-size:12px}.chart-legend{display:flex;gap:25px;margin:6px 0 4px 7px}.chart-legend span{align-items:center;display:flex;font-size:13px;gap:8px}.legend-dot{background:#10ad67;border-radius:50%;height:13px;width:13px}.legend-dot--light{background:#9fe4c8}.appointment-list{display:grid;grid-gap:10px;gap:10px}.appointment{align-items:center;border:1px solid #e5ebe7;border-radius:12px;display:grid;grid-gap:13px;gap:13px;grid-template-columns:70px 1fr auto;min-height:74px;padding:10px}.appointment time{align-items:center;background:#eaf8f1;border-radius:9px;color:#087646;display:flex;font-size:15px;font-weight:750;height:50px;justify-content:center}.appointment b,.appointment small{display:block}.appointment b{font-size:14px;margin-bottom:5px}.appointment small,.appointment-staff{color:#66736c;font-size:13px}.appointment-staff{align-items:center;display:flex;gap:7px}.dashboard-bottom{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1.05fr 1.15fr 1fr;margin-top:18px}.progress-row{align-items:center;display:grid;grid-gap:12px;gap:12px;grid-template-columns:83px 1fr 28px;min-height:61px}.progress-row+.progress-row{border-top:1px solid #edf1ef}.progress-row>span{font-size:14px}.progress-row>div,.team-progress{background:#e9eeeb;border-radius:999px;height:11px;overflow:hidden}.progress-row i,.team-progress i{background:linear-gradient(90deg,#22bd77,#10a45f);border-radius:inherit;display:block;height:100%}.progress-row b{font-size:14px;text-align:right}.team-row{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:43px 1fr auto;min-height:61px}.member-avatar{align-items:center;background:#eaf8f1;border-radius:50%;color:#087646;display:flex;font-size:14px;font-weight:700;height:40px;justify-content:center;width:40px}.team-row b{display:block;font-size:14px;margin-bottom:9px}.team-row small{color:#66736c;font-size:12px}.client-stat{align-items:center;border:1px solid #e7ece9;border-radius:11px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:52px 1fr auto;margin-top:10px;min-height:91px;padding:12px}.client-icon{align-items:center;background:#eaf8f1;border-radius:9px;color:#087646;display:flex;height:52px;justify-content:center;width:52px}.client-stat b,.client-stat small{display:block}.client-stat small{font-size:13px}.client-stat b{font-size:22px;margin-top:3px}.client-stat strong{color:#079655;font-size:15px;text-align:right}.client-stat em{display:block;margin-top:5px}.dashboard-denied{align-items:center;display:flex;justify-content:center;min-height:100vh}.dashboard-denied h1{font-size:20px}.sr-only{clip:rect(0,0,0,0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:1100px){.dashboard-shell{grid-template-columns:210px minmax(0,1fr)}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-middle{grid-template-columns:1fr}.dashboard-bottom{grid-template-columns:repeat(2,minmax(0,1fr))}.clients-panel{grid-column:span 2}.client-stat{display:inline-grid;margin-right:10px;width:calc(50% - 7px)}}@media (max-width:760px){.dashboard-shell{display:block}.sidebar{display:none}.topbar{gap:10px;min-height:68px;padding:0 16px}.topbar h1{font-size:20px}.account-button>span:not(.avatar),.account-button>svg,.search-box{display:none}.dashboard-content{padding:24px 16px}.welcome h2{font-size:28px}.dashboard-bottom,.metrics-grid{grid-template-columns:1fr}.clients-panel{grid-column:auto}.client-stat{display:grid;margin-right:0;width:100%}.financial-panel{overflow:hidden}.panel-heading{align-items:flex-start;gap:12px}.period-tabs{gap:4px}.period-tabs button{font-size:12px;padding:0 9px}.chart-wrap{height:205px;min-width:540px}.financial-panel{overflow-x:auto}.appointment{grid-template-columns:64px 1fr}.appointment-staff{grid-column:2}.dashboard-bottom,.dashboard-middle{margin-top:14px}}.dashboard-heading{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.dashboard-period{flex:0 0 auto}.dashboard-period button:disabled{cursor:not-allowed;opacity:.7}.metric-icon--expense{background:#fff6dd;color:#b86a00}.change--positive{color:#079655!important}.change--negative{color:#dc3545!important}.metric-body small{white-space:normal}.text-action{align-items:center;display:inline-flex;text-decoration:none}.appointment{color:inherit;text-decoration:none}.appointment:focus-visible,.appointment:hover{background:#f7fcf9;border-color:#8ad7b2;outline:3px solid #bfe5c8;outline-offset:1px}.appointment time{flex-direction:column}.appointment time small{font-size:10px;margin-top:2px}.chart-wrap{height:250px}.progress-row{grid-template-columns:minmax(83px,1fr) 1fr 35px}.client-variation{text-align:right}.client-variation small{align-items:center;display:flex;gap:4px}.dashboard-empty{align-items:center;color:#66736c;display:flex;justify-content:center;min-height:145px;text-align:center}.dashboard-error{align-items:center;background:#fdecee;border:1px solid #efb7bd;border-radius:10px;color:#8c1d28;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px;padding:12px 14px}.dashboard-error button{background:#fff;border:1px solid #dc3545;color:#8c1d28}.dashboard-skeleton{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,1fr)}.dashboard-skeleton div,.dashboard-skeleton span{animation:dashboard-pulse 1.2s infinite alternate;background:#edf3ef;border-radius:14px;min-height:140px}.dashboard-skeleton div{grid-column:span 2;min-height:300px}@keyframes dashboard-pulse{to{opacity:.45}}@media(max-width:760px){.dashboard-heading{display:block}.dashboard-period{margin-bottom:20px;overflow-x:auto;padding-bottom:3px}.dashboard-period button{white-space:nowrap}.dashboard-skeleton{grid-template-columns:1fr}.dashboard-skeleton div{grid-column:auto}.chart-wrap{height:230px;min-width:520px}}.dashboard-middle{align-items:start}.dashboard-chart-legend{align-items:center;display:flex;font-size:12px;gap:18px;justify-content:center;margin:6px 0 2px}.dashboard-chart-legend span{align-items:center;color:#66736c;display:inline-flex;gap:6px}.dashboard-chart-dot{border-radius:50%;display:inline-block;height:8px;width:8px}.dashboard-chart-dot--revenue{background:#0bac67}.dashboard-chart-dot--expense{background:#d99500}