@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&family=Inter:wght@300;400;500;600;700&display=swap');:root{--blue:#111111;--blue-dark:#333333;--blue-light:#F4F3EF;--violet:#7c3aed;--navy:#0f172a;--navy-mid:#1e293b;--grey-1:#f8fafc;--grey-2:#f1f5f9;--grey-3:#e2e8f0;--grey-4:#94a3b8;--grey-5:#64748b;--text:#0f172a;--text-mid:#334155;--text-soft:#64748b;--white:#ffffff;--shadow-sm:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 16px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.05);--shadow-lg:0 16px 48px rgba(0,0,0,.12),0 4px 16px rgba(0,0,0,.06);--shadow-xl:0 32px 80px rgba(0,0,0,.14),0 8px 24px rgba(0,0,0,.08);--radius:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--pad:clamp(1rem,4vw,2rem);--ease:cubic-bezier(0.16,1,0.3,1);--fast:180ms;--base:300ms;}body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-size:1rem;line-height:1.6;color:var(--text);background:#FAFAF8;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}img{display:block;max-width:100%;}a{text-decoration:none;color:inherit;}button{font-family:inherit;cursor:pointer;border:none;background:none;}::selection{background:rgba(17,17,17,.08);}:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px;}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:inherit;font-size:.9375rem;font-weight:600;border-radius:var(--radius);padding:.625rem 1.25rem;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:background 180ms var(--ease),color 180ms var(--ease),box-shadow 300ms var(--ease),transform 180ms var(--ease);text-decoration:none;}.btn:active{transform:scale(.97);}.btn--primary{background:var(--blue);color:#fff;box-shadow:0 2px 8px rgba(17,17,17,.15);}.btn--primary:hover{background:var(--blue-dark);box-shadow:0 4px 16px rgba(17,17,17,.2);transform:translateY(-1px);}.btn--ghost{background:transparent;color:var(--text-mid);border-color:var(--grey-3);}.btn--ghost:hover{background:var(--grey-1);color:var(--text);}.btn--danger{background:#fef2f2;color:#dc2626;border-color:#fecaca;}.btn--danger:hover{background:#fee2e2;}.btn--sm{font-size:.8125rem;padding:.4rem .875rem;}.btn--lg{font-size:1rem;padding:.875rem 1.75rem;border-radius:var(--radius-lg);}::-webkit-scrollbar{width:5px;}::-webkit-scrollbar-track{background:var(--grey-1);}::-webkit-scrollbar-thumb{background:var(--grey-3);border-radius:99px;}.app-body{min-height:100vh;background:#f1f5f9;display:flex;flex-direction:column;}.app-nav{position:sticky;top:0;z-index:150;background:#FAFAF8;border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.05),0 2px 16px rgba(0,0,0,.05);display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);height:60px;gap:1rem;}.app-nav__right{display:flex;align-items:center;gap:.75rem;}.app-nav__user{font-size:.875rem;color:var(--text-mid);font-weight:500;display:none;}@media (min-width:640px){.app-nav__user{display:block;}}.dash-shell{display:flex;flex:1;min-height:0;}.sidebar{width:240px;background:var(--white);border-right:1px solid var(--grey-3);display:flex;flex-direction:column;padding:1.25rem 0;flex-shrink:0;}.sidebar__section{padding:0 .75rem;}.sidebar__label{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-4);padding:.5rem .75rem;margin-top:.5rem;}.sidebar__link{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;color:var(--text-soft);transition:background var(--fast),color var(--fast);cursor:pointer;border:none;background:none;font-family:inherit;width:100%;text-align:left;text-decoration:none;}.sidebar__link svg{width:18px;height:18px;flex-shrink:0;}.sidebar__link:hover{background:var(--grey-2);color:var(--text);}.sidebar__link.active{background:var(--blue-light);color:var(--blue);}.app-main{flex:1;min-width:0;display:flex;flex-direction:column;}.app-topbar{padding:1.25rem var(--pad) 0;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;}.app-topbar h1{font-family:'Playfair Display',Georgia,serif;font-size:1.625rem;font-weight:800;color:#111111;line-height:1.15;letter-spacing:-.02em;}.app-topbar p{font-size:.875rem;color:var(--text-soft);margin-top:.2rem;}.app-content{padding:1.5rem var(--pad) 3rem;flex:1;}.view{display:none;}.view.active{display:block;}.card{background:#ffffff;border:1px solid rgba(0,0,0,.07);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;box-shadow:0 1px 3px rgba(0,0,0,.05),0 2px 12px rgba(0,0,0,.04);}.card+.card{margin-top:1rem;}.card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap;}.card__title{font-family:'Playfair Display',Georgia,serif;font-size:1.125rem;font-weight:800;color:#111111;letter-spacing:-.02em;}.card__sub{font-size:.8125rem;color:var(--text-soft);margin-top:.2rem;}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;padding:.25rem .65rem;border-radius:var(--radius-full);letter-spacing:.01em;}.badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}.badge--pending_assignment{background:#eff6ff;color:#2563eb;}.badge--pending{background:#fefce8;color:#ca8a04;}.badge--confirmed{background:#F4F3EF;color:#111111;}.badge--in_progress{background:#f5f3ff;color:#7c3aed;}.badge--payment_pending{background:#fff7ed;color:#ea580c;}.badge--completed{background:#f0fdf4;color:#16a34a;}.badge--cancelled{background:#fef2f2;color:#dc2626;}.booking-item{display:block;padding:1.125rem 1.5rem;background:#ffffff;border:1px solid rgba(0,0,0,.07);border-radius:var(--radius-lg);box-shadow:0 1px 3px rgba(0,0,0,.06),0 1px 8px rgba(0,0,0,.04);transition:box-shadow var(--fast),transform var(--fast);}.booking-item__summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.booking-item__summary-left{display:flex;align-items:center;gap:.875rem;flex:1;min-width:0;}.booking-item__summary-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0;}.booking-item:hover{box-shadow:0 4px 16px rgba(0,0,0,.09);transform:translateY(-1px);}.booking-item+.booking-item{margin-top:.625rem;}.booking-item__left{display:flex;align-items:flex-start;gap:1rem;flex:1;min-width:0;}.booking-item__icon{width:44px;height:44px;background:var(--blue-light);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--blue);flex-shrink:0;}.booking-item__icon svg{width:20px;height:20px;}.booking-item__info{min-width:0;}.booking-item__vet{font-weight:600;font-size:.9375rem;color:var(--navy);}.booking-item__pet{font-size:.8125rem;color:var(--text-soft);margin-top:.1rem;}.booking-item__time{font-size:.8125rem;color:var(--text-mid);margin-top:.3rem;display:flex;align-items:center;gap:.3rem;}.booking-item__time svg{width:13px;height:13px;}.booking-item__right{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;}.booking-item__amount{font-weight:600;color:var(--navy);font-size:.9375rem;}.pp-card{background:#141929;border-radius:1.125rem;padding:1.25rem 1.25rem 1.125rem;color:#fff;position:relative;overflow:hidden;}.pp-card::after{content:'';position:absolute;top:-60px;right:-60px;width:220px;height:220px;background:rgba(255,255,255,.03);border-radius:50%;pointer-events:none;}.pp-card__topbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem;}.pp-card__label{display:flex;flex-direction:column;gap:.125rem;}.pp-card__label-brand{font-size:.625rem;font-weight:800;letter-spacing:.16em;color:rgba(255,255,255,.5);text-transform:uppercase;}.pp-card__label-text{font-size:.6rem;font-weight:600;letter-spacing:.1em;color:rgba(255,255,255,.3);text-transform:uppercase;}.pp-chip{width:36px;height:36px;background:rgba(255,255,255,.12);border:none;cursor:pointer;color:rgba(255,255,255,.45);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0;}.pp-chip.active{background:#fff;color:#141929;}.pp-card__name{font-size:2.125rem;font-weight:800;letter-spacing:-.03em;line-height:1;margin-bottom:.3rem;}.pp-card__subtitle{font-size:.8125rem;color:rgba(255,255,255,.4);margin-bottom:1.125rem;}.pp-card__stats{display:grid;grid-template-columns:1fr auto;gap:.75rem;padding-top:.875rem;border-top:1px solid rgba(255,255,255,.08);align-items:center;}.pp-stat__val{font-size:1.75rem;font-weight:700;line-height:1;color:#fff;}.pp-stat__lbl{font-size:.625rem;color:rgba(255,255,255,.35);margin-top:.25rem;text-transform:uppercase;letter-spacing:.07em;}.pp-stat--qr{background:rgba(255,255,255,.09);border-radius:.625rem;padding:.625rem 1rem;display:flex;flex-direction:column;align-items:center;cursor:default;gap:.125rem;}.pp-stat--qr svg{color:rgba(255,255,255,.75);}.pp-details-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;margin-top:.75rem;}.pp-detail{background:var(--white);border:1px solid var(--grey-3);border-radius:.875rem;padding:.875rem .5rem;text-align:center;}.pp-detail__val{font-size:.9375rem;font-weight:600;color:var(--navy);}.pp-detail__lbl{font-size:.6rem;color:var(--text-soft);margin-top:.25rem;text-transform:uppercase;letter-spacing:.06em;}.pp-due-banner{background:#fffbeb;border:1px solid #fde68a;border-radius:.875rem;padding:.875rem 1rem;display:flex;align-items:center;gap:.75rem;margin-top:.75rem;}.pp-due-icon{width:36px;height:36px;flex-shrink:0;background:#fef3c7;border-radius:50%;display:flex;align-items:center;justify-content:center;}.pp-due-banner__text{flex:1;}.pp-due-banner__title{font-weight:700;font-size:.9rem;color:#1c1c1e;}.pp-due-banner__sub{font-size:.75rem;color:#d97706;margin-top:.125rem;font-weight:500;}.pp-due-banner--overdue{background:#fef2f2;border-color:#fecaca;}.pp-due-banner--overdue .pp-due-icon{background:#fee2e2;}.pp-due-banner--overdue .pp-due-banner__sub{color:#dc2626;}.pp-history-heading{font-weight:700;font-size:1rem;color:var(--navy);margin:1.5rem 0 .875rem;}.pp-timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:1.5rem;}.pp-timeline::before{content:'';position:absolute;left:.3125rem;top:1.125rem;bottom:1.125rem;width:2px;background:#e4e4e4;border-radius:2px;}.pp-entry{display:flex;align-items:flex-start;gap:.75rem;position:relative;padding-bottom:.5rem;}.pp-entry:last-child{padding-bottom:0;}.pp-entry__dot-col{position:absolute;left:-1.5rem;top:1rem;width:10px;display:flex;justify-content:center;}.pp-entry__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;position:relative;z-index:1;border:2px solid white;}.pp-entry--done .pp-entry__dot{background:#22c55e;box-shadow:0 0 0 2px #bbf7d0;}.pp-entry--due .pp-entry__dot{background:#f59e0b;box-shadow:0 0 0 2px #fde68a;}.pp-entry__card{flex:1;background:var(--white);border:1px solid var(--grey-3);border-radius:.875rem;padding:.875rem 1rem;margin-bottom:.5rem;}.pp-entry__row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;}.pp-entry__title{font-weight:600;font-size:.9375rem;color:var(--navy);}.pp-entry__meta{font-size:.78rem;color:var(--text-soft);margin-top:.2rem;}.pp-entry__notes{font-size:.8125rem;color:var(--text-soft);margin-top:.375rem;}.pp-badge{font-size:.7rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;flex-shrink:0;text-transform:lowercase;}.pp-badge--done{background:#dcfce7;color:#16a34a;}.pp-badge--due{background:#fef3c7;color:#d97706;}.app-toast{position:fixed;bottom:calc(5.5rem+env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) translateY(12px);background:#111;color:#fff;padding:.75rem 1.375rem;border-radius:.75rem;font-size:.875rem;font-weight:500;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;z-index:9999;white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,.18);}.app-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}.app-toast--error{background:#dc2626;}.pet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;}.pet-card{border:2px solid var(--grey-3);border-radius:var(--radius-lg);padding:1rem;cursor:pointer;transition:border-color var(--fast),box-shadow var(--fast);background:var(--white);text-align:center;}.pet-card:hover{border-color:var(--blue);box-shadow:var(--shadow-sm);}.pet-card.selected{border-color:var(--blue);background:var(--blue-light);}.pet-card__avatar{width:52px;height:52px;background:var(--grey-2);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .625rem;color:var(--grey-4);}.pet-card__avatar svg{width:26px;height:26px;}.pet-card__name{font-weight:600;font-size:.9375rem;color:var(--navy);}.pet-card__breed{font-size:.8125rem;color:var(--text-soft);margin-top:.1rem;}.pet-card--add{border-style:dashed;}.pet-card--add .pet-card__avatar{background:var(--blue-light);color:var(--blue);}.field-group{margin-bottom:1.125rem;}.field-label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-mid);margin-bottom:.4rem;}.field-input,.field-select,.field-textarea{width:100%;padding:.625rem .875rem;border:1.5px solid var(--grey-3);border-radius:var(--radius);font-family:inherit;font-size:.9375rem;color:var(--text);background:var(--white);transition:border-color var(--fast),box-shadow var(--fast);outline:none;}.field-input:focus,.field-select:focus,.field-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(17,17,17,.07);}.field-input::placeholder,.field-textarea::placeholder{color:var(--grey-4);}.field-textarea{resize:vertical;min-height:90px;}.field-select{cursor:pointer;}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}.booking-steps{background:var(--white);border-bottom:1px solid var(--grey-3);padding:0 var(--pad);display:flex;align-items:stretch;overflow-x:auto;scrollbar-width:none;}.booking-steps::-webkit-scrollbar{display:none;}.step-item{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.875rem .75rem;font-size:.8125rem;font-weight:500;color:var(--grey-4);white-space:nowrap;position:relative;flex:1;min-width:0;transition:color var(--fast);}.step-item__num{width:22px;height:22px;border-radius:50%;background:var(--grey-3);color:var(--grey-4);font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:background var(--fast),color var(--fast);flex-shrink:0;}.step-item.active{color:var(--blue);}.step-item.active .step-item__num{background:var(--blue);color:white;}.step-item.done{color:var(--text-mid);}.step-item.done .step-item__num{background:#16a34a;color:white;}.step-item+.step-item::before{content:'';position:absolute;left:0;top:50%;width:1px;height:16px;background:var(--grey-3);transform:translateY(-50%);}.booking-body{width:100%;max-width:680px;margin:2rem auto;padding:0 var(--pad) 4rem;}.booking-panel{display:none;}.booking-panel.active{display:block;}.panel-title{font-size:1.25rem;font-weight:700;color:var(--navy);margin-bottom:.375rem;}.panel-sub{font-size:.9rem;color:var(--text-soft);margin-bottom:1.5rem;}.pin-wrap{display:flex;gap:.75rem;margin-bottom:1.5rem;}.pin-input{flex:1;padding:.75rem 1rem;border:1.5px solid var(--grey-3);border-radius:var(--radius);font-size:1.125rem;font-weight:600;letter-spacing:.1em;outline:none;transition:border-color var(--fast),box-shadow var(--fast);text-align:center;}.pin-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(17,17,17,.07);}.vet-list{display:flex;flex-direction:column;gap:.75rem;}.vet-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border:2px solid var(--grey-3);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--fast);background:var(--white);}.vet-item:hover{border-color:var(--blue);}.vet-item.selected{border-color:var(--blue);background:var(--blue-light);}.vet-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#333333,#111111);display:flex;align-items:center;justify-content:center;color:white;font-weight:700;font-size:1rem;flex-shrink:0;}.vet-info{flex:1;min-width:0;}.vet-name{font-weight:600;color:var(--navy);font-size:.9375rem;}.vet-spec{font-size:.8125rem;color:var(--text-soft);margin-top:.1rem;}.vet-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--grey-3);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--fast);}.vet-item.selected .vet-check{background:var(--blue);border-color:var(--blue);color:white;}.vet-item.selected .vet-check svg{display:block;}.vet-check svg{display:none;width:11px;height:11px;stroke-width:3;}.date-scroll{display:flex;gap:.5rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:.25rem;margin-bottom:1.25rem;scrollbar-width:none;}.date-scroll::-webkit-scrollbar{display:none;}.date-chip{display:flex;flex-direction:column;align-items:center;scroll-snap-align:start;padding:.625rem .875rem;border:1.5px solid var(--grey-3);border-radius:var(--radius);cursor:pointer;background:var(--white);flex-shrink:0;transition:border-color var(--fast),background var(--fast);min-width:60px;}.date-chip:hover{border-color:var(--blue);}.date-chip.selected{border-color:var(--blue);background:var(--blue-light);}.date-chip__day{font-size:.7rem;color:var(--text-soft);font-weight:500;}.date-chip__date{font-size:1.1rem;font-weight:700;color:var(--navy);margin:.1rem 0;}.date-chip__mon{font-size:.7rem;color:var(--text-soft);}.date-chip.selected .date-chip__day,.date-chip.selected .date-chip__date,.date-chip.selected .date-chip__mon{color:var(--blue);}.slot-group-label{grid-column:1 / -1;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft,#64748b);margin-top:.5rem;padding-bottom:.25rem;border-bottom:1px solid var(--grey-3);}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.5rem;}.slot-btn{padding:.625rem;border:1.5px solid var(--grey-3);border-radius:var(--radius);background:var(--white);font-family:inherit;font-size:.875rem;font-weight:500;color:var(--text);cursor:pointer;transition:border-color var(--fast),background var(--fast),color var(--fast);}.slot-btn:hover:not(:disabled){border-color:var(--blue);}.slot-btn.selected{border-color:var(--blue);background:var(--blue);color:white;}.slot-btn:disabled{background:var(--grey-2);color:var(--grey-4);cursor:not-allowed;text-decoration:line-through;}.review-box{background:var(--grey-1);border:1px solid var(--grey-3);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.5rem;}.review-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.5rem 0;}.review-row+.review-row{border-top:1px solid var(--grey-3);}.review-row__label{font-size:.8125rem;color:var(--text-soft);}.review-row__val{font-size:.9rem;font-weight:500;color:var(--navy);text-align:right;}.review-total{border-top:2px solid var(--grey-3) !important;}.review-total .review-row__label{font-weight:600;color:var(--navy);}.review-total .review-row__val{font-size:1.0625rem;font-weight:700;color:var(--blue);}.booking-ref-note{margin:.75rem 0 0;font-size:.8125rem;color:var(--text-muted,#64748b);background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem .75rem;}.booking-ref-note--active{background:#e8f5ef;border-color:#a8d5bc;color:#1a4a2e;font-weight:500;}.checkout-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;margin-bottom:1.25rem;}.checkout-section{padding:1rem 1.125rem;}.checkout-row{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem 0;}.checkout-row+.checkout-row{border-top:1px solid #f1f5f9;}.checkout-icon{display:none;}.checkout-row__label{font-size:.72rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;line-height:1;margin-bottom:2px;}.checkout-row__val{font-size:.9rem;font-weight:500;color:#0f172a;line-height:1.3;}.checkout-divider{height:1px;background:#e2e8f0;}.checkout-price-row{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;padding:.375rem 0;color:#334155;}.checkout-price-row--discount{color:#2e9496;font-weight:500;}.checkout-price-row--note{padding-top:.5rem;}.checkout-total{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1.125rem;background:#f8fafc;border-top:2px solid #e2e8f0;font-weight:600;font-size:.9375rem;color:#0f172a;}.checkout-total__amount{font-size:1.125rem;font-weight:700;color:#0e2a40;}.booking-confirm-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:0 0 env(safe-area-inset-bottom);}@media (min-width:600px){.booking-confirm-backdrop{align-items:center;}}.booking-confirm-dialog{background:#fff;border-radius:24px 24px 0 0;padding:2rem 1.5rem 1.75rem;width:100%;max-width:480px;text-align:center;}@media (min-width:600px){.booking-confirm-dialog{border-radius:20px;}}.booking-confirm-icon{width:52px;height:52px;background:#e8f5ef;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:#2e9496;}.booking-confirm-icon svg{width:24px;height:24px;}.booking-confirm-title{font-size:1.125rem;font-weight:700;color:#0f172a;margin-bottom:.375rem;}.booking-confirm-sub{font-size:.875rem;color:#64748b;margin-bottom:1rem;}.booking-confirm-notice{display:flex;align-items:flex-start;gap:.5rem;background:#fef9c3;border:1px solid #fde68a;border-radius:10px;padding:.75rem;font-size:.8125rem;color:#78350f;text-align:left;margin-bottom:1.25rem;}.booking-confirm-actions{display:flex;gap:.75rem;}.booking-confirm-actions .btn{flex:1;}.success-screen__title{font-size:1.375rem;font-weight:700;color:#0f172a;margin:.75rem 0 .375rem;}.success-screen__vet{font-weight:600;font-size:1rem;color:#0e2a40;margin-bottom:.25rem;}.success-screen__sub{font-size:.9rem;color:#64748b;margin-bottom:1.25rem;}.success-summary{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;margin-bottom:1rem;text-align:left;width:100%;}.success-summary__row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.625rem 1rem;font-size:.875rem;}.success-summary__row+.success-summary__row{border-top:1px solid #f1f5f9;}.success-summary__row span:first-child{color:#94a3b8;flex-shrink:0;}.success-summary__row span:last-child{font-weight:500;color:#0f172a;text-align:right;}.success-summary__divider{height:2px;background:#e2e8f0;}.success-summary__row--total span:first-child{font-weight:600;color:#0f172a;}.success-summary__row--total span:last-child{font-weight:700;color:#0e2a40;font-size:.9375rem;}.success-screen__notice{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#94a3b8;justify-content:center;}.step-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.75rem;}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(4px);z-index:200;display:none;align-items:center;justify-content:center;padding:1rem;}.modal-backdrop.open{display:flex;}.modal{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:2rem;}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;}.modal__title{font-size:1.125rem;font-weight:700;color:var(--navy);}.modal__close{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--grey-4);transition:background var(--fast),color var(--fast);flex-shrink:0;}.modal__close:hover{background:var(--grey-2);color:var(--text);}.modal__close svg{width:18px;height:18px;}.modal__footer{margin-top:1.5rem;display:flex;gap:.75rem;justify-content:flex-end;}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-soft);}.empty-state svg{width:48px;height:48px;color:var(--grey-3);margin:0 auto 1rem;}.empty-state h3{font-size:1rem;font-weight:600;color:var(--text-mid);margin-bottom:.375rem;}.empty-state p{font-size:.875rem;}.loading-state{display:flex;align-items:center;justify-content:center;padding:2.5rem;color:var(--text-soft);gap:.75rem;font-size:.9rem;}.spin{width:20px;height:20px;border:2px solid var(--grey-3);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#FAFAF8;border-top:1px solid rgba(0,0,0,.09);box-shadow:0 -4px 24px rgba(0,0,0,.08),0 -1px 0 rgba(0,0,0,.05);z-index:200;padding:.5rem .5rem calc(.5rem+env(safe-area-inset-bottom));gap:.125rem;}.mobile-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.4rem .15rem;border:none;background:none;font-family:inherit;font-size:.575rem;font-weight:600;color:var(--grey-4);cursor:pointer;border-radius:var(--radius);transition:color var(--fast),background var(--fast);white-space:nowrap;letter-spacing:.01em;min-width:0;}.mobile-nav__item svg{width:20px;height:20px;stroke-width:1.75;}.mobile-nav__item.active{color:var(--blue);}.mobile-nav__item.active svg{filter:drop-shadow(0 0 6px rgba(17,17,17,.15));}.mobile-nav__item:active{background:var(--grey-2);border-radius:10px;}@media (max-width:767px){.sidebar{display:none !important;}.mobile-nav{display:flex;}.app-content{padding-bottom:6rem;padding-left:1rem;padding-right:1rem;}.app-body{background:#f1f5f9;}.app-nav{padding:0 1rem;height:54px;background:#FAFAF8;}.app-nav .btn--ghost{display:none;}.app-nav .btn--primary{display:none;}.app-topbar{padding:1rem 0 0;}.app-topbar h1{font-size:1.2rem;}.app-topbar .btn{font-size:.8125rem;padding:.45rem .875rem;}.card{padding:1rem;}.booking-item{padding:1rem;}.booking-item__summary{flex-wrap:wrap;gap:.5rem;}.booking-item__summary-right{flex-wrap:wrap;}.booking-item__right{flex-direction:row;align-items:center;flex-wrap:wrap;width:100%;}.booking-item__left{width:100%;}.field-row{grid-template-columns:1fr;gap:.75rem;}.slot-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;}.slot-btn{font-size:.875rem;padding:.75rem .5rem;min-height:44px;}.date-chip{min-width:62px;padding:.625rem .75rem;flex-shrink:0;}.booking-steps{padding:0 .5rem;}.step-item{flex:none;padding:.75rem .5rem;font-size:.75rem;gap:.3rem;white-space:nowrap;}.step-item__num{width:18px;height:18px;font-size:.65rem;}.booking-body{margin:1rem auto;padding:0 1rem 5.5rem;}.panel-title{font-size:1.1rem;}.date-scroll{margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem;}.pin-wrap{flex-direction:column;}.pin-wrap .btn{width:100%;justify-content:center;}.pp-card__name{font-size:1.625rem;}.pp-details-row{border-radius:.625rem;}.pp-detail{padding:.75rem .5rem;}.modal-backdrop{align-items:flex-end;padding:0;}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:92vh;padding:1.5rem 1.25rem calc(1.5rem+env(safe-area-inset-bottom));}.modal__footer{flex-direction:column-reverse;}.modal__footer .btn{width:100%;justify-content:center;}.review-box{padding:1rem;}.step-nav{gap:.625rem;}.step-nav .btn{font-size:.875rem;padding:.625rem 1rem;}.success-screen{padding:2.5rem 1rem;}.action-row .btn{flex:1;justify-content:center;font-size:.8125rem;}.pet-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;}}@media (min-width:768px) and (max-width:1023px){.sidebar{width:200px;}.app-content{padding:1.25rem 1.25rem 3rem;}.field-row{grid-template-columns:1fr 1fr;}}@media (min-width:1024px){.mobile-nav{display:none !important;}.app-nav__user{display:block;}}.mobile-back-btn{display:none;align-items:center;gap:.375rem;background:none;border:none;padding:.375rem 0;font-size:.875rem;font-weight:600;color:var(--navy,#111);cursor:pointer;margin-bottom:.5rem;}@media (max-width:1023px){.mobile-back-btn{display:flex;}}.vet-badge{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:600;color:var(--blue);background:var(--blue-light);padding:.25rem .75rem;border-radius:var(--radius-full);}.vet-badge svg{width:13px;height:13px;}.action-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem;}.success-screen{text-align:center;padding:4rem 2rem;}.success-screen__icon{width:72px;height:72px;background:#f0fdf4;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;color:#16a34a;}.success-screen__icon svg{width:36px;height:36px;stroke-width:2;}.success-screen h2{font-size:1.5rem;font-weight:700;color:var(--navy);margin-bottom:.5rem;}.success-screen p{color:var(--text-soft);max-width:380px;margin:0 auto 2rem;}@keyframes spin{to{transform:rotate(360deg);}}.vet-available-badge{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:.875rem;margin-top:1rem;}.vet-available-count{font-weight:600;font-size:1rem;color:#15803d;}.vet-available-sub{font-size:.8125rem;color:#4b5563;margin-top:.125rem;}.assignment-wait{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 1.5rem;gap:1rem;}.assignment-wait__spinner{width:52px;height:52px;border:4px solid #e5e7eb;border-top-color:#111;border-radius:50%;animation:spin .9s linear infinite;}.assignment-wait h2{font-size:1.375rem;font-weight:700;margin:0;}.assignment-wait p{color:var(--text-soft);max-width:320px;margin:0;}.assignment-wait__attempts{font-size:.8125rem;color:var(--text-soft);min-height:1.25rem;}.accepting-toggle{display:flex;align-items:center;gap:.5rem;padding:.375rem .875rem;border-radius:2rem;border:1.5px solid #e5e7eb;cursor:pointer;font-size:.8125rem;font-weight:500;user-select:none;transition:border-color .2s,background .2s;}.accepting-toggle--on{border-color:#bbf7d0;background:#f0fdf4;color:#15803d;}.accepting-toggle--off{border-color:#e5e7eb;background:#f9fafb;color:#6b7280;}.accepting-toggle__dot{width:8px;height:8px;border-radius:50%;transition:background .2s;}.request-banner{background:#fff;border:2px solid #111;border-radius:1rem;padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 24px rgba(0,0,0,.1);}.request-banner__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}.request-banner__title{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1rem;}.request-banner__title svg{width:18px;height:18px;color:#111;animation:pulse-dot 1.5s ease-in-out infinite;}@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.6;transform:scale(.85);}}.request-banner__timer{font-size:1.375rem;font-weight:700;font-variant-numeric:tabular-nums;transition:color .3s;}.request-banner__body{margin-bottom:1.25rem;}.req-detail-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:1px solid #f3f4f6;font-size:.875rem;}.req-detail-row span{color:var(--text-soft);}.request-banner__actions{display:flex;gap:.75rem;}.request-banner__actions .btn{flex:1;justify-content:center;}.ref-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;max-width:560px;display:flex;flex-direction:column;gap:1.75rem;}.ref-card__how{display:flex;flex-direction:column;gap:.875rem;}.ref-how-step{display:flex;align-items:flex-start;gap:.875rem;font-size:.9rem;color:var(--text-soft);line-height:1.5;}.ref-how-step strong{color:var(--text);}.ref-how-num{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px;}.ref-code-block{background:linear-gradient(135deg,#0e2a40 0%,#0d2c3f 100%);border-radius:var(--radius);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.875rem;}.ref-code-label{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:0;}.ref-code-row{display:flex;align-items:center;gap:.75rem;}.ref-code{font-family:'JetBrains Mono','Fira Code','Courier New',monospace;font-size:1.875rem;font-weight:800;letter-spacing:.15em;color:#fff;user-select:all;}.ref-copy-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);cursor:pointer;transition:background .15s,color .15s;flex-shrink:0;}.ref-copy-btn svg{width:15px;height:15px;}.ref-copy-btn:hover{background:rgba(255,255,255,.2);color:#fff;}.ref-share-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.125rem;border-radius:var(--radius-full,9999px);background:#2e9496;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;border:none;transition:background .15s,transform .1s;width:fit-content;}.ref-share-btn svg{width:15px;height:15px;}.ref-share-btn:hover{background:#226f71;transform:translateY(-1px);}.ref-share-btn:active{transform:none;}.ref-welcome-banner{display:flex;align-items:flex-start;gap:.75rem;background:linear-gradient(135deg,#e8f5ef 0%,#d4ede3 100%);border:1px solid #a8d5bc;border-radius:10px;padding:.875rem 1rem;color:#1a4a2e;}.ref-welcome-banner strong{display:block;font-size:.875rem;margin-bottom:.2rem;}.ref-welcome-banner span{font-size:.8125rem;opacity:.85;line-height:1.4;}.ref-welcome-banner svg{margin-top:2px;color:#2e9496;}.ref-balance-strip{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;}.ref-balance-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:.875rem .5rem;gap:.2rem;}.ref-balance-val{font-size:1.375rem;font-weight:700;color:var(--text);line-height:1;}.ref-balance-lbl{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;text-align:center;}.ref-balance-divider{width:1px;background:var(--border);align-self:stretch;}.ref-rule-note{font-size:.78rem;color:var(--text-muted);text-align:center;margin:0;}.ref-rewards{display:flex;flex-direction:column;gap:.75rem;}.ref-rewards__title{font-size:.875rem;font-weight:700;color:var(--text);margin:0;}.ref-empty{font-size:.875rem;color:var(--text-soft);margin:0;padding:.75rem 0;}.ref-reward-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised,#fff);}.ref-reward-info{display:flex;flex-direction:column;gap:.2rem;min-width:0;}.ref-reward-who{font-size:.875rem;font-weight:600;color:var(--text);}.ref-reward-desc{font-size:.8125rem;color:var(--text-soft);}.ref-reward-date{font-size:.75rem;color:var(--text-muted,#aaa);}.ref-badge{flex-shrink:0;display:inline-flex;align-items:center;padding:.3rem .7rem;border-radius:9999px;font-size:.75rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;}.ref-badge--available{background:#e8f5ef;color:#156f3a;border:1px solid #b3e0c8;}.ref-badge--used{background:#f5f5f5;color:#888;border:1px solid #e0e0e0;}@media (max-width:480px){.ref-card{padding:1.125rem;gap:1.25rem;}.ref-code{font-size:1.5rem;}.ref-reward-row{flex-direction:column;align-items:flex-start;}}.vet-assigning{color:var(--text-soft,#94a3b8);font-style:italic;font-weight:500;}.vet-assigning__dots span{animation:vet-blink 1.4s infinite;opacity:0;}.vet-assigning__dots span:nth-child(1){animation-delay:0s;}.vet-assigning__dots span:nth-child(2){animation-delay:.2s;}.vet-assigning__dots span:nth-child(3){animation-delay:.4s;}@keyframes vet-blink{0%,80%,100%{opacity:0;}40%{opacity:1;}}body[data-packages="off"] .pkg-feature{display:none !important;}