:root{
  --font-sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;

  /* Neutrals — leggermente calde, in tono con il verde oliva del brand */
  --color-text-primary:#1c1e15;
  --color-text-secondary:#6b6f5f;
  --color-text-tertiary:#9a9d8c;
  --color-background-primary:#ffffff;
  --color-background-secondary:#eef1e6;
  --color-background-tertiary:#f7f8f2;
  --color-border-primary:#cdd2c0;
  --color-border-secondary:#e2e5d7;
  --color-border-tertiary:#ecefe3;

  /* Brand */
  --color-brand:#4B5320;
  --color-brand-dark:#333A12;
  --color-brand-darker:#262b0d;
  --color-brand-light:#E9ECDD;
  --color-brand-lighter:#F1F4E8;
  --color-accent-warm:#BA7517;
  --color-danger:#D85A30;
  --color-danger-bg:#FBEAE5;
  --color-danger-border:#E3B4A6;

  /* Radius */
  --border-radius-sm:6px;
  --border-radius-md:8px;
  --border-radius-lg:14px;
  --border-radius-xl:20px;

  /* Ombre */
  --shadow-xs:0 1px 2px rgba(30,32,18,.05);
  --shadow-sm:0 2px 6px rgba(30,32,18,.06),0 1px 2px rgba(30,32,18,.04);
  --shadow-md:0 8px 20px rgba(30,32,18,.08),0 2px 6px rgba(30,32,18,.05);
  --shadow-lg:0 18px 44px rgba(30,32,18,.14),0 6px 16px rgba(30,32,18,.07);

  /* Movimento */
  --ease:cubic-bezier(.4,0,.2,1);
  --t-fast:120ms var(--ease);
  --t-base:200ms var(--ease);

  --page-max:1360px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:hidden;width:100%}
body{font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-background-tertiary);-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%;max-width:100%}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

a{color:inherit}
img{max-width:100%;display:block}

:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px;border-radius:4px}

/* ---- Scrollbar utility (righe orizzontali su mobile) ---- */
.scroll-x{scrollbar-width:none;-ms-overflow-style:none}
.scroll-x::-webkit-scrollbar{display:none}

/* ==================== NAV ==================== */
.nav{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(1.2) blur(10px);
  -webkit-backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:0.5px solid var(--color-border-tertiary);
  box-shadow:var(--shadow-xs);
  padding:0 24px;height:52px;
}
.nav-inner{
  max-width:var(--page-max);margin:0 auto;height:100%;width:100%;
  display:flex;align-items:center;gap:16px;position:relative;
}
.logo{font-size:18px;font-weight:500;color:var(--color-brand-dark);flex-shrink:0}
.logo span{color:var(--color-text-primary)}
.nav-search{
  flex:1;max-width:520px;display:flex;align-items:center;gap:8px;
  background:var(--color-background-secondary);
  border:0.5px solid var(--color-border-secondary);
  border-radius:var(--border-radius-md);padding:0 12px;height:34px;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.nav-search:focus-within{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-lighter)}
