:root { --gf-gold: #c9a227; --gf-bg: #0e0f13; --gf-panel: #171a21; --gf-line: #262b36; }
body.gf-public, body.gf-auth {
  background: var(--gf-bg);
  color: #e9ecef;
  font-family: "Tajawal", "Segoe UI", Tahoma, Arial, sans-serif;
}
body.gf-auth { background: linear-gradient(135deg, #0e0f13 0%, #1c2230 100%); min-height: 100vh; }
.gf-navbar { background: rgba(14,15,19,.94); border-bottom: 1px solid var(--gf-line); backdrop-filter: blur(6px); }
.gf-navbar .nav-link { color: #cfd3dc; }
.gf-navbar .nav-link:hover { color: var(--gf-gold); }
.gf-hero { background-size: cover; background-position: center; border-bottom: 1px solid var(--gf-line); }
.gf-footer { background: #0a0b0e; border-top: 1px solid var(--gf-line); }
.gf-footer a { color: #9aa3b2; text-decoration: none; }
.gf-footer a:hover { color: var(--gf-gold); }

/* Cards grid */
.gf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.gf-card { background: var(--gf-panel); border: 1px solid var(--gf-line); border-radius: .75rem; overflow: hidden; transition: transform .18s, border-color .18s; }
.gf-card:hover { transform: translateY(-3px); border-color: var(--gf-gold); }
.gf-card-img { display: block; position: relative; aspect-ratio: 4/3; overflow: hidden; background: #000; }
.gf-card-img img { width: 100%; height: 100%; object-fit: cover; }
.gf-card-body { padding: .7rem .8rem; }
.gf-card-title { display: block; color: #fff; text-decoration: none; font-weight: 600; font-size: .95rem; }
.gf-card-title:hover { color: var(--gf-gold); }
.gf-card-author { font-size: .78rem; color: #9aa3b2; }
.gf-card-meta { display: flex; justify-content: space-between; align-items: center; margin-top: .4rem; font-size: .8rem; }
.gf-price { color: var(--gf-gold); font-weight: 700; }
.gf-price-lg { color: var(--gf-gold); font-weight: 800; font-size: 1.6rem; }
.gf-rarity { position: absolute; top: .5rem; inset-inline-start: .5rem; padding: .1rem .5rem; border-radius: 1rem; font-size: .72rem; color: #fff; }
.gf-featured { position: absolute; top: .5rem; inset-inline-end: .5rem; color: var(--gf-gold); }

/* Category tiles */
.gf-cat-tile { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: 1rem .5rem; background: var(--gf-panel); border: 1px solid var(--gf-line); border-radius: .75rem; color: #e9ecef; text-decoration: none; text-align: center; }
.gf-cat-tile:hover { border-color: var(--gf-gold); color: var(--gf-gold); }
.gf-cat-tile i { font-size: 1.7rem; color: var(--gf-gold); }
.gf-cat-tile span { font-size: .85rem; font-weight: 600; }

/* Photographers */
.gf-photographer { display: flex; flex-direction: column; align-items: center; text-align: center; color: #e9ecef; text-decoration: none; padding: .8rem; background: var(--gf-panel); border: 1px solid var(--gf-line); border-radius: .75rem; }
.gf-photographer:hover { border-color: var(--gf-gold); color: var(--gf-gold); }
.gf-photographer img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; margin-bottom: .4rem; border: 2px solid var(--gf-gold); }

/* Panels & tags */
.gf-panel { background: var(--gf-panel); border: 1px solid var(--gf-line); border-radius: .75rem; }
.gf-tag { background: #232833; color: #cfd3dc; text-decoration: none; padding: .3rem .6rem; border-radius: 1rem; }
.gf-tag:hover { background: var(--gf-gold); color: #111; }
.gf-avatar { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.gf-avatar-lg { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; border: 3px solid var(--gf-gold); }
.gf-photo-frame { background: #000; border-radius: .75rem; overflow: hidden; border: 1px solid var(--gf-line); }
.gf-photo-frame img { width: 100%; height: auto; display: block; }
.gf-photo-stats { background: #1f242e; border-radius: .6rem; padding: .6rem; text-align: center; }
.gf-photo-stats i { color: var(--gf-gold); }
.gf-photo-stats .small { color: #9aa3b2; font-size: .72rem; }

/* Filters */
.gf-filters { background: var(--gf-panel); border: 1px solid var(--gf-line); border-radius: .75rem; padding: 1rem; }
.gf-filters .form-control, .gf-filters .form-select { background: #1f242e; border-color: var(--gf-line); color: #e9ecef; }

/* Ads */
.gf-ad-banner { display: block; position: relative; border-radius: .75rem; overflow: hidden; border: 1px dashed var(--gf-gold); text-decoration: none; }
.gf-ad-banner img { width: 100%; height: auto; display: block; }
.gf-ad-label { padding: .4rem .6rem; background: #171a21; color: #e9ecef; font-size: .85rem; }

/* Portfolio head */
.gf-portfolio-head { background-size: cover; background-position: center; border-bottom: 1px solid var(--gf-line); }

/* Auth card */
.gf-auth-card { background: var(--gf-panel); border: 1px solid var(--gf-line); border-radius: 1rem; color: #e9ecef; }
.gf-auth-card .form-control, .gf-auth-card .form-select { background: #1f242e; border-color: var(--gf-line); color: #e9ecef; }
.gf-auth-card a { color: var(--gf-gold); }

/* Dark tables (public) */
.gf-public .table-dark, .gf-panel .table { color: #e9ecef; }
.text-warning { color: var(--gf-gold) !important; }
.btn-warning { background: var(--gf-gold); border-color: var(--gf-gold); color: #111; }
.btn-warning:hover { background: #d8b23a; border-color: #d8b23a; color: #111; }
.form-control::placeholder { color: #6b7280; }
