:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-sans:ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Charter, Georgia, ui-serif, serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:clamp(1.875rem, 1.6rem + 1.1vw, 2.375rem);--text-3xl:clamp(2.25rem, 1.9rem + 1.6vw, 3rem);--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.55;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--tracking-tight:-.015em;--tracking-wide:.08em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--content-max:68rem;--header-height:4rem;--tabbar-height:4rem;--control-height:2.75rem;--control-height-sm:2.25rem;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1.125rem;--radius-xl:1.5rem;--radius-pill:999px;--duration-fast:.12s;--duration-base:.22s;--duration-slow:.36s;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.3, .64, 1);--color-bg:#f5efe6;--color-bg-glow:#f3dccb;--color-surface:#fffcf7;--color-surface-glass:#fffcf7d1;--color-surface-raised:#fff;--color-surface-sunken:#efe7db;--color-border:#e8dfd2;--color-border-strong:#cdbfad;--color-text:#2a211c;--color-text-muted:#6b5e53;--color-text-faint:#998a7c;--color-accent:#b5562b;--color-accent-hover:#9c4823;--color-accent-soft:#f8e6da;--color-accent-text:#7f3a1b;--color-accent-glow:#b5562b47;--color-on-accent:#fff;--color-danger:#b3261e;--color-danger-hover:#951d16;--color-danger-soft:#fbe4e1;--color-danger-text:#8a1c15;--color-danger-glow:#b3261e38;--color-on-danger:#fff;--color-warn:#a15c00;--color-warn-soft:#fbead0;--color-warn-text:#7a4300;--color-ok:#2f6b3a;--color-ok-soft:#dff0e0;--color-ok-text:#245730;--color-focus:#b5562b;--color-selection:#f3d5c3;--shadow-sm:0 1px 2px #422a1a0f, 0 1px 1px #422a1a0a;--shadow-md:0 2px 4px #422a1a0d, 0 12px 28px -10px #422a1a29;--shadow-lg:0 4px 8px #422a1a0f, 0 28px 56px -18px #422a1a3d;--shadow-primary:0 8px 18px -8px #b5562b8c;--shadow-tabbar:0 -6px 24px #422a1a1a}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#17130f;--color-bg-glow:#3a2619;--color-surface:#201b17;--color-surface-glass:#201b17d1;--color-surface-raised:#2a2420;--color-surface-sunken:#120e0b;--color-border:#352e28;--color-border-strong:#4f443c;--color-text:#f3ebe2;--color-text-muted:#b5a899;--color-text-faint:#7f7368;--color-accent:#e6895e;--color-accent-hover:#ee9d77;--color-accent-soft:#3a2619;--color-accent-text:#f3b899;--color-accent-glow:#e6895e52;--color-on-accent:#17130f;--color-danger:#f0776d;--color-danger-hover:#f58f86;--color-danger-soft:#41221f;--color-danger-text:#f7a8a1;--color-danger-glow:#f0776d4d;--color-on-danger:#17130f;--color-warn:#e0a24a;--color-warn-soft:#3c2d16;--color-warn-text:#f1c27a;--color-ok:#7cc48a;--color-ok-soft:#1f3324;--color-ok-text:#a6dcb0;--color-focus:#e6895e;--color-selection:#5a3626;--shadow-sm:0 1px 2px #00000059, 0 1px 1px #00000040;--shadow-md:0 2px 4px #0000004d, 0 12px 28px -10px #00000080;--shadow-lg:0 4px 8px #00000059, 0 28px 56px -18px #0009;--shadow-primary:0 8px 18px -8px #e6895e80;--shadow-tabbar:0 -6px 24px #00000073}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s;--duration-slow:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--color-bg);background-image:radial-gradient(70rem 36rem at 50% -14rem, var(--color-bg-glow), transparent 70%);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;overflow-wrap:anywhere;background-repeat:no-repeat;margin:0}::selection{background:var(--color-selection)}h1,h2,h3,h4,p{margin:0}h1,h2,h3{line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-weight:var(--weight-semibold)}h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-medium);text-wrap:balance}h3{font-size:var(--text-lg)}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--color-accent-text);text-underline-offset:.15em;text-decoration-thickness:1px}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-muted{color:var(--color-text-muted)}.app{flex-direction:column;min-height:100dvh;display:flex}.app-header{z-index:10;border-bottom:1px solid var(--color-border);position:sticky;top:0}.app-header:before{content:"";z-index:-1;background:var(--color-surface-glass);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);position:absolute;inset:0}.app-header__inner{max-width:var(--content-max);min-height:var(--header-height);padding-inline:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);margin-inline:auto;display:flex}.brand{align-items:center;gap:var(--space-3);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);letter-spacing:0;color:var(--color-text);min-width:0;display:inline-flex}.brand__mark{border-radius:var(--radius-md);background:linear-gradient(150deg, var(--color-accent-hover), var(--color-accent) 55%, var(--color-accent-text));width:2.25rem;height:2.25rem;color:var(--color-on-accent);box-shadow:inset 0 1px 0 var(--color-accent-glow), var(--shadow-primary);flex:none;place-items:center;display:grid;transform:rotate(-6deg)}.brand__mark svg{width:1.3rem;height:1.3rem}.app__main{width:100%;max-width:var(--content-max);padding:var(--space-5) var(--space-4) calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px) + var(--space-6));flex:1;margin-inline:auto}.tab-bar{inset-inline:0;z-index:10;justify-content:space-around;align-items:stretch;gap:var(--space-1);height:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px));padding:var(--space-1) var(--space-2) env(safe-area-inset-bottom,0px);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);border-top:1px solid var(--color-border);box-shadow:var(--shadow-tabbar);display:flex;position:fixed;bottom:0}.tab-bar__tab{min-width:0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;line-height:1.2;display:flex}.tab-bar__icon{border-radius:var(--radius-pill);width:3.25rem;height:1.9rem;transition:background var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-spring);place-items:center;display:grid;position:relative}.tab-bar__tab svg{width:1.45rem;height:1.45rem}.tab-bar__tab:hover{color:var(--color-text)}.tab-bar__tab:active .tab-bar__icon{transform:scale(.92)}.tab-bar__tab[aria-current=page]{color:var(--color-accent-text)}.tab-bar__tab[aria-current=page] .tab-bar__icon{background:var(--color-accent-soft)}.tab-bar__tab[aria-current=page] .tab-bar__label{font-weight:var(--weight-semibold)}.tab-bar__badge{border-radius:var(--radius-pill);background:var(--color-danger);min-width:1.15rem;height:1.15rem;color:var(--color-on-danger);font-size:var(--text-xs);font-weight:var(--weight-bold);text-align:center;box-shadow:0 0 0 2px var(--color-surface);padding:0 .3rem;line-height:1.15rem;position:absolute;top:-.2rem;right:.45rem}@media (width>=720px){.app__main{padding:var(--space-7) var(--space-5) var(--space-8)}.tab-bar{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-pill);height:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;justify-content:flex-end;gap:.125rem;padding:.25rem;position:static}.tab-bar__tab{gap:var(--space-2);min-height:2.25rem;padding:0 var(--space-3) 0 var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-pill);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);flex-direction:row;flex:none}.tab-bar__icon{border-radius:0;width:auto;height:auto;padding:.2rem}.tab-bar__tab svg{width:1.125rem;height:1.125rem}.tab-bar__tab[aria-current=page]{background:var(--color-surface-raised);color:var(--color-accent-text);box-shadow:var(--shadow-sm)}.tab-bar__tab[aria-current=page] .tab-bar__icon{background:0 0}.tab-bar__badge{box-shadow:none;margin-left:.2rem;position:static}}.view{gap:var(--space-5);animation:view-enter var(--duration-base) var(--ease-out) both;flex-direction:column;display:flex}@keyframes view-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.view__header{justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.view__header--stacked{align-items:flex-start;gap:var(--space-2);flex-direction:column}.view__heading{gap:var(--space-1);flex-direction:column;display:flex}.view__count{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.view__lead{color:var(--color-text-muted);text-wrap:pretty;max-width:44rem}.stack{gap:var(--space-4);flex-direction:column;display:flex}.cluster{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.button--sm{min-height:var(--control-height-sm);padding-inline:var(--space-3);font-size:var(--text-xs)}.button--primary{background:var(--color-accent);color:var(--color-on-accent);box-shadow:inset 0 1px 0 var(--color-accent-glow), var(--shadow-primary)}.button--primary:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-1px)}.button--primary:active:not(:disabled){box-shadow:inset 0 1px 0 var(--color-accent-glow);transform:scale(.97)}.button--secondary{background:var(--color-surface-raised);color:var(--color-text);border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.button--secondary:hover:not(:disabled){border-color:var(--color-text-faint);box-shadow:var(--shadow-md)}.button--ghost{color:var(--color-accent-text);padding-inline:var(--space-3);background:0 0}.button--ghost:hover:not(:disabled){background:var(--color-accent-soft)}.button--danger{color:var(--color-danger);border-color:var(--color-danger);background:0 0}.button--danger:hover:not(:disabled){background:var(--color-danger-soft)}.button--danger-solid{background:var(--color-danger);color:var(--color-on-danger);border-color:var(--color-danger);box-shadow:0 0 0 4px var(--color-danger-glow)}.button--danger-solid:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.button svg{flex:none;width:1.125rem;height:1.125rem}.button--ghost svg:first-child{margin-inline-start:calc(var(--space-1) * -1)}.confirm{align-items:center;gap:var(--space-2);animation:confirm-in var(--duration-base) var(--ease-out) both;flex-wrap:wrap;display:inline-flex}@keyframes confirm-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:none}}.confirm__prompt{font-size:var(--text-sm);color:var(--color-danger-text);font-weight:var(--weight-medium)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}@media (width<=479px){.card{padding:var(--space-4)}}.card--raised{background:var(--color-surface-raised);box-shadow:var(--shadow-md)}.card--interactive{cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring)}.card--interactive:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card--interactive:active{box-shadow:var(--shadow-sm);transform:scale(.995)}.card__header{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.card__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium)}.card__eyebrow{margin-bottom:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-faint)}.badge{border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;background:var(--color-surface-sunken);color:var(--color-text-muted);border:1px solid #0000;align-items:center;gap:.4rem;padding:.2rem .65rem;line-height:1.4;display:inline-flex}.badge--overdue:before,.badge--due-soon:before,.badge--ok:before{content:"";opacity:.8;background:currentColor;border-radius:50%;width:.45rem;height:.45rem}.badge--allergy{background:var(--color-danger-soft);color:var(--color-danger-text);border-color:var(--color-danger)}.badge--overdue{background:var(--color-danger-soft);color:var(--color-danger-text)}.badge--due-soon{background:var(--color-warn-soft);color:var(--color-warn-text)}.badge--ok{background:var(--color-ok-soft);color:var(--color-ok-text)}.badge--accent{background:var(--color-accent-soft);color:var(--color-accent-text)}.monogram{background:linear-gradient(160deg, var(--color-surface-raised), var(--color-accent-soft));width:2.75rem;height:2.75rem;color:var(--color-accent-text);border:1px solid var(--color-border);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;line-height:1;display:grid}.monogram--lg{width:4rem;height:4rem;font-size:var(--text-2xl);box-shadow:var(--shadow-sm)}.notice{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-normal);animation:notice-in var(--duration-base) var(--ease-out) both;display:flex}@keyframes notice-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.notice__icon{flex:none;place-items:center;width:1.5rem;height:1.5rem;margin-top:.05rem;display:grid}.notice__icon svg{width:1.25rem;height:1.25rem}.notice__body{gap:var(--space-3);flex-direction:column;flex:1;min-width:0;display:flex}.notice--ok{background:var(--color-ok-soft);border-color:var(--color-ok);color:var(--color-ok-text)}.notice--warn{background:var(--color-warn-soft);border-color:var(--color-warn);color:var(--color-warn-text)}.notice--danger{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-danger-text);font-weight:var(--weight-medium)}.notice--warn .notice__body p{color:var(--color-text)}.field{flex-direction:column;gap:.375rem;min-width:0;display:flex}.field__label{align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:flex}.field__required{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-accent-text)}.field__hint{font-size:var(--text-sm);color:var(--color-text-muted)}.field__error{align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-danger-text);display:flex}.field__error:before{content:"";background:var(--color-danger);border-radius:50%;flex:none;align-self:center;width:.4rem;height:.4rem}.input,.select,.textarea{width:100%;min-width:0;min-height:var(--control-height);padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--text-base);box-shadow:inset 0 1px 2px var(--color-surface-sunken);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.input::placeholder,.textarea::placeholder{color:var(--color-text-faint)}.input:hover,.select:hover,.textarea:hover{border-color:var(--color-text-faint)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-glow);outline:none}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--color-danger)}.input[aria-invalid=true]:focus-visible,.select[aria-invalid=true]:focus-visible,.textarea[aria-invalid=true]:focus-visible{box-shadow:0 0 0 4px var(--color-danger-glow)}.input[type=search]::-webkit-search-cancel-button{cursor:pointer}.textarea{resize:vertical;min-height:5.5rem;line-height:var(--leading-normal)}.select-wrap{display:block;position:relative}.select-wrap .select{appearance:none;padding-inline-end:2.75rem}.select-wrap:after{content:"";border-right:2px solid var(--color-text-muted);border-bottom:2px solid var(--color-text-muted);pointer-events:none;width:.5rem;height:.5rem;position:absolute;top:50%;right:1.05rem;transform:translateY(-70%)rotate(45deg)}.input-icon{display:block;position:relative}.input-icon>svg{width:1.2rem;height:1.2rem;color:var(--color-text-faint);pointer-events:none;position:absolute;top:50%;left:.9rem;transform:translateY(-50%)}.input-icon .input{padding-inline-start:2.75rem}.checkbox{align-items:center;gap:var(--space-2);min-height:var(--control-height-sm);padding:0 var(--space-3) 0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface-raised);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);display:inline-flex}.checkbox:hover{border-color:var(--color-text-faint)}.checkbox:active{transform:scale(.97)}.checkbox:has(input:checked){background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-text)}.checkbox:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}.checkbox input{width:1.125rem;height:1.125rem;accent-color:var(--color-accent);margin:0}.checkbox input:focus-visible{outline:none}.empty-state{text-align:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);background:linear-gradient(180deg, var(--color-surface), var(--color-surface-sunken));border:1px dashed var(--color-border-strong);border-radius:var(--radius-xl);flex-direction:column;display:flex}.empty-state__icon{background:var(--color-accent-soft);width:4.5rem;height:4.5rem;color:var(--color-accent-text);box-shadow:0 0 0 8px var(--color-surface), 0 0 0 9px var(--color-border);margin-bottom:var(--space-3);animation:empty-pop var(--duration-slow) var(--ease-spring) both;border-radius:50%;place-items:center;display:grid}@keyframes empty-pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}.empty-state__icon svg{width:2.1rem;height:2.1rem}.empty-state__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight)}.empty-state__body{color:var(--color-text-muted);text-wrap:pretty;max-width:30rem}.empty-state__action{margin-top:var(--space-2)}.section-grid{gap:var(--space-4);display:grid}@media (width>=720px){.section-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr))}}.backup{gap:var(--space-3);flex-direction:column;display:flex}.backup .card__header{margin-bottom:0}.backup__count{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text)}.backup__actions{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.file-button{position:relative}.file-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.file-button:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}.pet-search{max-width:34rem}.pet-search__none{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);border:1px dashed var(--color-border-strong);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.pet-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pet-row{align-items:center;column-gap:var(--space-3);row-gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);font:inherit;color:inherit;text-align:start;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"avatar main chevron""avatar tags chevron";display:grid}.pet-row .monogram{grid-area:avatar;align-self:start}.pet-row__main{flex-direction:column;grid-area:main;gap:2px;min-width:0;display:flex}.pet-row__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:var(--leading-snug);color:var(--color-text)}.pet-row__meta,.pet-row__owner{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-snug)}.pet-row__tags{gap:var(--space-2);flex-wrap:wrap;grid-area:tags;display:flex}.pet-row__tags:empty{display:none}.pet-row__chevron{color:var(--color-text-faint);transition:color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);grid-area:chevron;place-items:center;display:grid}.pet-row__chevron svg{width:1.25rem;height:1.25rem}.pet-row:hover .pet-row__chevron{color:var(--color-accent-text);transform:translate(2px)}@media (width>=720px){.pet-row{padding:var(--space-4) var(--space-5);grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"avatar main tags chevron"}.pet-row .monogram{align-self:center}.pet-row__tags{justify-content:flex-end}}.pet-form{gap:var(--space-6);flex-direction:column;display:flex}.pet-form__group{gap:var(--space-4);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.pet-form__group+.pet-form__group{padding-top:var(--space-5);border-top:1px solid var(--color-border)}.pet-form__legend{float:left;width:100%;margin-bottom:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-faint);padding:0}.pet-form__row{gap:var(--space-4);display:grid}.pet-form__actions{align-items:center;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}@media (width>=720px){.pet-form__row{column-gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr))}}.pet-card__layout{gap:var(--space-5);align-items:start;display:grid}@media (width>=960px){.pet-card__layout{gap:var(--space-6);grid-template-columns:minmax(0,5fr) minmax(0,6fr)}}.pet-card__body{gap:var(--space-4);flex-direction:column;display:flex}.pet-card__identity{align-items:center;gap:var(--space-4);display:flex}.pet-card__titles{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.pet-card__titles h2{font-size:var(--text-3xl)}.pet-card__coat{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.pet-card__meta{color:var(--color-text-muted)}.pet-card__coat .pet-card__meta{font-size:var(--text-sm)}.pet-card__no-allergies{align-items:center;gap:var(--space-2);color:var(--color-ok-text);font-size:var(--text-sm);font-weight:var(--weight-medium);display:flex}.pet-card__no-allergies svg{width:1.1rem;height:1.1rem;color:var(--color-ok)}.allergy-banner{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-danger-soft);border:1px solid var(--color-danger);color:var(--color-danger-text);font-weight:var(--weight-semibold);display:flex}.allergy-banner__icon{width:1.5rem;height:1.5rem;color:var(--color-danger);flex:none;place-items:center;display:grid}.allergy-banner__icon svg{width:1.35rem;height:1.35rem}.allergy-banner__text{min-width:0;padding-top:.05rem}.pet-card__owner{gap:var(--space-1);flex-direction:column;display:flex}.pet-card__owner-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-faint)}.pet-card__owner-line{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.pet-card__owner-name{font-weight:var(--weight-medium)}.call-link{min-height:var(--control-height-sm);padding:0 var(--space-3) 0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.call-link svg{width:1.05rem;height:1.05rem}.call-link:hover{background:var(--color-selection)}.call-link:active{transform:scale(.97)}.pet-card__details{gap:var(--space-3) var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);margin:0;display:grid}@media (width>=480px){.pet-card__details{grid-template-columns:repeat(2,minmax(0,1fr))}.pet-card__details>:last-child:nth-child(odd){grid-column:1/-1}}.pet-card__details dt{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-faint);margin-bottom:2px}.pet-card__details dd{text-wrap:pretty;margin:0}.pet-card__actions{align-items:center;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.pet-card__actions .confirm,.pet-card__actions>.button--danger{margin-inline-start:auto}.pet-card__due{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-sunken);border-inline-start:4px solid var(--color-border-strong);color:var(--color-text-muted);display:grid}.pet-card__due h3{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:inherit}.pet-card__due p{gap:var(--space-1) var(--space-3);color:var(--color-text);flex-wrap:wrap;align-items:baseline;display:flex}.pet-card__due strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight)}.pet-card__due--ok{border-inline-start-color:var(--color-ok);background:var(--color-ok-soft);color:var(--color-ok-text)}.pet-card__due--due-soon{border-inline-start-color:var(--color-warn);background:var(--color-warn-soft);color:var(--color-warn-text)}.pet-card__due--overdue{border-inline-start-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger-text)}.pet-card__due--overdue p{color:var(--color-danger-text)}.pet-card__future{gap:var(--space-5);flex-direction:column;min-width:0;display:flex}.pet-card__section{gap:var(--space-4);flex-direction:column;display:flex}.pet-card__section>h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium)}.visit-form{gap:var(--space-4);flex-direction:column;display:flex}.visit-form__services{gap:var(--space-2);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.visit-form__services legend{margin-bottom:var(--space-2);padding:0}.visit-form__checks{gap:var(--space-2);flex-wrap:wrap;display:flex}.visit-form .pet-form__actions{border-top:0;padding-top:0}.visit-history__summary{align-items:center;gap:var(--space-2);padding:.3rem var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;align-self:flex-start;margin:0;display:inline-flex}.visit-history__summary--empty{font-weight:var(--weight-regular);background:0 0;padding-inline:0}.visit-history{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.visit-history__item{gap:var(--space-1);padding:var(--space-3) 0 var(--space-4) var(--space-5);border-inline-start:2px solid var(--color-border);flex-direction:column;display:flex;position:relative}.visit-history__item:last-child{padding-bottom:var(--space-1)}.visit-history__marker{background:var(--color-accent);width:.8rem;height:.8rem;box-shadow:0 0 0 3px var(--color-surface);border-radius:50%;position:absolute;top:1.15rem;left:-.45rem}.visit-history__item:first-child .visit-history__marker{background:var(--color-accent)}.visit-history__item:not(:first-child) .visit-history__marker{background:var(--color-border-strong)}.visit-history__item p{margin:0}.visit-history__top{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.visit-history__date{font-weight:var(--weight-semibold)}.visit-history__price{font-family:var(--font-display);font-size:var(--text-lg);font-variant-numeric:tabular-nums;color:var(--color-accent-text)}.visit-history__services{color:var(--color-text);font-size:var(--text-sm)}.visit-history__notes{color:var(--color-text-muted);font-size:var(--text-sm);text-wrap:pretty;font-style:italic}.visit-history__actions{margin-block-start:var(--space-2)}.due-section{gap:var(--space-3);display:grid}.due-section h3{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium);display:flex}.due-section h3:before{content:"";background:var(--color-border-strong);border-radius:50%;width:.6rem;height:.6rem}.due-section--overdue h3:before{background:var(--color-danger);box-shadow:0 0 0 4px var(--color-danger-soft)}.due-section--due-soon h3:before{background:var(--color-warn);box-shadow:0 0 0 4px var(--color-warn-soft)}.due-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.due-row{align-items:center;column-gap:var(--space-3);row-gap:var(--space-3);padding:var(--space-4);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"avatar main""avatar badge""actions actions";display:grid}.due-row .monogram{grid-area:avatar;align-self:start}.due-row__main{grid-area:main;gap:2px;min-width:0;display:grid}.due-row>.badge{grid-area:badge;justify-self:start}.due-row__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:var(--leading-snug)}.due-row__meta{color:var(--color-text-muted);font-size:var(--text-sm)}.due-row__actions{justify-content:space-between;align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-wrap:wrap;grid-area:actions;display:flex}.due-row__actions .button{margin-inline-start:auto}@media (width>=720px){.due-row{padding:var(--space-4) var(--space-5);grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"avatar main badge actions"}.due-row .monogram{align-self:center}.due-row__actions{border-top:0;padding-top:0}}.print-only{display:none}.print-card{color:#000;width:5in;min-height:3.5in;font-family:var(--font-sans);break-inside:avoid;background:#fff;border:1px solid #000;border-radius:.125in;flex-direction:column;gap:.14in;padding:.3in .35in;font-size:11pt;line-height:1.35;display:flex}.print-card p,.print-card h2{margin:0}.print-card__head{border-bottom:1px solid #000;gap:.03in;padding-bottom:.1in;display:grid}.print-card__name{font-family:var(--font-display);font-size:24pt;font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);line-height:1.1}.print-card__kind{font-size:12pt;font-weight:var(--weight-medium)}.print-card__coat{letter-spacing:var(--tracking-wide);text-transform:uppercase;font-size:10pt}.print-card__allergies{border:2px solid #000;padding:.06in .1in;font-size:12pt}.print-card__no-allergies{font-style:italic}.print-card__lines{gap:.04in;display:grid}.print-card__foot{border-top:1px solid #000;gap:.03in;margin-top:auto;padding-top:.1in;font-size:10pt;display:grid}@media print{@page{margin:.5in}html,body{color:#000!important;background:#fff!important}.app{min-height:0;display:block}.app-header,.tab-bar,.pet-card>:not(.print-only){display:none!important}.app__main{max-width:none;padding:0}.view{gap:0;animation:none;transform:none}.print-only,.print-only[hidden]{display:block!important}.print-card{box-shadow:none}}
