:root{--ink:#302936;--muted:#7e7485;--purple:#725486;--purple2:#9371a8;--cream:#faf7f2;--card:#fff;--line:#ebe4e1;--red:#d75959;--orange:#e49b52;--green:#5e9c7c;--shadow:0 12px 35px rgba(67,45,75,.08)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1220px)/2));position:sticky;top:0;z-index:20}.brand{display:flex;gap:12px;align-items:center;font-family:Georgia,serif;font-size:22px}.brandmark{width:44px;height:44px;display:grid;place-items:center;background:#f0e6f3;border-radius:15px}.brand small{display:block;font:500 10px Inter,system-ui,sans-serif;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.user{display:flex;align-items:center;gap:15px;font-size:13px}.linkbtn{border:0;background:none;color:var(--muted);cursor:pointer}.page{max-width:1220px;margin:auto;padding:35px 24px 110px}.hero{min-height:205px;border-radius:28px;padding:38px 42px;color:#fff;background:linear-gradient(115deg,#5f436f,#8e6aa1);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between}.hero:before,.hero:after{content:'🐾';position:absolute;font-size:120px;opacity:.05;transform:rotate(-20deg);right:15%;top:-35px}.hero:after{right:3%;top:90px;font-size:80px}.hero h1{font:700 35px Georgia,serif;margin:5px 0 8px}.hero p{margin:0;opacity:.85}.hero .eyebrow{color:#eadff0;opacity:1}.hero-cat{font-size:85px;filter:drop-shadow(0 10px 14px #493153);margin-right:25px}.eyebrow{margin:0 0 5px;color:var(--purple2);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.redtext{color:var(--red)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif}h2{font-size:20px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:12px 18px;font-weight:700;cursor:pointer}.primary{background:var(--purple);color:#fff;box-shadow:0 7px 18px rgba(89,58,105,.18)}.hero .primary{background:#fff;color:var(--purple);z-index:2;margin-left:auto;margin-right:25px}.secondary{background:#fff;border:1px solid var(--line)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:17px;padding:15px 18px;display:flex;align-items:center;gap:12px}.stat i{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-style:normal;font-weight:bold}.stat i.purple{background:#f0e8f4}.stat i.red{background:#fbe8e7;color:var(--red)}.stat i.orange{background:#fff0df;color:var(--orange)}.stat span{font-size:13px;color:var(--muted)}.stat b{font-size:22px;color:var(--ink);margin-right:4px}.dashboard-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}.section-title,.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-title a{font-size:12px;color:var(--purple);font-weight:700}.care-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #f2ece9}.care-row.overdue{background:#fff8f7;margin:0 -12px;padding:12px;border-radius:12px;border:0}.avatar{background:#efe6f1;display:grid;place-items:center;border-radius:50%;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.mini{width:42px;height:42px;flex:0 0 auto}.avatar.huge{width:130px;height:130px;font-size:55px;flex:0 0 auto}.grow{flex:1;min-width:0}.care-row b,.care-row span{display:block}.care-row b{font-size:13px}.care-row span{font-size:11px;color:var(--muted);margin-top:3px}.done{border:1px solid #cce1d6;background:#eff8f3;color:var(--green);border-radius:50%;width:34px;height:34px;font-weight:bold;cursor:pointer}.activity{display:flex;gap:10px;border-left:1px solid #e6dce9;margin-left:9px;padding:0 0 20px 18px;position:relative}.activity>span{position:absolute;left:-11px;top:-3px;background:#f3ebf5;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;font-size:10px}.activity p{font-size:12px;margin:0}.activity small{display:block;color:var(--muted);margin-top:4px}.empty{text-align:center;padding:28px;color:var(--muted)}.empty span,.empty b{display:block}.empty span{font-size:35px}.empty b{color:var(--ink);margin-top:8px}.empty p{font-size:12px}.empty.small{padding:15px;font-size:12px}.page-title{margin-bottom:22px}.page-title h1{font-size:32px;margin:0}.page-title h1 span{font:600 12px Inter,system-ui,sans-serif;background:#eee4f1;color:var(--purple);padding:5px 9px;border-radius:20px;vertical-align:middle}.filters{display:grid;grid-template-columns:1fr 170px 190px auto;gap:10px;margin-bottom:22px}.filters input,.filters select,.filters button,.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);border-radius:11px;background:#fff;padding:11px 13px;min-width:0}.filters button{background:var(--ink);color:#fff}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.cat-card{background:#fff;border-radius:20px;border:1px solid var(--line);overflow:hidden;box-shadow:var(--shadow);transition:.2s}.cat-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(67,45,75,.14)}.cat-photo{height:210px;background:linear-gradient(135deg,#eee5f1,#f6eee6);position:relative;display:grid;place-items:center}.cat-photo>img{width:100%;height:100%;object-fit:cover}.cat-photo>span{font-size:70px}.status{position:absolute;left:12px;bottom:12px;background:#fff;color:var(--green);border-radius:20px;padding:5px 9px;font-size:9px;font-style:normal;font-weight:700}.cat-info{padding:15px}.cat-info h2{margin:0 0 5px}.cat-info h2 small{color:var(--purple)}.cat-info p{font-size:12px;color:var(--muted)}.cat-info div{display:flex;gap:6px;flex-wrap:wrap}.cat-info div span,.chips span{font-size:9px;padding:5px 8px;border-radius:15px;background:#f6f1f7;color:var(--purple)}.profile-head{display:flex;gap:25px;align-items:center;margin-bottom:22px}.profile-head h1{font-size:42px;margin:0}.profile-head p{color:var(--muted)}.profile-head .actions{display:flex;gap:8px}.chips{display:flex;gap:7px}.profile-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.identity{display:grid;grid-template-columns:1fr 1fr;gap:18px}.identity div{border-bottom:1px solid var(--line);padding-bottom:10px}.identity dt{font-size:10px;color:var(--muted);text-transform:uppercase}.identity dd{margin:5px 0 0;font-size:13px;font-weight:600}.alert{background:#fff1df;color:#804f20;padding:15px 18px;border-radius:14px;margin-bottom:20px;font-size:13px}.alert b{margin-right:10px}.timeline{display:grid;grid-template-columns:14px 1fr;gap:8px;padding-bottom:18px}.timeline i{width:10px;height:10px;background:var(--green);border-radius:50%;margin-top:5px;box-shadow:0 0 0 5px #e9f3ee}.timeline.late i{background:var(--red);box-shadow:0 0 0 5px #fbe8e7}.timeline b,.timeline span,.timeline em{display:block;font-size:12px}.timeline span,.timeline em{font-size:10px;color:var(--muted);margin-top:4px}.text-action{border:0;background:none;color:var(--purple);padding:5px 0;font-size:10px;font-weight:bold;cursor:pointer}.form-wrap{max-width:850px;margin:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label>span{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.form-grid input:not([type=checkbox]),.form-grid select,.form-grid textarea{width:100%}.form-grid input[type=checkbox]{margin-right:7px}.form-grid ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.form-grid ul label{background:#f8f4f8;padding:8px;border-radius:9px;font-size:12px}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px}.field-error,.error{color:var(--red);font-size:11px}.toast{background:#e8f4ee;color:#386b52;border-radius:12px;padding:12px 16px;margin-bottom:15px}.schedule{max-width:850px;margin:auto}.schedule h2{margin-top:25px}.schedule time{width:42px;text-align:center;text-transform:uppercase;font-size:9px;color:var(--muted)}.schedule time b{font-size:18px;color:var(--ink)}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-art{background:linear-gradient(145deg,#594067,#88639a);color:#fff;display:grid;place-content:center;text-align:center;position:relative;overflow:hidden}.login-art .cat-face{font-size:120px;filter:drop-shadow(0 15px 20px #3f2949)}.login-art h1{font-size:55px;margin:10px 0}.moon{position:absolute;font-size:160px;opacity:.08;top:20px;right:40px}.login-card{align-self:center;width:min(420px,85%);margin:auto;background:#fff;padding:40px;border-radius:24px;box-shadow:var(--shadow)}.login-card h2{font-size:30px;margin-bottom:8px}.login-card>p{color:var(--muted);font-size:13px}.stack{display:grid;gap:18px;margin:25px 0}.stack label{font-size:11px;font-weight:bold}.stack input{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid var(--line);border-radius:10px}.login-card small{display:block;text-align:center;color:var(--muted)}.mobile-nav{display:none}
@media(max-width:850px){.topbar{height:66px;padding:0 16px}.user>span{display:none}.page{padding:20px 14px 95px}.hero{min-height:180px;padding:25px}.hero h1{font-size:27px;max-width:80%}.hero-cat{position:absolute;right:3px;bottom:5px;font-size:60px;margin:0}.desktop{display:none!important}.stats{grid-template-columns:repeat(3,1fr);gap:7px}.stat{padding:10px;display:block;text-align:center}.stat i{margin:auto}.stat span{display:block;margin-top:5px;font-size:9px}.stat b{display:block;font-size:18px}.dashboard-grid,.profile-grid{grid-template-columns:1fr}.panel{padding:18px}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;height:72px;background:#fff;border-top:1px solid var(--line);z-index:50;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav a{font-size:9px;color:var(--muted);display:grid;place-items:center;align-content:center;gap:3px}.mobile-nav span{font-size:20px}.mobile-nav .add span{background:var(--purple);color:#fff;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;margin-top:-20px}.cat-grid{grid-template-columns:repeat(2,1fr);gap:10px}.cat-photo{height:150px}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.page-title h1{font-size:27px}.page-title .primary{padding:10px;font-size:11px}.profile-head{align-items:flex-start;flex-wrap:wrap}.avatar.huge{width:95px;height:95px}.profile-head h1{font-size:32px}.profile-head .actions{width:100%}.profile-head .actions a{flex:1}.identity{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid>*{grid-column:1}.form-grid ul{grid-template-columns:1fr 1fr}.login-shell{grid-template-columns:1fr}.login-art{min-height:35vh}.login-art .cat-face{font-size:75px}.login-art h1{font-size:36px}.login-art p{font-size:12px}.login-card{margin-top:-25px;z-index:2;padding:28px}.login-card h2{font-size:24px}}
@media(max-width:420px){.cat-grid{grid-template-columns:1fr 1fr}.cat-photo{height:135px}.cat-info{padding:11px}.cat-info h2{font-size:18px}.cat-info div span{display:none}}
.admin-link{color:var(--purple);font-weight:700;background:#f5eef7;padding:8px 11px;border-radius:10px}.admin-heading{background:linear-gradient(120deg,#fff,#f5ecf6);border:1px solid var(--line);border-radius:22px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between}.admin-heading h1{margin:0 0 5px}.admin-heading p:last-child{font-size:12px;color:var(--muted);margin:0}.admin-shield{font-size:38px}.settings-tabs{display:flex;gap:5px;margin:18px 0;background:#eee8e6;padding:5px;border-radius:14px;width:max-content;max-width:100%}.settings-tabs a{padding:10px 16px;border-radius:10px;font-size:12px;font-weight:700;color:var(--muted)}.settings-tabs a.active{background:#fff;color:var(--purple);box-shadow:0 3px 10px rgba(60,40,70,.08)}.admin-panel.narrow{max-width:850px}.users-list{margin-top:15px}.user-row{display:flex;align-items:center;gap:14px;padding:14px 5px;border-top:1px solid var(--line)}.user-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#eee4f1;color:var(--purple);font-weight:bold}.user-row b,.user-row span{display:block}.user-row span{color:var(--muted);font-size:11px;margin-top:3px}.role,.account-state{font-size:9px;font-style:normal;padding:5px 8px;border-radius:20px;background:#f2f0ef;color:var(--muted)}.role.admin{background:#eee4f1;color:var(--purple)}.account-state{background:#eaf5ef;color:var(--green)}.account-state.off{background:#fbe9e8;color:var(--red)}.user-row>i{font-size:24px;color:#bbb}.info-card{max-width:850px;margin-top:14px;padding:14px 17px;background:#f2edf5;color:#675370;border-radius:13px;font-size:11px}.admin-form{box-shadow:none;border:0;padding:10px 0 0}.admin-form label small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.smtp-status{font-size:10px;color:var(--muted);background:#eee;padding:6px 9px;border-radius:15px}.smtp-status.on{color:var(--green);background:#eaf5ef}
@media(max-width:850px){.admin-link{font-size:0;padding:7px}.admin-link:first-letter{font-size:16px}.settings-tabs{width:100%;overflow:auto}.settings-tabs a{white-space:nowrap;padding:9px 11px}.user-row{gap:8px}.role{display:none}.account-state{font-size:8px}.admin-heading{padding:18px}.admin-heading h1{font-size:26px}}
.desktop-menu{display:flex;align-items:center;gap:5px}.desktop-menu a{font-size:11px;font-weight:700;color:var(--muted);padding:8px 10px;border-radius:9px}.desktop-menu a:hover{background:#f5eef7;color:var(--purple)}.actions.wrap{flex-wrap:wrap;justify-content:flex-end}.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.medical-panel{grid-column:1/-1}.weight-last{font-size:11px;color:var(--muted);text-align:right}.treatment-row{padding:10px 0;border-top:1px solid var(--line)}.treatment-row b,.treatment-row span{display:block;font-size:12px}.treatment-row span{font-size:10px;color:var(--muted);margin-top:4px}.treatment-row.inactive{opacity:.5}.medical-row{display:grid;grid-template-columns:75px 1fr auto;gap:12px;padding:11px;border-top:1px solid var(--line);align-items:start}.medical-row.important{background:#fff4e6;border-radius:10px}.medical-row time{font-size:10px;color:var(--muted)}.medical-row b,.medical-row span{display:block;font-size:12px}.medical-row span{font-size:10px;color:var(--muted);margin-top:3px}.medical-row>a{font-size:10px;color:var(--purple);font-weight:bold}.today-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.today-summary span{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;color:var(--muted);font-size:11px}.today-summary b{color:var(--ink);font-size:20px;margin-right:5px}.today-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:20px}.dose-card{display:flex;align-items:center;gap:10px;padding:13px 0;border-top:1px solid var(--line)}.dose-card.overdue{background:#fff6f4;margin:0 -10px;padding:13px 10px;border-radius:12px}.dose-time{font-weight:bold;font-size:15px;width:55px}.dose-time small{display:block;color:var(--red);font-size:8px}.skip{width:30px;height:30px;border:0;border-radius:50%;background:#f3efef;color:#9d8e8e;font-size:18px}.give{border:0;border-radius:10px;background:#e7f4ed;color:#3e805f;padding:8px 11px;font-size:10px;font-weight:bold;white-space:nowrap}.done-section{margin-top:20px}.done-line{font-size:11px;padding:8px;border-top:1px solid var(--line);color:var(--green)}.done-line span{color:var(--muted);float:right}.groups-layout{display:grid;grid-template-columns:1fr 310px;gap:20px}.group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.group-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.group-card>i{position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--group)}.group-card h2{margin-bottom:5px}.group-card p{font-size:10px;color:var(--muted);min-height:25px}.group-cats{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.group-cats a,.group-cats span{background:#f4eff5;border-radius:12px;padding:4px 7px;font-size:9px}.group-card>b{font-size:10px;color:var(--muted)}.stack.compact p{margin-bottom:12px}.stack.compact label{display:block;font-size:11px;font-weight:bold;margin-bottom:4px}.stack.compact input{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px}.inventory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.inventory-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:var(--shadow)}.inventory-card.low{border-color:#efc7c4}.inventory-card.expiring{box-shadow:inset 0 4px var(--orange),var(--shadow)}.inventory-icon{font-size:26px}.inventory-card .section-title>a{font-size:9px;color:var(--purple)}.inventory-card h2{min-height:45px}.stock-number{color:var(--muted);font-size:11px}.stock-number b{font-size:30px;color:var(--ink)}.stock-alert{display:inline-block;background:#fbe7e5;color:var(--red);font-style:normal;font-size:9px;padding:4px 7px;border-radius:12px}.expiry{font-size:10px;color:var(--muted);margin:12px 0}.quick-stock{display:flex;gap:7px}.quick-stock button{flex:1;border:1px solid var(--line);background:#f8f5f3;border-radius:8px;padding:7px;font-weight:bold}.cat-info div span[style]{border-left:3px solid var(--tag)}
@media(max-width:1000px){.desktop-menu{display:none}.inventory-grid{grid-template-columns:repeat(3,1fr)}.group-grid{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.health-grid,.today-grid,.groups-layout{grid-template-columns:1fr}.medical-panel{grid-column:auto}.today-summary{grid-template-columns:1fr 1fr}.group-grid{grid-template-columns:1fr 1fr}.inventory-grid{grid-template-columns:1fr 1fr}.medical-row{grid-template-columns:65px 1fr}.medical-row>a{grid-column:2}.dose-card{gap:7px}.dose-card .avatar{display:none}.dose-time{width:45px}.give{padding:8px}.page-title .actions .secondary{display:none}}
.theme-toggle{border:0;background:#f2edf3;color:var(--purple);border-radius:50%;width:32px;height:32px;cursor:pointer}.identity-head{display:flex;align-items:start;justify-content:space-between}.cat-qr{width:72px;height:72px;border:5px solid #fff;border-radius:8px;image-rendering:pixelated}.expense-total{background:#fff;border:1px solid var(--line);border-radius:15px;padding:10px 16px;text-align:right}.expense-total small,.expense-total b{display:block}.expense-total small{font-size:9px;color:var(--muted)}.expense-total b{font-size:24px;color:var(--purple)}.expense-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:20px}.expense-kind,.expense-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line);font-size:11px}.expense-kind span{flex:1;text-transform:capitalize}.expense-kind small{color:var(--muted)}.expense-row time{color:var(--muted);font-size:9px}.expense-row span{display:block;color:var(--muted);font-size:9px;margin-top:2px}.expense-row strong{color:var(--purple)}.history-filter{grid-template-columns:1fr 220px auto;margin-top:18px}.history-list>div{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.history-list time{width:105px;font-size:9px;color:var(--muted)}.mini-letter{width:32px;height:32px;border-radius:10px}.history-list p{font-size:11px;margin:0}.history-list a{color:var(--purple);font-weight:bold}.backup-list>div{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.backup-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e8f4ee;color:var(--green);font-weight:bold}.backup-list b,.backup-list small{display:block}.backup-list small{font-size:9px;color:var(--muted);margin-top:3px}.help-text{font-size:11px;color:var(--muted);line-height:1.7}.import-result{margin-top:15px;padding:13px;background:#e8f4ee;color:var(--green);border-radius:10px;font-size:11px;font-weight:bold}
html[data-theme="dark"]{--ink:#eee8f0;--muted:#a9a0ad;--cream:#1d1920;--card:#29242d;--line:#403946;--shadow:0 12px 35px rgba(0,0,0,.25)}html[data-theme="dark"] body,html[data-theme="dark"] .topbar,html[data-theme="dark"] .panel,html[data-theme="dark"] .cat-card,html[data-theme="dark"] .stat,html[data-theme="dark"] .group-card,html[data-theme="dark"] .inventory-card,html[data-theme="dark"] .expense-total,html[data-theme="dark"] .login-card{background-color:var(--card);color:var(--ink)}html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{background:#201c23!important;color:var(--ink);border-color:var(--line)!important}html[data-theme="dark"] .secondary,html[data-theme="dark"] .settings-tabs a.active{background:#332d38;color:var(--ink)}html[data-theme="dark"] .care-row.overdue,html[data-theme="dark"] .dose-card.overdue{background:#3b292b}html[data-theme="dark"] .admin-heading{background:linear-gradient(120deg,#29242d,#342b39)}
@media(max-width:850px){.expense-grid{grid-template-columns:1fr}.history-filter{grid-template-columns:1fr}.history-list time{width:80px}.cat-qr{width:58px;height:58px}}
