:root{--page-pad: 16px;--touch-min: 44px;--bp-phone: 720px;--bp-tablet: 960px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--keyboard-inset: 0px;--topbar-height: 0px;--tabbar-height: 0px;--z-popover: 80;--z-dialog: 60}@media(min-width:720px){:root{--page-pad: clamp(16px, 3vw, 32px)}}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:40vh;padding:2rem}.auth-loading__spinner{width:2.25rem;height:2.25rem;border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem 4rem;background:var(--hero-glow),var(--bg)}.auth-page__inner{width:min(100%,28rem);display:flex;flex-direction:column;align-items:center;gap:1.5rem}.auth-page__logo{display:inline-flex}.auth-page__back{font-size:.95rem;text-decoration:none}.auth-page__back:hover{color:var(--accent)}.auth-card{width:100%;padding:clamp(1.75rem,4vw,2.25rem);text-align:center}.auth-card__title{margin:0 0 .75rem;font-size:1.5rem}.auth-card__lead{margin:0 0 1.5rem;line-height:1.65}.auth-card__action{width:100%}.auth-card__status{display:flex;flex-direction:column;align-items:center;gap:.85rem}.auth-card__error{margin:0;color:#dc2626}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.75rem;max-width:min(22rem,calc(100vw - 2rem));padding:.875rem 1rem;border-radius:.75rem;background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-hover);font-size:.9375rem;line-height:1.4;cursor:pointer;animation:toast-in .2s ease-out}.app-shell{min-height:100dvh;min-height:100svh;display:grid;grid-template-columns:260px 1fr;background:var(--bg);overflow-x:clip}.app-topbar,.app-tabbar{display:none}.app-sidebar{position:sticky;top:0;height:100dvh;height:100svh;display:flex;flex-direction:column;gap:1rem;padding:1.25rem 1rem 1.5rem;background:var(--bg-elevated);border-right:1px solid var(--border)}.app-sidebar__brand{padding:.25rem .5rem .75rem}.app-sidebar__nav{display:flex;flex-direction:column;gap:.35rem;flex:1}.app-sidebar__link{display:flex;align-items:center;gap:.75rem;min-height:var(--touch-min);padding:.75rem .85rem;border-radius:.85rem;color:var(--text-muted);text-decoration:none;transition:background .2s ease,color .2s ease}.app-sidebar__link:hover{background:var(--accent-soft);color:var(--text)}.app-sidebar__link--active{background:var(--accent-soft);color:var(--accent);font-weight:600}.app-sidebar__link span:first-child{font-size:1.15rem;width:1.5rem;text-align:center}.app-sidebar__user{display:flex;align-items:center;gap:.75rem;padding:.85rem;margin-top:auto}.app-sidebar__avatar{width:2.5rem;height:2.5rem;border-radius:50%;overflow:hidden;background:var(--accent-soft);display:grid;place-items:center;font-weight:700;color:var(--accent);flex-shrink:0}.app-sidebar__avatar img{width:100%;height:100%;object-fit:cover}.app-sidebar__user-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.app-sidebar__user-info strong{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-main{min-width:0;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.25rem clamp(1rem,3vw,2rem);border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header__title{margin:0;font-size:clamp(1.25rem,2.5vw,1.75rem)}.app-header__actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.app-header__user{font-weight:600}.app-content{padding:var(--page-pad);min-width:0;max-width:100%;overflow-x:clip}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.dashboard-card{padding:1.25rem}.dashboard-card__title{margin:0 0 .25rem;font-size:1.35rem}.dashboard-card__subtitle{margin:0 0 1rem}.dashboard-card__heading{margin:0 0 1rem;font-size:1rem}.dashboard-card--photo{grid-column:span 4}.dashboard-card--info{grid-column:span 8}.dashboard-card--actions,.dashboard-card--timeline,.dashboard-card--chart{grid-column:span 4}.dashboard-photo-placeholder{aspect-ratio:4 / 3;border-radius:1rem;background:var(--accent-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;font-size:3rem}.dashboard-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1.25rem;margin:0}.dashboard-stats dt{margin:0;font-size:.8rem}.dashboard-stats dd{margin:.15rem 0 0;font-weight:600}.dashboard-status{color:#16a34a}.dashboard-progress{margin-top:1.25rem;height:.45rem;border-radius:999px;background:var(--accent-soft);overflow:hidden}.dashboard-progress__bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--pink-accent))}.dashboard-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}.dashboard-action-btn{aspect-ratio:1;border:1px solid var(--border);border-radius:.85rem;background:var(--bg-soft);font-size:1.35rem;cursor:pointer;transition:transform .15s ease,border-color .15s ease}.dashboard-action-btn:hover{transform:translateY(-2px);border-color:var(--accent)}.dashboard-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.dashboard-timeline li{display:flex;align-items:center;gap:.65rem;font-size:.95rem}.dashboard-timeline__dot{width:1.35rem;height:1.35rem;border-radius:50%;display:grid;place-items:center;font-size:.7rem;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.dashboard-timeline__item--done .dashboard-timeline__dot{background:#16a34a26;color:#16a34a}.dashboard-chart{height:120px;border-radius:.75rem;overflow:hidden;background:var(--bg-soft)}.dashboard-chart svg{width:100%;height:100%}@media(max-width:1024px){.dashboard-card--photo,.dashboard-card--info,.dashboard-card--actions,.dashboard-card--timeline,.dashboard-card--chart{grid-column:span 6}}@media(max-width:959px){.app-shell{grid-template-columns:220px 1fr}}.page-header{margin-bottom:1.5rem}.page-header h1{margin:0;font-size:clamp(1.35rem,2.5vw,1.85rem)}.page-header--row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page-header__actions{display:flex;gap:.65rem;flex-wrap:wrap}.page-back{display:inline-block;margin-bottom:.35rem;text-decoration:none;font-size:.9rem}.page-back:hover{color:var(--accent)}.page-actions{margin-top:1.5rem}.page-actions--danger{display:flex;justify-content:flex-end}.app-sidebar__user{text-decoration:none;color:inherit;cursor:pointer;transition:border-color .2s ease,background .2s ease}.app-sidebar__user:hover,.app-sidebar__user--active{border-color:var(--accent);background:var(--accent-soft)}.home-pets-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem}.home-pets-row .pet-card{height:100%}.home-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.home-stat-card{padding:1.15rem 1.25rem;display:flex;flex-direction:column;gap:.25rem;min-height:96px}.home-stat-card__value{font-size:1.75rem;font-weight:700;color:var(--accent)}.home-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.home-panel{padding:1.25rem;min-height:160px}.home-panel h3{margin:0 0 .85rem;font-size:1rem}.home-vaccine-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.home-vaccine-list li{display:flex;flex-direction:column;gap:.1rem}.form-field{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.form-field span{color:var(--text-muted);font-weight:500}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:var(--touch-min);padding:.7rem .85rem;border-radius:.75rem;border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font:inherit}.form-field textarea{min-height:6.5rem;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.form-field input:disabled{opacity:.7;cursor:not-allowed}.form-field--wide{grid-column:1 / -1}.form-error{color:#dc2626;margin:.5rem 0 0}.form-field--error span{color:color-mix(in srgb,#f87171 85%,var(--text-muted))}.form-field--error input,.form-field--error select,.form-field--error textarea,.form-field--error .custom-datepicker__control,.form-field--error .custom-datepicker__trigger,.form-field--error .custom-timepicker__control,.form-field--error .custom-select__trigger{border-color:color-mix(in srgb,#ef4444 50%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,#ef4444 14%,transparent);animation:form-field-error-pulse 1.4s ease-out}@keyframes form-field-error-pulse{0%{box-shadow:0 0 color-mix(in srgb,#ef4444 28%,transparent)}60%{box-shadow:0 0 0 6px color-mix(in srgb,#ef4444 0%,transparent)}to{box-shadow:0 0 0 3px color-mix(in srgb,#ef4444 14%,transparent)}}.passport-scan{margin-bottom:1rem;padding:1.25rem;border:1px dashed var(--accent);background:linear-gradient(135deg,var(--accent-soft) 0%,transparent 70%)}.passport-scan__body{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.passport-scan__icon{width:9.5rem;min-height:7.5rem;flex-shrink:0;display:grid;place-items:center}.passport-scan-anim{position:relative;width:100%;min-height:7rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;color:var(--pet-color, var(--accent))}.passport-scan-anim__stage{position:relative;width:5rem;height:5rem;display:grid;place-items:center;border-radius:1rem;background:color-mix(in srgb,var(--bg-elevated) 90%,var(--accent-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent),0 8px 24px color-mix(in srgb,var(--accent) 12%,transparent);overflow:hidden}.passport-scan-anim--scanning .passport-scan-anim__stage{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 0 20px color-mix(in srgb,var(--accent-glow) 55%,transparent)}.passport-scan-anim--complete .passport-scan-anim__stage{box-shadow:inset 0 0 0 1px color-mix(in srgb,#22c55e 35%,transparent),0 0 18px #22c55e40}.passport-scan-anim--error .passport-scan-anim__stage{box-shadow:inset 0 0 0 1px color-mix(in srgb,#dc2626 35%,transparent),0 0 16px #dc262647;animation:passport-scan-error-shake .55s ease-in-out}.passport-scan-anim__idle-doc{position:relative;width:3rem;height:3.75rem;display:grid;place-items:center;overflow:hidden;border-radius:.35rem}.passport-scan-anim__scan-scene{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;padding-top:.4rem;pointer-events:none}.passport-scan-anim__scan-doc{position:relative;width:2.1rem;height:2.5rem;display:grid;place-items:center;overflow:hidden;border-radius:.3rem}.passport-scan-anim__doc-icon--scan{width:1.85rem;height:1.85rem}.passport-scan-anim__doc-icon{width:2.5rem;height:2.5rem;color:var(--accent);opacity:.9}.passport-scan-anim__scan-beam{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,var(--accent-glow) 35%,var(--accent) 50%,var(--accent-glow) 65%,transparent 100%);box-shadow:0 0 8px var(--accent-glow);opacity:.85;animation:passport-scan-beam 2.2s ease-in-out infinite}.passport-scan-anim__lottie{width:4.75rem!important;height:4.75rem!important;pointer-events:none}.passport-scan-anim__lottie--scan{position:absolute;bottom:-.1rem;left:50%;transform:translate(-50%);width:4.6rem!important;height:3.1rem!important;filter:drop-shadow(0 2px 8px color-mix(in srgb,var(--accent) 25%,transparent))}.passport-scan-anim__lottie--success{width:4.25rem!important;height:4.25rem!important}.passport-scan-anim__sad-paw{width:3.25rem;height:3.25rem;color:#dc2626;filter:drop-shadow(0 2px 6px rgba(220,38,38,.35))}.passport-scan-anim__badge{position:absolute;top:.2rem;right:.2rem;z-index:3;font-size:.72rem;font-weight:800;letter-spacing:.03em;font-variant-numeric:tabular-nums;color:#fff;background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 75%,#4c1d95) 100%);padding:.12rem .45rem;border-radius:999px;line-height:1.25;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 45%,transparent)}.passport-scan-anim--complete .passport-scan-anim__badge{background:linear-gradient(135deg,#22c55e,#15803d);box-shadow:0 2px 8px #22c55e59}.passport-scan-anim__trail{position:relative;width:100%;max-width:9rem;padding-top:.15rem}.passport-scan-anim__trail-rail{position:absolute;left:.55rem;right:.55rem;top:.62rem;height:3px;border-radius:999px;background:color-mix(in srgb,var(--border) 70%,transparent);overflow:hidden}.passport-scan-anim__trail-fill{height:100%;width:calc(var(--trail-progress, 0) * 100%);border-radius:inherit;background:linear-gradient(90deg,var(--accent-soft),var(--accent));transition:width .45s cubic-bezier(.34,1.2,.64,1);box-shadow:0 0 8px var(--accent-glow)}.passport-scan-anim--complete .passport-scan-anim__trail-fill{background:linear-gradient(90deg,#86efac,#22c55e);box-shadow:0 0 8px #22c55e73}.passport-scan-anim--error .passport-scan-anim__trail-fill{background:linear-gradient(90deg,#fca5a5,#dc2626);box-shadow:none}.passport-scan-anim__paws{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:.05rem;pointer-events:none}.passport-scan-anim__paw{width:.95rem;height:.95rem;color:var(--border);opacity:.35;transform-origin:center bottom;transition:color .3s ease,opacity .3s ease,transform .3s ease,filter .3s ease}.passport-scan-anim__paw--filled{color:var(--accent);opacity:1}.passport-scan-anim__paw--current{animation:passport-scan-paw-pulse 1.1s ease-in-out infinite}.passport-scan-anim__paw--bounce{animation:passport-scan-paw-pop .55s cubic-bezier(.34,1.56,.64,1)}.passport-scan-anim__paw--success{color:#22c55e;opacity:1;filter:drop-shadow(0 0 4px rgba(34,197,94,.45))}.passport-scan-anim__paw--error-lit{color:#dc2626;opacity:.75}.passport-scan-anim__previews{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(2,1fr);gap:2px;padding:3px;z-index:0;opacity:.35;border-radius:1rem}.passport-scan-anim__previews img{width:100%;height:100%;object-fit:cover;border-radius:.25rem}@keyframes passport-scan-beam{0%,to{top:8%;opacity:.35}45%{opacity:1}50%{top:88%;opacity:1}}@keyframes passport-scan-paw-pop{0%{transform:scale(.55) translateY(4px);opacity:.4}55%{transform:scale(1.35) translateY(-3px);opacity:1}to{transform:scale(1) translateY(0);opacity:1}}@keyframes passport-scan-paw-pulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 2px var(--accent-glow))}50%{transform:scale(1.22);filter:drop-shadow(0 0 7px var(--accent-glow))}}@keyframes passport-scan-error-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px) rotate(-1deg)}40%{transform:translate(4px) rotate(1deg)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@media(max-width:480px){.passport-scan__icon{width:100%;min-height:6.75rem}.passport-scan-anim__stage{width:4.5rem;height:4.5rem}.passport-scan-anim__lottie{width:4.25rem!important;height:4.25rem!important}.passport-scan-anim__paw{width:.82rem;height:.82rem}.passport-scan-anim__badge{font-size:.68rem}}@media(prefers-reduced-motion:reduce){.passport-scan-anim__scan-beam{animation:none;top:50%;opacity:.55}.passport-scan-anim__trail-fill{transition:none}.passport-scan-anim__paw{transition:color .2s ease,opacity .2s ease}.passport-scan-anim__paw--current,.passport-scan-anim__paw--bounce{animation:none;transform:none;filter:none}.passport-scan-anim--error .passport-scan-anim__stage{animation:none}}.passport-scan__text{flex:1 1 12rem;min-width:0}.passport-scan__title{margin:0 0 .35rem;font-size:1rem;font-weight:600}.passport-scan__lead{margin:0;font-size:.92rem;line-height:1.45}.passport-scan__btn{flex-shrink:0}.passport-scan__btn--busy{opacity:.85;pointer-events:none}.passport-scan__hint{margin:.85rem 0 0;font-size:.88rem;padding-top:.85rem;border-top:1px solid var(--border)}.btn-sm{min-height:36px;padding:.55rem 1rem;font-size:.9rem}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted);min-height:auto;padding:.35rem .5rem}.btn-ghost:hover{color:var(--accent);background:var(--accent-soft)}.btn-danger{background:#dc26261f;border-color:#dc262640;color:#dc2626}.btn-danger:hover{background:#dc26262e}.profile-form{padding:1.25rem}.profile-form__head{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.profile-form__avatar{width:3.5rem;height:3.5rem}.profile-logout{margin-top:1.25rem;display:flex;justify-content:flex-start}.settings-card{padding:1.25rem;max-width:28rem;display:flex;flex-direction:column;gap:1rem}.confirm-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-dialog);display:grid;place-items:center;padding:1rem}.confirm-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#00000073;cursor:pointer}.confirm-dialog__panel{position:relative;width:min(100%,24rem);padding:1.35rem;z-index:1;display:flex;flex-direction:column;min-height:0}.confirm-dialog__header h3,.confirm-dialog__panel h3{margin:0 0 .5rem}.confirm-dialog__body p{margin:0}.confirm-dialog__actions{display:flex;gap:.65rem;justify-content:flex-end;margin-top:1.15rem}.custom-select{position:relative;width:100%}.custom-select__trigger{cursor:pointer}.custom-select__trigger,.custom-datepicker__control,.custom-timepicker__control{width:100%;min-height:var(--touch-min);display:flex;align-items:center;justify-content:space-between;gap:.35rem;padding:.7rem .85rem;border-radius:.75rem;border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font:inherit;text-align:left;transition:border-color .2s ease,box-shadow .2s ease}.custom-datepicker__input,.custom-timepicker__input{flex:1;min-width:0;border:none;background:transparent;color:inherit;font:inherit;padding:0;outline:none}.custom-datepicker__input::placeholder,.custom-timepicker__input::placeholder{color:var(--text-muted)}.custom-datepicker__input:disabled,.custom-timepicker__input:disabled{cursor:not-allowed}.custom-datepicker__toggle,.custom-timepicker__toggle{flex-shrink:0;display:grid;place-items:center;width:var(--touch-min);height:var(--touch-min);padding:0;margin:-.35rem -.45rem -.35rem 0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:.5rem;transition:color .15s ease,background .15s ease}.custom-datepicker__toggle:hover:not(:disabled),.custom-timepicker__toggle:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.custom-datepicker__toggle:disabled,.custom-timepicker__toggle:disabled{opacity:.7;cursor:not-allowed}.custom-select__trigger:hover:not(:disabled),.custom-datepicker__control:hover:not(:disabled),.custom-timepicker__control:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.custom-select--open .custom-select__trigger,.custom-datepicker--open .custom-datepicker__control,.custom-timepicker--open .custom-timepicker__control{outline:2px solid var(--accent-soft);border-color:var(--accent)}.custom-select__trigger:disabled,.custom-datepicker__control:has(.custom-datepicker__input:disabled),.custom-timepicker__control:has(.custom-timepicker__input:disabled){opacity:.7;cursor:not-allowed}.custom-select__placeholder,.custom-datepicker__placeholder,.custom-timepicker__placeholder{color:var(--text-muted)}.custom-select__chevron{width:1.1rem;height:1.1rem;flex-shrink:0;color:var(--text-muted);transition:transform .2s ease}.custom-select--open .custom-select__chevron{transform:rotate(180deg)}.custom-select__menu{z-index:var(--z-popover);margin:0;padding:.35rem;list-style:none;border-radius:.85rem;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 12px 32px #00000059;overflow-y:auto}.custom-select__option{width:100%;min-height:var(--touch-min);padding:.55rem .75rem;border:none;border-radius:.55rem;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .15s ease}.custom-select__option:hover,.custom-select__option--active{background:var(--accent-soft);color:var(--accent)}.custom-datepicker{position:relative;width:100%}.custom-datepicker__icon{width:1.15rem;height:1.15rem;flex-shrink:0;color:var(--text-muted)}.custom-datepicker__popup{z-index:var(--z-popover);min-width:0;padding:.85rem;border-radius:.85rem;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 12px 32px #00000059}.custom-datepicker__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.custom-datepicker__month{font-weight:600;font-size:.95rem;text-transform:capitalize}.custom-datepicker__nav{width:var(--touch-min);height:var(--touch-min);border:1px solid var(--border);border-radius:.55rem;background:var(--bg-soft);color:var(--text);font-size:1.1rem;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease}.custom-datepicker__nav:hover{border-color:var(--accent);background:var(--accent-soft)}.custom-datepicker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.15rem;margin-bottom:.35rem;font-size:.72rem;color:var(--text-muted);text-align:center}.custom-datepicker__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.2rem}.custom-datepicker__cell{aspect-ratio:1;display:grid;place-items:center;border:none;border-radius:.5rem;background:transparent;color:var(--text);font:inherit;font-size:.85rem;cursor:pointer;transition:background .15s ease,color .15s ease}.custom-datepicker__cell:hover:not(.custom-datepicker__cell--empty){background:var(--accent-soft)}.custom-datepicker__cell--today{border:1px solid color-mix(in srgb,var(--accent) 50%,transparent)}.custom-datepicker__cell--selected{background:var(--accent);color:#fff;font-weight:600}.custom-datepicker__cell--selected:hover{background:var(--accent);color:#fff}.custom-datepicker__cell--empty{cursor:default}.custom-datepicker__footer{display:flex;justify-content:space-between;gap:.5rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--border)}.custom-datepicker__clear,.custom-datepicker__today{border:none;background:transparent;color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer;padding:.25rem .35rem;border-radius:.35rem}.custom-datepicker__clear:hover,.custom-datepicker__today:hover{background:var(--accent-soft)}.custom-timepicker{position:relative;width:100%}.custom-timepicker__icon{width:1.15rem;height:1.15rem;flex-shrink:0;color:var(--text-muted)}.custom-timepicker__popup{z-index:var(--z-popover);min-width:0;padding:.65rem;border-radius:.85rem;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 12px 32px #00000059}.custom-timepicker__cols{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;max-height:12rem}.custom-timepicker__col{display:flex;flex-direction:column;gap:.15rem;max-height:12rem;overflow-y:auto;padding:.1rem}.custom-timepicker__cell{width:100%;min-height:var(--touch-min);border:none;border-radius:.5rem;background:transparent;color:var(--text);font:inherit;font-size:.9rem;font-variant-numeric:tabular-nums;cursor:pointer}.custom-timepicker__cell:hover{background:var(--accent-soft)}.custom-timepicker__cell--selected{background:var(--accent);color:#fff;font-weight:600}.custom-timepicker__cell--selected:hover{background:var(--accent);color:#fff}.custom-timepicker__footer{display:flex;justify-content:flex-end;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.custom-timepicker__now{border:none;background:transparent;color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer;padding:.25rem .35rem;border-radius:.35rem}.custom-timepicker__now:hover{background:var(--accent-soft)}.custom-check{display:inline-flex;align-items:center;gap:.55rem;min-height:var(--touch-min);cursor:pointer;font-size:.9rem;font-weight:500;-webkit-user-select:none;user-select:none}.custom-check__input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:1.375rem;height:1.375rem;margin:0;flex-shrink:0;border-radius:.35rem;border:1.5px solid var(--border);background:var(--bg-soft);cursor:pointer;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.custom-check__input:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}.custom-check__input:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.custom-check__input:checked{background-color:var(--accent);border-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5L6.5 11.5L12.5 4.5' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:.75rem}.custom-check__input:disabled{opacity:.45;cursor:not-allowed}.custom-check__label{color:var(--text)}.pets-page,.pet-detail-page,.pet-form-page{min-width:0}.pet-detail-page .page-back{display:inline-flex;align-items:center;min-height:var(--touch-min)}.pets-page__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.pets-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.pet-card{display:flex;flex-direction:column;padding:0;overflow:hidden;text-decoration:none;color:inherit;height:100%;min-width:0}.pet-card__photo{aspect-ratio:4 / 3;background:var(--accent-soft);display:grid;place-items:center;font-size:2.5rem;overflow:hidden;flex-shrink:0}.pet-card__photo img{width:100%;height:100%;object-fit:cover}.pet-card__body{padding:1rem 1.1rem 1.15rem;min-width:0}.pet-card__body h3{margin:0 0 .2rem;font-size:1.05rem;overflow-wrap:anywhere;word-break:break-word}.pet-card__meta{margin:0;font-size:.9rem;overflow-wrap:anywhere;word-break:break-word}@media(hover:none){.pet-card.card--interactive:hover{transform:none}}.empty-pets{text-align:center;padding:clamp(2rem,5vw,3.5rem) 1rem}.empty-pets--compact{padding:2rem 1rem}.empty-pets__art{position:relative;width:min(100%,220px);margin:0 auto 1.25rem}.empty-pets__art img{width:100%;border-radius:1.25rem;opacity:.85}.empty-pets__emoji{position:absolute;right:-.25rem;bottom:-.25rem;font-size:2rem;filter:drop-shadow(0 4px 12px rgba(0,0,0,.15))}.empty-pets h2{margin:0 0 .5rem;overflow-wrap:anywhere}.empty-pets p{max-width:28rem;margin:0 auto 1.25rem;line-height:1.6}.empty-pets .btn{min-height:var(--touch-min)}.pet-form{display:flex;flex-direction:column;gap:1rem;min-width:0}.pet-form__section{padding:1.25rem;min-width:0}.pet-form__section h3{margin:0 0 1rem;font-size:1rem}.pet-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}.pet-form__grid>*{min-width:0}.pet-form .form-field--photo,.pet-form .form-field--wide{grid-column:1 / -1}.pet-form__subcard{display:flex;flex-direction:column;gap:.85rem;margin-top:.75rem;padding:1rem;border:1px solid var(--border);border-radius:1rem;background:color-mix(in srgb,var(--bg-soft) 55%,var(--bg-elevated));min-width:0}.pet-form__subcard:first-of-type{margin-top:0}.pet-form__subcard-head{display:flex;justify-content:flex-end}.pet-form__remove{min-height:var(--touch-min);min-width:var(--touch-min);padding:.55rem .9rem}.pet-form__add{width:auto;align-self:flex-start;margin-top:.25rem}.pet-form__photo{position:relative;display:flex;align-items:center;gap:.85rem;min-width:0;cursor:pointer}.pet-form__photo-preview{width:4.5rem;height:4.5rem;border-radius:.85rem;background:var(--accent-soft);display:grid;place-items:center;overflow:hidden;font-size:1.75rem;flex-shrink:0}.pet-form__photo-preview img{width:100%;height:100%;object-fit:cover}.pet-form__photo-btn{pointer-events:none}.pet-form__notes{padding:1.25rem;min-width:0}.pet-form__actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap}.pet-detail{display:grid;gap:1rem;min-width:0}.pet-detail__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.pet-detail__header h1{overflow-wrap:anywhere;word-break:break-word}.pet-detail__actions{display:flex;gap:.65rem;flex-wrap:wrap}.pet-detail__hero{display:grid;grid-template-columns:180px minmax(0,1fr);gap:1.25rem;padding:1.25rem;align-items:center}.pet-detail__photo{aspect-ratio:1;border-radius:1rem;background:var(--accent-soft);display:grid;place-items:center;font-size:3rem;overflow:hidden}.pet-detail__photo img{width:100%;height:100%;object-fit:cover}.pet-detail__hero-copy{min-width:0}.pet-detail__hero-copy p{margin:0;overflow-wrap:anywhere;word-break:break-word}.pet-detail__stats,.pet-detail__list{display:grid;gap:.75rem 1rem;margin:1rem 0 0;min-width:0}.pet-detail__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.pet-detail__list{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.pet-detail__stats>div,.pet-detail__list>div{min-width:0}.pet-detail__stats dt,.pet-detail__list dt{margin:0;font-size:.8rem}.pet-detail__stats dd,.pet-detail__list dd{margin:.15rem 0 0;font-weight:600;overflow-wrap:anywhere;word-break:break-word}.pet-detail__section{padding:1.25rem;min-width:0}.pet-detail__section h3{margin:0 0 .85rem;font-size:1rem}.pet-detail__section>p{margin:0;overflow-wrap:anywhere;word-break:break-word}.pet-detail__records{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.pet-detail__records li{display:flex;flex-direction:column;gap:.2rem;min-width:0;padding:.75rem 0;border-bottom:1px solid var(--border)}.pet-detail__records li:first-child{padding-top:0}.pet-detail__records li:last-child{padding-bottom:0;border-bottom:0}.pet-detail__records strong,.pet-detail__records span{overflow-wrap:anywhere;word-break:break-word}.pet-detail__danger .btn{min-height:var(--touch-min)}@media(max-width:959px){.pets-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:719px){.pets-page__header{flex-direction:column;align-items:stretch;gap:.75rem}.pets-page__add{width:100%;min-height:var(--touch-min)}.pets-grid{grid-template-columns:1fr;gap:.75rem}.pets-grid .pet-card{flex-direction:row;align-items:stretch}.pets-grid .pet-card__photo{width:5.5rem;min-height:5.5rem;aspect-ratio:1}.pets-grid .pet-card__body{display:flex;flex-direction:column;justify-content:center;padding:.85rem 1rem}.empty-pets .btn{width:min(100%,20rem)}.pet-form__section,.pet-form__notes,.pet-detail__section,.pet-detail__hero{padding:var(--page-pad)}.pet-form-page .passport-scan__body{flex-direction:column;align-items:stretch}.pet-form-page .passport-scan__btn{width:100%;min-height:var(--touch-min)}.pet-form__grid,.pet-detail__hero,.pet-detail__list,.pet-detail__stats{grid-template-columns:1fr}.pet-form__subcard{padding:.85rem}.pet-form__add{width:100%;align-self:stretch;min-height:var(--touch-min)}.pet-form__photo{flex-direction:column;align-items:stretch}.pet-form__photo-preview{width:100%;height:auto;aspect-ratio:16 / 10;max-height:11.25rem;font-size:2.25rem}.pet-form__photo-btn{width:100%;min-height:var(--touch-min)}.pet-form-page .pet-form-page__header-cancel{display:none}.pet-form__actions{position:sticky;bottom:calc(var(--tabbar-height) + var(--keyboard-inset));z-index:8;display:flex;gap:.75rem;margin-inline:calc(-1 * var(--page-pad));padding:.75rem var(--page-pad) calc(.75rem + var(--safe-bottom));background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);box-shadow:0 -10px 24px color-mix(in srgb,var(--bg) 40%,transparent)}.pet-form__actions .btn{flex:1;min-height:var(--touch-min)}.pet-detail__header{flex-direction:column;align-items:stretch}.pet-detail__actions{display:grid;grid-template-columns:1fr}.pet-detail__actions .btn{width:100%;min-height:var(--touch-min)}.pet-detail__hero{align-items:stretch}.pet-detail__photo{width:100%;max-height:12.5rem;aspect-ratio:16 / 10}.pet-detail__stats{margin-top:.85rem}.pet-detail__danger{justify-content:stretch}.pet-detail__danger .btn{width:100%}}.reminder-tz{margin-left:.3em;font-size:.68em;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);vertical-align:super;line-height:1}.reminder-when{display:inline}.reminder-section-title{margin:0 0 .65rem;font-size:.95rem}.reminder-suggestions-wrap{margin-bottom:1.15rem}.reminder-suggestions{display:flex;gap:.65rem;overflow-x:auto;padding-bottom:.2rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.reminder-suggestion{position:relative;flex:0 0 auto;width:min(16rem,78vw);padding:0;overflow:hidden;display:flex;align-items:stretch}.reminder-suggestion__body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.85rem 1rem;text-align:left;color:inherit;min-height:44px}.reminder-suggestion__body strong{font-size:.95rem;overflow-wrap:anywhere}.reminder-suggestion__dismiss{flex-shrink:0;width:44px;min-width:44px;min-height:44px;border-radius:0;color:var(--text-muted);font-size:1.35rem;line-height:1;border-left:1px solid var(--border)}.reminder-suggestion__dismiss:hover{background:var(--accent-soft);color:var(--text)}.reminder-tabs{display:flex;gap:.25rem;margin-bottom:1rem;padding:.25rem;width:100%;max-width:28rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px}.reminder-tabs__btn{flex:1;border:none;background:transparent;padding:.45rem .85rem;border-radius:999px;color:var(--text-muted);font-weight:600;font-size:.9rem;min-height:44px}.reminder-tabs__btn--active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow)}.reminder-list{display:flex;flex-direction:column;gap:.75rem}.reminder-card{padding:1rem 1.1rem .9rem;display:flex;flex-direction:column;gap:.65rem}.reminder-card--overdue{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent-soft) 70%,var(--bg-elevated))}.reminder-card__main h3{margin:0 0 .2rem;font-size:1.05rem;overflow-wrap:anywhere}.reminder-card__pet,.reminder-card__when{margin:0;font-size:.9rem;color:var(--text-muted)}.reminder-card__when{margin-top:.15rem}.reminder-card__badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.reminder-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;background:var(--accent);color:#fff;white-space:nowrap}.reminder-badge--soft{background:var(--accent-soft);color:var(--accent)}.reminder-badge--overdue{background:color-mix(in srgb,var(--accent) 85%,#7c2d12);color:#fff}.reminder-card__actions{display:flex;flex-wrap:wrap;gap:.5rem}.reminder-card__actions .btn{flex:1 1 auto;min-height:44px}.reminder-empty-emoji{position:static;display:block;font-size:2.5rem;margin:0 auto .25rem;filter:none}.reminder-fab{display:none}.reminder-fab:hover,.reminder-fab:active{transform:none}.reminder-inline{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.5rem;align-items:start}.reminder-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}.reminder-form-grid .form-field--wide{grid-column:1 / -1}.reminder-form-datetime{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}.reminder-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1rem}.reminder-dialog__panel{position:relative;width:min(100%,34rem);max-height:min(92dvh,46rem);padding:0;z-index:1;display:flex;flex-direction:column;overflow:hidden}.reminder-dialog__head{flex-shrink:0;padding:1.2rem 1.35rem .65rem}.reminder-dialog__head h3{margin:0}.reminder-dialog__form{display:flex;flex-direction:column;min-height:0;flex:1}.reminder-dialog__body{display:flex;flex-direction:column;gap:.85rem;overflow:auto;padding:0 1.35rem 1rem;-webkit-overflow-scrolling:touch}.reminder-dialog__actions{flex-shrink:0;display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap;padding:.85rem 1.35rem 1.15rem;border-top:1px solid var(--border);background:var(--bg-elevated)}.reminder-dialog__actions .btn,.reminder-dialog__body .custom-check,.reminder-inline input{min-height:44px}.home-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.home-panel__head h3{margin:0}.home-panel__link{font-size:.85rem;font-weight:600;color:var(--accent);min-height:44px;display:inline-flex;align-items:center}.home-panel__link:hover{text-decoration:underline}.home-upcoming-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.home-upcoming-item{display:flex;flex-direction:column;justify-content:center;gap:.12rem;min-height:44px;padding:.55rem 0;color:inherit;border-bottom:1px solid var(--border)}.home-upcoming-list li:last-child .home-upcoming-item{border-bottom:0;padding-bottom:0}.home-upcoming-item__title{font-weight:650;overflow-wrap:anywhere}.home-upcoming-item__meta{font-size:.85rem;color:var(--text-muted)}.home-upcoming-item--overdue{padding-left:.65rem;border-left:3px solid var(--accent)}.home-page .home-panel{min-height:0}@media(max-width:719.98px){.reminders-page,.home-page{display:flex;flex-direction:column;gap:0}.reminders-page{padding-bottom:4.5rem}.reminders-page .page-header--row .btn{display:none}.reminders-page .page-header{margin-bottom:1rem}.reminder-tabs{max-width:none}.reminder-suggestions{flex-direction:column;overflow:visible;gap:.5rem}.reminder-suggestion{width:100%}.reminder-suggestion__body{padding:.75rem .9rem}.reminder-list{gap:.6rem}.reminder-card{padding:.9rem .95rem .8rem}.reminder-card__actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.reminder-card__actions--single{grid-template-columns:1fr}.reminder-card__actions .btn{width:100%;padding-inline:.45rem;font-size:.85rem}.reminder-empty__text{display:none}.reminder-fab{display:inline-flex;position:fixed;right:max(var(--page-pad),var(--safe-right));bottom:calc(var(--tabbar-height) + .75rem);z-index:25;width:3.5rem;height:3.5rem;min-width:3.5rem;min-height:3.5rem;padding:0;border-radius:50%;font-size:1.65rem;line-height:1;box-shadow:0 10px 24px var(--accent-glow)}.reminder-form-grid,.reminder-form-datetime{grid-template-columns:1fr}.reminder-dialog{padding:0;place-items:stretch}.reminder-dialog__panel{width:100%;max-width:none;height:100dvh;max-height:100dvh;border-radius:0}.reminder-dialog__head{padding:1rem 1rem .5rem;padding-top:max(1rem,env(safe-area-inset-top,0px))}.reminder-dialog__body{padding:0 1rem 1rem}.reminder-dialog__actions{position:sticky;bottom:0;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom,0px))}.reminder-dialog__actions .btn{flex:1}.home-page .home-pets-row{display:flex;grid-template-columns:none;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:calc(-1 * var(--page-pad));padding:0 var(--page-pad) .15rem;margin-bottom:.9rem}.home-page .home-pets-row::-webkit-scrollbar{display:none}.home-page .home-pets-row>*{flex:0 0 min(17rem,85%);scroll-snap-align:start;min-width:0}.home-page .home-pets-row .pet-card{height:100%}.home-page .home-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:.85rem}.home-page .home-stat-card{min-height:0;padding:.6rem .4rem .55rem;align-items:center;text-align:center;gap:.1rem}.home-page .home-stat-card__value{font-size:1.25rem}.home-page .home-stat-card .muted{font-size:.68rem;line-height:1.2}.home-page .home-panels{grid-template-columns:1fr;gap:.75rem}.home-page .home-panel{padding:.85rem .95rem;min-height:0}.home-page .home-vaccine-list{gap:0}.home-page .home-vaccine-list li{min-height:44px;justify-content:center;padding:.45rem 0;border-bottom:1px solid var(--border)}.home-page .home-vaccine-list li:last-child{border-bottom:0;padding-bottom:0}}@media(min-width:380px)and (max-width:719.98px){.reminder-form-datetime{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.reminder-fab{transition:none}}@media(max-width:719px){html.pitomo-app{--page-pad: 16px;--topbar-height: calc(52px + var(--safe-top));--tabbar-height: calc(64px + var(--safe-bottom))}}.app-shell--phone{--topbar-height: calc(52px + var(--safe-top));--tabbar-height: calc(64px + var(--safe-bottom));grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:100dvh;min-height:100svh}.app-shell--phone .app-sidebar{display:none}.app-shell--phone .app-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:var(--topbar-height);padding:var(--safe-top) max(var(--page-pad),var(--safe-right)) .5rem max(var(--page-pad),var(--safe-left));border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;top:0;z-index:30}.app-topbar__brand{display:inline-flex;align-items:center;min-height:var(--touch-min);min-width:0}.app-topbar__profile{display:grid;place-items:center;min-width:var(--touch-min);min-height:var(--touch-min);border-radius:999px}.app-topbar__profile--active{box-shadow:0 0 0 2px var(--accent-soft)}.app-topbar__avatar{width:2.25rem;height:2.25rem}.app-shell--phone .app-main{min-width:0}.app-shell--phone .app-content{padding:var(--page-pad);padding-left:max(var(--page-pad),var(--safe-left));padding-right:max(var(--page-pad),var(--safe-right));padding-bottom:calc(var(--page-pad) + var(--tabbar-height));max-width:100%;overflow-x:clip}.app-shell--phone .app-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:.15rem;padding:.2rem var(--safe-left) var(--safe-bottom) var(--safe-right);padding-left:max(.25rem,var(--safe-left));padding-right:max(.25rem,var(--safe-right));background:color-mix(in srgb,var(--bg-elevated) 92%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--border)}.app-tabbar__link{flex:1 1 0;min-width:0;min-height:var(--touch-min);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;padding:.4rem .15rem .35rem;border-radius:.75rem;color:var(--text-muted);font-size:.65rem;font-weight:650;line-height:1.15;text-align:center;text-decoration:none;touch-action:manipulation}.app-tabbar__icon{font-size:1.2rem;line-height:1}.app-tabbar__label{max-width:100%;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.app-tabbar__link--active{color:var(--accent);background:var(--accent-soft)}@media(max-width:719px){.page-header{margin-bottom:1rem}.page-header h1{font-size:1.35rem;overflow-wrap:anywhere}.page-header--row{flex-direction:column;align-items:stretch;gap:.75rem}.page-header--row>.btn,.page-header__actions{width:100%}.page-header__actions .btn{flex:1;min-height:var(--touch-min)}.page-back{min-height:var(--touch-min);display:inline-flex;align-items:center}.dashboard-grid,.dashboard-actions,.home-panels{grid-template-columns:1fr}.dashboard-card--photo,.dashboard-card--info,.dashboard-card--actions,.dashboard-card--timeline,.dashboard-card--chart{grid-column:auto}.btn-sm{min-height:var(--touch-min)}.btn-ghost{min-height:var(--touch-min);min-width:var(--touch-min);padding:.5rem .75rem}.settings-card,.profile-form{max-width:none}.pet-form__grid{grid-template-columns:1fr}.form-field input,.form-field select,.form-field textarea,.custom-select__trigger,.custom-datepicker__input,.custom-timepicker__input{font-size:16px}}.form-field input,.form-field select{min-height:var(--touch-min)}.form-field textarea{min-height:calc(var(--touch-min) * 2)}.custom-select__trigger,.custom-datepicker__control,.custom-timepicker__control{min-height:var(--touch-min)}.custom-datepicker__toggle,.custom-timepicker__toggle{width:var(--touch-min);height:var(--touch-min);margin:-.35rem -.45rem -.35rem 0}.custom-select__option{min-height:var(--touch-min);display:flex;align-items:center}.custom-datepicker__nav{width:var(--touch-min);height:var(--touch-min)}.custom-datepicker__cell{min-height:var(--touch-min);aspect-ratio:auto}.custom-datepicker__clear,.custom-datepicker__today,.custom-timepicker__now{min-height:var(--touch-min);padding:.35rem .6rem}.custom-timepicker__cell{min-height:var(--touch-min)}.custom-check{min-height:var(--touch-min);align-items:center}.custom-check__input{width:1.375rem;height:1.375rem}.popover{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.custom-select__menu,.custom-datepicker__popup,.custom-timepicker__popup{position:fixed;top:auto;left:auto;right:auto;min-width:0;max-height:none;box-sizing:border-box}.custom-select__menu{display:flex;flex-direction:column;gap:.1rem}.custom-timepicker__cols,.custom-timepicker__col{max-height:none}.custom-timepicker__cols{height:min(16rem,50dvh)}.custom-timepicker__col{height:100%}.confirm-dialog,.reminder-dialog{z-index:var(--z-dialog)}.confirm-dialog__header h3,.confirm-dialog__panel h3{margin:0}.confirm-dialog__body{min-width:0}.confirm-dialog__body p{margin:.5rem 0 0}@media(max-width:719px){.confirm-dialog,.reminder-dialog{padding:0;display:flex;align-items:stretch;justify-content:stretch;place-items:stretch}.confirm-dialog__panel,.reminder-dialog__panel{width:100%;max-width:none;height:100dvh;height:100svh;max-height:100dvh;max-height:100svh;border-radius:0;padding:0;display:flex;flex-direction:column;overflow:hidden;box-shadow:none}.confirm-dialog__header,.reminder-dialog__head{flex-shrink:0;padding:calc(var(--safe-top) + .85rem) var(--page-pad) .75rem;border-bottom:1px solid var(--border)}.confirm-dialog__body,.reminder-dialog__body{flex:1;overflow:auto;padding:1rem var(--page-pad);-webkit-overflow-scrolling:touch}.confirm-dialog__actions,.reminder-dialog__actions{flex-shrink:0;display:flex;gap:.65rem;margin-top:0;padding:.75rem var(--page-pad) calc(.75rem + var(--safe-bottom) + var(--keyboard-inset));border-top:1px solid var(--border);background:var(--bg-elevated);justify-content:stretch}.confirm-dialog__actions .btn,.reminder-dialog__actions .btn{flex:1;min-height:var(--touch-min)}}body:has(.confirm-dialog),body:has(.reminder-dialog){overflow:hidden}@media(max-width:719px){html.pitomo-app .pet-form__actions{bottom:var(--tabbar-height)}html.pitomo-app .reminder-fab{bottom:calc(var(--tabbar-height) + .75rem)}html.pitomo-app .toast-container{right:max(1rem,var(--safe-right));bottom:calc(var(--tabbar-height) + .75rem);left:max(1rem,var(--safe-left));align-items:stretch}html.pitomo-app .toast{max-width:none}}@media(min-width:720px)and (max-width:959px){.home-panels{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}:root{color-scheme:light;--bg: #f5f0ff;--bg-elevated: #ffffff;--bg-soft: #ede9fe;--text: #2e1065;--text-muted: #6b21a8;--accent: #7c3aed;--accent-hover: #6d28d9;--accent-soft: rgba(124, 58, 237, .12);--accent-glow: rgba(124, 58, 237, .28);--pink-accent: #f9a8d4;--border: rgba(46, 16, 101, .1);--shadow: 0 24px 60px rgba(46, 16, 101, .1);--shadow-hover: 0 28px 70px rgba(124, 58, 237, .18);--hero-glow: radial-gradient(circle at 15% 20%, rgba(124, 58, 237, .22), transparent 45%), radial-gradient(circle at 85% 10%, rgba(249, 168, 212, .2), transparent 40%), radial-gradient(circle at 50% 80%, rgba(167, 139, 250, .12), transparent 50%);--logo-primary: #7c3aed;--logo-accent: #f9a8d4;--pet-color: #7c3aed;--header-bg: rgba(245, 240, 255, .82);--section-reveal-distance: 24px}[data-theme=dark]{color-scheme:dark;--bg: #130a24;--bg-elevated: #1e1033;--bg-soft: #2e1065;--text: #ede9fe;--text-muted: #c4b5fd;--accent: #a78bfa;--accent-hover: #8b5cf6;--accent-soft: rgba(167, 139, 250, .16);--accent-glow: rgba(167, 139, 250, .32);--pink-accent: #f472b6;--border: rgba(237, 233, 254, .1);--shadow: 0 24px 60px rgba(0, 0, 0, .4);--shadow-hover: 0 28px 70px rgba(167, 139, 250, .22);--hero-glow: radial-gradient(circle at 15% 20%, rgba(167, 139, 250, .2), transparent 45%), radial-gradient(circle at 85% 10%, rgba(244, 114, 182, .12), transparent 40%), radial-gradient(circle at 50% 80%, rgba(124, 58, 237, .15), transparent 50%);--logo-primary: #a78bfa;--logo-accent: #f472b6;--pet-color: #a78bfa;--header-bg: rgba(19, 10, 36, .85)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{min-height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);transition:background .35s ease,color .35s ease;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none}.container{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding-inline:max(0px,env(safe-area-inset-left,0px),env(safe-area-inset-right,0px))}main{overflow-x:clip}.section{padding:clamp(3.5rem,8vw,5.5rem) 0;position:relative;overflow-x:clip}.section--hero{padding-top:clamp(2rem,5vw,3rem);background:var(--hero-glow)}.section--soft{background:color-mix(in srgb,var(--bg-soft) 35%,var(--bg))}.section-label{display:inline-block;letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:600;color:var(--accent);margin-bottom:1rem}.section-title{font-size:clamp(1.85rem,4vw,2.5rem);line-height:1.15;margin:0 0 1rem;overflow-wrap:break-word}.section-lead{color:var(--text-muted);font-size:clamp(1rem,2vw,1.125rem);line-height:1.7;max-width:42rem;margin:0 0 2rem}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.card--interactive:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:#7c3aed38}[data-theme=dark] .card--interactive:hover{border-color:#a78bfa47}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;min-width:44px;padding:.9rem 1.5rem;border-radius:999px;border:1px solid transparent;font-weight:600;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--accent),#9333ea);color:#fff;box-shadow:0 12px 30px var(--accent-glow)}.btn-primary:hover{box-shadow:0 16px 40px var(--accent-glow)}.btn-secondary{background:var(--bg-elevated);border-color:var(--border);color:var(--text)}.btn-secondary:hover{border-color:var(--accent);background:var(--accent-soft)}.btn-icon{width:44px;height:44px;padding:0;border-radius:14px;background:var(--bg-elevated);border:1px solid var(--border);font-size:1.1rem}.muted{color:var(--text-muted)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}.hero-grid>*{min-width:0}.hero-title{font-size:clamp(2.2rem,5.5vw,3.75rem);line-height:1.05;margin:0 0 1.25rem;letter-spacing:-.02em;overflow-wrap:break-word}.hero-image-wrap{position:relative;border-radius:28px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}.hero-image-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 55%,rgba(46,16,101,.08));pointer-events:none}.hero-image-wrap img{width:100%;aspect-ratio:16 / 10;object-fit:cover}.hero-actions{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}.site-header{position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--header-bg);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top,0px)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1rem}.site-header__brand{min-width:0;flex-shrink:1}.site-header__actions{display:flex;gap:.75rem;align-items:center;flex-shrink:0}.site-header__nav{display:flex;gap:1.5rem;align-items:center}.site-header__nav a{font-size:.95rem;font-weight:500;color:var(--text-muted);transition:color .2s ease}.site-header__nav a:hover{color:var(--accent)}.logo-mark{display:inline-flex;align-items:center;gap:.65rem}.logo-mark__icon{display:block;object-fit:contain;flex-shrink:0}.logo-mark__icon--dark,[data-theme=dark] .logo-mark__icon--light{display:none}[data-theme=dark] .logo-mark__icon--dark{display:block}.logo-wordmark{font-weight:700;font-size:1.15rem;letter-spacing:-.02em}.feature-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:1.35rem;background:var(--accent-soft);margin-bottom:1rem}.step-number{font-weight:700;font-size:.85rem;letter-spacing:.08em;color:var(--accent);margin-bottom:.75rem}.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}.trust-grid>*{min-width:0}.trust-image img{width:100%;height:auto}.trust-image{border-radius:24px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}.trust-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}.trust-stat{text-align:center;padding:1rem;border-radius:16px;background:var(--accent-soft)}.trust-stat strong{display:block;font-size:1.5rem;color:var(--accent)}.cta-card{padding:clamp(2rem,5vw,3rem);text-align:center;background:linear-gradient(135deg,var(--accent-soft),transparent 60%),var(--bg-elevated)}.landing-card{padding:clamp(1.25rem,4vw,1.75rem)}.landing-card__title{margin:0 0 .5rem;font-size:clamp(1rem,2.5vw,1.1rem);overflow-wrap:break-word}.landing-card__text{margin:0;line-height:1.65}.steps-grid{margin-top:2rem}.section-image-wrap{margin-top:2.5rem;max-width:720px;margin-inline:auto}.trust-lead{margin-bottom:1rem}.trust-list{line-height:1.9;padding-left:1.2rem;margin:0 0 1.5rem;overflow-wrap:break-word}.cta-card__title{margin-bottom:.75rem}.cta-card__lead{max-width:32rem;margin:0 auto 1.75rem;line-height:1.7}.footer-copy{margin:0;font-size:.9rem;width:100%;text-align:center}.site-footer{padding:2.5rem 0 calc(5rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border)}.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.site-footer__links{display:flex;gap:1.25rem;flex-wrap:wrap}.site-footer__links a{color:var(--text-muted);font-size:.9rem;transition:color .2s ease;display:inline-flex;align-items:center;min-height:44px;padding:.35rem 0}.site-footer__links a:hover{color:var(--accent)}.reveal{opacity:0;transform:translateY(var(--section-reveal-distance))}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.card{transition:none}}@media(max-width:900px){.grid-3,.grid-2,.hero-grid,.trust-grid{grid-template-columns:1fr}.site-header__nav{display:none}.trust-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-image-wrap{max-width:100%}}@media(max-width:768px){.section--hero{padding-top:clamp(1.5rem,4vw,2.5rem)}.hero-title{font-size:clamp(1.75rem,7.5vw,2.75rem)}.section-lead{margin-bottom:1.5rem}.hero-actions{margin-top:1.5rem;gap:.75rem}}@media(max-width:600px){.container{width:min(1120px,calc(100% - 1.25rem))}.hero-actions .btn{width:100%}.site-header__inner{padding:.75rem 0;gap:.5rem}.site-header__actions{gap:.5rem}.site-header__actions .btn-primary{padding-inline:1rem;font-size:.875rem}.site-header .logo-wordmark{display:none}.site-header .logo-mark{gap:0}.trust-stats{grid-template-columns:1fr}.site-footer__inner{flex-direction:column;align-items:stretch;text-align:center}.site-footer__links{justify-content:center;gap:.75rem 1.25rem}.cta-card{padding:1.5rem 1.25rem}}@media(max-width:375px){.hero-title{font-size:clamp(1.6rem,8.5vw,2rem);letter-spacing:-.01em}.section-title{font-size:clamp(1.5rem,6.5vw,1.85rem)}.site-header__actions .btn-primary{padding-inline:.85rem;font-size:.8125rem}}.cta-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.cta-status{max-width:32rem;margin:0 auto 1rem;line-height:1.6;font-size:.95rem}.cta-status a{color:var(--accent);text-decoration:underline}.cta-error{color:#be123c;max-width:32rem;margin:0 auto 1rem;line-height:1.5}.auth-loading{min-height:100dvh;display:grid;place-items:center;gap:1rem;padding:2rem}.auth-loading__spinner{width:40px;height:40px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:200;display:flex;flex-direction:column;align-items:flex-end;gap:.625rem;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.75rem;max-width:min(22rem,calc(100vw - 2rem));padding:.875rem 1rem;border-radius:.75rem;background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-hover);font-weight:500;font-size:.9375rem;line-height:1.4;cursor:pointer;animation:toast-in .2s ease-out}.toast--success{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.toast--error{border-color:color-mix(in srgb,#dc2626 35%,var(--border))}.toast__message{flex:1}.toast__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin:-.125rem -.25rem 0 0;padding:0;border:none;border-radius:.375rem;background:transparent;color:var(--text-muted);font-size:1.25rem;line-height:1;cursor:pointer}.toast__close:hover{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
