        /* ========== En-tête profil — hero plus impactant (E polish DA) ========== */
        .profile-header {
            margin-top: var(--space-4);
            margin-bottom: var(--space-5);
        }

        /* Menu actions (3 dots dropdown) — placé dans .page-toolbar en haut
           de page, plus en position absolute. Le dropdown reste positionné
           relatif au trigger pour s'ouvrir vers le bas/droite. */
        .profile-actions {
            position: relative;
        }
        .profile-actions__trigger {
            list-style: none;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 32px;
            height: 32px;
            border-radius: 50%;
            color: var(--muted);
            background: transparent;
            transition: background 120ms ease, color 120ms ease;
        }
        .profile-actions__trigger::-webkit-details-marker { display: none; }
        .profile-actions__trigger::marker { content: ''; }
        .profile-actions__trigger:hover {
            background: var(--bg-paper);
            color: var(--ink);
        }
        .profile-actions[open] .profile-actions__trigger {
            background: var(--bg-paper);
            color: var(--ink);
        }
        .profile-actions__menu {
            position: absolute;
            top: 36px;
            right: 0;
            min-width: 220px;
            background: var(--bg-elevated);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-lg);
            padding: 6px;
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }
        /* Items uniformes (<a> et <button> rendus identiques) — tap target
           confortable mobile (min 44px hauteur), texte aligné gauche, pas
           de souligné dans aucun état. */
        .profile-actions__item {
            display: flex;
            align-items: center;
            width: 100%;
            min-height: 44px;
            padding: 0 14px;
            margin: 0;
            color: var(--ink);
            background: transparent;
            border: 0;
            border-radius: var(--radius-sm);
            text-decoration: none;
            text-align: left;
            font: inherit;
            font-size: 0.95rem;
            line-height: 1.2;
            cursor: pointer;
            transition: background 120ms ease;
        }
        .profile-actions__item:hover,
        .profile-actions__item:focus,
        .profile-actions__item:focus-visible {
            background: var(--bg-paper);
            text-decoration: none;
            outline: none;
        }
        .profile-actions__item:active {
            text-decoration: none;
        }
        .profile-actions__item:disabled {
            color: var(--muted);
            cursor: default;
        }
        .profile-header__top {
            display: grid;
            grid-template-columns: 88px 1fr;
            gap: var(--space-4);
            align-items: center;
        }
        .profile-avatar {
            width: 88px; height: 88px;
            border-radius: 50%;
            background: var(--violet-soft);
            object-fit: cover;
            display: flex; align-items: center; justify-content: center;
            color: var(--violet);
            font-size: 2rem;
            font-weight: 600;
            flex-shrink: 0;
            letter-spacing: -0.02em;
        }
        @media (min-width: 600px) {
            .profile-header__top { grid-template-columns: 120px 1fr; gap: var(--space-5); }
            .profile-avatar { width: 120px; height: 120px; font-size: 2.6rem; }
        }

        /* Stats inline (3 colonnes cliquables) */
        .profile-stats-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2px;
        }
        .profile-stat {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1px;
            padding: 2px 2px;
            text-decoration: none;
            color: inherit;
            border-radius: var(--radius-sm);
            transition: background 120ms;
        }
        .profile-stat:hover { background: var(--bg-paper); text-decoration: none; }
        .profile-stat__value {
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--ink);
            letter-spacing: -0.02em;
            line-height: 1.1;
        }
        .profile-stat__label {
            font-size: 0.72rem;
            font-weight: 500;
            color: var(--muted);
            line-height: 1.3;
            letter-spacing: -0.005em;
        }

        /* Identité (nom, handle, bio, citation) */
        .profile-header__identity {
            margin-top: var(--space-2);
        }
        .profile-name {
            font-size: 1.5rem;
            font-weight: 600;
            letter-spacing: -0.025em;
            margin: 0;
            line-height: 1.15;
            color: var(--ink);
        }
        @media (min-width: 600px) {
            .profile-name { font-size: 1.85rem; letter-spacing: -0.03em; }
        }


        /* Header des sous-pages profil (followers, following, critiques) */
        .profile-subpage-header {
            margin-bottom: var(--space-4);
        }
        .profile-subpage-header .search-crumb {
            margin-bottom: var(--space-2);
        }
        .search-page-title__count {
            font-family: var(--font-mono);
            font-size: 0.75rem;
            color: var(--muted);
            margin-left: var(--space-2);
            font-weight: 400;
            vertical-align: middle;
        }

        /* Bouton Follow / Unfollow (état toggle visible) */
        .follow-form {
            margin: var(--space-2) 0 0;
        }
        .follow-btn {
            min-width: 92px;
        }
        .follow-btn--following {
            background: transparent;
            color: var(--ink);
            border: 1px solid var(--border);
        }
        .follow-btn--following:hover {
            background: var(--bg-paper);
            border-color: var(--ink);
        }
        .follow-btn--following:hover::after {
            content: " ✕";
            font-size: 0.75rem;
        }
        .profile-handle {
            margin: 0;
            font-family: var(--font-mono);
            font-size: 0.75rem;
            color: var(--muted);
            line-height: 1.3;
        }
        .profile-bio {
            margin: 6px 0 0;
            font-size: 0.92rem;
            line-height: 1.45;
            color: var(--ink);
            max-width: 60ch;
        }
        /* Citation épinglée — design éditorial sobre, sans cliché ❝ géant
           (anti-pattern visuel du manifeste). Barre verticale violet pâle
           à gauche pour donner du caractère sans crier. */
        .profile-quote {
            margin: var(--space-3) 0 0;
            padding: 2px 0 2px var(--space-3);
            border-left: 2px solid var(--violet-soft);
            font-size: 1rem;
            line-height: 1.55;
            color: var(--ink);
            font-style: italic;
            font-weight: 400;
            max-width: 60ch;
            letter-spacing: -0.005em;
        }
        .profile-quote::before {
            content: '« ';
            color: var(--muted);
            font-style: normal;
        }
        .profile-quote::after {
            content: ' »';
            color: var(--muted);
            font-style: normal;
        }

        /* ========== Critique épinglée ========== */
        .pinned-review {
            margin-top: var(--space-5);
        }
        .pinned-review__eyebrow {
            display: block;
            font-size: 1rem;
            font-weight: 600;
            letter-spacing: -0.01em;
            color: var(--ink);
            margin-bottom: var(--space-3);
        }
        .pinned-review__card {
            display: grid;
            grid-template-columns: 64px 1fr;
            gap: var(--space-3);
            text-decoration: none;
            color: inherit;
            padding: var(--space-3);
            background: var(--bg-elevated);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-md);
            transition: box-shadow 200ms, transform 200ms;
        }
        .pinned-review__card:hover {
            box-shadow: var(--shadow-lg);
            transform: translateY(-2px);
            text-decoration: none;
        }
        .pinned-review__cover {
            width: 64px;
            aspect-ratio: 2/3;
            object-fit: cover;
            border-radius: var(--radius);
            background: var(--bg-paper);
            box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--cover-ring);
        }
        .pinned-review__title {
            margin: 0;
            font-size: 1rem;
            font-weight: 500;
            line-height: 1.2;
            letter-spacing: -0.01em;
        }
        .pinned-review__meta {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-top: 4px;
            font-family: var(--font-mono);
            font-size: 0.7rem;
            color: var(--muted);
        }
        .pinned-review__stars { display: inline-flex; align-items: center; gap: 1px; color: var(--orange); }
        .pinned-review__stars svg { width: 12px; height: 12px; }
        .pinned-review__body {
            margin: 8px 0 0;
            font-size: 0.92rem;
            line-height: 1.5;
            color: var(--ink);
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .profile-stats__sep { color: var(--subtle); }

        /* ========== Coups de cœur (signature en haut du profil) ========== */
        .favorites-section {
            margin-top: var(--space-5);
        }
        .favorites-section__title {
            margin: 0 0 var(--space-3);
            font-size: 1.1rem;
            font-weight: 500;
            letter-spacing: -0.01em;
            display: flex;
            align-items: baseline;
            gap: 10px;
        }
        .favorites-section__title-count {
            font-family: var(--font-mono);
            font-size: 0.78rem;
            font-weight: 400;
            color: var(--muted);
        }
        .favorites-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 8px;
        }
        @media (min-width: 600px) {
            .favorites-grid { gap: var(--space-3); }
        }
        /* Desktop : couvertures à taille raisonnable, calées à gauche. Sinon
           4 covers en repeat(4, 1fr) s'étirent plein écran (effet "mal adapté"). */
        @media (min-width: 900px) {
            .favorites-grid,
            .favorites-empty {
                grid-template-columns: repeat(auto-fill, minmax(120px, 150px));
                justify-content: start;
            }
        }

        /* Activité récente : grille de covers (réutilise favorites-grid) avec,
           sous chaque cover, la note + un logo commentaire si critique. */
        .activity-recent__head {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            gap: var(--space-2);
            text-decoration: none;
            color: inherit;
        }
        .activity-recent__meta {
            display: flex;
            align-items: center;
            gap: 4px;
            margin-top: 5px;
            min-height: 14px;
            overflow: hidden;
        }
        .activity-recent__stars {
            display: inline-flex;
            align-items: center;
            gap: 1px;
            color: var(--orange);
            min-width: 0;
        }
        .activity-recent__half { color: var(--orange); font-size: 0.68rem; line-height: 1; }
        .activity-recent__comment { color: var(--muted); flex-shrink: 0; margin-left: auto; }
        .favorite-card {
            display: block;
            text-decoration: none;
            color: inherit;
            transition: transform 200ms;
        }
        .favorite-card:hover {
            transform: translateY(-3px);
            text-decoration: none;
        }
        .favorite-card__cover {
            width: 100%;
            aspect-ratio: 2/3;
            border-radius: var(--radius);
            object-fit: cover;
            background: var(--bg-paper);
            box-shadow: var(--shadow-cover), inset 0 0 0 1px var(--cover-ring);
        }
        .favorite-card__cover--placeholder {
            display: flex; align-items: center; justify-content: center;
            color: var(--subtle);
        }

        .favorites-empty {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 8px;
        }
        @media (min-width: 600px) {
            .favorites-empty { gap: var(--space-3); }
        }
        .favorite-placeholder {
            aspect-ratio: 2/3;
            border-radius: var(--radius);
            border: 2px dashed var(--border);
            background: transparent;
            display: flex; align-items: center; justify-content: center;
            color: var(--subtle);
            text-decoration: none;
            transition: border-color 150ms, color 150ms;
        }
        .favorite-placeholder:hover {
            border-color: var(--orange);
            color: var(--orange);
            text-decoration: none;
        }
        .favorite-placeholder svg { width: 22px; height: 22px; }
        .favorites-empty__hint {
            grid-column: 1 / -1;
            margin-top: var(--space-2);
            font-family: var(--font-mono);
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: var(--subtle);
            text-align: center;
        }

        /* ========== Bloc "En ce moment" (livre en cours mis en avant) ========== */
        .now-reading {
            margin-top: var(--space-5);
        }
        .now-reading__eyebrow {
            display: block;
            font-size: 1rem;
            font-weight: 600;
            letter-spacing: -0.01em;
            color: var(--ink);
            margin-bottom: var(--space-3);
        }
        .now-reading__card {
            display: grid;
            grid-template-columns: 80px 1fr;
            gap: var(--space-3);
            align-items: center;
            text-decoration: none;
            color: inherit;
            transition: transform 200ms;
        }
        .now-reading__card:hover {
            transform: translateY(-2px);
            text-decoration: none;
        }
        .now-reading__card:hover .now-reading__title { color: var(--violet); }
        .now-reading__cover {
            width: 80px;
            aspect-ratio: 2/3;
            object-fit: cover;
            border-radius: var(--radius);
            background: var(--bg-paper);
            box-shadow: var(--shadow-cover), inset 0 0 0 1px var(--cover-ring);
        }
        .now-reading__cover--placeholder {
            display: flex; align-items: center; justify-content: center;
            color: var(--subtle);
        }
        .now-reading__title {
            margin: 0;
            font-size: 1.05rem;
            font-weight: 500;
            letter-spacing: -0.01em;
            line-height: 1.2;
            transition: color 150ms;
        }
        .now-reading__author {
            margin-top: 2px;
            font-size: 0.92rem;
            color: var(--muted);
        }
        .now-reading__date {
            margin-top: 8px;
            font-family: var(--font-mono);
            font-size: 0.68rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--muted);
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .now-reading__date-dot { color: var(--subtle); }

        /* ========== Rows étagère (en bas du profil) ========== */
        .profile-shelf-rows {
            display: flex;
            flex-direction: column;
        }
        .profile-shelf-row {
            display: flex;
            align-items: center;
            gap: var(--space-3);
            padding: 10px 4px;
            text-decoration: none;
            color: inherit;
            border-bottom: 1px solid var(--border);
            transition: background 120ms;
        }
        .profile-shelf-row:hover { text-decoration: none; background: var(--bg-paper); }
        .profile-shelf-row:hover .profile-shelf-row__name { color: var(--violet); }
        .profile-shelf-row__icon { width: 18px; height: 18px; flex-shrink: 0; }
        .profile-shelf-row__icon--blue { color: var(--cyan); }
        .profile-shelf-row__icon--orange { color: var(--orange); }
        .profile-shelf-row__icon--green { color: #3F8E5C; }
        .profile-shelf-row__name {
            flex: 1;
            font-size: 0.95rem;
            font-weight: 500;
            color: var(--ink);
            transition: color 150ms;
        }
        .profile-shelf-row__count {
            font-family: var(--font-mono);
            font-size: 0.7rem;
            color: var(--muted);
        }

        /* ========== Sections critiques ========== */
        .profile-section {
            margin-top: var(--space-6);
        }
        .profile-section__header {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            margin-bottom: var(--space-4);
        }
        .profile-section__title {
            margin: 0;
            font-size: 1.1rem;
            font-weight: 500;
            letter-spacing: -0.01em;
        }
        .profile-section__title-count {
            margin-left: 8px;
            font-family: var(--font-mono);
            font-size: 0.8rem;
            font-weight: 400;
            color: var(--muted);
        }
        .profile-section__more {
            font-family: var(--font-mono);
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: var(--violet);
        }

        /* ========== Liste de critiques ========== */
        .review-list { display: grid; gap: var(--space-4); }
        .review-card {
            display: grid;
            grid-template-columns: 48px 1fr;
            gap: var(--space-3);
            text-decoration: none;
            color: inherit;
        }
        .review-card:hover { text-decoration: none; }
        .review-card:hover .review-card__title { color: var(--violet); }
        .review-card__cover {
            width: 48px;
            aspect-ratio: 2/3;
            border-radius: var(--radius);
            object-fit: cover;
            background: var(--bg-paper);
            box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--cover-ring);
        }
        .review-card__title {
            margin: 0;
            font-size: 0.98rem;
            font-weight: 500;
            line-height: 1.25;
            letter-spacing: -0.01em;
            transition: color 150ms;
        }
        .review-card__meta {
            display: flex;
            align-items: center;
            gap: 6px;
            margin-top: 2px;
            font-family: var(--font-mono);
            font-size: 0.7rem;
            color: var(--muted);
        }
        .review-card__stars { display: inline-flex; align-items: center; gap: 1px; color: var(--orange); }
        .review-card__stars svg { width: 11px; height: 11px; }
        .review-card__body {
            margin: 6px 0 0;
            font-size: 0.88rem;
            line-height: 1.5;
            color: var(--muted);
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .review-card__spoiler-tag {
            display: inline-block;
            font-family: var(--font-mono);
            font-size: 0.62rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: color-mix(in srgb, var(--orange) 80%, black);
            background: var(--orange-soft);
            border-radius: var(--radius-sm);
            padding: 1px 6px;
            margin-right: 6px;
        }

        /* ========== Empty state global ========== */
        .profile-empty {
            margin-top: var(--space-6);
            padding: var(--space-5);
            background: var(--bg-paper);
            border-radius: var(--radius-lg);
            text-align: center;
            color: var(--muted);
        }
        .profile-empty__cta {
            display: inline-block;
            margin-top: var(--space-3);
            color: var(--violet);
            font-weight: 500;
        }

        /* ========== Listes custom (sections "Listes de X") ========== */
        /* Listes du profil : rows empilés, même style que /lists (cf. list-row.css) */
        .profile-lists {
            display: flex;
            flex-direction: column;
            gap: 2px;
        }

        /* ========== Activité (timeline journal de lecture) ========== */
        .activity-timeline {
            list-style: none;
            margin: 0;
            padding: 0;
        }
        .activity-event {
            display: grid;
            grid-template-columns: 44px 1fr;
            gap: var(--space-3);
            padding: var(--space-2) 0;
            align-items: center;
            border-bottom: 1px solid var(--border);
        }
        .activity-event:last-child {
            border-bottom: 0;
        }
        .activity-event__cover-link { display: block; }
        .activity-event__cover {
            width: 44px;
            aspect-ratio: 2/3;
            object-fit: cover;
            border-radius: var(--radius-sm);
            background: var(--bg-paper);
            display: block;
            box-shadow: inset 0 0 0 1px var(--cover-ring);
        }
        .activity-event__main { min-width: 0; }
        .activity-event__when {
            display: block;
            margin-bottom: 3px;
            font-family: var(--font-mono);
            font-size: 0.72rem;
            color: var(--muted);
            text-transform: uppercase;
            letter-spacing: 0.04em;
            white-space: nowrap;
        }
        .activity-event__body {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 6px;
            font-size: 0.88rem;
            color: var(--ink);
            line-height: 1.5;
        }
        .activity-event__verb {
            color: var(--muted);
        }
        .activity-event__work {
            color: var(--ink);
            font-weight: 500;
            text-decoration: none;
            border-bottom: 1px solid transparent;
            transition: border-color 120ms ease;
        }
        .activity-event__work:hover {
            border-bottom-color: var(--ink);
        }
        .activity-event__score {
            display: inline-flex;
            gap: 1px;
            color: var(--orange);
            margin-left: 2px;
        }
        @media (max-width: 600px) {
            .activity-event {
                gap: var(--space-2);
            }
        }

        /* ========== Page /@handle/stats — sections statistiques détaillées ========== */
        .stats-block {
            margin: var(--space-5) 0;
        }
        .stats-block__title {
            font-size: 1rem;
            text-transform: none;
            letter-spacing: -0.01em;
            color: var(--ink);
            font-weight: 600;
            margin: 0 0 var(--space-3);
        }
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            gap: var(--space-3);
            margin: 0;
            padding: var(--space-4);
            background: var(--bg-paper);
            border-radius: var(--radius-lg);
        }
        .stats-grid__item {
            margin: 0;
            min-width: 0;
        }
        .stats-grid__item dt {
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            color: var(--muted);
            font-weight: 500;
            margin: 0 0 4px;
        }
        .stats-grid__item dd {
            margin: 0;
            display: flex;
            align-items: baseline;
            gap: 4px;
        }
        .stats-grid__value {
            font-size: 1.3rem;
            font-weight: 600;
            letter-spacing: -0.02em;
            color: var(--ink);
            line-height: 1.1;
            font-variant-numeric: tabular-nums;
        }
        .stats-grid__value--text {
            font-size: 1rem;
            font-weight: 500;
            letter-spacing: -0.01em;
        }
        .stats-grid__unit {
            font-size: 0.78rem;
            color: var(--muted);
        }
        .stats-grid__link {
            text-decoration: none;
            display: inline-flex;
            align-items: baseline;
            gap: 4px;
            transition: opacity 120ms ease;
        }
        .stats-grid__link:hover {
            opacity: 0.7;
        }

        /* Items supplémentaires du burger profil (account section) */
        .profile-actions__divider {
            height: 1px;
            background: var(--border);
            margin: 4px 0;
        }
        .profile-actions__item--muted {
            color: var(--muted);
            cursor: default;
        }
        .profile-actions__item--muted:hover {
            background: transparent;
        }
        .profile-actions__item--danger {
            color: var(--red, #c0392b);
        }
        .profile-actions__logout-form {
            margin: 0;
        }
