/* ==========================================================================
   Adult Creators Hub — theme layer su Bootstrap 5.3
   Ordine di caricamento: bootstrap.min.css  →  questo file
   ========================================================================== */

/* --- 1. Token del progetto ------------------------------------------------ */
:root{
  --ach-ink:#15111B;
  --ach-panel:#1E1826;
  --ach-panel-2:#271F31;
  --ach-line:#3A2F47;
  --ach-line-hi:#5A4A6E;
  --ach-paper:#F3EDE7;
  --ach-muted:#A192B2;
  --ach-gold:#FFB43C;
  --ach-gold-deep:#8A5A10;
  --ach-lilac:#C3A6FF;
  --ach-mint:#78E3B4;
  --ach-rose:#FF6A93;

  --ach-display:'Bricolage Grotesque','Arial Black',system-ui,sans-serif;
  --ach-body:'Instrument Sans',-apple-system,'Segoe UI',sans-serif;
  --ach-mono:'DM Mono',ui-monospace,'SF Mono',monospace;
}

/* --- 2. Override delle variabili Bootstrap -------------------------------- */
[data-bs-theme="dark"]{
  --bs-body-bg:var(--ach-ink);
  --bs-body-color:var(--ach-paper);
  --bs-body-font-family:var(--ach-body);
  --bs-border-color:var(--ach-line);
  --bs-border-radius:.25rem;
  --bs-secondary-color:var(--ach-muted);
  --bs-emphasis-color:var(--ach-paper);
  --bs-link-color:var(--ach-gold);
  --bs-link-hover-color:#fff;
  --bs-primary:var(--ach-gold);
  --bs-primary-rgb:255,180,60;
  --bs-focus-ring-color:rgba(255,180,60,.28);
  --bs-secondary-bg:var(--ach-panel);
  --bs-tertiary-bg:var(--ach-panel-2);
}

body{
  background-image:
    radial-gradient(1100px 500px at 80% -10%,rgba(255,180,60,.09),transparent 60%),
    radial-gradient(900px 500px at 0% 0%,rgba(195,166,255,.07),transparent 55%);
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* --- 3. Utility tipografiche ---------------------------------------------- */
.font-display{font-family:var(--ach-display);font-weight:800;letter-spacing:-.03em}
.font-mono{font-family:var(--ach-mono)}
.label{
  font-family:var(--ach-mono);font-size:.72rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ach-muted);
}
.label-gold{color:var(--ach-gold)}
.text-muted-2{color:var(--ach-muted)!important}
.hr-line{border-color:var(--ach-line);opacity:1}

.display-hero{
  font-family:var(--ach-display);font-weight:800;letter-spacing:-.035em;line-height:.92;
  font-size:clamp(2.6rem,8.5vw,5.6rem);text-wrap:balance;
}
.display-hero em{font-style:normal;color:var(--ach-gold)}
.h-sec{font-family:var(--ach-display);font-weight:800;letter-spacing:-.03em;
  font-size:clamp(1.5rem,3.6vw,2.2rem);line-height:1;margin:0}

.see-all{
  font-family:var(--ach-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ach-gold);text-decoration:none;border-bottom:1px solid rgba(255,180,60,.4);
  padding-bottom:3px;white-space:nowrap;
}
.see-all:hover{color:#fff;border-color:#fff}

/* --- 4. Navbar ------------------------------------------------------------ */
.navbar{background:rgba(21,17,27,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--ach-line)}
.navbar-brand{font-family:var(--ach-display);font-weight:800;letter-spacing:-.02em;
  font-size:1rem;line-height:1.05;display:flex;align-items:center;gap:.6rem}
.brand-mark{width:32px;height:32px;flex:none;display:block}
.brand-text{max-width:9ch}
.navbar .nav-link{
  font-family:var(--ach-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ach-muted);border-radius:.25rem;padding:.55rem .75rem;
}
.navbar .nav-link:hover,.navbar .nav-link:focus{color:var(--ach-paper);background:var(--ach-panel-2)}
.navbar .nav-link.active{color:var(--ach-gold)}
.navbar-toggler{border-color:var(--ach-line);font-family:var(--ach-mono);
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ach-paper)}

