:root{--wine:#9b3e55;--coral:#ed8b83;--mint:#5b9d95;--ink:#283339;--muted:#6e7778;--paper:#fffaf7;--line:#ecdeda;--shadow:0 14px 36px #5d26301c}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#fff8f4,#f5faf8);font-family:ui-rounded,"Nunito",system-ui,sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.shell{max-width:1040px;margin:auto;padding:24px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.1rem}.logo{position:relative;width:48px;height:42px;font-size:32px;line-height:42px;color:var(--wine)}.logo span{position:absolute;right:-4px;top:6px;color:#fff;font-size:19px;transform:rotate(-14deg);text-shadow:0 1px 5px #713142}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.round{width:46px;height:46px;border-radius:50%;background:#fff;color:var(--wine);box-shadow:var(--shadow);font-size:20px}.hero{min-height:68vh;display:grid;place-content:center;text-align:center}.hero .logo{margin:auto;width:130px;height:115px;font-size:98px;line-height:115px}.hero .logo span{font-size:54px;top:20px}.hero h1{font-family:Georgia,serif;font-size:3rem;margin:18px 0 8px;color:var(--wine)}.hero p{color:var(--muted);font-size:1.15rem}.primary,.secondary,.file-button{padding:13px 20px;border-radius:14px;font-weight:800;margin-top:18px}.primary{background:var(--wine);color:white;box-shadow:0 8px 16px #9b3e5544}.secondary,.file-button{background:#fff;color:var(--wine);border:1px solid var(--line)}.file-button{display:block;text-align:center;cursor:pointer}.onboard{max-width:640px;margin:8vh auto}.progress{height:8px;background:#f3e5e2;border-radius:10px;margin-bottom:27px;overflow:hidden}.progress div{height:100%;background:var(--coral);transition:.3s}.eyebrow{text-transform:uppercase;color:var(--mint);font-size:.75rem;font-weight:900;letter-spacing:.1em}.onboard h2{font-size:2rem;line-height:1.15;margin:10px 0}.onboard p{color:var(--muted);line-height:1.5}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:25px 0}.choice{padding:18px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;color:var(--ink);font-weight:750}.choice:hover,.choice.selected{border-color:var(--wine);background:#fff5f4}.form{display:grid;gap:13px;margin-top:22px}.field{display:grid;gap:7px;font-weight:750}.field input,.field textarea,.field select{padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink)}.race-typeahead{position:relative}.race-typeahead #breedInput{position:relative;width:100%;background:transparent}.race-typeahead #breedGhost{position:absolute;top:12px;color:var(--ink);font-weight:800;opacity:.38;pointer-events:none;white-space:pre}.race-typeahead #breedMeasure{position:absolute;visibility:hidden;white-space:pre;font:inherit}.hint{padding:16px;background:#fff2ed;border-radius:14px;color:#784551}.dash-head{display:flex;justify-content:space-between;align-items:end;margin:12px 0 24px}.dash-head h1{font-family:Georgia,serif;margin:5px 0;font-size:2.15rem}.bell{position:relative}.badge{position:absolute;right:1px;top:0;width:9px;height:9px;border-radius:50%;background:var(--coral)}.grid{display:grid;grid-template-columns:1.18fr .82fr;gap:17px}.card{background:#fff;border:1px solid #f2e8e5;border-radius:20px;padding:20px;box-shadow:0 4px 16px #5d26300b}.card h2{font-size:1.05rem;margin:0 0 14px}.health{background:linear-gradient(135deg,#e8f5f2,#fff)}.stat{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid #d9ebe7}.stat:first-of-type{border-top:0}.status{color:#25766d;font-weight:800;font-size:.85rem}.alert{color:#aa5634}.wide{grid-column:span 2}.timeline{border-left:2px solid #f0c5bd;padding-left:15px;color:var(--muted);line-height:1.5}.timeline strong{color:var(--ink)}.quick{display:flex;gap:9px;flex-wrap:wrap}.quick button{background:#f8f1ef;color:var(--wine);border-radius:12px;padding:10px 12px;font-weight:700}.modal{position:fixed;inset:0;background:#34232775;display:grid;place-items:center;padding:18px}.modal .card{width:min(520px,100%)}.hidden{display:none}.record{display:grid;gap:3px;border-top:1px solid var(--line);padding:12px 0}.record small,.muted,.empty{color:var(--muted)}.memory-photo{width:min(260px,100%);max-height:220px;object-fit:cover;border-radius:12px;margin-bottom:7px}.healthbook .card{min-height:250px}@media(max-width:680px){.shell{padding:17px}.grid{grid-template-columns:1fr}.wide{grid-column:auto}.choices{grid-template-columns:1fr}.dash-head h1{font-size:1.8rem}}
