:root{--bg:#080812;--card:#121225;--border:#24243a;--accent:#38bdf8;--accent2:#a855f7;--text:#f8fafc;--muted:#94a3b8}
html{height:100%}
body{min-height:100%;display:flex;flex-direction:column;background:radial-gradient(circle at top left,rgba(56,189,248,.18),transparent 35%),radial-gradient(circle at top right,rgba(168,85,247,.16),transparent 30%),var(--bg);color:var(--text)}
.site-main{flex:1 0 auto;width:100%}
.site-footer{flex-shrink:0;margin-top:auto}
.navbar,.ofg-card{background:rgba(18,18,37,.88);border:1px solid var(--border);backdrop-filter:blur(12px)}
.ofg-card{border-radius:20px;padding:24px}
a{color:var(--accent)}
.btn-ofg{background:linear-gradient(135deg,var(--accent),var(--accent2));border:0;color:#fff;font-weight:700}
.btn-ofg:hover{opacity:.9;color:#fff}
.profile-img{height:260px;object-fit:cover;border-radius:16px}
.verify-img{max-height:360px;object-fit:contain;background:#060610;border-radius:14px;border:1px solid var(--border)}
.badge-vip{background:linear-gradient(135deg,#f59e0b,#ef4444)}
.badge-verified{background:linear-gradient(135deg,#22c55e,#06b6d4)}
.form-control,.form-select{background:#0f1020!important;border-color:#2b2b45!important;color:#fff!important}
.form-control:focus,.form-select:focus{border-color:var(--accent)!important;box-shadow:none!important}
.input-group .btn-password{background:#17172a;border-color:#2b2b45;color:#fff;min-width:52px}
.text-muted,small{color:var(--muted)!important}
.table{--bs-table-bg:transparent;--bs-table-color:#fff;--bs-table-border-color:#2b2b45}
.banner-slot img{max-width:100%;border-radius:18px;border:1px solid var(--border)}
.legal-content{white-space:pre-wrap;line-height:1.7}
.footer-links a{margin:0 8px;white-space:nowrap}
.notice-unread{border-left:4px solid var(--accent)}

.profile-cover{height:320px;object-fit:cover;object-position:center;border-radius:20px;border:1px solid var(--border)}
.single-gallery-img{height:420px;object-fit:cover;object-position:center;border-radius:18px;border:1px solid var(--border);cursor:pointer}
.gallery-thumb{height:120px;object-fit:cover;object-position:center;border-radius:14px;border:1px solid var(--border);cursor:pointer;opacity:.8}
.gallery-thumb:hover{opacity:1}
.profile-single-hero{background:linear-gradient(135deg,rgba(56,189,248,.12),rgba(168,85,247,.10));border:1px solid var(--border);border-radius:24px;padding:28px}
.seo-page-pill{display:inline-block;padding:8px 12px;border:1px solid var(--border);border-radius:999px;margin:4px;background:#101020}

.profile-img{height:340px!important;object-fit:cover;object-position:center top}
.profile-cover{height:520px!important;object-fit:cover;object-position:center top}
.single-gallery-img{height:190px!important;object-fit:cover;object-position:center top;border-radius:18px;border:1px solid var(--border);cursor:pointer}
.gallery-grid-img{height:210px;object-fit:cover;object-position:center top;border-radius:18px;border:1px solid var(--border);cursor:pointer;transition:.2s}
.gallery-grid-img:hover{transform:scale(1.02);opacity:.9}
.preview-box{position:relative;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#090914}
.preview-box img{width:100%;height:180px;object-fit:cover;object-position:center top}
.preview-remove{position:absolute;top:8px;right:8px;border:0;border-radius:999px;background:rgba(0,0,0,.75);color:#fff;width:34px;height:34px}
.stats-pill{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--border);border-radius:999px;padding:8px 14px;background:#101020;color:#fff;margin-right:8px;margin-bottom:8px}
.platform-btn{display:inline-flex;align-items:center;justify-content:center;margin:6px 6px 0 0}
.modal-gallery-img{max-height:78vh;object-fit:contain}

.preview-primary{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.72);color:#fff;padding:6px 10px;border-radius:999px;font-size:13px}
.gallery-nav-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;border:0;background:rgba(0,0,0,.55);color:#fff;width:48px;height:48px;border-radius:999px;font-size:28px}
.gallery-nav-prev{left:16px}
.gallery-nav-next{right:16px}
.gallery-modal-body{position:relative}
.gallery-counter{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.65);padding:6px 14px;border-radius:999px;color:#fff}

.creator-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.creator-gallery a{display:block;position:relative;overflow:hidden;border-radius:22px;border:1px solid var(--border);background:#090914}
.creator-gallery img{width:100%;height:280px;object-fit:cover;object-position:center top;transition:transform .35s ease, opacity .35s ease}
.creator-gallery a:hover img{transform:scale(1.06);opacity:.9}
.creator-gallery a::after{content:'Προβολή';position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.62);color:#fff;border-radius:999px;padding:6px 12px;font-size:13px;opacity:0;transition:.25s}
.creator-gallery a:hover::after{opacity:1}
@media(max-width:768px){.creator-gallery{grid-template-columns:1fr 1fr}.creator-gallery img{height:230px}}
@media(max-width:480px){.creator-gallery{grid-template-columns:1fr}.creator-gallery img{height:320px}}
#baguetteBox-overlay .full-image img{border-radius:12px}
#baguetteBox-overlay .baguetteBox-button{background-color:rgba(0,0,0,.55)!important}

/* v13 custom gallery */
.creator-gallery{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:16px!important;
}
.creator-gallery-item{
    display:block!important;
    position:relative!important;
    overflow:hidden!important;
    border-radius:22px!important;
    border:1px solid var(--border)!important;
    background:#090914!important;
    text-decoration:none!important;
}
.creator-gallery-item img{
    display:block!important;
    width:100%!important;
    height:280px!important;
    max-width:100%!important;
    object-fit:cover!important;
    object-position:center top!important;
    transition:transform .35s ease, opacity .35s ease!important;
}
.creator-gallery-item:hover img{transform:scale(1.06);opacity:.92}
.creator-gallery-item::after{
    content:'Προβολή';
    position:absolute;
    left:12px;
    bottom:12px;
    background:rgba(0,0,0,.65);
    color:#fff;
    border-radius:999px;
    padding:6px 12px;
    font-size:13px;
    opacity:0;
    transition:.25s;
}
.creator-gallery-item:hover::after{opacity:1}
.ofg-lightbox{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.92);
    z-index:99999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:28px;
}
.ofg-lightbox.is-open{display:flex}
.ofg-lightbox-img{
    max-width:92vw!important;
    max-height:82vh!important;
    width:auto!important;
    height:auto!important;
    object-fit:contain!important;
    border-radius:14px;
    box-shadow:0 24px 80px rgba(0,0,0,.5);
}
.ofg-lightbox-close,
.ofg-lightbox-prev,
.ofg-lightbox-next{
    position:absolute;
    border:0;
    background:rgba(255,255,255,.12);
    color:#fff;
    border-radius:999px;
    width:48px;
    height:48px;
    font-size:28px;
    line-height:1;
}
.ofg-lightbox-close{top:22px;right:22px}
.ofg-lightbox-prev{left:24px;top:50%;transform:translateY(-50%)}
.ofg-lightbox-next{right:24px;top:50%;transform:translateY(-50%)}
.ofg-lightbox-caption{
    position:absolute;
    left:50%;
    bottom:22px;
    transform:translateX(-50%);
    background:rgba(0,0,0,.65);
    color:#fff;
    border-radius:999px;
    padding:8px 16px;
    font-size:14px;
}
@media(max-width:768px){
    .creator-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .creator-gallery-item img{height:230px!important}
}
@media(max-width:480px){
    .creator-gallery{grid-template-columns:1fr!important}
    .creator-gallery-item img{height:320px!important}
}

/* v15: show complete photos, never crop creator photos */
.profile-img,
.profile-cover,
.single-gallery-img,
.gallery-grid-img,
.creator-gallery-item img,
.preview-box img{
    object-fit:contain!important;
    object-position:center center!important;
    background:#080812!important;
}

.profile-img{
    height:360px!important;
    padding:8px;
}

.profile-cover{
    height:680px!important;
    max-height:72vh!important;
    padding:10px;
}

.creator-gallery-item img{
    height:360px!important;
    padding:8px;
}

.preview-box img{
    height:220px!important;
    padding:8px;
}

.verify-img{
    object-fit:contain!important;
    object-position:center center!important;
    background:#080812!important;
}

@media(max-width:768px){
    .profile-cover{height:560px!important}
    .creator-gallery-item img{height:320px!important}
}

@media(max-width:480px){
    .profile-cover{height:480px!important}
    .creator-gallery-item img{height:360px!important}
}

/* v19 banner grid */
.banner-slot{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:16px!important;
    align-items:stretch!important;
}
.banner-card{
    display:block;
    background:rgba(18,18,37,.88);
    border:1px solid var(--border);
    border-radius:18px;
    overflow:hidden;
    text-decoration:none;
    color:#fff;
    transition:.2s ease;
}
.banner-card:hover{
    transform:translateY(-2px);
    color:#fff;
    border-color:var(--accent);
}
.banner-card img{
    width:100%!important;
    height:150px!important;
    object-fit:cover!important;
    object-position:center!important;
    border-radius:0!important;
    border:0!important;
    display:block!important;
}
.banner-info{
    padding:10px 12px;
}
.banner-title{
    font-weight:700;
    font-size:14px;
    margin:0;
    color:#fff;
}
.banner-desc{
    font-size:12px;
    color:var(--muted);
    margin:3px 0 0;
}
.banner-clicks{
    font-size:11px;
    color:var(--accent);
    margin-top:5px;
}
@media(max-width:992px){
    .banner-slot{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:576px){
    .banner-slot{grid-template-columns:1fr!important}
    .banner-card img{height:160px!important}
}

/* v21 banner public cleanup */
.banner-card img{
    height:170px!important;
    object-fit:contain!important;
    object-position:center center!important;
    background:#090914!important;
    padding:8px!important;
}
.banner-info{
    min-height:56px;
}
.banner-desc,
.banner-clicks{
    display:none;
}
body.admin-view .banner-desc,
body.admin-view .banner-clicks{
    display:block;
}

/* v22: public banners are image-only */
.banner-card{
    padding:0!important;
}
.banner-card img{
    height:170px!important;
    width:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    background:#090914!important;
    padding:8px!important;
}
.banner-info,
.banner-title,
.banner-desc,
.banner-clicks{
    display:none!important;
}

/* v23 header account/admin dropdown */
.dropdown-menu-dark{
    background:#121225;
    border:1px solid var(--border);
    border-radius:16px;
    padding:10px;
}
.dropdown-item{
    border-radius:10px;
}
.dropdown-item:hover{
    background:rgba(56,189,248,.14);
}
.dropdown-header{
    color:var(--accent);
}
@media(min-width:992px){
    .navbar .dropdown:hover .dropdown-menu{
        display:block;
        margin-top:0;
    }
}

/* v24 dropdown z-index + always open to left */
.navbar{
    position:relative;
    z-index:99990!important;
}
.navbar .dropdown{
    position:relative;
}
.user-dropdown-menu,
.navbar .dropdown-menu{
    z-index:999999!important;
    right:0!important;
    left:auto!important;
    transform:none!important;
    min-width:260px;
    max-width:calc(100vw - 24px);
}
.dropdown-menu.show{
    z-index:999999!important;
}
@media(max-width:991px){
    .user-dropdown-menu,
    .navbar .dropdown-menu{
        position:absolute!important;
        right:0!important;
        left:auto!important;
        width:min(320px, calc(100vw - 32px));
    }
}

/* v28 profile form UX */
.profile-form-wrap{
    max-width:1100px;
    margin:0 auto;
}
.form-section{
    border:1px solid var(--border);
    background:rgba(15,16,32,.72);
    border-radius:18px;
    padding:20px;
    margin-bottom:20px;
}
.form-section h3{
    margin-bottom:14px;
}
.form-label,
label{
    margin-bottom:8px;
    font-weight:600;
}
.category-pill-grid,
.platform-pill-grid{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.pill-check{
    position:relative;
    display:inline-flex;
    align-items:center;
    cursor:pointer;
    user-select:none;
}
.pill-check input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.pill-check span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:9px 14px;
    border-radius:999px;
    border:1px solid var(--border);
    background:#101020;
    color:#fff;
    transition:.18s ease;
}
.pill-check input:checked + span{
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border-color:transparent;
    color:#fff;
    box-shadow:0 0 0 2px rgba(56,189,248,.12);
}
.pill-check input:checked + span::before{
    content:'✓';
    font-weight:800;
}
.platform-url-box{
    display:none;
    margin-top:10px;
}
.platform-url-box.is-visible{
    display:block;
}
.platform-url-card{
    border:1px solid var(--border);
    border-radius:16px;
    padding:14px;
    background:#0f1020;
}
.photo-help{
    color:var(--muted);
    font-size:13px;
}
@media(max-width:768px){
    .profile-form-wrap{max-width:100%}
    .form-section{padding:16px}
}

/* v29 admin verification image links */
.verify-link{
    display:block;
    cursor:zoom-in;
}
.verify-link img{
    transition:.18s ease;
}
.verify-link:hover img{
    opacity:.88;
    transform:scale(1.01);
}

/* v31 VIP user page */
.vip-price-box{
    background:linear-gradient(135deg,rgba(168,85,247,.18),rgba(56,189,248,.12));
    border:1px solid var(--border);
    border-radius:20px;
    padding:22px;
}
.vip-profile-card{
    border:1px solid var(--border);
    background:#101020;
    border-radius:18px;
    padding:16px;
}
.vip-profile-card img{
    width:100%;
    height:180px;
    object-fit:contain;
    background:#080812;
    border-radius:14px;
}
.vip-disabled-btn{
    opacity:.6;
    cursor:not-allowed!important;
}