/* --- 5. Bottoni ----------------------------------------------------------- */
.btn-gold{
  background:var(--ach-gold);color:#241703;border:0;
  font-family:var(--ach-display);font-weight:800;letter-spacing:-.01em;
}
.btn-gold:hover,.btn-gold:focus{background:#fff;color:#241703}
.btn-quiet{
  border:1px solid var(--ach-line);color:var(--ach-paper);background:transparent;
  font-family:var(--ach-body);
}
.btn-quiet:hover{background:var(--ach-panel-2);color:var(--ach-paper);border-color:var(--ach-line-hi)}
.chip{
  font-family:var(--ach-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ach-muted);border:1px solid var(--ach-line);background:var(--ach-panel);
}
.chip:hover{background:var(--ach-lilac);border-color:var(--ach-lilac);color:var(--ach-ink)}

/* --- 6. Ricerca ----------------------------------------------------------- */
.search .form-control{
  background:var(--ach-panel);border:1px solid var(--ach-line);border-right:0;
  color:var(--ach-paper);padding:1.15rem 1.25rem;font-size:clamp(1rem,2.6vw,1.3rem);
}
.search .form-control::placeholder{color:#6E6080}
.search .form-control:focus{
  background:var(--ach-panel);color:var(--ach-paper);border-color:var(--ach-gold);
  box-shadow:0 0 0 .25rem rgba(255,180,60,.14);
}
.search .btn{padding-inline:clamp(1.1rem,4vw,2.1rem)}
.search--slim .form-control{padding:.8rem 1rem;font-size:1rem}

.form-select{
  background-color:var(--ach-panel);border-color:var(--ach-line);color:var(--ach-paper);
  font-family:var(--ach-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.55rem 2rem .55rem .75rem;
}
.form-select:focus{border-color:var(--ach-gold);box-shadow:0 0 0 .25rem rgba(255,180,60,.14)}

/* --- 7. Ticker ------------------------------------------------------------ */
.ticker{background:var(--ach-panel);border-block:1px solid var(--ach-line);overflow:hidden}
.ticker-tag{background:var(--ach-gold);color:#241703;padding:0 .9rem;display:flex;align-items:center;
  font-family:var(--ach-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase}
.ticker-track{display:flex;gap:2.4rem;padding:.7rem 0;white-space:nowrap;
  animation:ach-slide 46s linear infinite;
  font-family:var(--ach-mono);font-size:.72rem;color:var(--ach-muted)}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-track b{color:var(--ach-paper);font-weight:400}
.ticker-track i{color:var(--ach-gold);font-style:normal}
@keyframes ach-slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}}

/* --- 8. Card creator ------------------------------------------------------ */
.creator-card{
  background:var(--ach-panel);border:1px solid var(--ach-line);
  text-decoration:none;color:inherit;overflow:hidden;
  transition:transform .2s ease,border-color .2s ease;
}
.creator-card:hover{transform:translateY(-4px);border-color:var(--ach-line-hi);color:inherit}
.shot{
  position:relative;aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(150deg,hsl(var(--h) 55% 32%),hsl(calc(var(--h) + 42) 45% 15%));
}
.shot::after{
  content:"";position:absolute;inset:0;opacity:.5;
  background:repeating-linear-gradient(115deg,rgba(0,0,0,.16) 0 2px,transparent 2px 7px);
}
.shot .ini{font-family:var(--ach-display);font-size:2.2rem;color:rgba(255,255,255,.9);mix-blend-mode:overlay}
.creator-card .card-body{padding:.8rem .9rem .9rem}
.creator-name{font-family:var(--ach-display);font-weight:700;letter-spacing:-.02em;
  font-size:1.05rem;line-height:1.15;margin:0}
.creator-handle{font-family:var(--ach-mono);font-size:.66rem;color:var(--ach-muted);margin:.15rem 0 0}

.stat-row{
  list-style:none;margin:.7rem 0 0;padding:.55rem 0 0;border-top:1px solid var(--ach-line);
  display:flex;gap:.9rem;font-family:var(--ach-mono);font-size:.66rem;color:var(--ach-muted);
  text-transform:uppercase;letter-spacing:.04em;
}
.stat-row b{display:block;color:var(--ach-paper);font-weight:400;font-size:.82rem;letter-spacing:0}
.stat-row--boxed{border:1px solid var(--ach-line);border-radius:.25rem;background:var(--ach-panel);
  padding:.75rem .9rem;margin:0;justify-content:space-between}

/* badge */
.badge-ach{
  font-family:var(--ach-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:500;padding:.35rem .5rem;border-radius:2px;color:#1A1020;
}
.badge-free{background:var(--ach-mint)}
.badge-sale{background:var(--ach-rose);color:#2A0713}
.badge-sub{background:var(--ach-panel-2);color:var(--ach-muted);border:1px solid var(--ach-line)}
.badge-pos{position:absolute;top:.55rem;left:.55rem;z-index:2}

/* inserzione a pagamento */
.creator-card.is-ad{
  background:linear-gradient(178deg,#2B2033,#1E1826);
  border-color:var(--ach-gold-deep);
  box-shadow:0 0 0 1px rgba(255,180,60,.15),0 18px 40px -28px #000;
}
.creator-card.is-ad:hover{border-color:var(--ach-gold)}
.creator-card.is-ad .shot{border-bottom:1px solid var(--ach-gold-deep)}
.creator-card.is-ad .creator-name{font-size:1.15rem}
.ad-tag{
  position:absolute;top:0;right:0;z-index:3;background:var(--ach-gold);color:#241703;
  font-family:var(--ach-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.3rem .55rem;border-bottom-left-radius:3px;
}

/* box featured ricorrente */
.featured-box{
  border:1px solid var(--ach-gold-deep);border-radius:.25rem;padding:1.1rem;
  background:linear-gradient(180deg,rgba(255,180,60,.07),transparent 60%),var(--ach-panel);
}
.featured-box .h-sec{font-size:1.15rem}
.rail{display:flex;gap:.9rem;overflow-x:auto;padding-bottom:.4rem;scroll-snap-type:x mandatory}
.rail .creator-card{flex:none;width:186px;scroll-snap-align:start}
.rail .shot .ini{font-size:1.7rem}

/* --- 9. Paginazione ------------------------------------------------------- */
.pagination{--bs-pagination-bg:transparent;--bs-pagination-color:var(--ach-muted);
  --bs-pagination-border-color:var(--ach-line);--bs-pagination-hover-bg:var(--ach-panel-2);
  --bs-pagination-hover-color:var(--ach-paper);--bs-pagination-hover-border-color:var(--ach-line-hi);
  --bs-pagination-focus-bg:var(--ach-panel-2);--bs-pagination-focus-color:var(--ach-paper);
  --bs-pagination-active-bg:var(--ach-gold);--bs-pagination-active-border-color:var(--ach-gold);
  --bs-pagination-active-color:#241703;--bs-pagination-disabled-bg:transparent;
  --bs-pagination-disabled-color:#6E6080;--bs-pagination-disabled-border-color:var(--ach-line);
  --bs-pagination-padding-x:1rem;--bs-pagination-padding-y:.6rem;
  --bs-pagination-font-size:.78rem;
}
.pagination .page-link{font-family:var(--ach-mono)}

/* --- 10. Scheda profilo --------------------------------------------------- */
.p-name{font-family:var(--ach-display);font-weight:800;letter-spacing:-.045em;line-height:.9;
  font-size:clamp(2.6rem,7.5vw,4.6rem);text-wrap:balance;margin:0 0 .9rem}
.p-shot{
  position:relative;aspect-ratio:1/1;border-radius:.25rem;overflow:hidden;
  border:1px solid var(--ach-line);display:grid;place-items:center;
  background:linear-gradient(150deg,hsl(var(--h) 55% 32%),hsl(calc(var(--h) + 42) 45% 15%));
}
.p-shot::after{content:"";position:absolute;inset:0;opacity:.5;
  background:repeating-linear-gradient(115deg,rgba(0,0,0,.16) 0 2px,transparent 2px 7px)}
.p-shot .ini{font-family:var(--ach-display);font-size:4.4rem;color:rgba(255,255,255,.9);mix-blend-mode:overlay}
.p-bio{font-size:1.04rem;color:#D9CEE4;max-width:62ch}

.h-block{font-family:var(--ach-display);font-weight:800;letter-spacing:-.02em;font-size:1.18rem;
  display:flex;align-items:center;gap:.75rem;margin:0 0 .9rem}
.h-block::after{content:"";flex:1;height:1px;background:var(--ach-line)}

.table-facts{--bs-table-bg:var(--ach-panel);--bs-table-color:var(--ach-paper);
  border:1px solid var(--ach-line);border-radius:.25rem;overflow:hidden;margin:0}
.table-facts th,.table-facts td{padding:.8rem 1rem;border-bottom-color:var(--ach-line);vertical-align:middle}
.table-facts tr:last-child th,.table-facts tr:last-child td{border-bottom:0}
.table-facts th{width:42%;font-family:var(--ach-mono);font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ach-muted);font-weight:400;background:rgba(0,0,0,.14)}

/* social */
.social{
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;text-decoration:none;color:inherit;
  background:var(--ach-panel);border:1px solid var(--ach-line);border-radius:.25rem;
  padding:.85rem 1rem;transition:border-color .18s,background .18s;
}
.social:hover{border-color:var(--ach-lilac);background:var(--ach-panel-2);color:inherit}
.s-mark{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:3px;
  background:var(--ach-panel-2);border:1px solid var(--ach-line);
  font-family:var(--ach-display);font-weight:800;font-size:.9rem;color:var(--ach-lilac)}
.s-name{font-family:var(--ach-display);font-weight:700;font-size:1rem;letter-spacing:-.01em;line-height:1.1}
.s-handle{font-family:var(--ach-mono);font-size:.66rem;color:var(--ach-muted)}
.s-stats{margin-left:auto;display:flex;gap:1.15rem;text-align:right;
  font-family:var(--ach-mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ach-muted)}
.s-stats b{display:block;color:var(--ach-paper);font-weight:400;font-size:.86rem;letter-spacing:0}
@media(max-width:575.98px){
  .s-stats{margin-left:0;width:100%;justify-content:space-between;text-align:left;
    border-top:1px solid var(--ach-line);padding-top:.6rem}
}

/* claim */
.claimbox{border:1px solid var(--ach-gold);border-radius:.25rem;padding:1.1rem;
  background:linear-gradient(180deg,rgba(255,180,60,.14),rgba(255,180,60,.04))}
.claimbox p{color:#E7DCEF;font-size:.9rem}
.claimed{border:1px solid var(--ach-line);border-radius:.25rem;padding:.75rem .9rem;
  font-family:var(--ach-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ach-mint)}

/* gallery */
.tile{position:relative;aspect-ratio:1;border-radius:3px;overflow:hidden;border:1px solid var(--ach-line);
  background:linear-gradient(150deg,hsl(var(--h) 45% 26%),hsl(calc(var(--h) + 30) 40% 13%));cursor:pointer}
.tile::after{content:"";position:absolute;inset:0;opacity:.55;
  background:repeating-linear-gradient(115deg,rgba(0,0,0,.18) 0 2px,transparent 2px 7px)}
.tile span{position:absolute;left:.5rem;bottom:.5rem;z-index:2;font-family:var(--ach-mono);
  font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.tile:hover{filter:brightness(1.15)}

/* --- 11. Footer ----------------------------------------------------------- */
.site-footer{background:var(--ach-panel);border-top:1px solid var(--ach-line)}
.site-footer a{font-family:var(--ach-mono);font-size:.7rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ach-muted);text-decoration:none}
.site-footer a:hover{color:var(--ach-gold)}
.legal{font-family:var(--ach-mono);font-size:.64rem;letter-spacing:.06em;color:#6E6080}
.age-mark{border:1px solid #6E6080;border-radius:2px;padding:.05rem .35rem}

/* --- 12. Accessibilità ---------------------------------------------------- */
:focus-visible{outline:2px solid var(--ach-gold);outline-offset:3px}
.sticky-side{top:88px}
@media(max-width:991.98px){.sticky-side{position:static!important}}

/* --- 13. Avviso profilo --------------------------------------------------- */
.notice{
  display:flex; gap:1rem; align-items:flex-start;
  border:1px solid var(--ach-gold); border-radius:.25rem; padding:1.1rem 1.25rem;
  background:linear-gradient(180deg,rgba(255,180,60,.14),rgba(255,180,60,.04));
  color:#E7DCEF; font-size:.95rem;
}
.notice-mark{
  flex:none; width:28px; height:28px; display:grid; place-items:center;
  background:var(--ach-gold); color:#241703; border-radius:50%;
  font-family:var(--ach-display); font-weight:800; font-size:1rem; line-height:1;
}
.notice a{color:var(--ach-gold); text-decoration:underline; text-underline-offset:2px}
.notice a:hover{color:#fff}
@media(max-width:575.98px){ .notice{padding:1rem} .notice-mark{display:none} }

/* --- 14. Foto reali nei contenitori segnaposto ---------------------------- */
.shot-img,
.p-shot-img,
.tile-img{
  position:absolute; inset:0; z-index:1;
  width:100%; height:100%; object-fit:cover; object-position:center;
}
.shot:has(.shot-img) .ini,
.p-shot:has(.p-shot-img) .ini{display:none}
.shot:has(.shot-img)::after,
.p-shot:has(.p-shot-img)::after{display:none}

/* --- 15. Menu utente ------------------------------------------------------ */
.nav-user{
  display:flex; align-items:center; gap:.55rem; text-decoration:none;
  color:var(--ach-paper); border:1px solid var(--ach-line); background:var(--ach-panel);
  border-radius:.25rem; padding:.35rem .75rem .35rem .4rem;
  font-family:var(--ach-mono); font-size:.72rem; letter-spacing:.06em;
}
.nav-user:hover,.nav-user.show{border-color:var(--ach-gold); color:var(--ach-paper)}
.nav-user-pic{
  width:26px; height:26px; flex:none; display:grid; place-items:center; border-radius:50%;
  background:var(--ach-gold); color:#241703;
  font-family:var(--ach-display); font-weight:800; font-size:.8rem; line-height:1;
}
.nav-user-name{max-width:60ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.nav-user-name b{color:var(--ach-gold); font-weight:400}

.dropdown-menu{
  --bs-dropdown-bg:var(--ach-panel);
  --bs-dropdown-border-color:var(--ach-line);
  --bs-dropdown-border-radius:.25rem;
  --bs-dropdown-link-color:var(--ach-muted);
  --bs-dropdown-link-hover-color:var(--ach-paper);
  --bs-dropdown-link-hover-bg:var(--ach-panel-2);
  --bs-dropdown-link-active-color:#241703;
  --bs-dropdown-link-active-bg:var(--ach-gold);
  --bs-dropdown-divider-bg:var(--ach-line);
  --bs-dropdown-min-width:13rem;
  --bs-dropdown-padding-y:.4rem;
  font-family:var(--ach-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
}
.dropdown-item{padding:.6rem .9rem}
@media(max-width:991.98px){
  .nav-user{width:100%; justify-content:flex-start}
  .dropdown-menu{width:100%; border:0; background:transparent; padding-left:.4rem}
}

/* --- 16. Age gate --------------------------------------------------------- */
.agegate{
  position:fixed; inset:0; z-index:1080; overflow-y:auto;
  display:grid; place-items:center; padding:1.5rem;
  background:rgba(10,7,14,.88); backdrop-filter:blur(6px);
}
.agegate-card{
  width:100%; max-width:440px; text-align:center;
  background:var(--ach-panel); border:1px solid var(--ach-gold); border-radius:.25rem;
  padding:2rem 1.75rem;
}
.agegate-logo{width:48px; height:48px; margin:0 auto 1.25rem; display:block}
.agegate-title{
  font-family:var(--ach-display); font-weight:800; letter-spacing:-.03em;
  font-size:1.6rem; line-height:1.1; margin:0 0 .9rem;
}
.agegate-text{color:#D9CEE4; font-size:.95rem; margin:0 0 1.5rem}
.agegate-note{
  font-family:var(--ach-mono); font-size:.64rem; letter-spacing:.05em;
  color:var(--ach-muted); margin:1.25rem 0 0;
}
.agegate-note a{color:var(--ach-muted); text-decoration:underline}
body:has(.agegate){overflow:hidden}

/* --- 17. Tag categorie ---------------------------------------------------- */
.tag-list{
  list-style:none; display:flex; flex-wrap:wrap; gap:.4rem;
  margin:0; padding:0;
}
.tag{
  display:inline-block; text-decoration:none;
  font-family:var(--ach-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ach-lilac); background:var(--ach-panel-2);
  border:1px solid var(--ach-line); border-radius:100px;
  padding:.3rem .7rem; transition:background .15s,border-color .15s,color .15s;
}
.tag:hover,.tag:focus{
  color:var(--ach-ink); background:var(--ach-lilac); border-color:var(--ach-lilac);
}

/* --- 18. Lightbox --------------------------------------------------------- */
.goverlay{background:rgba(10,7,14,.94); backdrop-filter:blur(6px)}
.gslide-description{background:var(--ach-panel); color:var(--ach-paper)}
.gbtn{color:var(--ach-gold)}
.gclose,.gnext,.gprev{background:rgba(30,24,38,.9)}

.s-id{min-width:0; flex:1 1 auto}
.s-url{
  display:block; font-family:var(--ach-mono); font-size:.72rem;
  color:var(--ach-lilac); margin-top:.15rem;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  border-bottom:1px solid rgba(195,166,255,.35); padding-bottom:1px;
}
.social:hover .s-url{color:#fff; border-color:#fff}

/* --- 19. Riepilogo ricerca ------------------------------------------------ */
.results-head{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .9rem}
.results-count{
  font-family:var(--ach-mono); font-size:.72rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ach-muted); margin:0;
}
.results-count b{color:var(--ach-paper); font-weight:400}
.results-count em{font-style:normal; color:var(--ach-gold)}

.active-filters{
  list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; margin:0; padding:0;
}
.filter-pill{
  display:inline-flex; align-items:center; gap:.45rem; text-decoration:none;
  font-family:var(--ach-mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ach-paper); background:var(--ach-panel-2);
  border:1px solid var(--ach-line); border-radius:100px; padding:.28rem .6rem .28rem .7rem;
}
.filter-pill span{color:var(--ach-muted); font-size:.85rem; line-height:1}
.filter-pill:hover{border-color:var(--ach-rose); color:var(--ach-paper)}
.filter-pill:hover span{color:var(--ach-rose)}
.filter-clear{
  font-family:var(--ach-mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ach-muted); text-decoration:underline; text-underline-offset:3px;
}
.filter-clear:hover{color:var(--ach-gold)}

/* --- 20. Stati vuoti ------------------------------------------------------ */
.empty-state{
  text-align:center; border:1px dashed var(--ach-line); border-radius:.25rem;
  background:rgba(30,24,38,.5); padding:2.5rem 1.5rem; margin-top: 1.5rem;
}
.empty-icon{width:44px; height:44px; color:var(--ach-line-hi); margin:0 auto 1rem; display:block}
.empty-title{
  font-family:var(--ach-display); font-weight:800; letter-spacing:-.02em;
  font-size:1.1rem; margin:0 0 .5rem;
}
.empty-text{color:var(--ach-muted); font-size:.92rem; max-width:44ch; margin:0 auto}
.empty-state .btn{margin-top:1.25rem}

/* --- 21. Pagina About ----------------------------------------------------- */
.fact-list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.fact-list li{display:flex; align-items:baseline; gap:.7rem;
  border-bottom:1px solid var(--ach-line); padding-bottom:.9rem}
.fact-list li:last-child{border-bottom:0; padding-bottom:0}
.fact-list b{font-family:var(--ach-display); font-weight:800; letter-spacing:-.03em;
  font-size:1.5rem; line-height:1; color:var(--ach-gold); min-width:5ch}
.fact-list span{font-family:var(--ach-mono); font-size:.7rem; letter-spacing:.07em;
  text-transform:uppercase; color:var(--ach-muted)}
 
.point{height:100%; background:var(--ach-panel); border:1px solid var(--ach-line);
  border-radius:.25rem; padding:1.3rem 1.4rem}
.point-title{font-family:var(--ach-display); font-weight:800; letter-spacing:-.02em;
  font-size:1.1rem; margin:0 0 .6rem}
.point-text{color:#D9CEE4; font-size:.95rem}
.point-text em{font-style:normal; color:var(--ach-gold); font-family:var(--ach-mono);
  font-size:.8rem; letter-spacing:.06em; text-transform:uppercase}
 
/* --- 22. Elenco passi (pagina Claim) -------------------------------------- */
.steps{list-style:none; counter-reset:step; margin:0; padding:0; display:grid; gap:1.4rem}
.steps li{counter-increment:step; position:relative; padding-left:3.2rem}
.steps li::before{
  content:counter(step); position:absolute; left:0; top:-.1rem;
  width:2.1rem; height:2.1rem; display:grid; place-items:center; border-radius:50%;
  background:var(--ach-gold); color:#241703;
  font-family:var(--ach-display); font-weight:800; font-size:.95rem; line-height:1;
}
.steps li:not(:last-child)::after{
  content:""; position:absolute; left:1.05rem; top:2.4rem; bottom:-1.4rem;
  width:1px; background:var(--ach-line);
}
.step-title{font-family:var(--ach-display); font-weight:800; letter-spacing:-.02em;
  font-size:1.08rem; margin:0 0 .35rem}
.step-title em{font-style:normal; color:var(--ach-gold)}
.step-text{color:#D9CEE4; font-size:.95rem; margin:0}
.step-text a{color:var(--ach-lilac); text-decoration:underline; text-underline-offset:2px}
.step-text a:hover{color:#fff}

/* --- 23. Form e pagine account -------------------------------------------- */
.form-label{
  font-family:var(--ach-mono); font-size:.7rem; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ach-muted); margin-bottom:.45rem;
}
.form-control{
  background:var(--ach-panel); border:1px solid var(--ach-line); color:var(--ach-paper);
  border-radius:.25rem; padding:.75rem .9rem;
}
.form-control:focus{
  background:var(--ach-panel); color:var(--ach-paper); border-color:var(--ach-gold);
  box-shadow:0 0 0 .25rem rgba(255,180,60,.14);
}
.form-control::placeholder{color:#6E6080}
.form-control-lg{font-size:1.05rem; padding:.9rem 1rem}
.form-select-lg{font-size:.78rem; padding:.9rem 2.2rem .9rem 1rem}
.form-control[type=file]::file-selector-button{
  background:var(--ach-panel-2); color:var(--ach-paper); border:0;
  border-right:1px solid var(--ach-line); padding:.75rem .9rem; margin-inline-end:.9rem;
  font-family:var(--ach-mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
}
.form-control[type=file]::file-selector-button:hover{background:var(--ach-line); cursor:pointer}
 
.form-hint{font-size:.85rem; color:var(--ach-muted); margin:.55rem 0 0}
.form-hint-url{
  display:inline-block; font-family:var(--ach-mono); font-size:.78rem;
  color:var(--ach-lilac); background:var(--ach-panel); border:1px solid var(--ach-line);
  border-radius:.25rem; padding:.15rem .45rem; margin-top:.25rem;
}
.form-hint-url b{color:var(--ach-paper); font-weight:400}
.form-actions{display:flex; flex-wrap:wrap; gap:.6rem; padding-top:.5rem}
@media(max-width:575.98px){.form-actions .btn{width:100%}}
 
/* upload con anteprima */
.upload-row{display:flex; gap:1.1rem; align-items:flex-start; flex-wrap:wrap}
.upload-preview{
  width:120px; height:120px; flex:none; border-radius:.25rem; overflow:hidden;
  border:1px solid var(--ach-line); background:var(--ach-panel-2);
  display:grid; place-items:center;
}
.upload-preview img{width:100%; height:100%; object-fit:cover}
.upload-empty{
  font-family:var(--ach-mono); font-size:.62rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ach-muted);
}
.upload-field{flex:1 1 260px; min-width:0}
 
/* navigazione fra le sezioni dell'account */
.account-nav{display:flex; flex-wrap:wrap; gap:.3rem; border-bottom:1px solid var(--ach-line)}
.account-nav a{
  text-decoration:none; color:var(--ach-muted);
  font-family:var(--ach-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.7rem .9rem; border-bottom:2px solid transparent; margin-bottom:-1px;
}
.account-nav a:hover{color:var(--ach-paper)}
.account-nav a[aria-current="page"]{color:var(--ach-gold); border-bottom-color:var(--ach-gold)}
 
/* messaggi di ritorno */
.flash{
  display:flex; align-items:flex-start; gap:.85rem; position:relative;
  border-radius:.25rem; padding:1rem 2.4rem 1rem 1rem; margin-bottom:1.75rem;
  font-size:.95rem;
}
.flash--ok{border:1px solid var(--ach-mint); background:rgba(120,227,180,.1); color:#DDF6EA}
.flash--error{border:1px solid var(--ach-rose); background:rgba(255,106,147,.1); color:#FFE1E9}
.flash-mark{
  flex:none; width:24px; height:24px; display:grid; place-items:center; border-radius:50%;
  font-family:var(--ach-display); font-weight:800; font-size:.85rem; line-height:1; color:#1A1020;
}
.flash--ok .flash-mark{background:var(--ach-mint)}
.flash--error .flash-mark{background:var(--ach-rose)}
.flash-close{
  position:absolute; top:.5rem; right:.7rem; text-decoration:none; line-height:1;
  font-size:1.4rem; color:inherit; opacity:.55;
}
.flash-close:hover{opacity:1; color:inherit}

/* --- 24. Pagina contenuti: piattaforme, chip, editor ---------------------- */
.site-label{display:flex; align-items:center; gap:.5rem; color:var(--ach-paper);
  font-size:.72rem; text-transform:none; letter-spacing:.02em}
.site-mark{
  width:24px; height:24px; flex:none; display:grid; place-items:center; border-radius:3px;
  background:var(--ach-panel-2); border:1px solid var(--ach-line);
  font-family:var(--ach-display); font-weight:800; font-size:.72rem; color:var(--ach-lilac);
}
 
.chip-set{display:flex; flex-wrap:wrap; gap:.5rem}
.check-chip label{
  display:inline-block; cursor:pointer; user-select:none;
  font-family:var(--ach-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ach-muted); background:var(--ach-panel); border:1px solid var(--ach-line);
  border-radius:100px; padding:.45rem .9rem;
  transition:color .15s, background .15s, border-color .15s;
}
.check-chip label:hover{color:var(--ach-paper); border-color:var(--ach-line-hi)}
.check-chip input:checked + label{
  color:#241703; background:var(--ach-gold); border-color:var(--ach-gold);
}
.check-chip input:focus-visible + label{outline:2px solid var(--ach-gold); outline-offset:3px}
 
/* editor: bordo coerente con gli altri campi */
.tox-tinymce{border:1px solid var(--ach-line)!important; border-radius:.25rem!important}
.tox .tox-toolbar__primary,.tox .tox-editor-header{background:var(--ach-panel-2)!important}

/* --- 25. Gallery gratuita (area account) ---------------------------------- */
.dropzone-form{display:flex; flex-direction:column; align-items:flex-start; gap:1rem}
.dropzone{
  width:100%; display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:.5rem; cursor:pointer; padding:2.25rem 1.5rem;
  border:1px dashed var(--ach-line); border-radius:.25rem; background:rgba(30,24,38,.5);
  transition:border-color .18s, background .18s;
}
.dropzone:hover{border-color:var(--ach-gold); background:rgba(255,180,60,.05)}
.dropzone:focus-within{border-color:var(--ach-gold); box-shadow:0 0 0 .25rem rgba(255,180,60,.14)}
.dropzone svg{width:38px; height:38px; color:var(--ach-line-hi)}
.dropzone:hover svg{color:var(--ach-gold)}
.dropzone-title{font-family:var(--ach-display); font-weight:800; letter-spacing:-.02em; font-size:1.05rem}
.dropzone-hint{font-family:var(--ach-mono); font-size:.66rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ach-muted)}
.dropzone input[type=file]{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none}
.dropzone-file{font-family:var(--ach-mono); font-size:.72rem; color:var(--ach-lilac); margin:0}
 
.pic-card{position:relative; border:1px solid var(--ach-line); border-radius:.25rem; overflow:hidden}
.pic-card img{width:100%; aspect-ratio:1; object-fit:cover; display:block}
.pic-card form{position:absolute; inset:auto 0 0 0}
.pic-delete{
  width:100%; border:0; cursor:pointer;
  background:rgba(21,17,27,.86); color:var(--ach-muted);
  font-family:var(--ach-mono); font-size:.62rem; letter-spacing:.09em; text-transform:uppercase;
  padding:.5rem; transition:background .15s, color .15s;
}
.pic-card:hover .pic-delete{background:var(--ach-rose); color:#2A0713}
.pic-delete:focus-visible{background:var(--ach-rose); color:#2A0713}
 
/* --- 26. Statistiche ------------------------------------------------------ */
.kpi{
  height:100%; background:var(--ach-panel); border:1px solid var(--ach-line);
  border-radius:.25rem; padding:1.25rem 1.35rem;
}
.kpi-label{font-family:var(--ach-mono); font-size:.66rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ach-muted); margin:0 0 .6rem}
.kpi-value{font-family:var(--ach-display); font-weight:800; letter-spacing:-.04em;
  font-size:2.4rem; line-height:1; color:var(--ach-gold); margin:0}
.kpi-note{font-family:var(--ach-mono); font-size:.62rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ach-muted); margin:.55rem 0 0}
 
.chart-card{
  height:100%; background:var(--ach-panel); border:1px solid var(--ach-line);
  border-radius:.25rem; padding:1.15rem 1.25rem 1rem;
}
.chart-head{display:flex; align-items:flex-start; gap:1rem; margin-bottom:1rem}
.chart-title{font-family:var(--ach-display); font-weight:800; letter-spacing:-.02em;
  font-size:1.05rem; margin:0}
.chart-url{display:block; font-family:var(--ach-mono); font-size:.66rem;
  color:var(--ach-lilac); text-decoration:none; margin-top:.2rem;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:26ch}
.chart-url:hover{color:#fff; text-decoration:underline}
.chart-total{margin:0 0 0 auto; text-align:right; font-family:var(--ach-mono);
  font-size:.62rem; letter-spacing:.07em; text-transform:uppercase; color:var(--ach-muted)}
.chart-total b{display:block; font-size:1.3rem; color:var(--ach-paper);
  font-weight:400; letter-spacing:-.01em}
.chart-canvas{position:relative; height:180px}

