/* Applications (/app) : liste, page d'une appli, confidentialité. */
.apps-grille { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); margin-top: 1.2rem; }
.app-carte { display: flex; gap: .9rem; align-items: center; color: var(--text); }
.app-carte:hover { border-color: var(--accent); text-decoration: none; }
.app-texte { display: grid; gap: .15rem; min-width: 0; }
.app-texte small { color: var(--text-dim); }
.app-icone { flex: none; width: 56px; height: 56px; border-radius: 14px; display: grid; place-items: center; overflow: hidden; background: var(--surface-2); border: 2px solid var(--accent); color: var(--accent); font-family: var(--font-h2), serif; font-size: 1.5rem; }
.app-icone img { width: 100%; height: 100%; object-fit: cover; }
.app-icone.grand { width: 88px; height: 88px; font-size: 2.2rem; }
.app-page { max-width: 860px; }
.app-entete { display: flex; gap: 1.2rem; align-items: center; margin: 1rem 0; }
.app-entete h1 { margin: 0 0 .2rem; }
.app-entete p { margin: .2rem 0; }
.app-banniere { max-width: 100%; border-radius: var(--radius-lg); border: 1px solid var(--border); margin: 1rem 0; }
.app-liens { display: flex; gap: .6rem; flex-wrap: wrap; margin: 1rem 0; }
.app-conf { margin-top: 1rem; }
.app-conf > summary { cursor: pointer; list-style: none; }
.app-conf > summary h2 { display: inline; font-size: 1.2rem; }
.app-conf[open] > summary { margin-bottom: .8rem; }
.app-index a { white-space: nowrap; }
