/* DUSTR — Base reset & global styles */
/* Bilingual show/hide — i18n.js sets document.documentElement.lang */
[lang="en"] [data-lang="fr"] { display: none !important; }
[lang="fr"] [data-lang="en"] { display: none !important; }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font); background: var(--bg); color: var(--text); line-height: 1.5; min-height: 100vh; padding-top: var(--nav-h); -webkit-font-smoothing: antialiased; display: flex; flex-direction: column; }
a { color: inherit; text-decoration: none; }
button { font-family: var(--font); cursor: pointer; }
img { max-width: 100%; display: block; }
h1, h2, h3, h4 { font-family: var(--font-d); line-height: 1.2; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.page-wrap { padding: 2rem 1.5rem 4rem; max-width: 900px; width: 100%; margin: 0 auto; animation: pageIn .35s var(--ease); flex: 1; }
@media (max-width: 600px) { .page-wrap { padding-bottom: calc(2rem + 70px); } }
@keyframes pageIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.empty-state { text-align: center; padding: 3rem 1rem; color: var(--text3); }
.toast { position: fixed; bottom: 2rem; left: 50%; transform: translateX(-50%) translateY(100px); background: var(--green); color: #fff; padding: .8rem 1.5rem; border-radius: 50px; font-size: .85rem; font-weight: 500; z-index: 9999; transition: transform .3s var(--ease); pointer-events: none; }
.toast.show { transform: translateX(-50%) translateY(0); }
.toast.error { background: var(--danger); }
