:root{--ink:#18332f;--forest:#123a35;--teal:#2c7166;--mint:#dcebe5;--cream:#f7f4ed;--paper:#fff;--line:#dfe7e3;--muted:#6f817d;--danger:#a33b43;--shadow:0 18px 50px rgba(23,54,48,.12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--teal);margin:0 0 .35rem}.muted{color:var(--muted)}.privacy-note{padding:14px 16px;border:1px solid #b9ddec;border-radius:12px;background:#eef9fd;color:#26343b;margin-top:18px}.privacy-note p{margin:4px 0 0;color:var(--muted)}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.brand-panel{background:linear-gradient(145deg,#0c302b,#285e55);color:white;padding:8vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.brand-panel h1{font-family:Georgia,serif;font-size:clamp(2.5rem,6vw,5.5rem);margin:.8rem 0}.brand-panel p{font-size:1.25rem;max-width:520px;color:#d9ebe5}.brand-mark,.logo>span{width:64px;height:64px;border:1px solid #8db5aa;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif}.paw-art{position:absolute;right:6%;bottom:6%;width:280px;height:240px;opacity:.09;font-size:80px;transform:rotate(-12deg)}.paw-art span{position:absolute}.paw-art span:nth-child(2){left:90px;top:-35px}.paw-art span:nth-child(3){left:165px;top:5px}.paw-art span:nth-child(4){left:220px;top:85px}.paw-art b{position:absolute;left:90px;top:90px;font-size:130px}.auth-card{display:grid;place-items:center;padding:5vw;background:#fff}.stack{width:min(420px,100%);display:grid;gap:1rem}.stack h2{font:2.25rem Georgia,serif;margin:0 0 1rem}.stack label,.field{display:grid;gap:.4rem;font-size:.85rem;font-weight:700}.stack small{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;border:1px solid #ccd8d4;border-radius:10px;padding:.82rem .9rem;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(44,113,102,.12)}textarea{min-height:120px;resize:vertical}.primary,.outline,.ghost{border-radius:10px;padding:.82rem 1.1rem;font-weight:750;border:1px solid transparent}.primary{background:var(--forest);color:white}.primary:hover{background:#1d5149}.outline{color:var(--forest);border-color:#aac2ba;background:white}.ghost{background:transparent;color:var(--teal)}
.app{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--forest);padding:24px 18px;display:flex;flex-direction:column;color:white}.logo{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;padding:4px 8px 30px}.logo>span{width:48px;height:48px;font-size:.85rem}.logo strong{font-family:Georgia,serif;font-size:1.05rem;line-height:1}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;gap:13px;align-items:center;color:#bdd4cd;text-decoration:none;padding:12px 14px;border-radius:9px}.sidebar nav a:hover,.sidebar nav a.active{background:#285c53;color:#fff}.user-box{margin-top:auto;border-top:1px solid #35635b;padding:18px 6px 2px;display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;background:#d9e9e4;color:var(--forest);border-radius:50%;display:grid;place-items:center;font-weight:800}.user-box div:nth-child(2){display:grid;min-width:0}.user-box small{color:#a9c6be}.user-box button{margin-left:auto;background:none;border:0;color:white;font-size:1.2rem}.workspace{min-width:0}.topbar{height:104px;background:#fff;border-bottom:1px solid var(--line);padding:20px 4vw;display:flex;align-items:center;justify-content:space-between}.topbar h1{font:1.8rem Georgia,serif;margin:0}.menu-button{display:none;background:none;border:0;font-size:1.4rem}.view{padding:34px 4vw 70px;max-width:1500px}.hero{background:linear-gradient(120deg,#dcebe5,#eff4ef);border-radius:18px;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.hero h2{font:2rem Georgia,serif;margin:0 0 7px}.hero p{margin:0;color:#57706a}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}.stat,.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px;box-shadow:0 6px 18px rgba(35,69,62,.04)}.stat strong{display:block;font:2.2rem Georgia,serif}.stat span{color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:18px 0}.section-head h2{font:1.5rem Georgia,serif;margin:0}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.action{padding:18px;border:1px solid var(--line);background:#fbfcfa;border-radius:12px;text-align:left;color:var(--ink)}.action b{display:block;margin-bottom:3px}.action small{color:var(--muted)}
.toolbar{display:flex;gap:12px;margin-bottom:18px}.toolbar input{max-width:460px}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f7f9f7}th,td{padding:15px 18px;border-bottom:1px solid #edf1ef}tr:last-child td{border:0}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fbf9}.tag{display:inline-block;padding:4px 9px;border-radius:99px;background:var(--mint);color:var(--teal);font-size:.75rem;font-weight:750}.empty{text-align:center;padding:50px 20px;color:var(--muted)}
.scanner{max-width:760px;margin:4vh auto;background:white;border-radius:22px;padding:42px;box-shadow:var(--shadow);text-align:center}.scanner-icon{width:92px;height:92px;border-radius:50%;margin:0 auto 18px;background:var(--mint);display:grid;place-items:center;font-size:2.4rem}.scanner h2{font:2rem Georgia,serif;margin:.3rem}.scanner input{font-size:1.5rem;text-align:center;letter-spacing:.13em;margin:20px 0}.scan-result{margin-top:20px;padding:18px;border-radius:12px;background:#f1f7f4;text-align:left}.scan-result.error{background:#fbefef;color:var(--danger)}
.pet-head{display:flex;align-items:center;gap:18px;margin-bottom:25px}.pet-icon{width:74px;height:74px;background:var(--mint);border-radius:50%;display:grid;place-items:center;font-size:2rem}.pet-head h2{font:2rem Georgia,serif;margin:0}.details{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail{padding:12px;background:#f8faf8;border-radius:9px}.detail small{display:block;color:var(--muted);margin-bottom:3px}.timeline{display:grid;gap:12px}.entry{border-left:3px solid #80aa9f;padding:6px 0 6px 18px}.entry h4{margin:0}.entry p{white-space:pre-wrap;margin:.5rem 0}.entry small{color:var(--muted)}
dialog{border:0;border-radius:18px;padding:0;box-shadow:var(--shadow);width:min(660px,calc(100% - 28px));max-height:90vh;color:var(--ink)}dialog::backdrop{background:rgba(10,35,31,.55)}#modal-body{padding:34px}.modal-close{position:absolute;right:14px;top:12px;border:0;background:none;font-size:1.7rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .wide{grid-column:1/-1}.form-grid h2{grid-column:1/-1;font:1.7rem Georgia,serif;margin:0 0 8px}.toast{position:fixed;right:22px;top:18px;z-index:50;background:var(--forest);color:#fff;padding:13px 18px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(-8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{background:var(--danger)}
@media(max-width:850px){.app{grid-template-columns:1fr}.sidebar{position:fixed;z-index:20;width:240px;transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.menu-button{display:block}.topbar{padding:18px 20px}.view{padding:24px 18px}.auth-shell{grid-template-columns:1fr}.brand-panel{min-height:34vh;padding:38px}.auth-card{padding:38px 24px}.stats,.grid-two{grid-template-columns:1fr}.details{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.topbar .outline{display:none}}
.brand-logo{display:block;width:min(360px,80%);height:auto;object-fit:contain;object-position:left center;filter:drop-shadow(0 3px 12px rgba(0,0,0,.15))}.logo{display:block;padding:4px 7px 30px}.logo img{display:block;width:100%;height:auto;filter:brightness(0) invert(1);opacity:.96}.logo strong,.logo>span{display:none}
.brand-panel{background:linear-gradient(145deg,#f4f6f8,#e4e9ed);color:#202124;border-right:1px solid #d7dde2}.brand-panel p{color:#5e6870}.brand-logo{width:min(430px,90%);filter:none}.paw-art{color:#10aeef;opacity:.08}
