/* Product-level components and interaction states. */
body > header .navbar-collapse .nav-link.active { color:#fff!important; background:linear-gradient(135deg,var(--pd-plum),var(--pd-plum-dark))!important; box-shadow:0 8px 18px rgba(76,38,87,.2); }
.nav-profile { display:inline-flex!important; align-items:center; gap:7px; }
.nav-avatar { display:grid; width:25px; height:25px; place-items:center; color:#fff; background:var(--pd-coral); border-radius:50%; font-size:.72rem; font-weight:850; }
.nav-admin { color:var(--pd-plum)!important; }
.figure-card-heading { display:flex; margin-bottom:14px; flex-direction:column; gap:10px; }
.figure-badges { display:flex; flex-wrap:wrap; gap:6px; }
.figure-badge { display:inline-flex; padding:5px 9px; align-items:center; color:var(--pd-plum-dark); background:#f0e8f1; border-radius:999px; font-size:.72rem; font-weight:750; }
.figure-badge-category { color:#80551c; background:#fff0d8; }
.figure .card-title { margin:0; font-size:1.35rem; line-height:1.15; }
.figure-meta { margin:0 0 10px; }
.figure-description { display:-webkit-box; min-height:3em; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.figure .star-rating-container { display:flex; margin:16px 0 8px; align-items:center; justify-content:space-between; gap:12px; }
.figure .star-rating label { font-size:1.25rem; }
.figure .update-btn { width:100%; margin:18px 0 0; }
.figure-photo { display:flex; padding:10px; align-items:center; gap:10px; background:#f8f4f8; border-radius:14px; }
.figure-photo img { width:76px; height:76px; object-fit:cover; border-radius:10px; }
.empty-state { width:100%; padding:48px 24px; text-align:center; background:rgba(255,255,255,.7); border:1px dashed rgba(111,59,120,.3); border-radius:var(--pd-radius); }
.empty-state-icon { display:grid; width:58px; height:58px; margin:0 auto 16px; place-items:center; color:var(--pd-plum); background:#f0e8f1; border-radius:50%; font-size:1.5rem; }
.toast-stack { position:fixed; right:18px; bottom:18px; z-index:2000; display:grid; gap:10px; width:min(360px,calc(100% - 36px)); }
.pd-toast { padding:14px 18px; color:#fff; background:var(--pd-plum-dark); border-radius:14px; box-shadow:var(--pd-shadow); animation:pd-toast-in .3s var(--pd-ease) both; }
.pd-toast-success { background:var(--pd-success); }
@keyframes pd-toast-in { from { opacity:0; transform:translateY(12px) scale(.97); } to { opacity:1; transform:none; } }
@media (max-width:1180px) { .nav-profile { justify-content:flex-start; } body > header .navbar-collapse .nav-link.active { box-shadow:none; } }

/* Invitations */
.invitation-page { display:grid; gap:24px; }
.invitation-hero { display:flex; padding:clamp(28px,5vw,52px); align-items:center; justify-content:space-between; gap:30px; color:#fff; background:linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:var(--pd-radius-lg); box-shadow:var(--pd-shadow); }
.invitation-hero h1,.invitation-hero p { color:#fff; text-align:left; }
.invitation-hero h1 { margin:8px 0 10px; }
.invitation-hero p { margin:0; color:rgba(255,255,255,.75); }
.invitation-quota { display:grid; width:118px; height:118px; flex:0 0 auto; place-items:center; align-content:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.invitation-quota strong { color:#fff; font-size:2.2rem; line-height:1; }
.invitation-quota span { color:rgba(255,255,255,.72); font-size:.72rem; }
.invitation-create-card,.invitation-link-card { display:grid; grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr); gap:30px; padding:28px; align-items:center; background:var(--pd-surface); border:1px solid var(--pd-border); border-radius:var(--pd-radius); box-shadow:var(--pd-shadow-sm); }
.invitation-create-card h2,.invitation-link-card h2 { margin:8px 0; text-align:left; }
.invitation-create-card p,.invitation-link-card p { margin:0; }
.invitation-create-card form { display:flex; align-items:end; gap:10px; }
.invitation-create-card .form-group { margin:0; }
.invitation-icon { display:grid; width:42px; height:42px; place-items:center; color:var(--pd-plum); background:#f0e8f1; border-radius:13px; }
.invitation-copy-row { display:flex; align-items:center; gap:8px; }
.invitation-copy-row .form-control { margin:0; font-size:.82rem; }
.section-heading { display:flex; margin:16px 0; align-items:end; justify-content:space-between; gap:16px; }
.section-heading h2 { margin:4px 0 0; text-align:left; }
.section-heading > span { color:var(--pd-muted); font-size:.85rem; }
.invitation-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:14px; }
.invitation-item { padding:20px; background:var(--pd-surface); border:1px solid var(--pd-border); border-radius:18px; box-shadow:var(--pd-shadow-sm); }
.invitation-item-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.invitation-item h3 { margin:18px 0 5px; color:var(--pd-ink); font-size:1.05rem; overflow-wrap:anywhere; }
.invitation-item p { margin:0 0 14px; font-size:.85rem; }
.status-pill { padding:5px 9px; color:var(--pd-muted); background:#eee9ef; border-radius:999px; font-size:.7rem; font-weight:800; }
.invitation-active .status-pill { color:#25644f; background:#dff2ea; }
.invitation-used .status-pill { color:var(--pd-plum-dark); background:#efe4f0; }
.invitation-revoked,.invitation-expired { opacity:.72; }
.invitation-date { color:var(--pd-muted); font-size:.7rem; }
@media(max-width:760px){.invitation-hero{align-items:flex-start}.invitation-quota{width:90px;height:90px}.invitation-create-card,.invitation-link-card{grid-template-columns:1fr}.invitation-create-card form,.invitation-copy-row{align-items:stretch;flex-direction:column}.section-heading{align-items:flex-start}.invitation-item-top{align-items:flex-start;flex-direction:column}}
/* Journal and progression insights */
.insight-page { max-width:960px; margin-block:32px 70px; padding:clamp(24px,5vw,48px); background:var(--pd-surface); border:1px solid var(--pd-border); border-radius:var(--pd-radius-lg); box-shadow:var(--pd-shadow); }
.insight-page .filter-options { display:flex; margin:22px 0; flex-wrap:wrap; justify-content:center; gap:8px; }
.insight-page .filter-options .btn { margin:0; }
.insight-page .btn.active { color:#fff!important; background:var(--pd-plum)!important; }
.journal-list { display:grid; gap:16px; margin-top:24px; }
.journal-list .entry.card { margin:0; padding:4px; border:1px solid var(--pd-border); border-radius:var(--pd-radius); background:#fff; box-shadow:var(--pd-shadow-sm); }
.journal-list .card-title { color:var(--pd-ink); }
.journal-list .card-text strong { color:var(--pd-plum-dark); }
.journal-list .card-text img { max-width:180px; margin-top:10px; border-radius:14px; }
/* Profile sections */
.profile-form-section { display:grid; width:100%; margin:18px 0; padding:24px; gap:14px; background:rgba(255,255,255,.72); border:1px solid var(--pd-border); border-radius:var(--pd-radius); }
.profile-section-heading { display:flex; margin-bottom:6px; align-items:center; gap:12px; }
.profile-section-heading h2 { margin:0; text-align:left; font-size:1.2rem; }
.profile-section-heading p { margin:2px 0 0; font-size:.84rem; }
/* Mobile scroll ownership: the document scrolls, never a vertically centered content panel. */
html { min-height:100%; }
body { min-height:100vh; display:flex; flex-direction:column; }
body > main, body > .page-shell, body > .login-container, body > .home-container, body > .index-container, body > .container, body > .container-fluid { flex:1 0 auto; }
body > footer { position:static!important; inset:auto!important; margin-top:auto!important; flex-shrink:0; }
.login-container:has(> .profile-details) { height:auto!important; min-height:calc(100vh - 72px); justify-content:flex-start!important; align-items:center; overflow:visible!important; }
.login-container > .profile-details { max-height:none!important; overflow:visible!important; }
.login-container:has(> .login-form) { justify-content:center!important; }

@media (max-width:767px) {
    html { height:auto!important; min-height:100%; overflow-x:hidden; }
    body { height:auto!important; min-height:100vh!important; overflow-x:hidden; overflow-y:visible; }
    .login-container, .home-container { height:auto!important; min-height:calc(100vh - 72px)!important; margin:0!important; padding-top:20px!important; overflow:visible!important; }
    .login-container:has(> .profile-details) { justify-content:flex-start!important; }
    .login-container > .profile-details { max-height:none!important; margin:0 auto!important; padding-top:24px!important; overflow:visible!important; }
    .login-container:has(> .login-form) { justify-content:center!important; }
    body > footer { position:static!important; bottom:auto!important; margin-top:auto!important; }
}
/* Responsive administration tables */
.table-responsive { overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; }
.admin-table-tools { display:flex; margin:0 0 16px; align-items:center; justify-content:space-between; gap:16px; }
.admin-search { position:relative; width:min(100%,520px); }
.admin-search i { position:absolute; top:50%; left:16px; z-index:1; color:var(--pd-muted); transform:translateY(-50%); }
.admin-search .form-control { margin:0; padding-left:44px; border-radius:999px; }
#user-result-count { color:var(--pd-muted); font-size:.85rem; white-space:nowrap; }
.admin-users-table table { min-width:1250px; }
.admin-users-table th:first-child,.admin-users-table td:first-child { position:sticky; left:0; z-index:2; background:#fff; }
.admin-users-table thead th:first-child { background:#f4edf4; }
.admin-users-table tbody tr[hidden] { display:none!important; }

@media(max-width:767px){
    .admin-table-tools { align-items:stretch; flex-direction:column; }
    #user-result-count { padding-left:4px; }
    .admin-users-table { overflow:visible; background:transparent; border:0; border-radius:0; box-shadow:none; }
    .admin-users-table table,.admin-users-table tbody { display:block; min-width:0; width:100%; }
    .admin-users-table thead { display:none; }
    .admin-users-table tbody { display:grid; gap:14px; }
    .admin-users-table tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; background:#fff; border:1px solid var(--pd-border); border-radius:18px; box-shadow:var(--pd-shadow-sm); }
    .admin-users-table tbody td { position:static!important; display:flex; min-width:0; padding:14px; flex-direction:column; align-items:flex-start; gap:5px; overflow-wrap:anywhere; background:transparent!important; border:0; border-bottom:1px solid rgba(76,38,87,.08); }
    .admin-users-table tbody td::before { color:var(--pd-muted); font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
    .admin-users-table tbody td:nth-child(1)::before { content:'ID'; }
    .admin-users-table tbody td:nth-child(2)::before { content:'Utilisateur'; }
    .admin-users-table tbody td:nth-child(3)::before { content:'E-mail'; }
    .admin-users-table tbody td:nth-child(4)::before { content:'Avatar'; }
    .admin-users-table tbody td:nth-child(5)::before { content:'Administrateur'; }
    .admin-users-table tbody td:nth-child(6)::before { content:'Vérifié'; }
    .admin-users-table tbody td:nth-child(7)::before { content:'Dernière connexion'; }
    .admin-users-table tbody td:nth-child(8)::before { content:'Record'; }
    .admin-users-table tbody td:nth-child(9)::before { content:'Série actuelle'; }
    .admin-users-table tbody td:nth-child(10)::before { content:'Actions'; }
    .admin-users-table tbody td:nth-child(3),.admin-users-table tbody td:nth-child(7),.admin-users-table tbody td:nth-child(10) { grid-column:1/-1; }
    .admin-users-table tbody td:nth-child(10) { border-bottom:0; }
    .admin-users-table .btn-container { margin:0; justify-content:flex-start; }
}
/* Dashboard weekly focus */
.dashboard-focus-grid { display:grid; grid-template-columns:1.25fr .9fr .9fr; gap:16px; margin:0 0 28px; }
.dashboard-focus-card { min-width:0; padding:22px; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); }
.dashboard-continue-card { display:flex; align-items:flex-start; gap:16px; background:linear-gradient(145deg,#fff,#fff7f2); }
.focus-icon { display:grid; width:48px; height:48px; flex:0 0 48px; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border-radius:16px; box-shadow:0 10px 24px rgba(84,35,95,.18); }
.focus-kicker { display:block; margin-bottom:7px; color:var(--pd-plum); font-size:.7rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.dashboard-focus-card h2 { margin:0 0 8px; color:var(--pd-ink); font-size:clamp(1.15rem,2vw,1.5rem); }
.dashboard-focus-card p { margin:0 0 14px; color:var(--pd-muted); font-size:.9rem; }
.weekly-goal-heading { display:flex; margin:7px 0 12px; align-items:baseline; gap:8px; }
.weekly-goal-heading strong { color:var(--pd-plum-dark); font-size:1.8rem; line-height:1; }
.weekly-goal-heading span { color:var(--pd-muted); font-size:.78rem; }
.weekly-goal-progress { height:8px; margin-bottom:11px; overflow:hidden; background:#eee5ef; border-radius:99px; }
.weekly-goal-progress span { display:block; height:100%; background:linear-gradient(90deg,var(--pd-coral),var(--pd-gold)); border-radius:inherit; transition:width .6s var(--pd-ease); }
.weekly-goal-form { display:grid; grid-template-columns:1fr 62px auto; align-items:center; gap:8px; }
.weekly-goal-form label { margin:0; color:var(--pd-ink); font-size:.78rem; font-weight:700; }
.weekly-goal-form input { width:62px; min-height:40px; padding:7px; text-align:center; border:1px solid var(--pd-border); border-radius:12px; }
.weekly-goal-form .btn { min-height:40px; padding:8px 12px; }
.recent-activity-card ul { display:grid; margin:4px 0 0; padding:0; gap:2px; list-style:none; }
.recent-activity-card a { display:flex; padding:9px 0; justify-content:space-between; gap:10px; color:var(--pd-ink); border-bottom:1px solid var(--pd-border); text-decoration:none; }
.recent-activity-card li:last-child a { border-bottom:0; }
.recent-activity-card a:hover strong { color:var(--pd-plum); }
.recent-activity-card a span { flex:0 0 auto; color:var(--pd-muted); font-size:.72rem; }
.figure:target { scroll-margin-top:96px; animation:pd-target-pulse 1.2s ease both; }
@keyframes pd-target-pulse { 0%,100% { box-shadow:var(--pd-shadow-sm); } 45% { box-shadow:0 0 0 5px rgba(216,101,120,.22),var(--pd-shadow); } }
@media(max-width:980px){.dashboard-focus-grid{grid-template-columns:1fr 1fr}.dashboard-continue-card{grid-column:1/-1}}
@media(max-width:640px){.dashboard-focus-grid{grid-template-columns:1fr}.dashboard-continue-card{grid-column:auto}.weekly-goal-form{grid-template-columns:1fr 62px}.weekly-goal-form .btn{grid-column:1/-1;width:100%}}
.dashboard-business-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0 0 22px; }
.dashboard-business-card { display:grid; align-content:start; gap:10px; min-width:0; padding:20px; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); }
.dashboard-business-card h2 { margin:0; color:var(--pd-ink); text-align:left; font-size:1.18rem; }
.dashboard-mini-list { display:grid; margin:2px 0 0; padding:0; gap:8px; list-style:none; }
.dashboard-mini-list a { display:grid; padding:11px 12px; gap:4px; color:var(--pd-ink); background:#fbf8fb; border:1px solid rgba(111,59,120,.1); border-radius:15px; text-decoration:none; transition:transform .2s var(--pd-ease), border-color .2s var(--pd-ease); }
.dashboard-mini-list a:hover { transform:translateY(-1px); border-color:rgba(111,59,120,.28); }
.dashboard-mini-list strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-mini-list span,.dashboard-mini-empty { margin:0; color:var(--pd-muted); font-size:.82rem; line-height:1.35; }
.dashboard-migration-notice { margin:0 0 22px; }
.figure-focus-actions { display:flex; flex-wrap:wrap; gap:8px; }
.figure-focus-toggle { display:inline-flex; min-height:34px; padding:7px 10px; align-items:center; gap:7px; color:var(--pd-plum-dark); background:#f3edf4; border:1px solid rgba(111,59,120,.14); border-radius:999px; font-size:.78rem; font-weight:850; transition:transform .2s var(--pd-ease), background .2s var(--pd-ease), color .2s var(--pd-ease); }
.figure-focus-toggle:hover { transform:translateY(-1px); }
.figure-focus-toggle.is-active { color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border-color:transparent; }
.figure-focus-toggle:disabled { opacity:.65; cursor:wait; }
.submission-inbox { display:grid; grid-template-columns:minmax(220px,.36fr) minmax(0,1fr); gap:16px; margin:0 0 22px; padding:18px; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.submission-inbox h2 { margin:5px 0 0; color:var(--pd-ink); text-align:left; font-size:1.18rem; }
.submission-inbox-list { display:grid; gap:10px; }
.submission-inbox-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; padding:13px; align-items:start; background:#fbf8fb; border:1px solid rgba(111,59,120,.1); border-radius:18px; }
.submission-inbox-icon { width:36px; height:36px; display:grid; place-items:center; color:#fff; background:var(--pd-plum); border-radius:12px; box-shadow:0 10px 24px rgba(76,38,87,.16); }
.submission-inbox-item.is-approved .submission-inbox-icon { background:#2f8f55; }
.submission-inbox-item.is-rejected .submission-inbox-icon { background:var(--pd-coral); }
.submission-inbox-item strong { display:block; color:var(--pd-ink); }
.submission-inbox-item p { margin:3px 0 0; color:var(--pd-muted); font-size:.84rem; line-height:1.4; }
.submission-inbox-reason { color:var(--pd-plum-dark)!important; font-weight:750; }
.submission-inbox-item time { color:var(--pd-muted); font-size:.76rem; white-space:nowrap; }
.dashboard-blocked-card .dashboard-mini-list a { background:#fff7ea; border-color:rgba(228,173,82,.24); }
@media(max-width:1180px){.dashboard-business-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.submission-inbox{grid-template-columns:1fr}}
@media(max-width:640px){.dashboard-business-grid{grid-template-columns:1fr}.submission-inbox-item{grid-template-columns:auto minmax(0,1fr)}.submission-inbox-item time{grid-column:2}}
@media(max-width:900px){.dashboard-business-grid{grid-template-columns:1fr}}
/* Training journal */
.journal-page { display:grid; gap:22px; padding-bottom:90px; }
.journal-back { margin-top:8px; }
.journal-back .btn-link { display:inline-flex; align-items:center; gap:8px; text-decoration:none; }
.journal-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.72fr); gap:24px; padding:clamp(28px,5vw,52px); align-items:end; color:#fff; background:radial-gradient(circle at 92% 8%,rgba(238,120,111,.58),transparent 35%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:26px; box-shadow:0 24px 60px rgba(76,38,87,.24); }
.journal-hero h1 { margin:6px 0 10px; color:#fff; text-align:left; }
.journal-hero p { max-width:620px; margin:0; color:rgba(255,255,255,.78); font-size:1rem; }
.journal-hero .focus-kicker { color:var(--pd-gold); }
.journal-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.journal-stats div { min-width:0; padding:16px 12px; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); border-radius:18px; }
.journal-stats strong { display:block; color:#fff; font-size:clamp(1.35rem,3vw,2rem); line-height:1; }
.journal-stats span { display:block; margin-top:7px; color:rgba(255,255,255,.72); font-size:.72rem; line-height:1.2; }
.journal-notice { display:flex; padding:14px 16px; align-items:center; gap:10px; color:var(--pd-plum-dark); background:#fff6ea; border:1px solid rgba(228,173,82,.28); border-radius:16px; }
.journal-toolbar { position:sticky; top:92px; z-index:4; display:grid; grid-template-columns:auto minmax(180px,1fr) minmax(180px,280px); gap:12px; padding:14px; align-items:end; background:rgba(255,255,255,.88); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); backdrop-filter:blur(18px); }
.journal-periods { display:flex; flex-wrap:wrap; gap:6px; }
.journal-filter { min-height:42px; padding:8px 13px; color:var(--pd-plum-dark); background:#f0e8f1; border:0; border-radius:999px; font-weight:800; transition:transform .2s var(--pd-ease), background .2s var(--pd-ease), color .2s var(--pd-ease); }
.journal-filter:hover { transform:translateY(-1px); }
.journal-filter.active { color:#fff; background:var(--pd-plum); }
.journal-field { display:grid; margin:0; gap:6px; }
.journal-field span { color:var(--pd-muted); font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.journal-field input,.journal-field select { width:100%; min-height:42px; padding:9px 12px; color:var(--pd-ink); background:#fff; border:1px solid var(--pd-border); border-radius:14px; outline:0; }
.journal-field input:focus,.journal-field select:focus { border-color:var(--pd-plum); box-shadow:0 0 0 3px rgba(111,59,120,.12); }
.journal-summary-row { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.journal-summary-row article { padding:18px; background:rgba(255,255,255,.9); border:1px solid var(--pd-border); border-radius:20px; box-shadow:var(--pd-shadow-sm); }
.journal-summary-row span { display:block; color:var(--pd-plum-dark); font-size:1.8rem; font-weight:850; line-height:1; }
.journal-summary-row p { margin:7px 0 0; font-size:.86rem; }
.journal-timeline { display:grid; gap:22px; }
.journal-day { display:grid; grid-template-columns:150px minmax(0,1fr); gap:18px; align-items:start; }
.journal-day h2 { position:sticky; top:190px; margin:8px 0 0; color:var(--pd-plum-dark); text-align:left; font-size:1.05rem; }
.journal-day-entries { display:grid; gap:14px; }
.journal-entry { position:relative; display:grid; grid-template-columns:70px minmax(0,1fr); gap:16px; padding:18px; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); animation:pd-rise .35s var(--pd-ease) both; }
.journal-entry::before { content:''; position:absolute; top:24px; bottom:24px; left:52px; width:2px; background:linear-gradient(var(--pd-coral),transparent); opacity:.22; }
.journal-entry-score { position:relative; z-index:1; display:grid; width:64px; height:64px; place-items:center; align-content:center; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border-radius:20px; box-shadow:0 12px 26px rgba(84,35,95,.18); }
.journal-entry-score strong { color:#fff; font-size:1.45rem; line-height:1; }
.journal-entry-score span { color:rgba(255,255,255,.75); font-size:.72rem; }
.journal-entry-body { min-width:0; }
.journal-entry-top { display:flex; justify-content:space-between; gap:14px; }
.journal-entry-top h3 { margin:0 0 7px; color:var(--pd-ink); font-size:1.18rem; }
.journal-entry-top p { display:flex; margin:0; flex-wrap:wrap; gap:6px; }
.journal-entry-top p span { padding:5px 9px; color:var(--pd-plum-dark); background:#f0e8f1; border-radius:999px; font-size:.72rem; font-weight:750; }
.journal-entry-top time { flex:0 0 auto; color:var(--pd-muted); font-size:.78rem; font-weight:750; }
.journal-stars { margin:13px 0 0; color:var(--pd-gold); letter-spacing:.05em; }
.journal-comment { margin:12px 0 0; color:var(--pd-muted); line-height:1.55; }
.journal-entry-actions { display:flex; margin-top:15px; flex-wrap:wrap; align-items:center; gap:10px; }
.journal-entry-actions .btn { margin:0; padding:9px 14px; }
.journal-photo-link { display:inline-flex; align-items:center; gap:7px; color:var(--pd-plum); font-weight:800; text-decoration:none; }
.journal-empty { margin-top:4px; }
@media(max-width:900px){.journal-hero{grid-template-columns:1fr}.journal-stats{max-width:100%}.journal-toolbar{position:static;grid-template-columns:1fr}.journal-summary-row{grid-template-columns:1fr}.journal-day{grid-template-columns:1fr}.journal-day h2{position:static;margin:0}.journal-entry{grid-template-columns:58px minmax(0,1fr);padding:16px}.journal-entry::before{display:none}.journal-entry-score{width:54px;height:54px;border-radius:16px}.journal-entry-top{flex-direction:column;gap:8px}.journal-entry-top time{align-self:flex-start}}
@media(max-width:520px){.journal-page{width:min(100% - 22px,1180px)}.journal-hero{padding:24px 18px}.journal-stats{grid-template-columns:1fr}.journal-periods{display:grid;grid-template-columns:repeat(2,1fr)}.journal-filter{width:100%}.journal-entry{grid-template-columns:1fr}.journal-entry-score{width:100%;height:auto;min-height:54px;grid-template-columns:auto auto;gap:4px;border-radius:16px}.journal-entry-score strong,.journal-entry-score span{display:inline}.journal-entry-actions .btn{width:100%;justify-content:center}.journal-photo-link{width:100%;justify-content:center}}

.training-insight-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.training-insight-grid article { min-height:98px; display:grid; place-items:center; align-content:center; padding:14px 10px; text-align:center; background:rgba(255,255,255,.9); border:1px solid var(--pd-border); border-radius:20px; box-shadow:var(--pd-shadow-sm); }
.training-insight-grid strong { color:var(--pd-plum-dark); font-size:clamp(1.15rem,2.4vw,1.8rem); line-height:1; }
.training-insight-grid span { margin-top:7px; color:var(--pd-muted); font-size:.74rem; line-height:1.25; }
@media(max-width:900px){.training-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.training-insight-grid{grid-template-columns:1fr}}
.training-session-panel { display:grid; grid-template-columns:minmax(220px,.48fr) minmax(0,1fr); gap:24px; padding:clamp(20px,4vw,30px); align-items:start; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.training-session-intro h2 { margin:5px 0 8px; color:var(--pd-ink); text-align:left; font-size:1.45rem; }
.training-session-intro p { margin:0; }
.training-session-form { display:grid; grid-template-columns:repeat(5,minmax(90px,1fr)); gap:12px; align-items:end; }
.training-session-form .btn { min-height:44px; margin:0; }
.training-session-figures,.training-session-notes { grid-column:1/-1; }
.training-session-form textarea,.training-session-form select { width:100%; padding:10px 12px; color:var(--pd-ink); background:#fff; border:1px solid var(--pd-border); border-radius:14px; outline:0; }
.training-session-list { display:grid; gap:14px; }
.training-session-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:14px; }
.training-session-card { display:grid; gap:12px; padding:18px; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:20px; box-shadow:var(--pd-shadow-sm); }
.training-session-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.training-session-card time { color:var(--pd-ink); font-weight:900; }
.training-session-card-top strong { color:#fff; background:var(--pd-plum); border-radius:999px; padding:6px 10px; font-size:.82rem; }
.training-session-card dl { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0; }
.training-session-card dl div { padding:10px; background:#fbf8fb; border:1px solid rgba(111,59,120,.1); border-radius:14px; }
.training-session-card dt { color:var(--pd-muted); font-size:.66rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.training-session-card dd { margin:3px 0 0; color:var(--pd-plum-dark); font-weight:900; }
.training-session-card p { margin:0; color:var(--pd-muted); line-height:1.5; }
.training-session-success { color:#225c49; background:#e4f3ed; border-color:rgba(63,140,114,.18); }
.training-session-error { color:#752d3a; background:#fbe8eb; border-color:rgba(197,79,97,.18); }
@media(max-width:900px){.training-session-panel{grid-template-columns:1fr}.training-session-form{grid-template-columns:repeat(2,minmax(0,1fr))}.training-session-form .btn{grid-column:1/-1;width:100%;justify-content:center}}
@media(max-width:520px){.training-session-form,.training-session-card dl{grid-template-columns:1fr}.training-session-card-top{align-items:flex-start;flex-direction:column}}
/* Progression insights graph */
.progression-insights-page { display:grid; gap:22px; padding-bottom:90px; }
.progression-hero { display:grid; grid-template-columns:minmax(0,1fr) 190px; gap:24px; padding:clamp(28px,5vw,52px); align-items:end; color:#fff; background:radial-gradient(circle at 90% 10%,rgba(228,173,82,.55),transparent 34%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:26px; box-shadow:0 24px 60px rgba(76,38,87,.24); }
.progression-hero h1 { margin:6px 0 10px; color:#fff; text-align:left; }
.progression-hero p { max-width:660px; margin:0; color:rgba(255,255,255,.78); font-size:1rem; }
.progression-hero .focus-kicker { color:var(--pd-gold); }
.progression-hero-metric { display:grid; min-height:148px; place-items:center; align-content:center; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); border-radius:24px; }
.progression-hero-metric strong { color:#fff; font-size:3.2rem; line-height:1; }
.progression-hero-metric span { max-width:120px; color:rgba(255,255,255,.75); font-size:.78rem; line-height:1.25; }
.progression-controls { display:flex; width:max-content; max-width:100%; padding:6px; gap:4px; background:rgba(255,255,255,.88); border:1px solid var(--pd-border); border-radius:999px; box-shadow:var(--pd-shadow-sm); }
.progression-filter { display:inline-flex; min-height:42px; padding:9px 16px; align-items:center; justify-content:center; color:var(--pd-plum-dark); border-radius:999px; font-weight:800; text-decoration:none; }
.progression-filter:hover { color:var(--pd-plum-dark); background:#fff; }
.progression-filter.active { color:#fff; background:var(--pd-plum); }
.progression-summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.progression-summary-grid article { display:grid; min-width:0; padding:18px; gap:7px; background:rgba(255,255,255,.9); border:1px solid var(--pd-border); border-radius:20px; box-shadow:var(--pd-shadow-sm); }
.progression-summary-grid i { color:var(--pd-coral); font-size:1.05rem; }
.progression-summary-grid strong { color:var(--pd-plum-dark); font-size:1.8rem; line-height:1; overflow-wrap:anywhere; }
.progression-summary-grid span { color:var(--pd-muted); font-size:.82rem; line-height:1.25; }
.progression-chart-card { min-height:420px; padding:24px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.progression-chart-card canvas { width:100%!important; height:380px!important; }
.progression-section-heading { margin-top:8px; }
.progression-recent-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:12px; }
.progression-recent-item { display:flex; min-width:0; padding:16px; align-items:center; gap:14px; color:var(--pd-ink); background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:18px; box-shadow:var(--pd-shadow-sm); text-decoration:none; transition:transform .2s var(--pd-ease), box-shadow .2s var(--pd-ease); }
.progression-recent-item:hover { color:var(--pd-ink); transform:translateY(-2px); box-shadow:var(--pd-shadow); }
.progression-recent-score { display:grid; width:56px; height:56px; flex:0 0 56px; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border-radius:18px; font-weight:900; }
.progression-recent-item strong { display:block; color:var(--pd-ink); line-height:1.2; }
.progression-recent-item small { display:block; margin-top:5px; color:var(--pd-muted); line-height:1.35; }
@media(max-width:900px){.progression-hero{grid-template-columns:1fr}.progression-hero-metric{min-height:110px}.progression-summary-grid{grid-template-columns:repeat(2,1fr)}.progression-chart-card{padding:16px}.progression-chart-card canvas{height:330px!important}.progression-controls{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.progression-insights-page{width:min(100% - 22px,1180px)}.progression-hero{padding:24px 18px}.progression-summary-grid{grid-template-columns:1fr}.progression-filter{padding-inline:10px}.progression-chart-card canvas{height:300px!important}.progression-recent-item{align-items:flex-start}.progression-recent-score{width:50px;height:50px;flex-basis:50px;border-radius:16px}}

.journal-star-empty { opacity:.24; }
.progression-chart-error { display:grid; min-height:300px; place-items:center; margin:0; color:var(--pd-muted); text-align:center; }

/* Achievements collection */
.achievements-page { display:grid; gap:22px; padding-bottom:90px; }
.achievements-hero { display:grid; grid-template-columns:minmax(0,1fr) 170px; gap:24px; padding:clamp(28px,5vw,52px); align-items:center; color:#fff; background:radial-gradient(circle at 90% 12%,rgba(228,173,82,.58),transparent 34%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:26px; box-shadow:0 24px 60px rgba(76,38,87,.24); }
.achievements-hero h1 { margin:6px 0 10px; color:#fff; text-align:left; }
.achievements-hero p { max-width:620px; margin:0; color:rgba(255,255,255,.78); }
.achievements-hero .focus-kicker { color:var(--pd-gold); }
.achievements-ring { display:grid; width:148px; height:148px; place-items:center; align-content:center; justify-self:end; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.achievements-ring strong { color:#fff; font-size:3rem; line-height:1; }
.achievements-ring span { max-width:88px; color:rgba(255,255,255,.75); font-size:.78rem; line-height:1.2; }
.achievement-next-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,280px); gap:20px; padding:22px; align-items:center; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); }
.achievement-next-card h2 { margin:4px 0 8px; color:var(--pd-ink); text-align:left; font-size:1.35rem; }
.achievement-next-card p { margin:0; }
.achievement-next-progress strong { display:block; margin-bottom:10px; color:var(--pd-plum-dark); font-size:1.45rem; text-align:right; }
.achievement-toolbar { display:flex; width:max-content; max-width:100%; padding:6px; gap:4px; background:rgba(255,255,255,.88); border:1px solid var(--pd-border); border-radius:999px; box-shadow:var(--pd-shadow-sm); }
.achievement-filter { min-height:42px; padding:9px 16px; color:var(--pd-plum-dark); background:transparent; border:0; border-radius:999px; font-weight:800; }
.achievement-filter.active { color:#fff; background:var(--pd-plum); }
.achievements-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:16px; }
.achievement-card { display:grid; min-height:360px; padding:18px; align-content:start; gap:12px; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); transition:transform .22s var(--pd-ease), box-shadow .22s var(--pd-ease); }
.achievement-card:hover { transform:translateY(-3px); box-shadow:var(--pd-shadow); }
.achievement-card.is-locked { opacity:.82; }
.achievement-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.achievement-category { color:var(--pd-muted); font-size:.72rem; font-weight:800; }
.achievement-card img { width:104px; height:104px; margin:8px auto 0; object-fit:contain; filter:drop-shadow(0 12px 18px rgba(53,31,62,.12)); }
.achievement-card.is-locked img { filter:none; opacity:.72; }
.achievement-card h3 { margin:2px 0 0; color:var(--pd-ink); text-align:center; font-size:1.12rem; }
.achievement-card p { margin:0; text-align:center; font-size:.88rem; line-height:1.45; }
.achievement-progress-row { display:flex; margin-top:auto; justify-content:space-between; gap:10px; color:var(--pd-muted); font-size:.78rem; font-weight:800; }
.achievement-progress { height:8px; overflow:hidden; background:#eee5ef; border-radius:999px; }
.achievement-progress span { display:block; height:100%; background:linear-gradient(90deg,var(--pd-coral),var(--pd-gold)); border-radius:inherit; transition:width .55s var(--pd-ease); }
.achievement-skeleton { min-height:320px; background:linear-gradient(100deg,rgba(255,255,255,.55),rgba(255,255,255,.95),rgba(255,255,255,.55)); background-size:220% 100%; border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); animation:pd-skeleton 1.25s linear infinite; }
@keyframes pd-skeleton { to { background-position:-220% 0; } }
@media(max-width:760px){.achievements-hero{grid-template-columns:1fr}.achievements-ring{width:118px;height:118px;justify-self:start}.achievement-next-card{grid-template-columns:1fr}.achievement-next-progress strong{text-align:left}.achievement-toolbar{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.achievement-filter{padding-inline:9px}.achievement-card{min-height:auto}}
/* Combination builder */
.combinations-page { display:grid; gap:24px; padding-bottom:90px; }
.combinations-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,.55fr); gap:24px; padding:clamp(28px,5vw,52px); align-items:end; color:#fff; background:radial-gradient(circle at 92% 10%,rgba(216,101,120,.55),transparent 34%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:26px; box-shadow:0 24px 60px rgba(76,38,87,.24); }
.combinations-hero h1 { margin:6px 0 10px; color:#fff; text-align:left; }
.combinations-hero p { max-width:650px; margin:0; color:rgba(255,255,255,.78); }
.combinations-hero .focus-kicker { color:var(--pd-gold); }
.combinations-hero-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.combinations-hero-stats article { min-height:118px; padding:18px 12px; display:grid; place-items:center; align-content:center; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); border-radius:22px; }
.combinations-hero-stats strong { color:#fff; font-size:clamp(2rem,4vw,3rem); line-height:1; }
.combinations-hero-stats span { margin-top:7px; color:rgba(255,255,255,.72); font-size:.78rem; line-height:1.2; }
.combination-builder-card { display:grid; grid-template-columns:minmax(220px,.55fr) minmax(0,1fr); gap:28px; padding:clamp(22px,4vw,34px); background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:26px; box-shadow:var(--pd-shadow-sm); }
.combination-builder-intro h2 { margin:6px 0 10px; color:var(--pd-ink); text-align:left; font-size:clamp(1.45rem,3vw,2rem); }
.combination-builder-intro p { margin:0; }
.combination-form { display:grid; gap:18px; }
.combination-sequence-area { display:grid; gap:9px; }
.combination-sequence-label { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.combination-sequence-label span { color:var(--pd-ink); font-weight:850; }
.combination-sequence-label small { color:var(--pd-muted); font-weight:700; }
.combination-sequence { display:flex; min-height:88px; padding:12px; align-items:center; flex-wrap:wrap; gap:10px; background:linear-gradient(145deg,#fff,#fbf8fb); border:1px dashed rgba(111,59,120,.32); border-radius:22px; }
.combo-sequence-item { display:inline-flex; min-height:46px; padding:8px 8px 8px 12px; align-items:center; gap:9px; color:var(--pd-plum-dark); background:#f0e8f1; border:1px solid rgba(111,59,120,.14); border-radius:999px; font-weight:850; box-shadow:0 8px 20px rgba(76,38,87,.08); }
.combo-sequence-handle { display:inline-flex; color:var(--pd-muted); cursor:grab; }
.combo-sequence-remove { display:grid; width:30px; height:30px; place-items:center; color:#fff; background:var(--pd-coral); border:0; border-radius:50%; }
.combo-sequence-remove:hover { transform:scale(1.05); }
.combo-add-item { display:inline-flex; min-height:46px; padding:9px 15px; align-items:center; gap:8px; color:var(--pd-plum); background:#fff; border:1px solid var(--pd-border); border-radius:999px; font-weight:850; transition:transform .2s var(--pd-ease), box-shadow .2s var(--pd-ease), border-color .2s var(--pd-ease); }
.combo-add-item:hover { transform:translateY(-1px); border-color:rgba(111,59,120,.32); box-shadow:var(--pd-shadow-sm); }
.combo-sortable-ghost { opacity:.55; }
.combination-form-actions { display:flex; flex-wrap:wrap; gap:10px; }
.combination-form-actions .btn { margin:0; }
.combinations-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr)); gap:16px; }
.combination-card,.combination-empty-card { display:grid; gap:12px; padding:20px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); animation:pd-rise .35s var(--pd-ease) both; }
.combination-card { align-content:start; min-height:210px; }
.combination-card-top { display:flex; justify-content:flex-end; }
.combination-card h3 { margin:0; color:var(--pd-ink); font-size:1.28rem; overflow-wrap:anywhere; }
.combination-card p { margin:0; color:var(--pd-muted); line-height:1.55; overflow-wrap:anywhere; }
.combination-actions { display:flex; margin-top:auto; flex-wrap:wrap; gap:10px; }
.combination-actions .btn { margin:0; padding:9px 14px; }
.combination-empty-card { min-height:220px; place-items:center; align-content:center; text-align:center; }
.combination-empty-card i { color:var(--pd-coral); font-size:2rem; }
.combination-empty-card h3 { margin:0; color:var(--pd-ink); }
.combination-empty-card p { max-width:380px; margin:0; }
.pole-modal .modal-content { border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow); }
.pole-modal .modal-header,.pole-modal .modal-footer { border-color:var(--pd-border); }
.pole-modal .modal-title { color:var(--pd-ink); font-weight:900; }
.figure-result-list { display:grid; max-height:min(56vh,460px); margin-top:16px; gap:8px; overflow:auto; }
.figure-result-item { display:flex; min-height:48px; padding:10px 14px; align-items:center; gap:10px; color:var(--pd-ink); text-align:left; background:#fff; border:1px solid var(--pd-border); border-radius:16px; font-weight:800; }
.figure-result-item:not(:disabled):hover { color:var(--pd-plum); border-color:rgba(111,59,120,.36); box-shadow:var(--pd-shadow-sm); }
.figure-result-item:disabled { opacity:.45; cursor:not-allowed; }
.figure-result-item i { color:var(--pd-coral); }
.figure-result-empty { margin:12px 0 0; color:var(--pd-muted); text-align:center; }
@media(max-width:860px){.combinations-hero,.combination-builder-card{grid-template-columns:1fr}.combinations-hero-stats{max-width:100%}.combination-builder-card{gap:18px}}
@media(max-width:520px){.combinations-page{width:min(100% - 22px,1180px)}.combinations-hero{padding:24px 18px}.combinations-hero-stats{grid-template-columns:1fr}.combination-sequence-label{align-items:flex-start;flex-direction:column}.combo-add-item,.combination-form-actions .btn,.combination-actions .btn{width:100%;justify-content:center}.combo-sequence-item{width:100%;justify-content:space-between;border-radius:16px}.combination-actions{display:grid}.pole-modal .modal-dialog{margin:12px}}

/* Friends hub */
.friends-page { display:grid; gap:24px; padding-bottom:90px; }
.friends-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,.5fr); gap:24px; padding:clamp(28px,5vw,52px); align-items:end; color:#fff; background:radial-gradient(circle at 92% 10%,rgba(228,173,82,.55),transparent 34%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:26px; box-shadow:0 24px 60px rgba(76,38,87,.24); }
.friends-hero h1 { margin:6px 0 10px; color:#fff; text-align:left; }
.friends-hero p { max-width:650px; margin:0; color:rgba(255,255,255,.78); }
.friends-hero .focus-kicker { color:var(--pd-gold); }
.friends-hero-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.friends-hero-stats article { min-height:118px; display:grid; padding:18px 12px; place-items:center; align-content:center; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); border-radius:22px; }
.friends-hero-stats strong { color:#fff; font-size:clamp(2rem,4vw,3rem); line-height:1; }
.friends-hero-stats span { margin-top:7px; color:rgba(255,255,255,.72); font-size:.78rem; }
.friend-search-card { display:grid; grid-template-columns:minmax(220px,.42fr) minmax(0,1fr); gap:18px; padding:18px 22px; align-items:center; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:26px; box-shadow:var(--pd-shadow-sm); }
.friend-search-card h2 { margin:4px 0 6px; color:var(--pd-ink); text-align:left; font-size:clamp(1.35rem,3vw,1.85rem); }
.friend-search-card p { margin:0; }
.friend-search-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; }
.friend-search-form .btn { min-height:48px; margin:0; justify-content:center; text-align:center; }
.friend-result-card,.friends-section { display:grid; gap:14px; }
.friend-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:16px; }
.friend-card,.friend-empty-card { display:grid; gap:16px; padding:20px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); animation:pd-rise .35s var(--pd-ease) both; }
.friend-card-highlight { background:linear-gradient(145deg,#fff,#fff8f3); }
.friend-card-muted { opacity:.86; }
.friend-card-main { display:flex; min-width:0; align-items:center; gap:14px; color:var(--pd-ink); text-decoration:none; }
a.friend-card-main:hover h3 { color:var(--pd-plum); }
.friend-card-main > div { min-width:0; }
.friend-card h3 { margin:0 0 5px; color:var(--pd-ink); font-size:1.15rem; overflow-wrap:anywhere; }
.friend-card p { margin:0; color:var(--pd-muted); font-size:.9rem; line-height:1.45; }
.friend-avatar { width:58px; height:58px; flex:0 0 58px; object-fit:cover; border:3px solid #fff; border-radius:20px; box-shadow:0 10px 24px rgba(76,38,87,.14); }
.friend-avatar-fallback { display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); font-weight:900; font-size:1.3rem; }
.friend-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.friend-actions form { margin:0; }
.friend-actions .btn,.friend-card > form .btn { display:inline-flex; min-height:46px; margin:0; padding:0 16px; align-items:center; justify-content:center; gap:7px; line-height:1; text-align:center; }
.friend-empty-card { min-height:220px; place-items:center; align-content:center; text-align:center; }
.friend-empty-card i { color:var(--pd-coral); font-size:2.1rem; }
.friend-empty-card h3 { margin:0; color:var(--pd-ink); }
.friend-empty-card p { max-width:430px; margin:0; }
#deleteFriendForm { margin:0; }
@media(max-width:820px){.friends-hero,.friend-search-card{grid-template-columns:1fr}.friends-hero-stats{max-width:100%}.friend-search-form{grid-template-columns:1fr}}
@media(max-width:520px){.friends-page{width:min(100% - 22px,1180px)}.friends-hero{padding:24px 18px}.friends-hero-stats{grid-template-columns:1fr}.friend-card-main{align-items:flex-start}.friend-actions,.friend-actions form,.friend-actions .btn,.friend-card > form .btn{width:100%}.friend-actions .btn,.friend-card > form .btn{justify-content:center}.friend-avatar{width:52px;height:52px;flex-basis:52px;border-radius:18px}}

/* Friend profile */
.friend-profile-page { display:grid; gap:22px; padding-bottom:90px; }
.friend-profile-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.62fr); gap:24px; padding:clamp(28px,5vw,52px); align-items:center; color:#fff; background:radial-gradient(circle at 90% 10%,rgba(216,101,120,.55),transparent 34%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:26px; box-shadow:0 24px 60px rgba(76,38,87,.24); }
.friend-profile-identity { display:flex; min-width:0; align-items:center; gap:20px; }
.friend-profile-avatar { width:112px; height:112px; flex:0 0 112px; object-fit:cover; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border:4px solid rgba(255,255,255,.92); border-radius:32px; box-shadow:0 18px 40px rgba(25,12,30,.24); }
span.friend-profile-avatar { display:grid; place-items:center; font-size:2.7rem; font-weight:900; }
.friend-profile-hero h1 { margin:6px 0 10px; color:#fff; text-align:left; }
.friend-profile-hero p { max-width:620px; margin:0; color:rgba(255,255,255,.78); }
.friend-profile-hero .focus-kicker { color:var(--pd-gold); }
.friend-profile-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.friend-profile-stats article { min-height:118px; display:grid; padding:16px 10px; place-items:center; align-content:center; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); border-radius:22px; }
.friend-profile-stats strong { color:#fff; font-size:clamp(1.7rem,4vw,2.7rem); line-height:1; }
.friend-profile-stats span { margin-top:7px; color:rgba(255,255,255,.72); font-size:.74rem; line-height:1.2; }
.friend-profile-insights { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.friend-profile-insights article { min-height:98px; display:grid; place-items:center; align-content:center; padding:14px 10px; text-align:center; background:rgba(255,255,255,.9); border:1px solid var(--pd-border); border-radius:20px; box-shadow:var(--pd-shadow-sm); }
.friend-profile-insights strong { max-width:100%; overflow:hidden; color:var(--pd-plum-dark); font-size:clamp(1.05rem,2vw,1.55rem); line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.friend-profile-insights span { margin-top:7px; color:var(--pd-muted); font-size:.74rem; line-height:1.25; }
@media(max-width:760px){.friend-profile-insights{grid-template-columns:repeat(2,minmax(0,1fr))}}
.friend-profile-toolbar { position:sticky; top:92px; z-index:4; display:grid; grid-template-columns:minmax(0,1fr) minmax(210px,280px); gap:12px; padding:14px; align-items:end; background:rgba(255,255,255,.9); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); backdrop-filter:blur(18px); }
.friend-filter-group { display:flex; flex-wrap:wrap; gap:7px; }
.friend-profile-section { display:grid; gap:14px; }
.friend-figure-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:16px; }
.friend-figure-card { display:grid; gap:12px; padding:20px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); animation:pd-rise .35s var(--pd-ease) both; }
.friend-figure-card[hidden] { display:none!important; }
.friend-figure-top { display:flex; justify-content:space-between; gap:14px; }
.friend-figure-top h3 { margin:6px 0 0; color:var(--pd-ink); font-size:1.18rem; line-height:1.2; }
.friend-figure-card p { margin:0; color:var(--pd-muted); line-height:1.52; }
.friend-figure-badges { display:flex; flex-wrap:wrap; gap:6px; }
.friend-figure-badges span { padding:5px 9px; color:var(--pd-plum-dark); background:#f0e8f1; border-radius:999px; font-size:.72rem; font-weight:800; }
.friend-rating-badge { display:grid; width:56px; height:56px; flex:0 0 56px; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border-radius:18px; box-shadow:0 12px 26px rgba(84,35,95,.16); }
.friend-comment { padding:12px; background:#fbf8fb; border:1px solid var(--pd-border); border-radius:16px; }
.friend-photo-link { display:inline-flex; width:max-content; max-width:100%; align-items:center; gap:7px; color:var(--pd-plum); font-weight:850; text-decoration:none; }
.friend-photo-link:hover { color:var(--pd-plum-dark); }
.friend-modal-photo { max-height:76vh; border-radius:18px; }
@media(max-width:900px){.friend-profile-hero{grid-template-columns:1fr}.friend-profile-stats{max-width:100%}.friend-profile-toolbar{position:static;grid-template-columns:1fr}.friend-category-select{max-width:none}}
@media(max-width:560px){.friend-profile-page{width:min(100% - 22px,1180px)}.friend-profile-hero{padding:24px 18px}.friend-profile-identity{align-items:flex-start;flex-direction:column}.friend-profile-avatar{width:92px;height:92px;flex-basis:92px;border-radius:26px}.friend-profile-stats{grid-template-columns:1fr}.friend-filter-group{display:grid;grid-template-columns:1fr 1fr}.friend-filter-group .journal-filter{width:100%}.friend-figure-top{flex-direction:column}.friend-rating-badge{width:100%;height:auto;min-height:52px}}

/* Admin figures */
.admin-figures-page { display:grid; gap:24px; padding-bottom:90px; }
.admin-figures-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.72fr); gap:24px; padding:clamp(28px,5vw,52px); align-items:end; color:#fff; background:radial-gradient(circle at 92% 10%,rgba(228,173,82,.55),transparent 34%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:26px; box-shadow:0 24px 60px rgba(76,38,87,.24); }
.admin-figures-hero h1 { margin:6px 0 10px; color:#fff; text-align:left; }
.admin-figures-hero p { max-width:680px; margin:0; color:rgba(255,255,255,.78); }
.admin-figures-hero .focus-kicker { color:var(--pd-gold); }
.admin-figures-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.admin-figures-stats article { min-height:118px; display:grid; padding:16px 10px; place-items:center; align-content:center; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); border-radius:22px; }
.admin-figures-stats strong { color:#fff; font-size:clamp(1.8rem,4vw,3rem); line-height:1; }
.admin-figures-stats span { margin-top:7px; color:rgba(255,255,255,.72); font-size:.74rem; }
.admin-error-notice { color:#752d3a; background:#fbe8eb; border-color:rgba(197,79,97,.18); }
.admin-review-history { display:grid; grid-template-columns:minmax(220px,.34fr) minmax(0,1fr); gap:16px; padding:18px; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.admin-review-history h2 { margin:5px 0 7px; color:var(--pd-ink); text-align:left; font-size:1.2rem; }
.admin-review-history p { margin:0; color:var(--pd-muted); line-height:1.45; }
.admin-review-history-list { display:grid; gap:10px; }
.admin-review-history-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; padding:13px; align-items:start; background:#fbf8fb; border:1px solid rgba(111,59,120,.1); border-radius:18px; }
.admin-review-history-icon { width:36px; height:36px; display:grid; place-items:center; color:#fff; background:#2f8f55; border-radius:12px; }
.admin-review-history-item.is-rejected .admin-review-history-icon { background:var(--pd-coral); }
.admin-review-history-item strong { display:block; color:var(--pd-ink); }
.admin-review-history-item time { color:var(--pd-muted); font-size:.76rem; white-space:nowrap; }
.admin-review-history-reason { margin-top:4px!important; color:var(--pd-plum-dark)!important; font-weight:750; }
@media(max-width:900px){.admin-review-history{grid-template-columns:1fr}.admin-review-history-item{grid-template-columns:auto minmax(0,1fr)}.admin-review-history-item time{grid-column:2}}
.admin-figure-tools { display:grid; grid-template-columns:minmax(260px,1fr) minmax(150px,210px) minmax(170px,240px) minmax(150px,210px) auto; gap:12px; padding:16px; align-items:end; background:rgba(255,255,255,.9); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.admin-figure-tools .admin-search { width:100%; }
.admin-figure-tools .btn { min-height:48px; margin:0; }
.admin-figure-select { margin:0; }
.admin-figure-library { display:grid; gap:14px; }
.admin-figure-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:16px; }
.admin-figure-card { display:grid; gap:14px; padding:20px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); animation:pd-rise .35s var(--pd-ease) both; transition:transform .2s var(--pd-ease), box-shadow .2s var(--pd-ease); }
.admin-figure-card:hover { transform:translateY(-3px); box-shadow:var(--pd-shadow); }
.admin-figure-card[hidden] { display:none!important; }
.admin-figure-card-top { display:flex; justify-content:space-between; gap:14px; }
.admin-figure-card-top h3 { margin:7px 0 0; color:var(--pd-ink); font-size:1.2rem; line-height:1.18; }
.admin-figure-card-top strong { flex:0 0 auto; color:var(--pd-muted); font-size:.82rem; }
.admin-figure-card > p { margin:0; color:var(--pd-muted); line-height:1.52; }
.admin-figure-actions { display:flex; margin-top:auto; flex-wrap:wrap; gap:10px; }
.admin-figure-actions .btn { margin:0; padding:9px 14px; }
.submission-reason { display:grid; gap:5px; padding:12px 14px; color:var(--pd-plum-dark); background:#fff7ea; border:1px solid rgba(228,173,82,.28); border-radius:16px; }
.submission-reason strong { font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; }
.submission-reason p { margin:0; color:var(--pd-muted); line-height:1.45; }
.figure-submission-reason { margin:4px 0 12px; }
.btn-edit-submitted-figure { width:100%; margin-top:10px!important; justify-content:center; }
.admin-figure-form-grid { display:grid; grid-template-columns:1.2fr .65fr .65fr 1fr; gap:14px; }
.admin-description-field { grid-column:1/-1; }
.admin-description-field textarea { min-height:130px; }
@media(max-width:1050px){.admin-figures-hero,.admin-figure-tools{grid-template-columns:1fr}.admin-figures-stats{max-width:100%}}
@media(max-width:640px){.admin-figures-page{width:min(100% - 22px,1180px)}.admin-figures-hero{padding:24px 18px}.admin-figures-stats{grid-template-columns:1fr}.admin-figure-card-top{flex-direction:column}.admin-figure-actions{display:grid}.admin-figure-actions .btn{width:100%;justify-content:center}.admin-figure-form-grid{grid-template-columns:1fr}}

.admin-figure-prerequisites { display:grid; gap:8px; padding:12px; background:#fbf8fb; border:1px solid rgba(111,59,120,.1); border-radius:16px; }
.admin-figure-prerequisites strong { display:flex; align-items:center; gap:7px; color:var(--pd-plum-dark); font-size:.82rem; }
.admin-figure-prerequisites ul { display:flex; margin:0; padding:0; flex-wrap:wrap; gap:6px; list-style:none; }
.admin-figure-prerequisites li,.admin-figure-prerequisites span { display:inline-flex; padding:5px 9px; color:var(--pd-muted); background:#fff; border:1px solid var(--pd-border); border-radius:999px; font-size:.74rem; font-weight:800; }
.prerequisite-modal-body { display:grid; gap:14px; }
.prerequisite-modal-body select { width:100%; padding:10px; color:var(--pd-ink); background:#fff; border:1px solid var(--pd-border); border-radius:16px; outline:0; }
.prerequisite-modal-body small { color:var(--pd-muted); }
.prerequisite-figure-name { margin:0; padding:12px 14px; color:var(--pd-plum-dark); background:#f3edf4; border-radius:16px; font-weight:900; }
/* Admin users */
.admin-users-page { display:grid; gap:24px; padding-bottom:90px; }
.admin-users-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.72fr); gap:24px; padding:clamp(28px,5vw,52px); align-items:end; color:#fff; background:radial-gradient(circle at 92% 10%,rgba(216,101,120,.55),transparent 34%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:26px; box-shadow:0 24px 60px rgba(76,38,87,.24); }
.admin-users-hero h1 { margin:6px 0 10px; color:#fff; text-align:left; }
.admin-users-hero p { max-width:680px; margin:0; color:rgba(255,255,255,.78); }
.admin-users-hero .focus-kicker { color:var(--pd-gold); }
.admin-users-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.admin-users-stats article { min-height:118px; display:grid; padding:16px 10px; place-items:center; align-content:center; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16); border-radius:22px; }
.admin-users-stats strong { color:#fff; font-size:clamp(1.8rem,4vw,3rem); line-height:1; }
.admin-users-stats span { margin-top:7px; color:rgba(255,255,255,.72); font-size:.74rem; }
.admin-user-tools { display:grid; grid-template-columns:minmax(260px,1fr) minmax(150px,210px) minmax(150px,210px) auto; gap:12px; padding:16px; align-items:end; background:rgba(255,255,255,.9); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.admin-user-tools .admin-search { width:100%; }
.admin-user-tools .btn { min-height:48px; margin:0; }
.admin-user-select { margin:0; }
.admin-user-library { display:grid; gap:14px; }
.admin-user-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); gap:16px; }
.admin-user-card { display:grid; gap:15px; padding:20px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); animation:pd-rise .35s var(--pd-ease) both; transition:transform .2s var(--pd-ease), box-shadow .2s var(--pd-ease); }
.admin-user-card:hover { transform:translateY(-3px); box-shadow:var(--pd-shadow); }
.admin-user-card[hidden] { display:none!important; }
.admin-user-main { display:flex; min-width:0; align-items:center; gap:14px; }
.admin-user-main > div { min-width:0; }
.admin-user-main h3 { margin:7px 0 3px; color:var(--pd-ink); font-size:1.18rem; line-height:1.18; overflow-wrap:anywhere; }
.admin-user-main p:last-child { margin:0; overflow-wrap:anywhere; }
.admin-user-avatar { width:58px; height:58px; flex:0 0 58px; object-fit:cover; border:3px solid #fff; border-radius:20px; box-shadow:0 10px 24px rgba(76,38,87,.14); }
.admin-user-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0; }
.admin-user-meta div { min-width:0; padding:10px; background:#fbf8fb; border:1px solid var(--pd-border); border-radius:14px; }
.admin-user-meta dt { color:var(--pd-muted); font-size:.66rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.admin-user-meta dd { margin:4px 0 0; color:var(--pd-ink); font-weight:800; overflow-wrap:anywhere; }
.admin-user-actions { display:flex; flex-wrap:wrap; gap:10px; }
.admin-user-actions .btn { margin:0; padding:9px 14px; }
.admin-user-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.admin-current-avatar { display:grid; min-height:120px; place-items:center; align-content:center; grid-column:1/-1; background:#fbf8fb; border:1px dashed rgba(111,59,120,.25); border-radius:18px; }
.admin-current-avatar img,.admin-current-avatar .admin-user-avatar { width:96px; height:96px; flex-basis:96px; object-fit:cover; border-radius:28px; }
@media(max-width:1050px){.admin-users-hero,.admin-user-tools{grid-template-columns:1fr}.admin-users-stats{max-width:100%}}
@media(max-width:640px){.admin-users-page{width:min(100% - 22px,1180px)}.admin-users-hero{padding:24px 18px}.admin-users-stats,.admin-user-meta,.admin-user-form-grid{grid-template-columns:1fr}.admin-user-main{align-items:flex-start}.admin-user-actions{display:grid}.admin-user-actions .btn{width:100%;justify-content:center}}

/* Public authentication pages */
.auth-page { flex:1 0 auto; display:grid; min-height:calc(100vh - 82px); padding:clamp(28px,6vw,72px) 16px 90px; place-items:center; background:radial-gradient(circle at 12% 12%,rgba(238,120,111,.18),transparent 28rem),radial-gradient(circle at 88% 18%,rgba(111,59,120,.18),transparent 30rem),linear-gradient(135deg,rgba(251,248,243,.94),rgba(255,255,255,.78)),url('/images/background.jpg') center/cover fixed; }
.auth-card { width:min(100%,520px); display:grid; gap:18px; padding:clamp(28px,5vw,46px); background:rgba(255,255,255,.9); border:1px solid rgba(255,255,255,.92); border-radius:30px; box-shadow:0 24px 70px rgba(53,31,62,.16); backdrop-filter:blur(18px); }
.auth-card-intro { text-align:center; }
.auth-card-intro .focus-kicker { color:var(--pd-plum); }
.auth-card h1 { margin:8px 0 10px; text-align:center; }
.auth-card p { margin:0; }
.auth-form { display:grid; gap:15px; }
.auth-form .journal-field { margin:0; }
.auth-form small { display:block; margin-top:6px; color:var(--pd-muted); font-size:.76rem; }
.auth-submit { width:100%; margin:6px 0 0; justify-content:center; }
.auth-links { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 16px; }
.auth-links a { color:var(--pd-plum); font-weight:800; text-decoration:none; }
.auth-links a:hover { color:var(--pd-plum-dark); text-decoration:underline; }
.auth-notice { display:flex; padding:14px 16px; align-items:flex-start; gap:10px; border-radius:16px; line-height:1.45; }
.auth-notice i { margin-top:3px; }
.auth-notice small { display:block; margin-top:4px; color:inherit; opacity:.82; }
.auth-notice-success { color:#225c49; background:#e4f3ed; border:1px solid rgba(63,140,114,.18); }
.auth-notice-error { color:#752d3a; background:#fbe8eb; border:1px solid rgba(197,79,97,.18); }
.auth-state { display:grid; gap:12px; place-items:center; text-align:center; }
.auth-state i { display:grid; width:68px; height:68px; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border-radius:22px; font-size:1.8rem; box-shadow:0 14px 34px rgba(76,38,87,.18); }
.auth-state h1,.auth-state h2 { margin:4px 0 0; text-align:center; color:var(--pd-ink); }
.auth-state p { max-width:380px; }
.auth-state-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.auth-state-actions .btn,.auth-state .btn { margin:0; }
@media(max-width:767px){.auth-page{min-height:calc(100vh - 72px);padding:22px 12px 70px;background-attachment:scroll}.auth-card{border-radius:24px}.auth-links{flex-direction:column;align-items:center}.auth-state-actions{width:100%}.auth-state-actions .btn,.auth-state .btn{width:100%;justify-content:center}}

/* Profile page */
.profile-page { display:grid; gap:22px; padding-bottom:90px; }
.profile-hero { display:flex; justify-content:space-between; gap:22px; align-items:center; padding:clamp(26px,5vw,46px); color:#fff; background:radial-gradient(circle at 90% 5%,rgba(238,120,111,.52),transparent 32%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:28px; box-shadow:0 24px 60px rgba(76,38,87,.22); }
.profile-hero-main { display:flex; min-width:0; align-items:center; gap:20px; }
.profile-hero h1 { margin:6px 0 8px; color:#fff; text-align:left; }
.profile-hero p { max-width:620px; margin:0 0 14px; color:rgba(255,255,255,.78); }
.profile-hero .focus-kicker { color:var(--pd-gold); }
.profile-avatar-preview { width:112px; height:112px; flex:0 0 112px; display:grid; place-items:center; overflow:hidden; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border:4px solid rgba(255,255,255,.92); border-radius:32px; box-shadow:0 18px 40px rgba(25,12,30,.25); font-size:2.7rem; font-weight:900; }
.profile-avatar-preview img { width:100%; height:100%; object-fit:cover; }
.profile-status-pill { display:inline-flex; align-items:center; gap:8px; padding:9px 12px; color:#fff; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.18); border-radius:999px; font-size:.82rem; font-weight:850; }
.profile-status-pill.is-pending { color:#ffe0a6; }
.profile-insight-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
.profile-insight-grid article { min-height:104px; display:grid; place-items:center; align-content:center; padding:14px 10px; text-align:center; background:rgba(255,255,255,.9); border:1px solid var(--pd-border); border-radius:20px; box-shadow:var(--pd-shadow-sm); }
.profile-insight-grid strong { color:var(--pd-plum-dark); font-size:clamp(1.35rem,3vw,2.1rem); line-height:1; }
.profile-insight-grid span { margin-top:7px; color:var(--pd-muted); font-size:.74rem; line-height:1.25; }
@media(max-width:980px){.profile-insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.profile-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.profile-message { min-height:0; }
.profile-message:empty { display:none; }
.profile-edit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.profile-panel { display:grid; align-content:start; gap:15px; padding:clamp(20px,3vw,28px); background:rgba(255,255,255,.86); border:1px solid var(--pd-border); border-radius:26px; box-shadow:var(--pd-shadow-sm); backdrop-filter:blur(16px); }
.profile-panel .journal-field { margin:0; }
.profile-panel small { display:block; margin-top:7px; color:var(--pd-muted); font-size:.78rem; }
.profile-file-field input[type=file] { padding:12px; }
.profile-password-strength { display:grid; gap:7px; margin-top:10px; }
.profile-strength-track { height:10px; overflow:hidden; background:#f2e8f2; border-radius:999px; }
.profile-strength-track span { display:block; height:100%; background:linear-gradient(90deg,var(--pd-coral),var(--pd-gold)); border-radius:inherit; transition:width .2s var(--pd-ease); }
.profile-password-strength p { margin:0; color:var(--pd-plum); font-size:.8rem; font-weight:850; }
.profile-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.profile-actions .btn { margin:0; }
.btn.is-loading { opacity:.72; cursor:wait; }
@media(max-width:820px){.profile-hero{align-items:flex-start;flex-direction:column}.profile-hero-main{align-items:flex-start;flex-direction:column}.profile-edit-grid{grid-template-columns:1fr}.profile-actions,.profile-actions .btn{width:100%}.profile-actions .btn{justify-content:center}.profile-avatar-preview{width:96px;height:96px;flex-basis:96px;border-radius:28px}}

/* Public landing page */
.landing-page { flex:1 0 auto; display:grid; gap:22px; width:min(1180px,calc(100% - 32px)); margin:0 auto; padding:clamp(28px,6vw,74px) 0 90px; }
.landing-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(290px,.62fr); gap:clamp(22px,5vw,56px); align-items:center; padding:clamp(30px,6vw,64px); overflow:hidden; color:#fff; background:radial-gradient(circle at 88% 12%,rgba(238,120,111,.62),transparent 32%),radial-gradient(circle at 15% 90%,rgba(228,173,82,.28),transparent 30%),linear-gradient(135deg,var(--pd-plum-dark),#703874 42%,#b35677 78%,var(--pd-plum)); background-size:150% 150%,160% 160%,220% 220%; border-radius:34px; box-shadow:0 28px 80px rgba(76,38,87,.24); animation:landing-gradient-flow 10s ease-in-out infinite alternate; }
.landing-hero::before { content:""; position:absolute; inset:-28%; z-index:0; pointer-events:none; background:linear-gradient(115deg,transparent 18%,rgba(255,218,171,.22) 38%,rgba(238,120,111,.26) 52%,transparent 74%); opacity:.75; mix-blend-mode:screen; transform:translate3d(-18%,8%,0) rotate(-8deg); animation:landing-gradient-sweep 9s ease-in-out infinite alternate; }
.landing-hero::after { content:""; position:absolute; inset:-34%; z-index:0; pointer-events:none; background:radial-gradient(circle at 20% 30%,rgba(255,218,171,.24),transparent 24%),radial-gradient(circle at 76% 22%,rgba(238,120,111,.28),transparent 28%),radial-gradient(circle at 50% 88%,rgba(255,255,255,.12),transparent 22%); filter:blur(18px); opacity:.78; transform:translate3d(-2%,2%,0) rotate(0deg); animation:landing-gradient-aura 22s ease-in-out infinite alternate; }
.landing-hero-copy,.landing-phone { position:relative; z-index:1; }
.landing-brand-lockup { display:inline-flex; margin-bottom:22px; padding:10px 16px 10px 10px; align-items:center; gap:14px; color:#fff; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.18); border-radius:999px; box-shadow:0 18px 44px rgba(25,12,30,.18), inset 0 1px 0 rgba(255,255,255,.16); backdrop-filter:blur(16px); }
.landing-brand-mark { width:82px; height:82px; flex:0 0 82px; background:rgba(255,255,255,.92); box-shadow:0 12px 28px rgba(25,12,30,.22), 0 0 0 4px rgba(255,255,255,.16); }
.landing-brand-mark .brand-logo { width:76px; max-width:76px; height:76px; max-height:76px; object-fit:contain; filter:drop-shadow(0 5px 10px rgba(76,38,87,.18)); }
.landing-brand-lockup > div > strong { display:block; color:#fff; font-size:1.2rem; line-height:1; letter-spacing:.01em; }
.landing-brand-lockup > div > span { display:block; margin-top:4px; color:rgba(255,255,255,.74); font-size:.78rem; font-weight:750; }
.landing-hero .focus-kicker { color:var(--pd-gold); }
.landing-hero h1 { max-width:760px; margin:10px 0 16px; color:#fff; text-align:left; font-size:clamp(2.6rem,6vw,5.4rem); line-height:.94; }
.landing-hero-copy > p { max-width:680px; margin:0; color:rgba(255,255,255,.82); font-size:clamp(1rem,2vw,1.16rem); line-height:1.75; }
.landing-actions { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0 16px; }
.landing-actions .btn { margin:0; }
.landing-note { display:inline-flex; align-items:center; gap:8px; color:rgba(255,255,255,.72)!important; font-size:.9rem!important; }
.landing-phone { position:relative; display:grid; gap:14px; padding:18px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:30px; box-shadow:inset 0 1px 0 rgba(255,255,255,.12); backdrop-filter:blur(18px); }
.landing-phone::before { content:""; position:absolute; inset:-28px -40px auto auto; width:150px; height:150px; background:rgba(255,255,255,.12); border-radius:999px; filter:blur(2px); }
.landing-phone-card { position:relative; display:grid; gap:8px; min-height:250px; padding:28px; align-content:end; background:linear-gradient(160deg,rgba(255,255,255,.94),rgba(255,255,255,.72)); border:1px solid rgba(255,255,255,.75); border-radius:26px; box-shadow:0 20px 52px rgba(25,12,30,.22); }
.landing-phone-kicker { color:var(--pd-coral); font-size:.74rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.landing-phone-card strong { color:var(--pd-plum-dark); font-size:clamp(2.4rem,5vw,4.5rem); line-height:1; }
.landing-phone-card p { margin:0; color:var(--pd-muted); }
.landing-progress { height:10px; overflow:hidden; background:#f2e8f2; border-radius:999px; }
.landing-progress span { display:block; height:100%; background:linear-gradient(90deg,var(--pd-coral),var(--pd-gold)); border-radius:inherit; }
.landing-mini-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.landing-mini-grid article { display:grid; min-height:96px; place-items:center; align-content:center; padding:12px 8px; text-align:center; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); border-radius:20px; }
.landing-mini-grid strong { color:#fff; font-size:clamp(1.2rem,3vw,1.8rem); line-height:1; }
.landing-mini-grid span { margin-top:6px; color:rgba(255,255,255,.72); font-size:.72rem; line-height:1.2; }
.landing-features { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.landing-features article { padding:26px; background:rgba(255,255,255,.86); border:1px solid var(--pd-border); border-radius:26px; box-shadow:var(--pd-shadow-sm); }
.landing-features i { display:grid; width:54px; height:54px; margin-bottom:16px; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-plum)); border-radius:18px; font-size:1.2rem; }
.landing-features h2 { margin:0 0 8px; color:var(--pd-ink); text-align:left; font-size:1.15rem; }
.landing-features p { margin:0; color:var(--pd-muted); line-height:1.6; }
@media(max-width:900px){.landing-page{width:min(100% - 24px,1180px);padding-top:22px}.landing-hero{grid-template-columns:1fr;border-radius:28px}.landing-features{grid-template-columns:1fr}.landing-phone{max-width:520px}.landing-hero h1{text-align:left}.landing-actions,.landing-actions .btn{width:100%}.landing-actions .btn{justify-content:center}}
@media(max-width:520px){.landing-hero{padding:26px 18px}.landing-mini-grid{grid-template-columns:1fr}.landing-phone-card{min-height:210px;padding:22px}}
@keyframes landing-gradient-flow { 0% { background-position:0% 18%,100% 0%,0% 50%; } 45% { background-position:78% 34%,20% 72%,82% 42%; } 100% { background-position:100% 82%,0% 100%,25% 70%; } }
@keyframes landing-gradient-sweep { 0% { transform:translate3d(-22%,8%,0) rotate(-10deg); opacity:.42; } 50% { transform:translate3d(8%,-4%,0) rotate(7deg); opacity:.86; } 100% { transform:translate3d(22%,6%,0) rotate(12deg); opacity:.5; } }
@keyframes landing-gradient-aura { 0% { transform:translate3d(-4%,3%,0) rotate(-4deg) scale(1); opacity:.58; } 50% { transform:translate3d(4%,-2%,0) rotate(5deg) scale(1.06); opacity:.84; } 100% { transform:translate3d(1%,4%,0) rotate(-2deg) scale(1.02); opacity:.66; } }
@media (prefers-reduced-motion: reduce) { .landing-hero,.landing-hero::before,.landing-hero::after,.landing-brand-mark,.landing-brand-mark .brand-orbit,.landing-brand-mark::after { animation:none; } }
/* Figure submissions */
.figure-submission-badge { color:#6f3b78; background:#f6e9f8; border:1px solid rgba(111,59,120,.14); }
.figure-submission-badge.is-rejected { color:#9d2f45; background:#ffe8ed; border-color:rgba(216,101,120,.24); }
.submission-status-badge { display:inline-flex; width:max-content; padding:5px 9px; align-items:center; color:#6f3b78; background:#f6e9f8; border:1px solid rgba(111,59,120,.14); border-radius:999px; font-size:.7rem; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.submission-status-badge.is-rejected { color:#9d2f45; background:#ffe8ed; border-color:rgba(216,101,120,.24); }
.admin-figure-submitter { display:flex; margin:-4px 0 0!important; align-items:center; gap:7px; color:var(--pd-plum-dark)!important; font-size:.82rem; font-weight:750; }
.admin-figure-review-actions { display:flex; width:100%; flex-wrap:wrap; gap:10px; }
.admin-figure-review-actions form { margin:0; }
.admin-figure-review-actions .btn { margin:0; }
.figure-submission-notice { margin:0 0 18px; }
@media(max-width:640px){.admin-figure-review-actions,.admin-figure-review-actions form,.admin-figure-review-actions .btn{width:100%;}.admin-figure-review-actions .btn{justify-content:center;}}
/* Combination sharing */
.combination-card-top { flex-wrap:wrap; justify-content:flex-start; gap:8px; }
.combination-visibility-pill { color:var(--pd-plum); background:#f5e8f7; }
.combination-share-owner { color:#80551c; background:#fff0d8; }
.combination-card-shared { border-color:rgba(111,59,120,.22); background:linear-gradient(145deg,#fff,#fcf8fc); }
.combination-review-meta { display:inline-flex; align-items:center; gap:7px; color:var(--pd-muted)!important; font-size:.86rem; }
.combination-review-meta i { color:var(--pd-gold); }
.combination-share-modal-body { display:grid; gap:18px; }
.combination-share-panel { display:grid; gap:12px; padding:16px; background:linear-gradient(145deg,#fff,#fbf7fb); border:1px solid var(--pd-border); border-radius:18px; }
.combination-share-panel[hidden] { display:none!important; }
.combination-share-panel-title,.combination-public-link > div:first-child { display:grid; gap:3px; }
.combination-share-panel-title strong,.combination-public-link strong { color:var(--pd-ink); }
.combination-share-panel-title span,.combination-public-link span { color:var(--pd-muted); font-size:.86rem; }
.combination-share-friends { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
.combination-share-friend { display:flex; min-height:46px; padding:10px 12px; align-items:center; gap:10px; color:var(--pd-ink); background:#fff; border:1px solid var(--pd-border); border-radius:14px; font-weight:750; cursor:pointer; }
.combination-share-friend input { width:18px; height:18px; accent-color:var(--pd-plum); }
.combination-share-empty { margin:0; color:var(--pd-muted); }
.combination-public-link .invitation-copy-row { align-items:stretch; }
.combination-public-link .btn { margin:0; }
.shared-combination-page { display:grid; gap:24px; padding-bottom:80px; }
.shared-combination-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.25fr); gap:24px; padding:clamp(28px,5vw,56px); align-items:center; color:#fff; background:radial-gradient(circle at 88% 8%,rgba(255,255,255,.18),transparent 32%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum),var(--pd-coral)); border-radius:var(--pd-radius-lg); box-shadow:0 24px 60px rgba(76,38,87,.24); }
.shared-combination-hero h1 { margin:8px 0 12px; color:#fff; text-align:left; font-size:clamp(2.4rem,5vw,4.8rem); line-height:.98; }
.shared-combination-hero p { max-width:680px; margin:0; color:rgba(255,255,255,.78); }
.shared-combination-hero .focus-kicker { color:var(--pd-gold); }
.shared-combination-score { display:grid; min-height:168px; place-items:center; align-content:center; text-align:center; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.2); border-radius:28px; }
.shared-combination-score strong { color:#fff; font-size:clamp(2.8rem,6vw,4.8rem); line-height:1; }
.shared-combination-score span { color:rgba(255,255,255,.8); font-weight:800; }
.shared-combination-score small { margin-top:6px; color:rgba(255,255,255,.68); }
.shared-combination-sequence,.shared-review-panel,.shared-review-list,.shared-combination-empty { padding:clamp(22px,4vw,34px); background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:var(--pd-radius); box-shadow:var(--pd-shadow-sm); }
.shared-combination-empty { display:grid; min-height:420px; place-items:center; align-content:center; gap:12px; text-align:center; }
.shared-combination-empty i { color:var(--pd-coral); font-size:2.4rem; }
.shared-combination-empty h1 { max-width:720px; margin:0; }
.shared-sequence-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; counter-reset:shared-sequence; }
.shared-sequence-list li { display:flex; padding:16px; align-items:center; gap:14px; background:linear-gradient(145deg,#fff,#fbf8fb); border:1px solid var(--pd-border); border-radius:18px; }
.shared-sequence-index { display:grid; width:42px; height:42px; flex:0 0 auto; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-plum),var(--pd-coral)); border-radius:14px; font-weight:900; }
.shared-sequence-list strong { display:block; color:var(--pd-ink); font-size:1.04rem; }
.shared-sequence-list span span,.shared-sequence-list li div > span { color:var(--pd-muted); font-size:.86rem; }
.shared-review-panel { display:grid; grid-template-columns:minmax(220px,.42fr) minmax(0,1fr); gap:24px; align-items:start; }
.shared-review-panel h2 { margin:6px 0 8px; text-align:left; }
.shared-review-panel p { margin:0; }
.shared-review-form { display:grid; gap:14px; }
.shared-review-form .btn { justify-self:start; margin:0; }
.shared-review-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:14px; }
.shared-review-card { display:grid; gap:10px; padding:18px; background:#fff; border:1px solid var(--pd-border); border-radius:18px; box-shadow:var(--pd-shadow-sm); }
.shared-review-card > div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.shared-review-card strong { color:var(--pd-ink); overflow-wrap:anywhere; }
.shared-review-card p { margin:0; color:var(--pd-muted); line-height:1.55; overflow-wrap:anywhere; }
.shared-review-card time { color:var(--pd-muted); font-size:.78rem; }
.shared-stars { display:inline-flex; gap:2px; color:var(--pd-gold); font-size:.85rem; }
.shared-star-empty { color:#d8ccd9; }
@media(max-width:760px){.shared-combination-hero,.shared-review-panel{grid-template-columns:1fr}.shared-combination-hero h1{text-align:left}.shared-combination-score{min-height:130px}.shared-review-form .btn,.combination-public-link .invitation-copy-row .btn{width:100%;justify-content:center}.combination-public-link .invitation-copy-row{flex-direction:column}.combination-share-friends{grid-template-columns:1fr}}

/* Notifications and product-suite polish */
.nav-notifications { position:relative; display:inline-flex!important; align-items:center; gap:7px; }
.nav-notifications strong { display:grid; min-width:18px; height:18px; padding:0 5px; place-items:center; color:#fff; background:var(--pd-coral); border-radius:999px; font-size:.68rem; line-height:1; }
.notifications-page { display:grid; gap:22px; padding-bottom:80px; }
.notifications-hero { display:flex; padding:clamp(28px,5vw,52px); align-items:center; justify-content:space-between; gap:26px; color:#fff; background:radial-gradient(circle at 90% 10%,rgba(238,120,111,.5),transparent 34%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum)); border-radius:var(--pd-radius-lg); box-shadow:var(--pd-shadow); }
.notifications-hero h1,.notifications-hero p { color:#fff; text-align:left; }
.notifications-hero h1 { margin:8px 0 10px; }
.notifications-hero p { margin:0; color:rgba(255,255,255,.78); }
.notifications-hero article { display:grid; min-width:150px; min-height:120px; place-items:center; align-content:center; text-align:center; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.18); border-radius:24px; }
.notifications-hero strong { color:#fff; font-size:2.8rem; line-height:1; }
.notifications-hero span { color:rgba(255,255,255,.75); }
.notifications-list { display:grid; gap:12px; }
.notification-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; padding:18px; align-items:center; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:20px; box-shadow:var(--pd-shadow-sm); }
.notification-card.is-unread { border-color:rgba(216,101,120,.35); box-shadow:0 14px 35px rgba(216,101,120,.13); }
.notification-icon { display:grid; width:42px; height:42px; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-plum),var(--pd-coral)); border-radius:14px; }
.notification-card strong { color:var(--pd-ink); }
.notification-card p { margin:4px 0; color:var(--pd-muted); }
.notification-card time { color:var(--pd-muted); font-size:.78rem; }
.notification-card .btn { margin:0; white-space:nowrap; }
.combination-product-fields { display:grid; grid-template-columns:minmax(150px,.35fr) minmax(0,1fr); gap:12px; }
.combination-product-meta { margin:-4px 0 0!important; color:var(--pd-muted)!important; font-size:.82rem!important; }
.combination-status-pill { color:#80551c; background:#fff0d8; }
.admin-review-table-card { padding:18px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:var(--pd-radius); box-shadow:var(--pd-shadow-sm); }
.admin-review-table-card table { min-width:920px; margin:0; }
.admin-review-table-card td p { max-width:460px; margin:4px 0; color:var(--pd-muted); overflow-wrap:anywhere; }
.admin-review-action-form { display:grid; min-width:220px; gap:8px; }
.admin-review-action-form input { width:100%; padding:8px 10px; border:1px solid var(--pd-border); border-radius:12px; }
.admin-review-action-form .btn { margin:0; }
@media(max-width:760px){.notifications-hero{align-items:flex-start;flex-direction:column}.notifications-hero article{width:100%;min-height:95px}.notification-card{grid-template-columns:auto minmax(0,1fr)}.notification-card .btn{grid-column:1/-1;width:100%;justify-content:center}.combination-product-fields{grid-template-columns:1fr}}
/* Discovery, notifications and product follow-up polish */
.discover-page,
.admin-overview-page { display:grid; gap:24px; padding-bottom:90px; }
.discover-hero,
.admin-overview-hero { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:clamp(30px,5vw,56px); color:#fff; background:radial-gradient(circle at 86% 14%,rgba(245,184,74,.24),transparent 30%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum),var(--pd-coral)); border-radius:30px; box-shadow:0 26px 70px rgba(76,38,87,.24); }
.discover-hero h1,
.admin-overview-hero h1 { margin:8px 0 12px; color:#fff; text-align:left; }
.discover-hero p,
.admin-overview-hero p { max-width:740px; margin:0; color:rgba(255,255,255,.82); }
.discover-hero article { min-width:190px; display:grid; place-items:center; padding:22px; text-align:center; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.18); border-radius:24px; }
.discover-hero article strong { color:#fff; font-size:clamp(2rem,5vw,3.6rem); line-height:1; }
.discover-toolbar,
.notifications-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto; gap:14px; align-items:end; padding:18px; background:rgba(255,255,255,.92); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.notifications-toolbar { grid-template-columns:minmax(0,1fr) auto; }
.discover-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.discover-card { display:grid; gap:14px; padding:22px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.discover-card-top,
.discover-actions { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.discover-card h2 { margin:0; color:var(--pd-ink); font-size:1.45rem; text-align:left; }
.discover-meta,
.discover-tags { display:flex; flex-wrap:wrap; gap:8px; }
.discover-meta span,
.discover-tags span { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; color:var(--pd-muted); background:rgba(84,35,95,.07); border-radius:999px; font-size:.82rem; }
.discover-tags span { color:var(--pd-plum); background:rgba(84,35,95,.1); font-weight:800; }
.discover-rating { color:var(--pd-plum); font-weight:900; }
.discover-rating i { color:var(--pd-coral); }
.discover-rating-muted { color:var(--pd-muted); font-size:.88rem; }
.discover-actions form { margin:0; }
.notification-card-body { min-width:0; }
.notification-actions { display:flex; gap:8px; align-items:center; justify-content:flex-end; flex-wrap:wrap; }
.notification-actions form { margin:0; }
.notification-card.is-archived { opacity:.72; }
.dashboard-suggested-session { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.7fr) auto; gap:18px; align-items:center; padding:22px; margin:8px 0 20px; background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(253,246,240,.92)); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.dashboard-suggested-session h2 { margin:4px 0 8px; color:var(--pd-ink); text-align:left; }
.dashboard-suggested-session p { margin:0; color:var(--pd-muted); }
.dashboard-suggested-session ul { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.dashboard-suggested-session li { display:flex; justify-content:space-between; gap:10px; padding:10px 12px; background:rgba(84,35,95,.06); border-radius:16px; }
.dashboard-suggested-session li strong { color:var(--pd-ink); }
.dashboard-suggested-session li span { color:var(--pd-muted); font-size:.82rem; }
.admin-overview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:14px; }
.admin-overview-grid article { min-height:120px; display:grid; place-items:center; align-content:center; padding:18px; text-align:center; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); }
.admin-overview-grid article.needs-action { border-color:rgba(238,111,103,.55); box-shadow:0 18px 48px rgba(238,111,103,.16); }
.admin-overview-grid strong { color:var(--pd-plum); font-size:clamp(1.8rem,4vw,3rem); line-height:1; }
.admin-overview-grid span { margin-top:8px; color:var(--pd-muted); }
.admin-overview-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.admin-action-card { display:grid; gap:8px; padding:20px; color:var(--pd-ink); text-decoration:none; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:22px; box-shadow:var(--pd-shadow-sm); transition:transform .18s ease, box-shadow .18s ease; }
.admin-action-card:hover { color:var(--pd-ink); transform:translateY(-3px); box-shadow:var(--pd-shadow); }
.admin-action-card i { width:44px; height:44px; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--pd-plum),var(--pd-coral)); border-radius:16px; }
.admin-action-card span { color:var(--pd-muted); }
.admin-recent-panel { display:grid; gap:14px; padding:22px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.admin-recent-list { display:grid; gap:10px; }
.admin-recent-list article { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 14px; background:rgba(84,35,95,.06); border-radius:16px; }
.admin-recent-list article span { color:var(--pd-muted); font-size:.84rem; }
.profile-insight-grid { grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); }
.friend-profile-insights { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
@media(max-width:900px){.discover-hero,.admin-overview-hero{align-items:stretch;flex-direction:column}.discover-toolbar,.notifications-toolbar,.dashboard-suggested-session{grid-template-columns:1fr}.dashboard-suggested-session .btn{width:100%}}
@media(max-width:560px){.discover-page,.admin-overview-page{width:min(100% - 22px,1180px)}.discover-actions .btn,.discover-actions form{width:100%}.discover-actions button{width:100%}.admin-recent-list article{align-items:flex-start;flex-direction:column}}
.shared-copy-form { margin-top:12px; }
.shared-copy-form .btn { width:100%; justify-content:center; }

/* Hybrid IA coach */
.coach-page { display:grid; gap:24px; padding-bottom:90px; }
.coach-hero { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:clamp(30px,5vw,58px); color:#fff; background:radial-gradient(circle at 86% 16%,rgba(245,184,74,.22),transparent 32%),linear-gradient(135deg,var(--pd-plum-dark),var(--pd-plum),var(--pd-coral)); border-radius:30px; box-shadow:0 26px 70px rgba(76,38,87,.24); }
.coach-hero h1 { margin:8px 0 12px; color:#fff; text-align:left; }
.coach-hero p { max-width:780px; margin:0; color:rgba(255,255,255,.84); }
.coach-ai-status { min-width:240px; display:grid; gap:8px; justify-items:center; padding:22px; text-align:center; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.2); border-radius:24px; }
.coach-ai-status i { width:48px; height:48px; display:grid; place-items:center; color:var(--pd-plum); background:#fff; border-radius:18px; }
.coach-ai-status strong { color:#fff; }
.coach-ai-status span { color:rgba(255,255,255,.72); font-size:.84rem; }
.coach-ai-status.is-used i { color:#fff; background:linear-gradient(135deg,var(--pd-coral),var(--pd-gold)); }
.coach-form { display:grid; grid-template-columns:minmax(180px,1fr) minmax(130px,.45fr) minmax(160px,.55fr); gap:14px; align-items:end; padding:20px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:26px; box-shadow:var(--pd-shadow-sm); }
.coach-category-field { grid-column:1/-1; margin:0; padding:14px; border:1px solid var(--pd-border); border-radius:18px; }
.coach-category-field legend { width:auto; margin:0 0 8px; padding:0 6px; color:var(--pd-plum); font-size:.78rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.coach-category-field div,
.coach-toggles { display:flex; flex-wrap:wrap; gap:10px 16px; }
.coach-category-field label,
.coach-toggles label { display:inline-flex; gap:7px; align-items:center; color:var(--pd-muted); font-weight:800; }
.coach-toggles { grid-column:1/-1; padding:4px 2px; }
.coach-suggestion-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; }
.coach-card { display:grid; gap:14px; padding:22px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:26px; box-shadow:var(--pd-shadow-sm); }
.coach-card-top { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.coach-card-top strong { display:grid; place-items:center; min-width:58px; height:44px; color:#fff; background:linear-gradient(135deg,var(--pd-plum),var(--pd-coral)); border-radius:16px; }
.coach-card h2 { margin:0; color:var(--pd-ink); text-align:left; }
.coach-card p { margin:0; color:var(--pd-muted); }
.coach-tips { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.coach-tips li { padding:10px 12px; color:var(--pd-plum); background:rgba(84,35,95,.08); border-radius:14px; font-weight:800; }
.coach-sequence { display:grid; gap:8px; margin:0; padding:0; list-style:none; counter-reset:coach-step; }
.coach-sequence li { counter-increment:coach-step; display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:center; padding:10px 12px; background:rgba(250,247,243,.86); border:1px solid rgba(84,35,95,.08); border-radius:16px; }
.coach-sequence li::before { content:counter(coach-step); width:30px; height:30px; display:grid; place-items:center; color:#fff; background:var(--pd-plum); border-radius:12px; font-weight:900; }
.coach-sequence span { color:var(--pd-ink); font-weight:900; }
.coach-sequence small { color:var(--pd-muted); }
.coach-card form { margin:0; }
.coach-card form .btn { width:100%; justify-content:center; }

.coach-session-plan { padding:12px 14px; background:rgba(84,35,95,.06); border-radius:16px; }
.coach-session-plan summary { cursor:pointer; color:var(--pd-plum); font-weight:900; }
.coach-session-plan ul { display:grid; gap:8px; margin:12px 0 0; padding:0; list-style:none; }
.coach-session-plan li { display:grid; gap:3px; }
.coach-session-plan li strong { color:var(--pd-ink); font-size:.82rem; }
.coach-session-plan li span { color:var(--pd-muted); line-height:1.45; }
.coach-card-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.coach-card-actions form { margin:0; }
.coach-card-actions .btn { width:100%; justify-content:center; }
.coach-feedback-actions { display:flex; flex-wrap:wrap; gap:8px; }
.coach-feedback-button { display:inline-flex; gap:6px; align-items:center; justify-content:center; padding:8px 10px; color:var(--pd-muted); background:rgba(84,35,95,.07); border:1px solid rgba(84,35,95,.12); border-radius:999px; font-weight:800; transition:transform .16s ease, background .16s ease, color .16s ease; }
.coach-feedback-button:hover { color:var(--pd-plum); transform:translateY(-1px); }
.coach-feedback-button.is-selected { color:#fff; background:linear-gradient(135deg,var(--pd-plum),var(--pd-coral)); }
@media(max-width:560px){.coach-card-actions{grid-template-columns:1fr}.coach-feedback-actions{display:grid;grid-template-columns:1fr 1fr}.coach-feedback-button{width:100%}}
.coach-blocked-panel { display:grid; gap:14px; padding:22px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.coach-blocked-list { display:grid; gap:10px; }
.coach-blocked-list article { display:grid; gap:4px; padding:12px 14px; background:rgba(84,35,95,.06); border-radius:16px; }
.coach-blocked-list strong { color:var(--pd-ink); }
.coach-blocked-list span { color:var(--pd-muted); }
@media(max-width:900px){.coach-hero{align-items:stretch;flex-direction:column}.coach-ai-status{min-width:0}.coach-form{grid-template-columns:1fr}.coach-form .btn{width:100%}}
@media(max-width:560px){.coach-page{width:min(100% - 22px,1180px)}.coach-category-field div,.coach-toggles{display:grid;grid-template-columns:1fr}}

.coach-results { display:grid; gap:18px; }
.coach-feedback:empty { display:none; }
.coach-cache-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; padding:12px 14px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:18px; box-shadow:var(--pd-shadow-sm); }
.coach-cache-toolbar span { display:inline-flex; gap:8px; align-items:center; color:var(--pd-muted); font-weight:800; }
.coach-cache-toolbar i { color:var(--pd-plum); }
.coach-cache-toolbar .btn { min-height:40px; }
.coach-loading-card { min-height:260px; display:grid; place-items:center; align-content:center; gap:14px; padding:34px; text-align:center; background:rgba(255,255,255,.94); border:1px dashed rgba(84,35,95,.22); border-radius:26px; box-shadow:var(--pd-shadow-sm); }
.coach-loading-card h2 { margin:0; color:var(--pd-ink); }
.coach-loading-card p { max-width:520px; margin:0 auto; color:var(--pd-muted); }
.coach-spinner { width:54px; height:54px; border:5px solid rgba(84,35,95,.12); border-top-color:var(--pd-plum); border-right-color:var(--pd-coral); border-radius:999px; animation:coachSpin .8s linear infinite; }
.coach-ai-status.is-loading i { animation:coachPulse 1.1s ease-in-out infinite; }
.coach-ai-status.is-loading i::before { content:'\f110'; font-family:'Font Awesome 6 Free'; font-weight:900; animation:coachSpin 1s linear infinite; }
.coach-ai-status.is-ready i { color:#fff; background:linear-gradient(135deg,var(--pd-plum),var(--pd-coral)); }
.coach-ai-status.is-fallback i,.coach-ai-status.is-offline i { color:var(--pd-plum); background:rgba(255,255,255,.92); }
.coach-ai-status.is-error i { color:#fff; background:var(--pd-danger,#d95365); }
.coach-form > .btn { grid-column:1/-1; justify-content:center; min-height:52px; }
@keyframes coachSpin { to { transform:rotate(360deg); } }
@keyframes coachPulse { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.04); } }

/* Admin debug */
.admin-debug-page { display:grid; gap:22px; padding-bottom:90px; }
.admin-debug-filters { display:grid; grid-template-columns:minmax(160px,.35fr) minmax(180px,.45fr) auto; gap:14px; align-items:end; padding:18px; background:rgba(255,255,255,.94); border:1px solid var(--pd-border); border-radius:24px; box-shadow:var(--pd-shadow-sm); }
.admin-debug-list { display:grid; gap:14px; }
.admin-debug-event { display:grid; gap:12px; padding:18px; background:rgba(255,255,255,.95); border:1px solid var(--pd-border); border-left:6px solid var(--pd-plum); border-radius:22px; box-shadow:var(--pd-shadow-sm); }
.admin-debug-event.is-warning { border-left-color:var(--pd-gold); }
.admin-debug-event.is-error { border-left-color:var(--pd-danger,#d95365); }
.admin-debug-event-head { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; justify-content:space-between; }
.admin-debug-event-head strong { color:var(--pd-ink); }
.admin-debug-event-head time { color:var(--pd-muted); font-size:.88rem; }
.debug-level { padding:6px 10px; color:#fff; background:var(--pd-plum); border-radius:999px; font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.admin-debug-event.is-warning .debug-level { background:var(--pd-gold); color:var(--pd-ink); }
.admin-debug-event.is-error .debug-level { background:var(--pd-danger,#d95365); }
.admin-debug-event p { margin:0; color:var(--pd-muted); }
.admin-debug-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; }
.admin-debug-meta div { min-width:0; padding:10px 12px; background:rgba(84,35,95,.06); border-radius:14px; }
.admin-debug-meta dt { color:var(--pd-plum); font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.admin-debug-meta dd { margin:4px 0 0; overflow:hidden; color:var(--pd-ink); text-overflow:ellipsis; white-space:nowrap; }
.admin-debug-context summary { cursor:pointer; color:var(--pd-plum); font-weight:900; }
.admin-debug-context pre { max-height:360px; overflow:auto; margin:10px 0 0; padding:14px; color:#f8f4fb; background:#26172d; border-radius:16px; font-size:.86rem; white-space:pre-wrap; }
@media(max-width:760px){.admin-debug-filters,.admin-debug-meta{grid-template-columns:1fr}.admin-debug-filters .btn{width:100%;justify-content:center}}
