: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}}

/* Actions de la bannière d'accueil : contraste et alignement stables. */
.hero .actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:390px;z-index:2}
.hero .actions .primary{margin:0}
.hero .actions .secondary{background:#fff;color:var(--purple);border-color:rgba(255,255,255,.65)}
@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}}
.danger{display:inline-flex;align-items:center;justify-content:center;border:1px solid #f1cecb;border-radius:12px;padding:12px 18px;background:#fff1f0;color:var(--red);font-weight:700;cursor:pointer;margin-right:auto}
.section-title a.primary{color:#fff}.permissions-heading{margin-top:28px;border-top:1px solid var(--line);padding-top:22px}.permissions-heading h3{margin:0 0 5px}.permissions-heading p{color:var(--muted);font-size:11px}.permissions-table{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:15px 0 22px}.permission-head,.permission-row{display:grid;grid-template-columns:minmax(210px,1fr) repeat(3,140px);align-items:center}.permission-head{background:#f6f1f7;color:var(--purple);font-size:10px;text-align:center}.permission-head b,.permission-row>b{padding:12px;text-align:left}.permission-row{border-top:1px solid var(--line);font-size:11px}.permission-row label{text-align:center;padding:11px;cursor:pointer}.permission-row label span{display:none}.permission-row input{accent-color:var(--purple);width:18px;height:18px}.admin-form>.form-actions{justify-content:flex-end}
@media(max-width:700px){.permissions-table{overflow-x:auto}.permission-head,.permission-row{min-width:620px}}
.treatment-medicine{margin-top:.35rem;padding:.45rem .65rem;border-left:3px solid var(--accent,#725486);background:rgba(114,84,134,.08);border-radius:0 .45rem .45rem 0}
.food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.food-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:19px;box-shadow:var(--shadow)}.food-icon{font-size:30px}.food-card h2{margin:4px 0}.food-brand,.food-date,.food-notes{font-size:10px;color:var(--muted)}.food-meta{display:flex;justify-content:space-between;align-items:center;margin:16px 0 8px;padding:12px;background:#f7f2f8;border-radius:12px}.food-meta b{font-size:13px}.food-meta strong{color:var(--purple);font-size:18px}.food-cats{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:13px}.food-cats>span{font-size:22px}.food-cats b,.food-cats small{display:block;font-size:11px}.food-cats small{color:var(--muted);margin-top:3px}.food-notes{margin:12px 0 0}.choices-disabled{opacity:.45}
@media(max-width:850px){.food-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.food-grid{grid-template-columns:1fr}}
.mobile-more{display:none}
@media(max-width:850px){
  .topbar .user{display:none}.topbar{justify-content:center}.brand{font-size:20px}
  .mobile-nav>a,.mobile-more{flex:1;min-width:0}
  .mobile-more{display:block;color:var(--muted)}.mobile-more summary{height:100%;list-style:none;display:grid;place-items:center;align-content:center;gap:3px;font-size:9px;cursor:pointer}.mobile-more summary::-webkit-details-marker{display:none}.mobile-more summary span{font-size:20px}
  .mobile-more[open] summary{color:var(--purple)}
  .mobile-more-panel{position:fixed;left:10px;right:10px;bottom:80px;max-height:calc(100dvh - 105px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:14px;box-shadow:0 -12px 45px rgba(48,41,54,.22);display:grid;grid-template-columns:1fr 1fr;gap:10px;z-index:60}
  .mobile-more-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:8px 8px 13px;border-bottom:1px solid var(--line)}.mobile-more-head b{font-family:Georgia,serif;font-size:20px}.mobile-more-head small{color:var(--muted)}
  .mobile-more-panel>a,.mobile-more-panel>button,.mobile-more-panel>form button{display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;min-height:78px;text-align:left;align-items:center;column-gap:10px;border:0;background:#f7f2f8;border-radius:16px;padding:15px;color:var(--ink);width:100%}.mobile-more-panel>a>span,.mobile-more-panel>button>span,.mobile-more-panel>form span{grid-row:1/3;font-size:25px;color:var(--purple)}.mobile-more-panel b{font-size:14px;line-height:1.15}.mobile-more-panel small{font-size:10px;line-height:1.25;color:var(--muted);margin-top:3px}.mobile-more-panel>form{margin:0}.mobile-more-panel>button,.mobile-more-panel>form button{height:100%;cursor:pointer}
  .page-title .actions .secondary{display:inline-flex}.page-title .actions{display:flex;flex-wrap:wrap;gap:6px}
}
@media(max-width:420px){.cat-grid{grid-template-columns:1fr}.cat-photo{height:220px}.cat-info div span{display:inline-block}.mobile-more-panel{grid-template-columns:1fr 1fr}}
.cat-photo-name{position:absolute;left:0;right:0;bottom:0;padding:24px 13px 9px;color:#fff;font:700 18px Georgia,serif;line-height:1.1;letter-spacing:.01em;text-align:left;text-shadow:0 1px 4px rgba(0,0,0,.85);background:linear-gradient(transparent,rgba(28,20,31,.78))}.cat-photo-name small{font:700 12px Inter,system-ui,sans-serif}.cat-card .cat-photo{height:175px}.cat-card .cat-info{padding:10px 13px 12px}.cat-card .cat-info p{margin-bottom:8px}.cat-card .cat-photo>img{display:block}

/* Tableau de bord des dépenses */
.expense-subtitle{font-size:12px;color:var(--muted);margin:7px 0 0}.expense-total{min-width:190px;padding:13px 18px}.expense-total span{display:block;font-size:9px;color:var(--muted);margin-top:3px}.expense-total span.up{color:var(--red)}.expense-total span.down{color:var(--green)}
.expense-filters{display:grid;grid-template-columns:105px 1.15fr 1fr 1.15fr 1.25fr auto auto;align-items:end;gap:9px;margin-bottom:18px;padding:15px;background:var(--card);border:1px solid var(--line);border-radius:17px}.expense-filters label span{display:block;font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 5px 3px}.expense-filters select,.expense-filters input{width:100%;height:40px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);padding:0 11px;font-size:11px}.expense-filters button,.expense-filters>a{height:40px;border:0;border-radius:10px;padding:0 15px;display:grid;place-items:center;font-size:10px;font-weight:700;white-space:nowrap}.expense-filters button{background:var(--purple);color:#fff;cursor:pointer}.expense-filters>a{color:var(--purple);background:#f4eef6}
.expense-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.expense-kpis article{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:15px;display:flex;align-items:center;gap:12px;min-width:0}.expense-kpis article>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#f1eaf3;color:var(--purple);font-weight:800;flex:0 0 auto}.expense-kpis small,.expense-kpis b,.expense-kpis em{display:block}.expense-kpis small{color:var(--muted);font-size:9px}.expense-kpis b{font-size:18px;margin-top:3px}.expense-kpis em{font-size:8px;color:var(--muted);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.expense-analytics{display:grid;grid-template-columns:1fr 1.35fr;gap:20px;margin-bottom:20px}.expense-analytics h2,.expense-list h2{margin-bottom:0}.donut-layout{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:20px;margin-top:18px}.expense-donut{width:145px;aspect-ratio:1;border-radius:50%;background:var(--segments);display:grid;place-items:center;position:relative}.expense-donut:after{content:"";position:absolute;inset:25px;background:var(--card);border-radius:50%}.expense-donut>div{position:relative;z-index:1;text-align:center}.expense-donut b,.expense-donut small{display:block}.expense-donut b{font-size:18px}.expense-donut small{font-size:9px;color:var(--muted)}.expense-legend{display:grid;gap:8px}.expense-legend a{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:9px;padding:7px;border-radius:10px}.expense-legend a:hover{background:#f8f4f8}.expense-legend i{width:8px;height:8px;background:var(--category);border-radius:50%}.expense-legend b,.expense-legend small{display:block}.expense-legend b{font-size:10px}.expense-legend small{font-size:8px;color:var(--muted);margin-top:2px}.expense-legend strong{font-size:10px}
.expense-trend>.section-title>small,.expense-list>.section-title>small{font-size:9px;color:var(--muted)}.monthly-chart{height:205px;display:flex;align-items:stretch;gap:8px;margin-top:18px;padding-top:20px;border-bottom:1px solid var(--line)}.month-column{flex:1;min-width:0;display:grid;grid-template-rows:18px 1fr 22px;text-align:center;align-items:end}.month-value{font-size:7px;color:var(--muted);white-space:nowrap}.month-track{height:100%;display:flex;align-items:flex-end;justify-content:center}.month-track i{display:block;width:min(24px,70%);min-height:3px;background:linear-gradient(#9d78b1,#725486);border-radius:6px 6px 2px 2px;transition:.2s}.month-column:hover .month-track i{filter:brightness(1.12)}.month-column>b{font-size:8px;color:var(--muted);align-self:center}
.expense-list{padding-bottom:10px}.expense-table-head,.expense-row{display:grid;grid-template-columns:90px minmax(220px,1fr) 150px 100px;align-items:center;gap:12px}.expense-table-head{padding:15px 8px 8px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.06em}.expense-table-head span:last-child{text-align:right}.expense-row{padding:12px 8px}.expense-row time{font-size:9px}.expense-name{display:flex;align-items:center;gap:10px;min-width:0}.expense-name>i{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--category) 14%,transparent);color:var(--category);font-style:normal}.expense-name b,.expense-name small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-name b{font-size:11px}.expense-name small{font-size:8px;color:var(--muted);margin-top:3px}.expense-badge{width:max-content;border-radius:20px;padding:5px 8px;background:color-mix(in srgb,var(--category) 13%,transparent);color:var(--category);font-size:8px;font-weight:700}.expense-row>strong{text-align:right;font-size:11px}
@media(max-width:1000px){.expense-filters{grid-template-columns:repeat(4,1fr)}.expense-search{grid-column:span 2}.expense-kpis{grid-template-columns:1fr 1fr}.expense-analytics{grid-template-columns:1fr}.donut-layout{grid-template-columns:180px 1fr}}
@media(max-width:650px){.expense-heading{align-items:flex-start}.expense-heading .expense-total{min-width:140px}.expense-heading .expense-total b{font-size:20px}.expense-filters{grid-template-columns:1fr 1fr;padding:12px}.expense-search{grid-column:1/-1}.expense-filters button,.expense-filters>a{width:100%}.expense-kpis{gap:8px}.expense-kpis article{padding:11px;gap:8px}.expense-kpis article>span{display:none}.expense-kpis b{font-size:15px}.donut-layout{grid-template-columns:1fr}.expense-donut{margin:auto}.monthly-chart{gap:3px;height:180px}.month-value{display:none}.expense-table-head{display:none}.expense-row{grid-template-columns:62px minmax(0,1fr) auto;padding:11px 0}.expense-row .expense-badge{display:none}.expense-row>strong{font-size:10px}.expense-name>i{width:30px;height:30px}.expense-list{padding-bottom:8px}}

/* Création d'un produit depuis un soin */
.create-product-trigger{display:block;margin-top:8px;padding:0;border:0;background:none;color:var(--purple);font-size:10px;font-weight:800;cursor:pointer}.create-product-trigger:hover{text-decoration:underline}.product-dialog{width:min(780px,calc(100% - 28px));max-height:calc(100dvh - 40px);padding:0;border:0;border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 25px 80px rgba(38,25,45,.3)}.product-dialog::backdrop{background:rgba(35,26,39,.55);backdrop-filter:blur(3px)}.product-dialog>form{padding:24px}.product-dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}.product-dialog-head h2{margin:0 0 4px;font-size:25px}.product-dialog-head small{color:var(--muted);font-size:10px}.dialog-close{border:0;background:#f3edf4;color:var(--purple);border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}.product-dialog-fields{max-height:55dvh;overflow:auto;padding:2px 4px 12px 2px}.product-dialog-fields label>small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.product-dialog .form-actions{margin-top:18px}.inline-product-errors{white-space:pre-line;background:#fff0ef;color:var(--red);border-radius:10px;padding:10px 12px;margin-bottom:14px;font-size:10px}.product-dialog button:disabled{opacity:.55;cursor:wait}
@media(max-width:600px){.product-dialog{max-height:calc(100dvh - 18px)}.product-dialog>form{padding:17px}.product-dialog-fields{grid-template-columns:1fr;max-height:62dvh}.product-dialog-fields>*{grid-column:1}.product-dialog-head h2{font-size:22px}}
.care-actions{display:flex;align-items:center;gap:1rem;margin-top:.35rem}.care-actions form{margin:0}.danger-text{color:#b43c4c!important}
.field-disabled{opacity:.6}.field-disabled small{font-weight:600;color:#7c4f93}
.cat-card .cat-photo{background:#e9e3e3}.cat-card .cat-photo>img{object-fit:contain;background:transparent}html[data-theme="dark"] .cat-card .cat-photo{background:#211d24}
.cat-card .cat-photo{position:relative;overflow:hidden}.cat-card .cat-photo>img{position:absolute;inset:0;width:100%;height:100%}.cat-card .cat-photo-name{z-index:2;bottom:0}
.birthday-banner{display:flex;align-items:center;gap:18px;margin:18px 0;padding:20px 24px;border:1px solid #fbcfe8;border-radius:18px;background:linear-gradient(135deg,#fdf2f8,#fff7ed);box-shadow:0 8px 24px rgba(190,24,93,.08)}.birthday-icon{font-size:42px}.birthday-banner .eyebrow{color:#be185d;margin-bottom:5px}.birthday-banner a{display:flex;gap:5px;flex-direction:column;color:#831843;text-decoration:none}.birthday-banner a+a{margin-top:10px;padding-top:10px;border-top:1px solid #fbcfe8}.birthday-banner a b{font-size:18px}.birthday-banner a span{color:#9d174d}.notification-preferences{margin-bottom:18px}.notification-matrix{margin:18px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden}.notification-matrix-head,.notification-matrix-row{display:grid;grid-template-columns:minmax(220px,1fr) 100px 100px;align-items:center}.notification-matrix-head{padding:10px 15px;background:#f5eff7;color:var(--purple);font-size:11px;text-align:center}.notification-matrix-head b:first-child{text-align:left}.notification-matrix-row{padding:13px 15px;border-top:1px solid var(--line);cursor:pointer}.notification-matrix-row>span b,.notification-matrix-row>span small{display:block}.notification-matrix-row>span small{margin-top:3px;color:var(--muted);font-size:10px}.notification-matrix-row>input{width:20px;height:20px;justify-self:center;accent-color:var(--purple)}.birthday-delay{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px}.birthday-delay input{width:70px;padding:8px;border:1px solid var(--line);border-radius:9px}.birthday-delay small{width:100%;color:var(--muted)}html[data-theme="dark"] .notification-matrix-head{background:#352d3b}html[data-theme="dark"] .birthday-banner{background:linear-gradient(135deg,#3b2432,#3a302a);border-color:#71334f}html[data-theme="dark"] .birthday-banner a,html[data-theme="dark"] .birthday-banner a span{color:#fbcfe8}@media(max-width:600px){.birthday-banner{padding:16px;align-items:flex-start}.birthday-icon{font-size:34px}.notification-matrix-head,.notification-matrix-row{grid-template-columns:minmax(0,1fr) 62px 62px}.notification-matrix-head,.notification-matrix-row{padding-left:11px;padding-right:11px}.notification-matrix-row>span small{font-size:9px}}

/* Invitation aux notifications, commune aux navigateurs et PWA. */
.push-invite{width:min(440px,calc(100% - 32px));border:0;border-radius:24px;padding:30px;text-align:center;color:var(--text);background:var(--card);box-shadow:0 24px 80px rgba(45,28,57,.28)}
.push-invite::backdrop{background:rgba(30,20,36,.58);backdrop-filter:blur(3px)}
.push-invite-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 16px;border-radius:22px;background:linear-gradient(145deg,#ede9fe,#ddd6fe);font-size:32px;box-shadow:0 10px 25px rgba(109,40,217,.16)}
.push-invite h2{margin:0 0 10px}.push-invite p{line-height:1.55;color:var(--muted)}
.push-invite-result{min-height:1.4em;margin:10px 0;color:var(--purple)!important;font-weight:700}
.push-invite-actions{display:grid;gap:10px;margin-top:18px}.push-invite-actions button{width:100%}
.push-invite-later{margin-top:14px;border:0;background:transparent;color:var(--muted);text-decoration:underline;cursor:pointer}
@media(max-width:560px){.push-invite{padding:25px 20px;border-radius:22px}.push-invite-icon{width:60px;height:60px}}

/* Parcours guidé de création d'un chat. */
.cat-wizard [hidden]{display:none!important}
.cat-wizard{position:fixed;inset:18px;width:min(760px,calc(100% - 28px));max-width:760px;max-height:calc(100dvh - 36px);margin:auto;padding:0;border:0;border-radius:26px;background:var(--card);color:var(--ink);box-shadow:0 25px 90px rgba(38,25,45,.3)}.cat-wizard::backdrop{background:rgba(35,26,39,.58);backdrop-filter:blur(4px)}.cat-wizard>form{min-height:min(690px,calc(100dvh - 36px));display:flex;flex-direction:column;padding:26px 32px}.wizard-head{display:flex;justify-content:space-between;align-items:start}.wizard-head h1{margin:0;font-size:27px}.wizard-progress{height:6px;margin:18px 0 8px;background:#eee8ef;border-radius:10px;overflow:hidden}.wizard-progress-bar{height:100%;background:linear-gradient(90deg,var(--purple),#a878bd);transition:width .25s}.wizard-counter{text-align:right;margin:0;color:var(--muted);font-size:10px}.wizard-step{flex:1;text-align:center;padding:12px 5% 8px}.wizard-illustration{width:78px;height:78px;display:grid;place-items:center;margin:0 auto 14px;border-radius:25px;background:#f1e9f3;font-size:38px;overflow:hidden}.wizard-photo-preview img{width:100%;height:100%;object-fit:cover}.wizard-step h2{font-size:27px;margin:5px 0 7px}.wizard-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px;text-align:left;margin:24px auto 0;max-width:590px}.wizard-fields.one{grid-template-columns:1fr;max-width:520px}.wizard-fields label>span{display:block;margin-bottom:6px;font-size:11px;font-weight:700}.wizard-fields input:not([type=checkbox]):not([type=file]),.wizard-fields select,.wizard-fields textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);padding:12px}.wizard-check{display:flex;align-items:center;gap:8px;padding:12px;background:#f7f2f8;border-radius:12px;align-self:end}.wizard-check span{margin:0!important}.wizard-check input{width:19px;height:19px;accent-color:var(--purple)}.wizard-upload{display:grid;place-items:center;padding:25px;border:2px dashed #d8cadc;border-radius:18px;cursor:pointer}.wizard-upload input{position:absolute;width:1px;height:1px;opacity:0}.wizard-upload b{padding:10px 15px;background:#f1e9f3;color:var(--purple);border-radius:11px}.wizard-upload small{margin-top:9px;color:var(--muted)}.wizard-summary{display:grid;gap:4px;margin:18px auto 0;padding:13px;max-width:520px;border-radius:13px;background:#edf7f1;color:var(--green)}.wizard-summary span{font-size:10px}.wizard-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:18px;border-top:1px solid var(--line)}.wizard-actions .wizard-cancel{margin-right:auto}.wizard-errors{display:grid;gap:4px;margin:10px 0;padding:10px 13px;border-radius:12px;background:#fff0ef;text-align:left}.wizard-errors span{font-size:10px}.cat-wizard button:focus-visible,.cat-wizard input:focus,.cat-wizard select:focus,.cat-wizard textarea:focus{outline:2px solid #a878bd;outline-offset:2px}
@media(max-width:600px){.cat-wizard{inset:0;width:100%;max-height:100dvh;height:100dvh;border-radius:0}.cat-wizard>form{min-height:100dvh;padding:18px 16px}.wizard-head h1{font-size:23px}.wizard-step{padding:8px 0}.wizard-step h2{font-size:23px}.wizard-illustration{width:65px;height:65px;font-size:31px}.wizard-fields{grid-template-columns:1fr;gap:11px;margin-top:17px}.wizard-actions{position:sticky;bottom:0;background:var(--card)}.wizard-actions .secondary,.wizard-actions .primary{padding:11px 13px}.wizard-cancel{display:none}}