.nav-search input{border:none;background:transparent;outline:none;font-size:13px;color:var(--color-text-primary);width:100%}
.nav-btns{display:flex;gap:8px;flex-shrink:0;align-items:center;margin-left:auto}
.nav-secondary-group{display:flex;gap:8px;align-items:center}
.mobile-menu-btn{display:none;background:transparent;border:none;cursor:pointer;padding:6px;font-size:20px;color:var(--color-text-primary);flex-shrink:0}
.mobile-back-btn{
  display:none;border:none;cursor:pointer;flex-shrink:0;
  width:36px;height:36px;border-radius:50%;
  background:var(--color-brand-dark);color:#fff;
  align-items:center;justify-content:center;font-size:17px;
  transition:background var(--t-fast);
}
.mobile-back-btn:hover{background:var(--color-brand)}
.mobile-back-btn i{font-size:17px;color:#fff}
.mobile-magazine-btn{display:none}
.mobile-messages-btn{display:none}
.mobile-menu-panel{display:none}
.btn-ghost{
  background:transparent;border:0.5px solid var(--color-border-secondary);
  border-radius:var(--border-radius-md);padding:6px 12px;font-size:12px;
  cursor:pointer;color:var(--color-text-primary);text-decoration:none;
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),transform var(--t-fast);
}
.btn-ghost:hover{background:var(--color-brand-lighter);border-color:var(--color-brand);color:var(--color-brand-dark)}
.btn-ghost:active{transform:scale(.97)}
.btn-primary{
  background:var(--color-brand);border:none;border-radius:var(--border-radius-md);
  padding:6px 14px;font-size:12px;cursor:pointer;color:#fff;font-weight:500;
  text-decoration:none;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  box-shadow:var(--shadow-xs);
  transition:background var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);
}
.btn-primary:hover{background:var(--color-brand-dark);box-shadow:var(--shadow-sm)}
.btn-txt-short{display:none}
.nav-hamburger{display:none}
.admin-exit-btn{
  display:none;align-items:center;justify-content:center;flex-shrink:0;
  width:34px;height:34px;border-radius:50%;color:#fff;font-size:18px;
  text-decoration:none;
}
.admin-exit-btn:active{background:rgba(255,255,255,.15)}
.btn-primary:active{transform:scale(.97)}
.nav-user-link .lbl{font-weight:600}
.nav-badge{background:var(--color-danger);color:#fff;font-size:10px;font-weight:600;border-radius:8px;padding:1px 6px;margin-left:3px}

/* ==================== HERO FOTO + CARD SOVRAPPOSTA (stile AutoScout24) ==================== */
.hero-photo{
  background-image:linear-gradient(180deg, rgba(20,22,12,.10) 0%, rgba(20,22,12,.70) 100%), url('hero.jpg');
  background-size:cover;background-position:center;background-color:var(--color-brand-dark);
  min-height:280px;display:flex;align-items:flex-end;padding:28px 24px 64px;
}
.hero-photo h1{color:#fff;font-size:clamp(22px,4vw,30px);font-weight:700;margin-bottom:6px;line-height:1.25;text-shadow:0 2px 10px rgba(0,0,0,.3);max-width:var(--page-max);margin-left:auto;margin-right:auto}
.hero-photo p{color:rgba(255,255,255,.92);font-size:14px;max-width:var(--page-max);margin-left:auto;margin-right:auto}

.pwa-install-btn{
  display:none;align-items:center;justify-content:center;gap:8px;
  margin:16px auto 0;background:#fff;color:var(--color-brand-dark);
  border:none;border-radius:999px;padding:10px 22px;font-size:14px;font-weight:600;
  cursor:pointer;box-shadow:var(--shadow-sm);
  transition:transform var(--t-fast),box-shadow var(--t-fast);
}
.pwa-install-btn.show{display:flex}
.pwa-install-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.pwa-install-btn:active{transform:scale(.97)}

.search-card-overlap{
  background:#fff;border-radius:var(--border-radius-xl);box-shadow:var(--shadow-md);
  padding:20px;margin-top:-48px;position:relative;z-index:2;
}
.search-card-overlap .search-bar{margin-bottom:10px}
.hero-cta-btn{
  width:100%;height:48px;border:none;border-radius:999px;cursor:pointer;
  background:var(--color-brand);color:#fff;font-size:15px;font-weight:600;
  display:flex;align-items:center;justify-content:center;gap:8px;
  transition:background var(--t-fast);
}
.hero-cta-btn:hover{background:var(--color-brand-dark)}
.hero-advanced-link{
  display:block;text-align:center;margin-top:12px;font-size:13px;
  color:var(--color-brand);text-decoration:none;font-weight:600;
}
.hero-advanced-link:hover{text-decoration:underline}

.browse-cats-title{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:28px 0 14px}
.browse-cats{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;-ms-overflow-style:none}
.browse-cats::-webkit-scrollbar{display:none}
.browse-cats .bcat{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  padding:9px 16px;border-radius:999px;border:1.5px solid var(--color-border-tertiary);
  background:#fff;white-space:nowrap;transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast);
}
.browse-cats .bcat:hover{border-color:var(--color-brand);transform:translateY(-1px)}
.browse-cats .bcat.active{border-color:var(--color-brand);background:var(--color-brand-light)}
.browse-cats .bcat-icon{display:none}
.browse-cats .bcat span{font-size:13px;font-weight:600;color:var(--color-text-primary)}
.browse-cats .bcat.active span{color:var(--color-brand-dark)}

@media (max-width:600px){
  .hero-photo{min-height:220px;padding:20px 16px 56px}
  .hero-inner{padding:0 16px !important}
  .search-card-overlap{padding:16px;margin-top:-40px}
}
/* ==================== FINE HERO FOTO ==================== */

/* ==================== HERO (legacy, ancora usato in altre viste) ==================== */
.hero{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#fbfcf7 0%,var(--color-background-primary) 100%);
  border-bottom:0.5px solid var(--color-border-tertiary);
  padding:36px 24px 26px;
}
.hero-inner{max-width:var(--page-max);margin:0 auto;position:relative}
.hero-route{position:absolute;top:-10px;right:-40px;width:52%;max-width:620px;height:100%;opacity:.14;pointer-events:none;z-index:0}
.hero h1{position:relative;font-size:clamp(20px,3vw,26px);font-weight:600;margin-bottom:6px;letter-spacing:-.01em;color:var(--color-text-primary)}
.hero p{position:relative;font-size:13px;color:var(--color-text-secondary);margin-bottom:18px}
.search-bar{position:relative;display:flex;gap:8px;align-items:center}
.search-bar input{
  flex:1;height:44px;border:0.5px solid var(--color-border-secondary);
  border-radius:999px;padding:0 18px;font-size:13px;
  background:var(--color-background-primary);color:var(--color-text-primary);outline:none;
  box-shadow:var(--shadow-xs);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.search-bar input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-lighter)}
.search-bar select{
  height:44px;border:0.5px solid var(--color-border-secondary);
  border-radius:999px;padding:0 14px;font-size:13px;
  background:var(--color-background-primary);color:var(--color-text-primary);outline:none;
  box-shadow:var(--shadow-xs);cursor:pointer;
}
.search-bar .btn-primary{height:44px;padding:0 20px;border-radius:999px}
.cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;position:relative}
.cat{
  background:#fff;border:1.5px solid var(--color-border-tertiary);
  border-radius:999px;padding:10px 18px;text-align:center;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);
}
.cat:hover{border-color:var(--color-brand);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.cat.active{border-color:var(--color-brand);background:var(--color-brand);box-shadow:var(--shadow-sm)}
.cat i{font-size:16px;color:var(--color-brand);display:inline-block;transition:transform var(--t-fast)}
.cat.active i{color:#fff}
.cat:hover i{transform:scale(1.08)}
.cat span{font-size:13px;font-weight:600;color:var(--color-text-primary)}
.cat.active span{color:#fff;font-weight:600}
.cat span{font-size:11px;color:var(--color-text-secondary)}


/* ==================== MAIN LAYOUT ==================== */
.main{max-width:var(--page-max);margin:0 auto;display:grid;grid-template-columns:216px 1fr;gap:20px;padding:20px 24px 48px;align-items:start}
.filters{border-radius:var(--border-radius-lg)}
.filters[open]{
  background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);
  padding:14px;box-shadow:var(--shadow-xs);
}
@media (min-width:861px){
  .filters{position:sticky;top:70px;max-height:calc(100vh - 90px);overflow-y:auto}
}
.filter-section{margin-bottom:14px}
.filter-label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.filter-section select,.filter-section input[type=range]{width:100%}
.filter-section input[type=range]{accent-color:var(--color-brand)}
.filter-row{display:flex;gap:6px;margin-top:6px}
.filter-row input{flex:1;width:0;height:32px;font-size:12px;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:0 8px;background:var(--color-background-primary);color:var(--color-text-primary)}
.price-range{font-size:12px;color:var(--color-text-secondary);margin-top:4px;text-align:center}
.checkbox-list{display:flex;flex-direction:column;gap:6px}
.checkbox-item{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer;color:var(--color-text-primary)}
.checkbox-item input{accent-color:var(--color-brand);width:16px;height:16px;flex-shrink:0;margin:0}

/* ==================== INIZIO SEZIONI A SCOMPARSA (account.php) ==================== */
.account-section{
  background:#ffffff;
  border:1.5px solid #e2e2da;
  border-radius:14px;
  margin-bottom:14px;
  overflow:hidden;
}
.account-section summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 22px;
  font-size:15px;
  font-weight:600;
  color:#1f2417;
  user-select:none;
  transition:background var(--t-fast);
}
.account-section summary::-webkit-details-marker{display:none}
.account-section summary:hover{background:#fafaf7}
.account-section summary span{display:flex;align-items:center;gap:9px}
.account-section summary span i{font-size:17px;color:var(--color-brand)}
.account-section-chevron{
  font-size:16px;
  color:var(--color-text-secondary);
  transition:transform .18s ease;
  flex-shrink:0;
}
.account-section[open] summary{border-bottom:1px solid #ece9df}
.account-section[open] .account-section-chevron{transform:rotate(180deg)}
.account-section-body{padding:4px 22px 22px}

.avatar-upload-row{
  display:flex;align-items:center;gap:16px;margin:6px 0 8px;
  padding:14px;background:var(--color-background-tertiary);border-radius:var(--border-radius-md);
}
.avatar-upload-title{font-size:12px;font-weight:600;color:var(--color-text-primary);margin:0 0 6px}
.avatar-upload-title span{font-weight:400;color:var(--color-text-secondary)}
.avatar-upload-btn i{font-size:13px;margin-right:2px}
/* ==================== FINE SEZIONI A SCOMPARSA ==================== */
.listings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px;flex-wrap:wrap}
.listings-header span{font-size:13px;color:var(--color-text-secondary)}
.listings-header select{height:32px;font-size:12px;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:0 8px;background:var(--color-background-primary);color:var(--color-text-primary)}
.listings{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}

/* ==================== CARD ANNUNCIO ==================== */
.card{
  background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);
  border-radius:var(--border-radius-xl);overflow:hidden;cursor:pointer;
  transition:border-color var(--t-fast),box-shadow var(--t-base),transform var(--t-base);
}
.card:hover{border-color:var(--color-brand);box-shadow:var(--shadow-md);transform:translateY(-3px)}
.card-img{height:130px;background:var(--color-background-secondary);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-base)}
.card:hover .card-img img{transform:scale(1.05)}
.card-img i{font-size:48px;color:var(--color-border-primary)}
.card-badge{position:absolute;top:6px;left:6px;font-size:10px;padding:3px 10px;border-radius:999px;font-weight:600;letter-spacing:.01em}
.badge-sell{background:var(--color-brand-light);color:var(--color-brand-dark)}
.badge-trade{background:#FBE3E0;color:#A3341F}
.badge-both{background:#FCEFD9;color:#8A5A00}
.badge-new{background:#FAEEDA;color:#633806}
.fav{
  position:absolute;top:6px;right:6px;background:rgba(255,255,255,.92);
  border:0.5px solid var(--color-border-tertiary);border-radius:50%;
  width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:var(--shadow-xs);transition:transform var(--t-fast),background var(--t-fast);
}
.fav:hover{transform:scale(1.08)}
.fav i{font-size:13px;color:var(--color-text-secondary)}
.fav.active i{color:var(--color-danger)}
.card-body{padding:11px 12px 13px}
.card-title{font-size:13px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-sub{font-size:11px;color:var(--color-text-secondary);margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-price{font-size:16px;font-weight:700;color:var(--color-brand)}
.card-location{font-size:11px;color:var(--color-text-tertiary);display:flex;align-items:center;gap:3px;margin-top:4px}

/* ==================== MODALE DETTAGLIO ==================== */
.detail-overlay{display:none;position:fixed;inset:0;background:rgba(20,22,12,.5);z-index:50;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}
.detail-overlay.open{display:flex;animation:fadeIn var(--t-base)}
.detail-modal{
  background:var(--color-background-primary);border-radius:var(--border-radius-xl);
  border:0.5px solid var(--color-border-tertiary);width:560px;max-width:100%;
  overflow:hidden;box-shadow:var(--shadow-lg);
  max-height:calc(100vh - 40px);overflow-y:auto;
  animation:modalIn var(--t-base) var(--ease);
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.detail-img{height:340px;background:var(--color-background-secondary);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.detail-close-btn{
  position:absolute;top:12px;left:12px;z-index:2;
  width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(20,22,12,.55);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:18px;backdrop-filter:blur(2px);transition:background var(--t-fast);
}
.detail-close-btn i{font-size:18px;color:#fff}

/* ==================== GALLERIA FOTO ANNUNCIO ==================== */
.gallery-wrap{position:relative;width:100%;height:100%;overflow:hidden}
.gallery-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(20,22,12,.5);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:18px;backdrop-filter:blur(2px);transition:background var(--t-fast);
}
.gallery-arrow:hover{background:rgba(20,22,12,.75)}
.gallery-arrow-prev{left:10px}
.gallery-arrow-next{right:10px}
.gallery-dots{
  position:absolute;bottom:10px;left:0;right:0;z-index:2;
  display:flex;justify-content:center;gap:6px;
}
.gallery-dots-inner{
  display:flex;align-items:center;gap:6px;
  background:rgba(20,22,12,.45);padding:5px 9px;border-radius:999px;backdrop-filter:blur(2px);
}
.gallery-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);border:1px solid rgba(0,0,0,.15);transition:background var(--t-fast),transform var(--t-fast)}
.gallery-dot.active{background:#fff;transform:scale(1.3)}
.gallery-counter{
  position:absolute;top:12px;right:12px;z-index:2;
  background:rgba(20,22,12,.55);color:#fff;font-size:11px;font-weight:600;
  padding:3px 9px;border-radius:999px;backdrop-filter:blur(2px);
}
/* ==================== FINE GALLERIA FOTO ANNUNCIO ==================== */
.detail-close-btn:hover{background:rgba(20,22,12,.75)}
#modal-media i{font-size:80px;color:var(--color-border-primary)}
.detail-body{padding:20px}
.detail-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}
.detail-title{font-size:19px;font-weight:600;letter-spacing:-.01em}
.detail-price{font-size:23px;font-weight:700;color:var(--color-brand)}
.specs-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.spec{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:9px 11px}
.spec-label{font-size:10px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}
.spec-val{font-size:13px;font-weight:600;margin-top:1px}
.seller{display:flex;align-items:center;gap:10px;border-top:0.5px solid var(--color-border-tertiary);padding-top:14px;margin-top:14px}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--color-brand-light);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--color-brand-dark);flex-shrink:0}
.seller-info{flex:1;min-width:0}
.seller-name{font-size:13px;font-weight:600}
.seller-meta{font-size:11px;color:var(--color-text-secondary)}
.detail-actions{display:flex;gap:8px;margin-top:16px}
.btn-contact{flex:1;background:var(--color-brand);color:#fff;border:none;border-radius:var(--border-radius-md);padding:10px;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--t-fast)}
.btn-contact:hover{background:var(--color-brand-dark)}
.btn-wishlist{background:transparent;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:10px 14px;font-size:13px;cursor:pointer;color:var(--color-text-primary);transition:background var(--t-fast),border-color var(--t-fast)}
.btn-wishlist:hover{background:var(--color-background-secondary)}
.btn-wishlist.active{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}
.close-btn{float:right;background:transparent;border:none;cursor:pointer;font-size:18px;color:var(--color-text-secondary);padding:0}

.stats-bar{display:flex;justify-content:center;gap:0;border-top:0.5px solid var(--color-border-tertiary);border-bottom:0.5px solid var(--color-border-tertiary);background:var(--color-background-primary)}
.stat-item{padding:10px 24px;text-align:center;border-right:0.5px solid var(--color-border-tertiary)}
.stat-item:last-child{border-right:none}
.stat-num{font-size:16px;font-weight:700;color:var(--color-brand)}
.stat-lbl{font-size:10px;color:var(--color-text-secondary);margin-top:1px}

/* ---- Pagine login / registrazione ---- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-background-tertiary);padding:20px}
.auth-card{background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:28px;width:340px;max-width:100%;box-shadow:var(--shadow-md)}
.auth-card h1{font-size:18px;font-weight:600;margin-bottom:14px}
.auth-card label, .account-section label{display:block;font-size:12px;color:var(--color-text-secondary);margin:10px 0 4px}
.auth-card input, .account-section input{width:100%;height:38px;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:0 10px;font-size:13px;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.auth-card input:focus, .account-section input:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-lighter)}
.auth-card select, .account-section select{width:100%;height:38px;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:0 10px;font-size:13px;outline:none;background:#fff;cursor:pointer;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.auth-card select:focus, .account-section select:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-lighter)}
.auth-error{background:var(--color-danger-bg);color:#8A2C2C;font-size:12px;padding:8px 10px;border-radius:var(--border-radius-md);margin-bottom:8px}
.auth-switch{font-size:12px;color:var(--color-text-secondary);margin-top:14px;text-align:center}
.auth-switch a{color:var(--color-brand);text-decoration:none;font-weight:600}

/* ---- Selettore a stelle per le recensioni ---- */
.star-rating{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;margin:4px 0 6px}
.star-rating input{display:none}
.star-rating label{font-size:30px;line-height:1;color:var(--color-border-secondary);cursor:pointer;padding:0 2px;transition:color var(--t-fast)}
.star-rating input:checked ~ label{color:var(--color-accent-warm)}
.star-rating label:hover,.star-rating label:hover ~ label{color:var(--color-accent-warm)}

/* ---- Visualizzazione stelle in sola lettura (profilo, elenco recensioni) ---- */
.stars-readonly{display:inline-flex;gap:1px;font-size:14px;color:var(--color-accent-warm)}
.stars-readonly .star-empty{color:var(--color-border-secondary)}

/* ---- Pannello di amministrazione ---- */
.admin-tabs{display:flex;gap:4px;margin-left:20px}
.admin-tab{color:rgba(255,255,255,.65);text-decoration:none;font-size:13px;padding:6px 12px;border-radius:var(--border-radius-md);transition:background var(--t-fast),color var(--t-fast)}
.admin-tab:hover{background:rgba(255,255,255,.08);color:#fff}
.admin-tab.active{background:rgba(255,255,255,.15);color:#fff;font-weight:600}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:22px}
.admin-stat-card{background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:16px;box-shadow:var(--shadow-xs)}
.admin-stat-num{font-size:22px;font-weight:700;color:var(--color-brand)}
.admin-stat-lbl{font-size:12px;color:var(--color-text-secondary);margin-top:2px}
.admin-table{width:100%;border-collapse:collapse;background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden;font-size:13px}
.admin-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);padding:10px 12px;border-bottom:0.5px solid var(--color-border-tertiary);background:var(--color-background-secondary)}
.admin-table td{padding:10px 12px;border-bottom:0.5px solid var(--color-border-tertiary);vertical-align:middle}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr{transition:background var(--t-fast)}
.admin-table tbody tr:hover{background:var(--color-background-tertiary)}
.admin-search{height:34px;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:0 12px;font-size:13px;width:260px;margin-bottom:14px}
.admin-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:var(--border-radius-sm);background:var(--color-brand-light);color:var(--color-brand-dark)}

/* ---- Promozione annunci ---- */
.promo-plans{display:flex;flex-direction:column;gap:8px}
.promo-plan{display:flex;align-items:center;gap:12px;background:var(--color-background-primary);border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-lg);padding:12px 14px;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast)}
.promo-plan:hover{box-shadow:var(--shadow-xs)}
.promo-plan:has(input:checked){border-color:var(--color-brand);background:var(--color-brand-light)}
.promo-plan.selected{border-color:var(--color-brand);background:var(--color-brand-light)}
.promo-plan input{accent-color:var(--color-brand);width:16px;height:16px;flex-shrink:0}
.promo-plan-body{flex:1}
.promo-plan-days{font-size:14px;font-weight:600}
.promo-plan-desc{font-size:11px;color:var(--color-text-secondary);margin-top:1px}
.promo-plan-price{font-size:15px;font-weight:700;color:var(--color-brand)}
.promoted-badge{background:#FAEEDA;color:#633806;font-size:10px;font-weight:600;padding:3px 8px;border-radius:var(--border-radius-sm);display:inline-flex;align-items:center;gap:3px}

/* ---- Pagina "I miei annunci" ---- */
.my-listings{display:flex;flex-direction:column;gap:10px}
.my-listing-row{background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:12px;display:flex;align-items:center;gap:14px;transition:box-shadow var(--t-fast)}
.my-listing-row:hover{box-shadow:var(--shadow-xs)}
.my-listing-thumb{width:64px;height:48px;border-radius:var(--border-radius-md);background:var(--color-background-secondary);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.my-listing-thumb img{width:100%;height:100%;object-fit:cover}
.my-listing-thumb i{font-size:22px;color:var(--color-border-primary)}
.my-listing-info{flex:1;min-width:0}
.my-listing-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.my-listing-meta{font-size:12px;color:var(--color-text-secondary);margin-top:2px}
.my-listing-date{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}
.my-listing-actions{display:flex;gap:8px;flex-shrink:0}
.my-listing-actions form{margin:0}

/* ---- Messaggistica ---- */
.conv-list{display:flex;flex-direction:column;gap:8px}
.conv-row{background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:12px;display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.conv-row:hover{border-color:var(--color-brand);box-shadow:var(--shadow-xs)}
.conv-thumb{width:48px;height:48px;border-radius:50%;background:var(--color-background-secondary);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.conv-thumb img{width:100%;height:100%;object-fit:cover}
.conv-thumb i{font-size:20px;color:var(--color-border-primary)}
.conv-info{flex:1;min-width:0}
.conv-top{display:flex;gap:5px;align-items:baseline;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-user{font-size:13px;font-weight:600}
.conv-listing{font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis}
.conv-preview{font-size:12px;color:var(--color-text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-badge{background:var(--color-brand);color:#fff;font-size:11px;font-weight:600;border-radius:10px;padding:2px 8px;flex-shrink:0}

.conv-wrap{max-width:600px;margin:20px auto;padding:0 20px;display:flex;flex-direction:column;height:calc(100vh - 110px)}
.conv-header{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:0.5px solid var(--color-border-tertiary)}
.conv-header-thumb{width:40px;height:40px;border-radius:var(--border-radius-md);object-fit:cover}
.conv-header-user{font-size:14px;font-weight:600}
.conv-header-listing{font-size:12px;color:var(--color-text-secondary)}
.conv-thread{flex:1;overflow-y:auto;padding:14px 4px;display:flex;flex-direction:column;gap:8px}
.msg-bubble{max-width:75%;padding:9px 13px;border-radius:14px;font-size:13px;line-height:1.45}
.msg-theirs{align-self:flex-start;background:var(--color-background-secondary);color:var(--color-text-primary);border-bottom-left-radius:3px}
.msg-mine{align-self:flex-end;background:var(--color-brand);color:#fff;border-bottom-right-radius:3px}
.msg-time{font-size:10px;opacity:.7;margin-top:3px;text-align:right}
.conv-form{display:flex;gap:8px;padding-top:12px;border-top:0.5px solid var(--color-border-tertiary)}
.conv-form textarea{flex:1;resize:none;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);padding:9px 11px;font-size:13px;font-family:inherit;outline:none;transition:border-color var(--t-fast)}
.conv-form textarea:focus{border-color:var(--color-brand)}
.conv-form button{align-self:flex-end;height:38px}

/* ---- Pagina profilo venditore ---- */
.profile-header{display:flex;align-items:center;gap:16px;background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:18px;box-shadow:var(--shadow-xs)}
.profile-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}

/* ---- Toast notifica nuovo messaggio ---- */
#bs-toast{position:fixed;bottom:20px;right:20px;z-index:200;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s,transform .25s}
#bs-toast.show{opacity:1;transform:translateY(0);pointer-events:auto}
.bs-toast-inner{display:flex;align-items:center;gap:8px;background:var(--color-brand);color:#fff;font-size:13px;font-weight:600;padding:10px 16px;border-radius:var(--border-radius-lg);text-decoration:none;box-shadow:var(--shadow-lg)}

/* ---- Pannello filtri collassabile (details/summary) ---- */
.filters-summary{
  cursor:pointer;font-size:13px;font-weight:600;list-style:none;user-select:none;
  display:inline-flex;align-items:center;gap:6px;width:fit-content;
  border:1.5px solid var(--color-border-tertiary);border-radius:999px;
  padding:9px 16px;background:#fff;transition:border-color var(--t-fast);
}
.filters-summary:hover{border-color:var(--color-brand)}
.filters-summary::-webkit-details-marker{display:none}
.filters-summary i{transition:transform var(--t-fast)}
.filters[open] .filters-summary i{transform:rotate(180deg)}
.filters .filter-section:first-of-type{margin-top:14px}

/* ---- Tabelle admin: scroll orizzontale invece di rompere il layout ---- */
.admin-table-wrap{width:100%;overflow-x:auto;border-radius:var(--border-radius-lg)}
.admin-table-wrap .admin-table{min-width:640px}

/* ============================================
   RESPONSIVE — tablet grande (≤1180px): la griglia principale
   si restringe leggermente prima di impilarsi del tutto
   ============================================ */
@media (max-width:1180px){
  .main{grid-template-columns:190px 1fr}
  .listings{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
}

/* ============================================
   RESPONSIVE — tablet (≤860px)
   ============================================ */
.mobile-publish-bar{display:none}

@media (max-width:860px){
  .main{grid-template-columns:1fr;gap:14px}
  .filters{order:-1;position:static;max-height:none}
  .listings{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .detail-modal{width:94%}
  .conv-wrap{max-width:100%}
  .admin-tabs{margin-left:10px;gap:0}
  .admin-tab{padding:6px 8px;font-size:12px}
  .hero-route{opacity:.08}
  .admin-exit-btn{display:flex}

  .mobile-menu-btn{display:flex;align-items:center;justify-content:center}
  .mobile-back-btn{display:flex;align-items:center;justify-content:center}
  .mobile-magazine-btn{
    display:flex;align-items:center;justify-content:center;margin-left:auto;
    width:36px;height:36px;border-radius:50%;color:var(--color-brand);font-size:19px;
    text-decoration:none;flex-shrink:0;
  }
  .mobile-messages-btn{
    display:flex;align-items:center;justify-content:center;position:relative;
    width:36px;height:36px;border-radius:50%;color:var(--color-brand);font-size:19px;
    text-decoration:none;flex-shrink:0;margin-left:2px;
  }
  .mobile-messages-btn .nav-badge{
    position:absolute;top:-1px;right:-3px;min-width:16px;height:16px;
    display:flex;align-items:center;justify-content:center;
    font-size:9px;line-height:1;padding:0 3px;margin-left:0;
  }
  .logo{flex-shrink:0}
  .nav:not(.nav-home) .nav-inner .logo{position:absolute;left:50%;transform:translateX(-50%)}
  .nav-search,.nav-btns{display:none}
  .mobile-menu-panel{
    position:fixed;top:52px;left:0;right:0;z-index:39;
    background:#fff;border-bottom:0.5px solid var(--color-border-tertiary);
    box-shadow:var(--shadow-md);max-height:calc(100vh - 52px);overflow-y:auto;
    flex-direction:column;padding:8px 0;
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;
  }
  .mobile-menu-panel.open{display:flex}
  .mobile-menu-panel a{
    display:flex;align-items:center;gap:10px;padding:12px 20px;font-size:14px;
    color:var(--color-text-primary);text-decoration:none;
  }
  .mobile-menu-panel a:active{background:var(--color-background-secondary)}
  .mobile-menu-panel a i{font-size:16px;color:var(--color-brand);width:18px;text-align:center}
  .mobile-menu-panel .nav-badge{margin-left:auto}
  .mobile-menu-group-label{
    font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;
    letter-spacing:.05em;padding:14px 20px 4px;
  }

  .mmp-top{padding:16px 20px 4px;display:flex;flex-direction:column;gap:10px}
  .mobile-menu-panel a.mmp-btn-primary{
    display:flex;align-items:center;justify-content:center;height:46px;border-radius:999px;
    background:var(--color-brand);color:#fff;font-weight:700;font-size:14.5px;text-decoration:none;
  }
  .mmp-btn-outline{
    display:flex;align-items:center;justify-content:center;height:46px;border-radius:999px;
    border:1.5px solid var(--color-brand);color:var(--color-brand-dark);font-weight:700;font-size:14.5px;text-decoration:none;
  }
  .mmp-auth-row{gap:8px}
  .mmp-auth-row a{color:var(--color-brand-dark);text-decoration:none;font-weight:700}
  .mmp-auth-row span{color:var(--color-border-tertiary)}
  .mobile-menu-panel a.mmp-help-link{
    display:flex;justify-content:center;text-align:center;padding:8px 20px 4px;color:var(--color-brand-dark);
    font-size:13.5px;font-weight:600;text-decoration:none;
  }
  .mmp-divider{height:1px;background:var(--color-border-tertiary);margin:14px 0}
  .mmp-section-label{font-size:13px;font-weight:700;color:var(--color-text-primary);padding:2px 20px 8px}
  .mobile-menu-panel a.mmp-cat-row{padding:13px 20px;border-bottom:1px solid var(--color-background-secondary)}
  .mobile-menu-panel a.mmp-cat-row i{font-size:18px}
}

/* ============================================
   RESPONSIVE — smartphone (≤600px)
   ============================================ */
@media (max-width:600px){
  .nav{padding:0 14px}
  .nav-inner{gap:10px}
  .nav-search{display:none}
  .nav-btns{
    flex-wrap:nowrap;overflow-x:auto;gap:6px;max-width:none;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;
    padding:8px 0;margin:0 -14px;padding-left:14px;padding-right:14px;
  }
  .nav-btns::-webkit-scrollbar{display:none}
  .btn-ghost{padding:7px 10px;min-height:32px}
  .btn-ghost .lbl{display:none}
  .btn-primary{padding:7px 12px;font-size:12.5px;white-space:nowrap}
  .btn-txt-short{display:inline}
  .btn-txt-full{display:none}

  .nav-secondary-group{display:none}
  .nav-hamburger{
    display:inline-flex;align-items:center;justify-content:center;
    width:32px;height:32px;border-radius:var(--border-radius-md);flex-shrink:0;
    border:0.5px solid var(--color-border-secondary);background:#fff;cursor:pointer;
  }
  .nav-secondary-group.open{
    display:flex;flex-direction:column;gap:2px;
    position:absolute;top:100%;right:14px;margin-top:8px;
    background:#fff;border:0.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);
    box-shadow:var(--shadow-md);min-width:190px;padding:6px;z-index:60;
  }
  .nav-secondary-group.open .btn-ghost{
    justify-content:flex-start;width:100%;border:none;padding:9px 10px;min-height:auto;
  }
  .nav-secondary-group.open .btn-ghost .lbl{display:inline}

  .hero{padding:22px 16px 18px}
  .hero-route{width:70%;opacity:.10}
  .hero h1{font-size:19px}
  .hero p{font-size:12px;margin-bottom:14px}

  .search-bar{flex-direction:row;align-items:stretch;gap:8px}
  .search-bar input,.search-bar select{
    flex:1;min-width:0;height:48px;font-size:14.5px;padding:0 16px;
    border-radius:var(--border-radius-md);border-width:1px;
  }
  .search-bar .btn-primary{
    flex-shrink:0;height:48px;font-size:14px;font-weight:600;
    justify-content:center;padding:0 18px;
  }

  .cats{
    display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;
    margin:18px -16px 0;padding:2px 16px 4px;
    scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;
  }
  .cats::-webkit-scrollbar{display:none}
  .cat{flex:0 0 auto;padding:9px 16px;scroll-snap-align:start}
  .cat i{font-size:15px}
  .cat span{font-size:12.5px;white-space:nowrap}

  .stats-bar{flex-wrap:wrap}
  .stat-item{padding:8px 16px}

  .main{padding:14px 14px 32px;gap:12px}
  .listings{grid-template-columns:repeat(2,1fr);gap:10px}
  .card-img{height:100px}
  .card-body{padding:9px}

  .detail-overlay{padding:0}
  .detail-modal{width:100%;max-width:100%;border-radius:0;max-height:100vh;overflow-y:auto;animation:none}
  .detail-top{flex-direction:column;gap:8px}
  .detail-top>div:last-child{text-align:left}
  .specs-grid{grid-template-columns:1fr 1fr}
  .detail-actions{flex-wrap:wrap;position:sticky;bottom:0;background:var(--color-background-primary);padding-top:10px;margin-top:12px}
  .btn-contact{width:100%}

  .auth-card{padding:20px;width:100%}

  .my-listing-row{flex-wrap:wrap}
  .my-listing-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;margin-top:6px}

  .profile-header{flex-wrap:wrap}
  .profile-info{flex:1 1 100%;min-width:0}
  .profile-actions{width:100%;margin-top:4px}
  .conv-row{flex-wrap:wrap}

  .promo-plan{flex-wrap:wrap}

  .admin-tabs{width:100%;overflow-x:auto;margin-left:0;scrollbar-width:none}
  .admin-tabs::-webkit-scrollbar{display:none}
  .admin-stats{grid-template-columns:repeat(2,1fr)}

  #bs-toast{left:12px;right:12px;bottom:12px}
  .bs-toast-inner{justify-content:center}
}

/* ============================================
   RESPONSIVE — smartphone piccolo (≤380px)
   ============================================ */
@media (max-width:380px){
  .listings{grid-template-columns:1fr 1fr;gap:8px}
  .cat{padding:8px 14px}
  .hero h1{font-size:17px}
  .btn-ghost{padding:6px 8px}
}

/* ============================================
   WIZARD DI PUBBLICAZIONE (publish.php)
   ============================================ */
.wizard-wrap{max-width:640px;margin:32px auto 60px;padding:0 20px}
.wizard-progress{display:flex;align-items:center;gap:8px;margin-bottom:22px}
.wizard-progress .step-dot{
  width:24px;height:24px;border-radius:50%;flex-shrink:0;
  background:var(--color-background-secondary);color:var(--color-text-secondary);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;
  transition:background var(--t-fast),color var(--t-fast);
}
.wizard-progress .step-dot.active{background:var(--color-brand);color:#fff}
.wizard-progress .step-dot.done{background:var(--color-brand-light);color:var(--color-brand-dark)}
.wizard-progress .step-label{font-size:12px;color:var(--color-text-secondary);white-space:nowrap}
.wizard-progress .step-line{flex:1;height:1px;background:var(--color-border-secondary);min-width:12px}

.wizard-step{animation:fadeIn var(--t-base)}

.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.type-card{
  background:var(--color-background-secondary);border:1px solid var(--color-border-tertiary);
  border-radius:var(--border-radius-lg);padding:22px 14px;text-align:center;cursor:pointer;
  transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);
}
.type-card:hover{border-color:var(--color-brand);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.type-card i{font-size:30px;color:var(--color-brand);display:block;margin-bottom:10px}
.type-card-label{font-size:14px;font-weight:700;margin-bottom:4px}
.type-card-desc{font-size:11px;color:var(--color-text-secondary);line-height:1.45}

.wizard-cats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.wizard-cats .cat{border-radius:var(--border-radius-lg);padding:12px 10px;text-align:left;display:flex;flex-direction:column;gap:2px}
.wizard-cats .cat i{font-size:22px;margin-bottom:2px}
.wizard-cats .cat.active{background:var(--color-brand-light)}
.wizard-cats .cat.active i,.wizard-cats .cat.active span{color:var(--color-brand-dark)}
.cat-desc{display:block;font-size:10px;color:var(--color-text-tertiary);line-height:1.35;font-weight:400}

.wizard-summary{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:var(--color-brand-lighter);border:0.5px solid var(--color-border-tertiary);
  border-radius:var(--border-radius-md);padding:9px 12px;font-size:12px;color:var(--color-brand-dark);
  margin-bottom:18px;
}
.wizard-summary strong{font-weight:700}
.wizard-summary a{margin-left:auto;color:var(--color-brand-dark);font-weight:600;text-decoration:underline;flex-shrink:0}

.wizard-actions{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:10px}
.wizard-back{font-size:12px;color:var(--color-text-secondary);text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.wizard-back:hover{color:var(--color-brand-dark)}

.wizard-section-title{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--color-brand-dark);margin:24px 0 4px;padding-top:16px;
  border-top:1px solid var(--color-border-tertiary);
  display:flex;align-items:center;gap:6px;
}
.wizard-section-title i{font-size:14px}
.wizard-section-title:first-of-type{margin-top:0;padding-top:0;border-top:none}

.price-input-wrap{
  display:flex;align-items:center;border:0.5px solid var(--color-border-secondary);
  border-radius:var(--border-radius-md);overflow:hidden;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.price-input-wrap:focus-within{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-lighter)}
.price-input-wrap span{
  padding:0 10px;font-size:13px;color:var(--color-text-secondary);
  border-right:0.5px solid var(--color-border-secondary);align-self:stretch;display:flex;align-items:center;
  background:var(--color-background-tertiary);
}
.price-input-wrap input{border:none!important;box-shadow:none!important;flex:1;min-width:0}

.field-with-counter{position:relative}
.field-with-counter input,.field-with-counter textarea{padding-right:52px!important}
.field-counter,.field-counter-max{
  position:absolute;font-size:10.5px;color:var(--color-text-secondary);
  pointer-events:none;
}
.field-with-counter:has(input) .field-counter,
.field-with-counter:has(input) .field-counter-max{top:50%;transform:translateY(-50%)}
.field-with-counter:has(textarea) .field-counter,
.field-with-counter:has(textarea) .field-counter-max{bottom:9px}
.field-counter{right:33px}
.field-counter-max{right:11px}

.wizard-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wizard-row > div > label{margin-top:10px}

.wizard-textarea{
  width:100%;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);
  padding:9px 11px;font-size:13px;font-family:inherit;line-height:1.5;resize:vertical;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.wizard-textarea:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-lighter)}

.upload-dropzone{
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  gap:5px;padding:26px 16px;margin-top:8px;
  border:1.5px dashed var(--color-border-secondary);border-radius:var(--border-radius-md);
  cursor:pointer;background:var(--color-background-tertiary);
  transition:border-color .15s ease,background .15s ease;
}
.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:var(--color-brand);background:var(--color-brand-lighter)}
.upload-dropzone i{font-size:24px;color:var(--color-brand)}
.upload-dropzone-text{font-size:13px;color:var(--color-text-primary)}
.upload-dropzone-text strong{color:var(--color-brand-dark);font-weight:700}
.upload-dropzone-hint{font-size:11px;color:var(--color-text-secondary)}
.upload-filename{font-size:12px;color:var(--color-brand-dark);margin-top:6px;font-weight:600}

@media (max-width:520px){
  .wizard-row{grid-template-columns:1fr}
}

.photo-preview-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-top:12px;
}
.photo-preview-card{
  position:relative;aspect-ratio:1;border-radius:var(--border-radius-md);overflow:hidden;
  border:1px solid var(--color-border-tertiary);background:var(--color-background-tertiary);
}
.photo-preview-card img{width:100%;height:100%;object-fit:cover;display:block}
.photo-preview-card.is-cover{border:2px solid var(--color-brand)}
.photo-cover-badge{
  position:absolute;bottom:0;left:0;right:0;background:var(--color-brand);color:#fff;
  font-size:10px;font-weight:700;text-align:center;padding:3px 2px;display:flex;align-items:center;
  justify-content:center;gap:3px;
}
.photo-cover-badge i{font-size:11px}
.photo-make-cover,.photo-remove{
  position:absolute;width:22px;height:22px;border-radius:50%;border:none;
  background:rgba(20,22,12,.6);color:#fff;cursor:pointer;display:flex;align-items:center;
  justify-content:center;font-size:13px;transition:background .15s ease;
}
.photo-make-cover:hover,.photo-remove:hover{background:rgba(20,22,12,.85)}
.photo-make-cover{bottom:5px;left:5px}
.photo-remove{top:5px;right:5px}

@media (max-width:600px){
  .wizard-wrap{margin:18px auto 40px;padding:0 14px}
  .type-grid{grid-template-columns:1fr}
  .wizard-cats{grid-template-columns:1fr}
}

/* ==================== INIZIO AUTOCOMPLETE CITTA/PROVINCIA ==================== */
.city-suggest-list{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  background:#ffffff;
  border:1.5px solid #e2e2da;
  border-radius:10px;
  margin-top:4px;
  max-height:220px;
  overflow-y:auto;
  z-index:50;
  box-shadow:0 8px 20px rgba(31,36,23,.14);
}
.city-suggest-list.show{
  display:block;
}
.city-suggest-item{
  padding:9px 13px;
  font-size:13px;
  cursor:pointer;
}
.city-suggest-item:hover,
.city-suggest-item.active{
  background:#f5f5f0;
}
/* ==================== FINE AUTOCOMPLETE CITTA/PROVINCIA ==================== */

/* ==================== INIZIO MECCANICO DI QUARTIERE (servizi e prezzi) ==================== */
/* Interruttore di attivazione del servizio, al posto della checkbox nativa (troppo grande e fuori stile) */
.repair-toggle-row{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  cursor:pointer;padding:2px 0;
}
.repair-toggle-row span{font-size:13px;color:var(--color-text-primary);line-height:1.45}
.switch{position:relative;display:inline-block;width:42px;height:24px;flex-shrink:0}
.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
.switch-track{
  position:absolute;inset:0;background:var(--color-border-secondary);border-radius:999px;
  transition:background var(--t-fast);
}
.switch-thumb{
  position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:var(--shadow-xs);transition:transform var(--t-fast);
}
.switch input:checked ~ .switch-track{background:var(--color-brand)}
.switch input:checked ~ .switch-track .switch-thumb{transform:translateX(18px)}
.switch input:focus-visible ~ .switch-track{outline:2px solid var(--color-brand);outline-offset:2px}

.repair-mode-options{
  display:flex;flex-direction:column;gap:8px;margin:8px 0 4px;
}
.repair-mode-options label{
  display:flex;align-items:center;gap:10px;font-size:13px;font-weight:400;
  color:var(--color-text-primary);cursor:pointer;
  padding:10px 12px;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);
  transition:border-color var(--t-fast),background var(--t-fast);
}
.repair-mode-options label:has(input:checked){border-color:var(--color-brand);background:var(--color-brand-lighter)}
.repair-mode-options input{width:16px;height:16px;flex-shrink:0;margin:0;accent-color:var(--color-brand)}

.service-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.service-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 12px;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);
  transition:border-color var(--t-fast),background var(--t-fast);
}
.service-row:has(.service-row-check input:checked){border-color:var(--color-brand);background:var(--color-brand-lighter)}
.service-row-check{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer;flex:1;min-width:0}
.service-row-check input{width:16px;height:16px;flex-shrink:0;margin:0;accent-color:var(--color-brand)}
.service-row-check span{line-height:1.35}
.service-row-price-wrap{display:flex;align-items:center;gap:4px;flex-shrink:0;width:78px}
.service-row-price-wrap span{font-size:13px;color:var(--color-text-secondary)}
.service-row-price-wrap .service-row-price{
  width:100%;height:32px;border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);
  padding:0 6px;font-size:13px;text-align:right;
}
.service-row-price-wrap .service-row-price:disabled{background:var(--color-background-tertiary);color:var(--color-text-secondary)}

.service-row-custom{border-color:var(--color-border-secondary);background:var(--color-background-secondary,#fafaf7)}
.service-row-custom-name{display:flex;align-items:center;gap:9px;flex:1;min-width:0}
.service-row-custom-name i{font-size:15px;color:var(--color-brand);flex-shrink:0}
.service-row-custom-name .service-row-custom-input{
  flex:1 1 auto;min-width:0;width:100%;box-sizing:border-box;
  border:1px solid transparent;background:transparent;font-size:13px;
  color:var(--color-text-primary);height:30px;padding:0 6px;border-radius:6px;outline:none;
}
.service-row-custom-input::placeholder{color:var(--color-text-secondary)}
.service-row-custom-name .service-row-custom-input:hover{border-color:var(--color-border-secondary)}
.service-row-custom-name .service-row-custom-input:focus{border-color:var(--color-brand);background:#fff}
.service-row-custom:has(.service-row-custom-input:focus){border-color:var(--color-brand)}
.service-row-remove{
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;flex-shrink:0;border:none;background:transparent;
  color:var(--color-text-secondary);cursor:pointer;border-radius:50%;
  transition:background var(--t-fast),color var(--t-fast);
}
.service-row-remove:hover{background:#fbe6e6;color:#c0392b}

.service-add-btn{
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;height:38px;margin-top:10px;
  background:transparent;border:1.5px dashed var(--color-border-secondary);
  border-radius:var(--border-radius-md);color:var(--color-brand);
  font-size:13px;font-weight:600;cursor:pointer;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.service-add-btn:hover{background:var(--color-brand-lighter);border-color:var(--color-brand)}
/* ==================== FINE MECCANICO DI QUARTIERE ==================== */

/* ==================== INIZIO MAPPA MECCANICI DI QUARTIERE ==================== */
#mechanicsMap{
  width:100%;height:65vh;min-height:420px;
  border-radius:var(--border-radius-lg);border:0.5px solid var(--color-border-tertiary);
  box-shadow:var(--shadow-xs);
}
.mechanic-marker{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:var(--color-brand);box-shadow:var(--shadow-sm);
}
.mechanic-marker i{transform:rotate(45deg);color:#fff;font-size:16px}

.mm-popup{min-width:200px;font-family:var(--font-sans)}
.mm-popup h3{font-size:14px;font-weight:700;margin:0 0 4px;color:var(--color-text-primary)}
.mm-loc{font-size:12px;color:var(--color-text-secondary);margin:0 0 2px;display:flex;align-items:center;gap:4px}
.mm-mode{font-size:11px;color:var(--color-brand-dark);margin:0 0 8px;font-weight:600}
.mm-services{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:4px}
.mm-services li{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:4px 0;border-bottom:1px solid var(--color-border-tertiary)}
.mm-services li:last-child{border-bottom:none}
.mm-services strong{color:var(--color-brand-dark);white-space:nowrap}
.mm-empty{font-size:12px;color:var(--color-text-secondary);margin:8px 0}
.mm-contact{display:block;text-align:center;margin-top:10px;text-decoration:none}

.leaflet-popup-content-wrapper{border-radius:var(--border-radius-md)}
/* ==================== FINE MAPPA MECCANICI DI QUARTIERE ==================== */

/* ==================== INIZIO AZIONI RAPIDE IN HOME ==================== */
/* Due percorsi con lo stesso peso visivo: vendere/scambiare e trovare un meccanico.
   La terza azione principale (cercare una bici) è già coperta dall'hero sopra. */
.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px;position:relative}
.quick-action-card{
  display:flex;align-items:center;gap:14px;
  background:var(--color-background-primary);
  border:0.5px solid var(--color-border-tertiary);
  border-radius:var(--border-radius-lg);padding:16px 18px;
  text-decoration:none;color:var(--color-text-primary);
  box-shadow:var(--shadow-xs);
  transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);
}
.quick-action-card:hover{border-color:var(--color-brand);box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.quick-action-icon{
  flex-shrink:0;width:42px;height:42px;border-radius:var(--border-radius-md);
  background:var(--color-brand-light);color:var(--color-brand);
  display:flex;align-items:center;justify-content:center;font-size:19px;
}
.quick-action-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.quick-action-text strong{font-size:14px;color:var(--color-text-primary)}
.quick-action-text span{font-size:12px;color:var(--color-text-secondary)}
.quick-action-arrow{color:var(--color-text-tertiary);font-size:18px;flex-shrink:0}

@media (max-width:600px){
  .quick-actions{grid-template-columns:1fr;gap:10px}
  .quick-action-card{padding:13px 14px}
}
/* ==================== FINE AZIONI RAPIDE IN HOME ==================== */

/* ==================== INIZIO UPLOAD FOTO PROFILO ==================== */
.avatar-upload-circle{
  flex-shrink:0;width:64px;height:64px;border-radius:50%;
  background:var(--color-background-tertiary) center/cover no-repeat;
  border:1.5px dashed var(--color-border-secondary);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:border-color .15s ease;
}
.avatar-upload-circle:hover{border-color:var(--color-brand)}
.avatar-upload-circle i{font-size:22px;color:var(--color-text-secondary)}
.avatar-upload-btn{
  display:inline-block;font-size:12.5px;font-weight:600;color:var(--color-brand-dark);
  border:0.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);
  padding:6px 12px;cursor:pointer;transition:border-color .15s ease,background .15s ease;
}
.avatar-upload-btn:hover{border-color:var(--color-brand);background:var(--color-brand-lighter)}

.avatar-photo{
  border-radius:50%;object-fit:cover;display:block;
}
/* ==================== FINE UPLOAD FOTO PROFILO ==================== */

/* ==================== BLOG ==================== */
.blog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:22px;
  margin-top:8px;
}
.blog-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #e2e2da;
  border-radius:14px;
  overflow:hidden;
  text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease;
}
.blog-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(31,36,23,.08);
}
.blog-card-img{
  height:150px;
  background-size:cover;
  background-position:center;
  background-color:var(--info-bg);
}
.blog-card-img-placeholder{
  display:flex;align-items:center;justify-content:center;
  font-size:28px;color:var(--info-green);
}
.blog-card-body{padding:16px}
.blog-card-date{
  font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  color:var(--info-green);margin-bottom:6px;
}
.blog-card-body h3{
  margin:0 0 6px;font-size:15px;color:var(--info-dark);line-height:1.35;
}
.blog-card-body p{
  margin:0;font-size:13px;color:#5c6152;line-height:1.55;
}
.blog-article-body p{
  font-size:15.5px;line-height:1.8;color:#2c3020;margin:0 0 20px;
}
/* ==================== FINE BLOG ==================== */
