/* ── Additions CSS patch3 — à inclure après auth.css ── */

/* Storage bar (utilisé dans admin + vendor) */
.storage-bar-wrap {
    display:flex; align-items:center; gap:12px; font-size:13px;
}
.storage-bar {
    flex:1; height:8px; background:var(--bg-input); border-radius:4px; overflow:hidden;
}
.storage-bar__fill {
    height:100%; background:var(--green); border-radius:4px; transition:width .4s;
}
.storage-bar__fill.warn { background:var(--orange); }
.storage-bar__fill.full { background:var(--red); }

/* Stat box (admin dashboard) */
.stats-grid {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px;
    margin-bottom:28px;
}
.stat-box {
    background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg);
    padding:18px; text-align:center;
}
.stat-box--alert { border-color:rgba(232,133,58,.4); }
.stat-box__num   { font-size:28px; font-weight:700; color:var(--accent); }
.stat-box__label { font-size:12px; color:var(--text-muted); margin-top:4px;
    display:flex; align-items:center; justify-content:center; gap:5px; }

/* Detail-grid (admin) */
.detail-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:0;
}
.detail-field {
    padding:10px 0; border-bottom:1px solid var(--border);
    font-size:14px; display:flex; flex-direction:column; gap:3px; padding-right:16px;
}
.detail-field span  { color:var(--text-muted); font-size:11px; text-transform:uppercase; letter-spacing:.5px; }
.detail-field strong { color:var(--text); }

/* Data table */
.data-table { width:100%; border-collapse:collapse; font-size:14px; }
.data-table th {
    text-align:left; padding:12px 16px; color:var(--text-muted);
    font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px;
    border-bottom:1px solid var(--border); background:rgba(0,0,0,.15);
}
.data-table td { padding:12px 16px; border-bottom:1px solid rgba(255,255,255,.04); vertical-align:middle; }
.data-table tr:last-child td { border-bottom:none; }
.data-table tr:hover td { background:rgba(255,255,255,.03); }

/* Profile grid */
.profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.profile-field {
    display:flex; justify-content:space-between; align-items:center;
    padding:11px 0; border-bottom:1px solid var(--border); font-size:14px;
}
.profile-field:last-child { border-bottom:none; }
.profile-field__label { color:var(--text-muted); }
.profile-field__value  { font-weight:500; }

/* Security items */
.security-item {
    display:flex; align-items:center; justify-content:space-between;
    padding:13px 0; border-bottom:1px solid var(--border); gap:12px;
}
.security-item:last-child { border-bottom:none; }
.security-item__info { display:flex; flex-direction:column; gap:4px; font-size:14px; }
.security-item__info strong { color:var(--text); }
.security-item__info span   { color:var(--text-muted); font-size:12px; }

/* Page 404 */
.page-404 {
    min-height:100vh; display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:16px; text-align:center;
}
.page-404 h1 { font-size:80px; margin:0; color:var(--accent); }
.page-404 p  { color:var(--text-muted); }

/* Catalog grid (vendor list) */
.catalog-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:80px;
}
.catalog-card {
    background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg);
    overflow:hidden; transition:all var(--transition); display:flex; flex-direction:column;
}
.catalog-card:hover { border-color:var(--accent); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.catalog-card--inactive { opacity:.55; }
.catalog-card__thumb {
    position:relative; width:100%; aspect-ratio:3/4; background:var(--bg-input); overflow:hidden;
}
.catalog-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.thumb-placeholder {
    width:100%; height:100%; display:flex; align-items:center; justify-content:center;
}
.thumb-placeholder i  { font-size:40px; color:var(--text-muted); }
.thumb-lock {
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    background:rgba(0,0,0,.3); font-size:28px; color:rgba(255,255,255,.8);
}
.thumb-badge {
    position:absolute; top:8px; left:8px;
    background:rgba(0,0,0,.7); color:#fff; font-size:11px; font-weight:700;
    padding:2px 8px; border-radius:20px;
}
.catalog-card__body    { padding:12px 14px; flex:1; }
.catalog-card__title   { font-weight:700; font-size:14px; margin-bottom:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.catalog-card__meta    { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:8px; }
.catalog-card__price   { font-size:16px; font-weight:700; color:var(--accent); }
.catalog-card__actions { padding:10px 14px; border-top:1px solid var(--border); display:flex; gap:8px; }

/* Cat filter */
.cat-filter { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.cat-pill {
    padding:5px 14px; border-radius:20px; font-size:13px;
    border:1px solid var(--border); color:var(--text-muted); transition:all var(--transition);
    text-decoration:none; display:inline-block;
}
.cat-pill:hover, .cat-pill.active { background:var(--accent); color:#1a1a2e; border-color:var(--accent); }

/* Storage footer */
.storage-footer {
    display:flex; align-items:center; gap:12px; padding:12px 0; font-size:13px;
    color:var(--text-muted); border-top:1px solid var(--border); margin-top:24px;
}

/* Empty state */
.empty-state { text-align:center; padding:60px 20px; color:var(--text-muted); }
.empty-state i { font-size:48px; margin-bottom:16px; display:block; }
.empty-state p { margin-bottom:20px; }

/* Subscription section */
.subscription-section { max-width:994px; margin:0 auto; padding:0 5px; }
.sub-title { font-size:18px; margin-bottom:16px; display:flex; align-items:center; gap:8px; }
.sub-plans-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; }
.sub-plan-card {
    background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg);
    padding:20px; text-align:center; transition:all var(--transition);
}
.sub-plan-card:hover { border-color:var(--accent); }
.sub-plan-name     { font-weight:700; font-size:16px; margin-bottom:6px; }
.sub-plan-cat      { font-size:12px; color:var(--text-muted); margin-bottom:12px; }
.sub-plan-price    { font-size:28px; font-weight:700; color:var(--accent); }
.sub-plan-duration { font-size:13px; color:var(--text-muted); margin-top:4px; }

/* Post overlays (galerie publique) */
.post-overlay-lock {
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    background:rgba(0,0,0,.25); font-size:32px; color:rgba(255,255,255,.7);
    pointer-events:none;
}
.post-badge {
    position:absolute; bottom:8px; left:8px; background:rgba(0,0,0,.7); color:#fff;
    width:26px; height:26px; border-radius:50%; display:flex; align-items:center;
    justify-content:center; font-size:11px;
}
.post-price {
    position:absolute; bottom:8px; right:8px; background:var(--accent); color:#1a1a2e;
    font-size:11px; font-weight:700; padding:2px 8px; border-radius:20px;
}
.post-placeholder {
    width:100%; min-height:200px; display:flex; align-items:center; justify-content:center;
    background:var(--bg-input);
}
.post-placeholder i { font-size:40px; color:var(--text-muted); }

/* Shop cart */
.post-action-btn {
    position:absolute; bottom:0; left:0; right:0; background:rgba(0,0,0,.75); color:#fff;
    text-align:center; padding:8px; font-size:13px; font-weight:600;
    opacity:0; transition:opacity var(--transition); display:flex; align-items:center;
    justify-content:center; gap:6px;
}
.post:hover .post-action-btn { opacity:1; }

/* Form row */
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* Responsive */
@media(max-width:768px){
    .profile-grid  { grid-template-columns:1fr; }
    .detail-grid   { grid-template-columns:1fr; }
    .form-row      { grid-template-columns:1fr; }
    .catalog-grid  { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:480px){
    .catalog-grid  { grid-template-columns:repeat(2,1fr); gap:8px; }
}
