@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#17231f;background:#f5f7f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0}header{height:76px;background:#fff;border-bottom:1px solid #e5ebe7;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:11px}.logo{width:43px;height:43px;border-radius:13px;background:#0f766e;color:#fff;display:grid;place-items:center;box-shadow:0 7px 20px #0f766e2b}.brand h1{font:800 20px Plus Jakarta Sans;margin:0;letter-spacing:.4px}.brand p{font-size:11px;color:#6a756f;margin:1px 0 0}.primary{display:inline-flex;align-items:center;gap:7px;background:#0f766e;color:#fff;padding:11px 16px;border-radius:10px;font-weight:700;box-shadow:0 6px 15px #0f766e24}.primary:hover{background:#0b625c}.primary:disabled{opacity:.6;cursor:not-allowed}.secondary{background:#eef2ef;color:#34413b;padding:11px 16px;border-radius:10px;font-weight:700}.clearFilters{width:43px;height:43px;flex:0 0 43px;display:inline-grid;place-items:center;padding:0;color:#64736c}.clearFilters:hover{background:#e1eeeb;color:#0f766e}main{max-width:1240px;margin:0 auto;padding:34px 24px 45px}.hero{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.7px;color:#0f766e}.hero h2{font:800 31px Plus Jakarta Sans;margin:7px 0}.hero p{margin:0;color:#68736e}.connection{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;padding:8px 11px;border-radius:999px;background:#eaf6ef;color:#18714a}.connection span{width:7px;height:7px;background:#2da76c;border-radius:50%}.connection.local{background:#fff4dd;color:#93621a}.connection.local span{background:#e5a62d}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:23px}.stat{background:#fff;border:1px solid #e4e9e6;border-radius:14px;padding:17px;display:flex;gap:13px;align-items:center}.statIcon{width:38px;height:38px;border-radius:10px;background:#e9f5f3;color:#0f766e;display:grid;place-items:center}.statIcon svg{width:19px}.stat span{display:block;color:#78827d;font-size:12px}.stat strong{display:block;font:800 23px Plus Jakarta Sans;margin-top:3px}.monthlyRevenue{margin-bottom:23px;background:#fff;border:1px solid #e4e9e6;border-radius:14px;overflow:hidden}.monthlyToggle{width:100%;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;color:#27342e;text-align:left}.monthlyToggle:hover{background:#fafcfb}.monthlyToggleTitle{display:flex;align-items:center;gap:11px}.monthlyIcon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#fff3df;color:#b56b14}.monthlyToggle strong,.monthlyToggle small{display:block}.monthlyToggle strong{font:700 14px Plus Jakarta Sans}.monthlyToggle small{margin-top:3px;color:#85908b;font-size:12px}.monthlyContent{padding:4px 19px 19px;border-top:1px solid #edf0ee}.yearFilter{display:inline-flex;align-items:center;gap:8px;margin:14px 0 0;color:#85908b;font-size:12px}.yearFilter select{min-width:92px;padding:7px 25px 7px 9px;border:1px solid #dfe6e2;border-radius:8px;background:#fff;color:#27342e;font-size:12px;font-weight:700}.yearlyTotal{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0 4px;padding:14px 16px;border:1px solid #f1dfc2;border-radius:10px;background:#fffaf2}.yearlyTotal span,.yearlyTotal strong,.yearlyTotal small{display:block}.yearlyTotal span{color:#8a765d;font-size:11px;font-weight:700}.yearlyTotal strong{margin-top:3px;color:#a85f14;font:800 21px Plus Jakarta Sans}.yearlyTotal small{color:#8a765d;font-size:12px}.revenueChart{height:260px;display:flex;align-items:stretch;gap:12px;padding:24px 4px 0;overflow-x:auto}.revenueBarGroup{min-width:74px;flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;color:#85908b;font-size:11px;border:0;padding:0;cursor:pointer}.revenueBarGroup:hover .revenueBar{background:linear-gradient(180deg,#f4b862,#c9691d)}.revenueBarGroup>strong{width:100%;min-height:16px;display:block;overflow:hidden;color:#53625b;font-size:10px;font-weight:800;line-height:16px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.revenueBarTrack{width:100%;flex:1;display:flex;align-items:flex-end;background:#f2f6f4;border-radius:7px 7px 3px 3px;overflow:hidden}.revenueBar{width:100%;min-height:5px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#f0a84b,#d87b27)}.revenueBarGroup>span{white-space:nowrap}.revenueDetails{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:16px}.revenueDetail{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:11px 12px;border:1px solid #edf0ee;border-radius:9px;font-size:12px;background:#fff;color:#27342e;text-align:left;cursor:pointer}.revenueDetail:hover{border-color:#d5e4df;background:#fafcfb}.revenueDetail small{grid-column:1;color:#89938f}.revenueDetail strong{grid-column:2;grid-row:1 / span 2;align-self:center;color:#b56b14;font-size:13px}.monthlyEmpty{margin:0;padding:25px 0 10px;color:#85908b;font-size:13px}.revenueMonthPage{padding-top:16px}.revenueBack{display:inline-flex;align-items:center;gap:6px;padding:0;background:transparent;color:#0f766e;font-size:12px;font-weight:700}.revenueMonthHeading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:18px 0 14px}.revenueMonthHeading h3{margin:5px 0 0;font:700 20px Plus Jakarta Sans}.revenueMonthHeading>strong{color:#b56b14;font:800 20px Plus Jakarta Sans}.revenueBookingList{display:grid;gap:7px}.revenueBooking{display:grid;grid-template-columns:32px minmax(150px,1fr) minmax(150px,auto) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid #edf0ee;border-radius:9px;font-size:12px}.revenuePetIcon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#fff4e6;color:#b56b14}.revenueBooking strong,.revenueBooking small{display:block}.revenueBooking small,.revenueBookingDate{color:#85908b;font-size:11px}.revenueBooking>strong:last-child{color:#b56b14}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:13px}.search{height:43px;flex:1;max-width:550px;background:#fff;border:1px solid #dfe6e2;border-radius:10px;display:flex;align-items:center;padding:0 13px;color:#89938f}.search input{border:0;outline:0;width:100%;margin-left:8px;background:transparent}.filter{position:relative;display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #dfe6e2;border-radius:10px;padding:0 10px;color:#64706a}.filter select{appearance:none;border:0;outline:0;background:transparent;padding:11px 20px 11px 0;color:#27342e}.dateFilter{height:43px;gap:8px;padding:0 12px;white-space:nowrap}.dateFilter span{color:#89938f;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.dateFilter input{width:128px;min-width:0;padding:0;border:0;outline:0;background:transparent;color:#27342e;font-size:12px;font-weight:600}.dateFilter input::-webkit-calendar-picker-indicator{margin-left:4px;cursor:pointer;opacity:.65}.filter svg:last-child{position:absolute;right:9px;pointer-events:none}.tableCard{background:#fff;border:1px solid #e2e8e4;border-radius:15px;overflow:hidden}.tableHead{padding:17px 19px;border-bottom:1px solid #edf0ee;display:flex;align-items:center;justify-content:space-between;gap:16px}.tableHead h3{font:700 16px Plus Jakarta Sans;margin:0}.tableHead span{font-size:12px;color:#85908b}.pageSize,.pagination,.paginationActions{display:flex;align-items:center}.pageSize{gap:6px;color:#85908b;font-size:12px}.pageSize select{border:1px solid #dfe6e2;border-radius:7px;padding:5px 22px 5px 8px;background:#fff;color:#27342e;font-size:12px}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:890px}th{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#8a948f;text-align:left;background:#fafbfa;padding:11px 17px}td{padding:13px 17px;border-top:1px solid #edf0ee;font-size:13px;color:#48544e;vertical-align:middle}td small{display:flex;align-items:center;gap:4px;color:#8a948f;margin-top:4px;font-size:11px}.person,.pet{display:flex;align-items:center;gap:9px}.avatar{width:32px;height:32px;border-radius:9px;background:#f0f4f2;color:#64736c;display:grid;place-items:center}.pet>span{width:30px;height:30px;border-radius:9px;background:#fff4e6;color:#b56b14;display:grid;place-items:center}.person b,.pet b{color:#25322c;font-size:13px}.status{border:0;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700;outline:0}.status.booked{background:#edf2f0;color:#59665f}.status.confirmed{background:#e7f6ed;color:#21744d}.status.completed{background:#eaf0fb;color:#44658e}.status.cancelled{background:#fceaea;color:#a14b4b}.actions{display:flex;gap:5px}.actions button,.modalHead>button{width:32px;height:32px;border-radius:8px;background:#f3f5f4;color:#69756f;display:grid;place-items:center}.actions button:hover{background:#e8ecea;color:#0f766e}.empty{text-align:center;padding:60px 20px}.empty>div{width:55px;height:55px;border-radius:16px;background:#edf6f4;color:#0f766e;display:grid;place-items:center;margin:0 auto 13px}.empty h3{margin:0 0 5px;font:700 16px Plus Jakarta Sans}.empty p{margin:0 0 18px;color:#7a8580;font-size:13px}.pagination{justify-content:space-between;gap:16px;padding:12px 19px;border-top:1px solid #edf0ee;color:#85908b;font-size:12px}.paginationActions{gap:10px}.paginationActions .secondary{padding:7px 10px;border:1px solid #dedede;font-size:12px}.paginationActions .secondary:disabled{cursor:not-allowed;opacity:.45}.footer{text-align:center;color:#9aa39f;font-size:11px;margin:23px 0}.overlay{position:fixed;inset:0;background:#14221e80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;z-index:10}.modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 80px #0003}.modalHead{display:flex;justify-content:space-between;align-items:center;padding:21px 23px;border-bottom:1px solid #e9eeeb}.modalHead h3{font:800 21px Plus Jakarta Sans;margin:5px 0 0}.modal form{padding:4px 23px 23px}fieldset{border:0;padding:18px 0 4px;margin:0;border-bottom:1px solid #edf0ee}legend{font:700 13px Plus Jakarta Sans;margin-bottom:13px}.grid,.formGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.field,.modal form label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#68736e}.field input,.field select,.modal form input,.modal form select,.modal form textarea{width:100%;height:40px;border:1px solid #dfe6e2;border-radius:9px;padding:0 11px;outline:0;background:#fff;color:#27342e}.modal form textarea{min-height:82px;padding:10px 11px;resize:vertical}.field input:focus,.field select:focus,.modal form input:focus,.modal form select:focus,.modal form textarea:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e14}.formActions,.modalActions{display:flex;justify-content:flex-end;gap:9px;padding-top:18px}.toast{position:fixed;right:24px;bottom:24px;background:#19352e;color:#fff;padding:12px 15px;border-radius:10px;display:flex;align-items:center;gap:8px;box-shadow:0 12px 30px #0003;font-size:13px;z-index:20}@media(max-width:800px){header{padding:0 16px}.brand p{display:none}main{padding:25px 14px}.hero{align-items:start;flex-direction:column}.hero h2{font-size:26px}.stats{grid-template-columns:repeat(2,1fr)}.toolbar{flex-direction:column}.search{max-width:none}.dateFilter{justify-content:space-between}.dateFilter input{width:auto;flex:1;text-align:right}.grid,.formGrid{grid-template-columns:1fr}.modal form{padding:0 17px 17px}.modalHead{padding:18px}.connection{align-self:flex-start}.revenueBooking{grid-template-columns:32px 1fr auto}.revenueBookingDate{grid-column:2}.revenueBooking>strong:last-child{grid-column:3;grid-row:1 / span 2}.tableHead,.pagination{align-items:flex-start;flex-direction:column}.pagination{gap:10px}.paginationActions{justify-content:space-between;width:100%}}.authPage,.authLoading{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f7f3ec,#fff)}.authCard{width:min(430px,100%);background:#fff;border:1px solid #e9e3da;border-radius:24px;padding:34px;box-shadow:0 18px 60px #2d23191a}.authHeader{text-align:center}.authLogo{margin:0 auto 18px}.authCard h1{font-size:32px;margin:0 0 6px}.authHeader p{margin:0 0 28px;color:#6f6a64}.authIntro{color:#6f6a64;line-height:1.55;margin:0 0 24px}.authCard form{display:grid;gap:16px}.authField{display:grid;gap:7px;color:#4f4a44;font-size:12px;font-weight:700;text-align:left}.authSubmit{width:100%;justify-content:center;margin-top:4px}.authNotice,.authError{border-radius:12px;padding:11px 13px;font-size:13px;line-height:1.45}.authNotice{background:#f5f2eb;color:#5d554c;border:1px solid #e6ded3}.authError{background:#fff0ef;color:#9a3d35;border:1px solid #f1c9c4}.authFoot{display:block;color:#8a837a;margin-top:20px;line-height:1.45}.authLoading .authCard{text-align:center}.headerActions{display:flex;align-items:center;gap:10px}.signedIn{display:flex;flex-direction:column;align-items:flex-end;margin-right:4px}.signedIn span{font-size:11px;color:#8a837a}.signedIn b{font-size:12px;color:#4e4943;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.secondary{display:inline-flex;align-items:center;gap:7px;border:1px solid #ded7cd;background:#fff;color:#4f4a44;border-radius:11px;padding:10px 13px;font-weight:700;cursor:pointer}.secondary:hover{background:#f8f6f2}.authCard form input{width:100%;height:44px;border:1px solid #ded7cd;border-radius:10px;padding:0 12px;outline:0;background:#fff;color:#27342e}.authCard form input:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e14}.authCard .error{border-radius:12px;padding:11px 13px;font-size:13px;line-height:1.45;background:#fff0ef;color:#9a3d35;border:1px solid #f1c9c4}@media(max-width:800px){.headerActions{flex-wrap:wrap;justify-content:flex-end}.signedIn{display:none}}
