:root{--background:#eef1f5;--surface:#fff;--surface-soft:#f5f6f8;--text:#171a1f;--muted:#6d747d;--line:#e8eaee;--brand:#4f46e5;--shadow:0 20px 60px #11182729}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;letter-spacing:-.01em;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,system-ui,sans-serif}svg{display:block}button{cursor:pointer;font:inherit}a{color:inherit;text-decoration:none}.shell{background:var(--surface);flex-direction:column;max-width:32rem;min-height:100dvh;margin:0 auto;display:flex}.brand-header{border-bottom:1px solid var(--line);background:var(--surface);z-index:5;align-items:center;gap:.75rem;padding:1rem 1.15rem;display:flex;position:sticky;top:0}.brand-logo{background:var(--brand);color:#fff;border-radius:.85rem;flex:none;place-items:center;width:2.75rem;height:2.75rem;font-size:1.2rem;font-weight:800;display:grid;overflow:hidden}.brand-logo img{object-fit:cover;width:100%;height:100%}.brand-logo--placeholder{background:var(--surface-soft);color:var(--muted);border:1px dashed var(--line);text-align:center;letter-spacing:.01em;padding:.15rem;font-size:.6rem;font-weight:700;line-height:1.05}.brand-logo--placeholder span{max-width:100%;display:block}.welcome .brand-logo--placeholder{font-size:.95rem}.brand-title{gap:.1rem;min-width:0;display:grid}.brand-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.brand-title span{color:var(--muted);font-size:.8rem}.brand-header .spacer{margin-left:auto}.link-back{color:var(--brand);border-radius:.7rem;align-items:center;gap:.3rem;padding:.4rem .6rem;font-size:.9rem;font-weight:700;display:inline-flex}.content{flex:1;padding:1.1rem 1.15rem 2.5rem}.greeting{margin:0 0 1.25rem}.greeting h1{margin:0 0 .2rem;font-size:1.55rem;line-height:1.15}.greeting p{color:var(--muted);margin:0}.section-title{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 .75rem;font-size:.82rem;font-weight:800}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.tile{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:1.1rem;gap:.35rem;min-width:0;padding:1.1rem 1rem;transition:transform .12s,border-color .12s;display:grid;box-shadow:0 6px 16px #1118270f}.tile:active{border-color:var(--brand);transform:scale(.97)}.tile-emoji{font-size:1.6rem;line-height:1}.tile strong{font-size:1rem}.tile small{color:var(--muted);font-size:.82rem;line-height:1.2}.cta{background:var(--brand);color:#fff;border-radius:1.1rem;align-items:center;gap:.85rem;margin-bottom:1.5rem;padding:1rem 1.1rem;transition:transform .12s;display:flex;box-shadow:0 10px 24px #11182724}.cta:active{transform:scale(.98)}.cta-emoji{font-size:1.5rem;line-height:1}.cta-text{flex:1;gap:.1rem;min-width:0;display:grid}.cta-text strong{font-size:1.05rem}.cta-text small{opacity:.9;font-size:.82rem}.cta-arrow{opacity:.9;font-size:1.6rem;line-height:1}.notif{border:1px solid var(--line);background:var(--surface);border-radius:1rem;align-items:flex-start;gap:.7rem;padding:.85rem .9rem;display:flex}.notif--unread{border-color:color-mix(in srgb, var(--brand) 35%, var(--line));background:color-mix(in srgb, var(--brand) 5%, var(--surface))}.notif-icon{background:var(--surface-soft);border-radius:.65rem;flex:none;place-items:center;width:2.1rem;height:2.1rem;font-size:1rem;display:grid}.notif-body{gap:.15rem;min-width:0;display:grid}.notif-body strong{font-size:.92rem;line-height:1.3}.notif-desc{color:var(--muted);font-size:.83rem;line-height:1.35}.notif-time{color:var(--muted);font-size:.73rem}.notif-dot{background:var(--brand);border-radius:50%;flex:none;align-self:center;width:.5rem;height:.5rem}.tabs{background:var(--surface-soft);border-radius:.9rem;gap:.4rem;margin-bottom:.9rem;padding:.25rem;display:flex}.tab{min-height:2.4rem;color:var(--muted);background:0 0;border:0;border-radius:.7rem;flex:1;font-size:.85rem;font-weight:700}.tab.on{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #11182714}.cat-grid{gap:.7rem;display:grid}.cat-card{border:1px solid var(--line);background:var(--surface);border-radius:1.1rem;gap:.85rem;padding:.8rem;display:flex}.cat-photo{object-fit:cover;background:var(--surface-soft);border-radius:.85rem;flex:none;width:5rem;height:5rem}.cat-photo--empty{place-items:center;font-size:1.6rem;display:grid}.cat-body{flex-direction:column;gap:.3rem;min-width:0;display:flex}.cat-name{font-size:.97rem;line-height:1.25}.cat-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;line-height:1.35;display:-webkit-box;overflow:hidden}.cat-meta{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.cat-price{color:var(--brand);font-size:.95rem;font-weight:800}.cat-chip{background:var(--surface-soft);color:var(--muted);border-radius:.45rem;padding:.12rem .45rem;font-size:.74rem;font-weight:600}.cat-chip--out{color:#b91c1c;background:#fef2f2}.cat-deposit{color:var(--muted);font-size:.76rem}.cat-card .btn.sm{align-self:flex-start;margin-top:.2rem}.next-appt{background:var(--brand);color:#fff;box-shadow:0 12px 32px color-mix(in srgb, var(--brand) 32%, transparent);border-radius:1.2rem;gap:.2rem;padding:1.1rem 1.15rem;display:grid}.next-appt:active{transform:scale(.99)}.next-appt-label{letter-spacing:.07em;text-transform:uppercase;opacity:.85;font-size:.72rem;font-weight:700}.next-appt-when{font-size:1.2rem;line-height:1.25}.next-appt-what{opacity:.9;font-size:.88rem}.next-appt-cta{opacity:.95;margin-top:.45rem;font-size:.82rem;font-weight:700}.summary-strip{border:1px solid var(--line);background:var(--surface);border-radius:1.1rem;align-items:center;gap:1.1rem;margin-top:.85rem;padding:.9rem 1.1rem;display:flex}.summary-stat{gap:.1rem;display:grid}.summary-stat strong{color:var(--brand);font-size:1.25rem;line-height:1}.summary-stat span{color:var(--muted);font-size:.76rem}.summary-link{color:var(--brand);margin-left:auto;font-size:.82rem;font-weight:700}.quick-book{border:1px dashed color-mix(in srgb, var(--brand) 45%, var(--line));min-height:2.9rem;color:var(--brand);border-radius:1rem;justify-content:center;align-items:center;gap:.45rem;margin-top:.85rem;font-size:.9rem;font-weight:700;display:flex}.quick-book:active{transform:scale(.99)}.list{gap:.65rem;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:1rem;gap:.3rem;padding:.9rem 1rem;display:grid;box-shadow:0 4px 12px #1118270d}.card-head{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.card-head strong{overflow-wrap:anywhere;min-width:0;font-size:1rem}.card-head .amount{color:var(--brand);white-space:nowrap;flex:none;font-weight:800}.card-meta{color:var(--muted);font-size:.85rem}.card-meta.warn{color:#a16207}.badge{background:var(--surface-soft);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;border-radius:1rem;padding:.12rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.card-actions{margin-top:.35rem}.btn{background:var(--brand);color:#fff;border:0;border-radius:.85rem;justify-content:center;align-items:center;gap:.4rem;min-height:2.6rem;padding:0 1.1rem;font-size:.92rem;font-weight:800;display:inline-flex}.btn.ghost{background:var(--surface-soft);color:var(--text);border:1px solid var(--line)}.btn.block{width:100%}.btn.sm{min-height:2.3rem;padding:0 .9rem;font-size:.85rem}.btn[disabled]{opacity:.55;pointer-events:none}.card-actions.row{gap:.55rem;display:flex}.card-actions.row .btn{flex:1}.offer{border:1px solid color-mix(in srgb, var(--brand) 30%, var(--line));background:color-mix(in srgb, var(--brand) 4%, var(--surface));border-radius:1rem;gap:.35rem;padding:.95rem 1rem;display:grid;box-shadow:0 4px 12px #1118270d}.offer-head{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.offer-head strong{overflow-wrap:anywhere;min-width:0;font-size:1rem}.offer-badge{background:var(--brand);color:#fff;white-space:nowrap;border-radius:1rem;flex:none;padding:.15rem .6rem;font-size:.78rem;font-weight:800}.offer-desc{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.9rem}.offer--accepted{border-color:color-mix(in srgb, #16a34a 35%, var(--line));background:color-mix(in srgb, #16a34a 6%, var(--surface))}.offer--accepted .offer-badge{background:#16a34a}.offer-accepted{color:#15803d;margin-top:.2rem;font-size:.88rem;font-weight:700}.card.pick{text-align:left;cursor:pointer;width:100%;transition:transform .12s,border-color .12s}.card.pick:active{border-color:var(--brand);transform:scale(.98)}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.service-card{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:1.1rem;flex-direction:column;align-items:flex-start;gap:.3rem;min-width:0;min-height:9.5rem;padding:.9rem .85rem .8rem;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex;overflow:hidden;box-shadow:0 6px 16px #1118270f}.service-card:active{border-color:var(--brand);transform:scale(.97);box-shadow:0 10px 22px #1118271f}.service-icon{background:color-mix(in srgb, var(--brand) 12%, #fff);border-radius:.85rem;place-items:center;width:2.6rem;height:2.6rem;margin-bottom:.1rem;font-size:1.4rem;line-height:1;display:grid}.service-name{overflow-wrap:anywhere;width:100%;min-width:0;font-size:.95rem;line-height:1.15}.service-desc{width:100%;min-width:0;color:var(--muted);overflow-wrap:anywhere;font-size:.78rem;line-height:1.25}.service-foot{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.15rem .4rem;width:100%;min-width:0;margin-top:auto;padding-top:.4rem;display:flex}.service-dur{min-width:0;color:var(--muted);font-size:.75rem;font-weight:600}.service-price{color:var(--brand);white-space:nowrap;flex:none;font-size:.9rem;font-weight:800}.step-back{color:var(--brand);background:0 0;border:0;align-items:center;margin-bottom:.6rem;padding:.3rem 0;font-size:.9rem;font-weight:700;display:inline-flex}.inline-err{color:#b91c1c;background:#fef2f2;border-radius:.7rem;margin:0 0 .8rem;padding:.6rem .8rem;font-size:.85rem;font-weight:600}.cal{gap:1rem;display:grid}.cal-days{-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:.5rem;padding-bottom:.3rem;display:flex;overflow-x:auto}.cal-day{border:1px solid var(--line);background:var(--surface);min-width:3.7rem;color:var(--text);border-radius:.95rem;flex:none;justify-items:center;gap:.12rem;padding:.55rem .45rem;transition:transform .1s,border-color .1s,background .1s;display:grid;box-shadow:0 3px 8px #1118270d}.cal-day.on{background:var(--brand);border-color:var(--brand);color:#fff}.cal-day:active{transform:scale(.96)}.cal-dow{text-transform:uppercase;letter-spacing:.03em;opacity:.85;font-size:.68rem;font-weight:700}.cal-dnum{font-size:1.2rem;font-weight:800;line-height:1}.cal-dmon{text-transform:uppercase;opacity:.8;font-size:.62rem;font-weight:700}.cal-daylabel{text-transform:capitalize;margin:0 0 .7rem;font-size:.9rem;font-weight:800}.cal-times{grid-template-columns:repeat(auto-fill,minmax(4.6rem,1fr));gap:.5rem;display:grid}.cal-time{border:1px solid var(--line);background:var(--surface);min-height:2.7rem;color:var(--text);border-radius:.8rem;padding:0 .5rem;font-size:.9rem;font-weight:700;transition:transform .1s,border-color .1s,color .1s,background .1s}.cal-time:active{border-color:var(--brand);color:#fff;background:var(--brand);transform:scale(.95)}.summary{border:1px solid var(--line);background:var(--surface-soft);border-radius:1rem;gap:.7rem;margin-bottom:1rem;padding:1rem 1.1rem;display:grid}.summary-row{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.summary-row span{color:var(--muted);font-size:.85rem}.summary-row strong{text-align:right}.reschedule{border-top:1px solid var(--line);gap:.5rem;margin-top:.75rem;padding-top:.85rem;display:grid}.metric{background:var(--brand);color:#fff;border-radius:1.1rem;gap:.15rem;margin-bottom:1rem;padding:1.1rem;display:grid}.metric strong{font-size:2.1rem;line-height:1}.metric span{opacity:.9;font-size:.85rem}.state{text-align:center;color:var(--muted);place-items:center;gap:.5rem;padding:3rem 1.5rem;display:grid}.state strong{color:var(--text);font-size:1.05rem}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:1.6rem;height:1.6rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pending{text-align:center;flex-direction:column;flex:1;align-items:center;padding:1.5rem 1.25rem 2.5rem;display:flex}.pending-card{border:1px solid var(--line);background:var(--surface);width:100%;max-width:23rem;box-shadow:var(--shadow);border-radius:1.5rem;padding:2rem 1.4rem 1.6rem}.pending-icon{background:color-mix(in srgb, var(--brand) 12%, var(--surface-soft));border-radius:50%;place-items:center;width:3.4rem;height:3.4rem;font-size:1.5rem;display:inline-grid}.pending h1{margin:.9rem 0 0;font-size:1.22rem;line-height:1.3}.pending-lead{color:var(--muted);margin:.5rem 0 0;font-size:.92rem;line-height:1.45}.pending-steps{background:var(--surface-soft);text-align:left;border-radius:1rem;gap:.7rem;margin:1.25rem 0 0;padding:1rem;list-style:none;display:grid}.pending-steps li{align-items:flex-start;gap:.65rem;font-size:.87rem;line-height:1.4;display:flex}.step-num{background:var(--brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:1.4rem;height:1.4rem;font-size:.75rem;font-weight:800;display:grid}.pending-contact{border-top:1px solid var(--line);text-align:left;margin-top:1.25rem;padding-top:1.1rem}.pending-contact-title{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .7rem;font-size:.72rem;font-weight:700}.pending-contact ul{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.pending-contact li{align-items:center;gap:.6rem;font-size:.88rem;line-height:1.35;display:flex}.pending-contact a{color:var(--brand);font-weight:600}.contact-emoji{background:var(--surface-soft);border-radius:.55rem;flex:none;place-items:center;width:1.75rem;height:1.75rem;font-size:.85rem;display:grid}.welcome{text-align:center;background:radial-gradient(120% 60% at 50% 0%, color-mix(in srgb, var(--brand) 16%, transparent) 0%, transparent 70%), var(--background);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:1.5rem 1.25rem 2.5rem;display:flex}.welcome-card{border:1px solid var(--line);background:var(--surface);width:100%;max-width:23rem;box-shadow:var(--shadow);border-radius:1.6rem;flex-direction:column;align-items:center;gap:.85rem;padding:2.25rem 1.5rem 1.75rem;display:flex}.welcome .brand-logo{width:4.5rem;height:4.5rem;box-shadow:0 8px 24px color-mix(in srgb, var(--brand) 22%, transparent);border-radius:1.3rem;font-size:1.8rem}.welcome h1{margin:.35rem 0 0;font-size:1.5rem;line-height:1.2}.welcome-lead{color:var(--muted);margin:0;font-size:.95rem;line-height:1.45}.perks{background:var(--surface-soft);text-align:left;border-radius:1rem;gap:.55rem;width:100%;margin:.35rem 0 0;padding:.9rem 1rem;list-style:none;display:grid}.perks li{color:var(--text);align-items:center;gap:.6rem;font-size:.88rem;font-weight:600;display:flex}.perk-emoji{background:var(--surface);border-radius:.6rem;flex:none;place-items:center;width:1.75rem;height:1.75rem;font-size:.9rem;display:grid}.sso-buttons{gap:.6rem;width:100%;margin-top:.5rem;display:grid}.sso-btn{border:1px solid var(--line);background:var(--surface);min-height:3.1rem;color:var(--text);border-radius:.9rem;justify-content:center;align-items:center;gap:.65rem;padding:0 1rem;font-size:.98rem;font-weight:700;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.sso-btn:hover{border-color:color-mix(in srgb, var(--brand) 35%, var(--line));box-shadow:0 4px 14px #11182714}.sso-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sso-btn:active{transform:scale(.98)}.sso-mark{flex:none}.welcome-legal{color:var(--muted);margin:.35rem 0 0;font-size:.78rem;line-height:1.4}.signout{color:var(--muted);background:0 0;border:0;margin-top:1.5rem;font-size:.85rem;text-decoration:underline}.pending-fallback{opacity:.85;background:#7f7f7f14;border-radius:12px;margin-top:14px;padding:12px 14px;font-size:14px;line-height:1.5}.install-banner{z-index:40;left:50%;bottom:calc(.75rem + env(safe-area-inset-bottom,0px));border:1px solid var(--line);background:var(--surface);width:calc(100% - 1.5rem);max-width:30.5rem;box-shadow:var(--shadow);border-radius:1rem;padding:.7rem .8rem;position:fixed;transform:translate(-50%)}.install-row{align-items:center;gap:.6rem;display:flex}.install-icon{background:color-mix(in srgb, var(--brand) 14%, var(--surface));width:2.1rem;height:2.1rem;color:var(--brand);border-radius:.7rem;flex:none;place-items:center;display:grid}.install-copy{flex-direction:column;flex:1;min-width:0;display:flex}.install-copy strong{font-size:.86rem;font-weight:800;line-height:1.25}.install-copy span{color:var(--muted);font-size:.76rem;line-height:1.3}.install-banner .btn.sm{flex:none}.install-close{width:1.8rem;height:1.8rem;color:var(--muted);background:0 0;border:0;border-radius:.6rem;flex:none;place-items:center;display:grid}.install-close:active{background:var(--surface-soft)}.install-steps{color:var(--text);flex-direction:column;gap:.4rem;margin:.7rem 0 .15rem;padding-left:1.15rem;font-size:.8rem;line-height:1.4;display:flex}:is(.shell:has(.install-banner) .content,.shell:has(.install-banner) .welcome){padding-bottom:6.5rem}
