html,body{margin:0;min-height:100%;font-family:"Geist","Geist Fallback","Geist Fallback Android",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:#fff;color:#525252}
html[data-theme="dark"],html[data-theme="dark"] body{background:#0a0a0a;color:#d4d4d4}
[hidden]{display:none!important}


/* Runtime status UI — static CSS keeps strict CSP compatible. */
#l3-network-toast[hidden]{display:none!important}
#l3-network-toast{position:fixed;z-index:var(--z-toast,80);inset-inline:12px;top:calc(var(--safe-top,env(safe-area-inset-top,0px)) + var(--app-header-height,60px) + 8px);display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:min(420px,calc(100% - 24px));box-sizing:border-box;min-height:34px;margin-inline:auto;padding:7px 12px;border:1px solid var(--border,#d8e7df);border-radius:12px;background:var(--primary-faint,#f1f7f4);color:var(--text2,#385b50);font:500 13px/1.35 Inter,"Segoe UI",Arial,sans-serif;box-shadow:0 2px 8px rgba(15,35,25,.06);pointer-events:none}
#l3-network-toast[data-state="offline"]{background:var(--primary-faint,#f1f7f4);color:var(--text2,#385b50);border-color:var(--border,#d8e7df)}
#l3-network-toast[data-state="online"]{background:#ecfdf5;color:#166534;border-color:#bbf7d0}
#l3-network-toast a{color:inherit;text-decoration:underline;text-underline-offset:2px}
html.is-offline [data-requires-online]{opacity:.62;cursor:not-allowed!important}
#biologie-update-required{position:fixed;z-index:2147483647;inset-inline:12px;bottom:12px;padding:12px 14px;border-radius:20px;background:#171717;color:#fff;font:600 14px/1.35 system-ui;box-shadow:0 12px 30px rgba(0,0,0,.18);display:flex;gap:10px;align-items:center;justify-content:space-between}
#biologie-update-required button{border:0;border-radius:999px;padding:8px 14px;font:inherit;background:#09c82c;color:#fff;cursor:pointer}
/* Page shell placeholder, shaped like the first page (Offre); replaced by the app. */
.boot-skeleton{width:min(calc(100% - 32px),760px);margin:16px auto;display:grid;gap:12px}
.boot-skeleton__line,.boot-skeleton__card{display:block;border-radius:999px;background:linear-gradient(90deg,#efefef 25%,#f7f7f7 50%,#efefef 75%);background-size:200% 100%;animation:boot-shimmer 1.2s ease-in-out infinite}
.boot-skeleton__line{height:14px;width:72%}
.boot-skeleton__line--kicker{width:34%;height:12px}
.boot-skeleton__line--title{width:58%;height:26px}
.boot-skeleton__card{height:72px;border-radius:24px}
html[data-theme="dark"] :is(.boot-skeleton__line,.boot-skeleton__card){background-image:linear-gradient(90deg,#1c1c1c 25%,#262626 50%,#1c1c1c 75%)}
@keyframes boot-shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.boot-skeleton__line,.boot-skeleton__card{animation:none}}
