/*
Theme Name: FixLink
Author: FixLink
Description: FixLink v0.9.1 - correzione JavaScript valutazioni e chiusura incarico.
Version: 0.17.2
*/
:root{--yellow:#FFD400;--navy:#0B1726;--muted:#667085;--bg:#F5F7FA;--border:#E4E7EC;--green:#20A65A;--red:#B42318;--shadow:0 15px 40px rgba(11,23,38,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:#17202B;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.55}a{text-decoration:none;color:inherit}.wrap{width:min(1220px,calc(100% - 32px));margin:auto}
.site-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.96);border-bottom:1px solid var(--border)}.nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:950;font-size:1.3rem;color:var(--navy)}.menu{display:flex;gap:18px;font-size:.94rem;font-weight:780;color:#344054}.header-actions{display:flex;align-items:center;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:999px;border:1px solid transparent;font-weight:850;cursor:pointer}.btn-yellow{background:var(--yellow);color:var(--navy)}.btn-dark{background:var(--navy);color:#fff}.btn-white{background:#fff;border-color:var(--border);color:var(--navy)}.btn-danger{background:#FEF3F2;color:var(--red);border-color:#FECDCA}
.user-pill{display:none;gap:8px;align-items:center;font-size:.88rem;font-weight:780}.user-pill.show{display:flex}.logout-link{border:0;background:none;cursor:pointer;color:var(--muted)}
.hero,.page-hero{background:#fff}.hero{padding:54px 0}.page-hero{padding:44px 0 22px}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}.kicker{display:inline-block;background:#FFF3A8;color:var(--navy);padding:8px 13px;border-radius:999px;font-weight:850;font-size:.9rem}h1{margin:16px 0 14px;font-size:clamp(2.65rem,5vw,4.5rem);line-height:.98;letter-spacing:-.05em;color:var(--navy)}.lead{color:var(--muted);font-size:1.08rem;max-width:740px}
.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}.action{padding:22px;border:1px solid var(--border);border-radius:24px;background:#fff;box-shadow:var(--shadow)}.action.primary{background:var(--yellow);border-color:var(--yellow)}.action strong{display:block;color:var(--navy);font-size:1.15rem}.action span{color:var(--muted);font-size:.92rem}
.section{padding:58px 0}.section-title{margin:0 0 8px;color:var(--navy);font-size:clamp(2rem,4vw,3rem)}.section-sub{margin:0;color:var(--muted)}.card,.form-card,.side-card,.auth-card,.map-card{background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow)}.card,.form-card,.side-card,.auth-card{padding:22px}.map-card{padding:13px}
#home-map,#requests-map,.request-map,.offer-map{height:430px;border-radius:18px;overflow:hidden;background:#EAF0F5}.map-head{display:flex;justify-content:space-between;gap:12px;padding:4px 4px 12px}.map-head span{font-size:.86rem;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.list{display:grid;gap:12px}.request-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:16px}.request-card h3{margin:5px 0 8px;color:var(--navy)}.meta{color:var(--muted);font-size:.88rem}.badges{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#F2F4F7;color:#475467;font-size:.75rem;font-weight:800}.badge.open{background:#ECFDF3;color:#166534}.badge.progress{background:#EFF8FF;color:#175CD3}.badge.closed{background:#F2F4F7;color:#475467}.empty{padding:18px;border:1px dashed #CBD5E1;border-radius:16px;color:var(--muted);background:#FAFBFC}
.form-layout{display:grid;grid-template-columns:1fr .72fr;gap:22px;padding:28px 0 70px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field label{font-weight:820;color:var(--navy)}.field input,.field select,.field textarea{padding:13px 14px;border:1px solid #D0D5DD;border-radius:14px;font:inherit}.field textarea{min-height:120px}.choice{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice label{border:1px solid var(--border);border-radius:16px;padding:14px}
.message{display:none;margin-top:15px;padding:13px 15px;border-radius:14px}.message.show{display:block}.message.ok{background:#ECFDF3;color:#166534}.message.error{background:#FEF3F2;color:#B42318}.message.info{background:#FFF8D8;color:#6B5300}
.auth-wrap{width:min(560px,calc(100% - 32px));margin:55px auto 90px}.footer{padding:34px 0 48px;color:var(--muted)}.footer-inner{border-top:1px solid var(--border);padding-top:24px;display:flex;justify-content:space-between}
@media(max-width:950px){.menu{display:none}.hero-grid,.grid-2,.form-layout{grid-template-columns:1fr}}@media(max-width:700px){.hero-actions,.choice{grid-template-columns:1fr}#home-map,#requests-map,.request-map,.offer-map{height:350px}}


/* Chat FixLink */
.chat-shell{max-width:860px;margin:0 auto}
.chat-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.chat-title{margin:0;color:var(--navy)}
.chat-sub{color:var(--muted);font-size:.9rem}
.chat-box{height:min(62vh,620px);overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:24px;padding:18px;box-shadow:var(--shadow)}
.chat-empty{color:var(--muted);text-align:center;padding:42px 16px}
.chat-row{display:flex;margin:9px 0}
.chat-row.mine{justify-content:flex-end}
.chat-bubble{max-width:min(76%,620px);padding:11px 14px;border-radius:18px 18px 18px 5px;background:#F2F4F7;color:#17202B}
.chat-row.mine .chat-bubble{background:var(--yellow);border-radius:18px 18px 5px 18px}
.chat-meta{font-size:.72rem;color:#667085;margin-top:5px}
.chat-form{display:flex;gap:10px;margin-top:12px}
.chat-form textarea{flex:1;min-height:54px;max-height:140px;resize:vertical;border:1px solid #D0D5DD;border-radius:18px;padding:14px;font:inherit}
.chat-form button{align-self:flex-end}
.chat-readonly{margin-top:12px;padding:12px 14px;border-radius:14px;background:#F2F4F7;color:var(--muted)}
@media(max-width:700px){.chat-bubble{max-width:88%}.chat-form{flex-direction:column}.chat-form button{align-self:stretch}}


/* Valutazioni */
.rating-panel{margin-top:18px;padding:18px;background:#fff;border:1px solid var(--border);border-radius:20px}
.rating-panel h3{margin:0 0 8px;color:var(--navy)}
.stars{display:flex;gap:6px;margin:12px 0}
.star-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:#fff;font-size:1.35rem;cursor:pointer}
.star-btn.active{background:var(--yellow);border-color:var(--yellow)}
.rating-comment{width:100%;min-height:90px;border:1px solid #D0D5DD;border-radius:14px;padding:12px;font:inherit;resize:vertical}
.rating-summary{margin-top:10px;color:var(--muted);font-size:.9rem}


/* FixLink Admin */
.admin-shell{width:min(1380px,calc(100% - 28px));margin:28px auto 70px}
.admin-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.admin-title{margin:0;color:var(--navy);font-size:2rem}
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.admin-tab{border:1px solid var(--border);background:#fff;border-radius:999px;padding:10px 15px;font-weight:800;cursor:pointer}
.admin-tab.active{background:var(--navy);color:#fff}
.admin-panel{display:none}.admin-panel.active{display:block}
.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.admin-kpi{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px}
.admin-kpi .value{font-size:1.8rem;font-weight:900;color:var(--navy)}
.admin-kpi .label{color:var(--muted);font-size:.85rem}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.admin-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px}
.admin-table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:20px}
.admin-table{width:100%;border-collapse:collapse;min-width:920px}
.admin-table th,.admin-table td{padding:11px 12px;text-align:left;border-bottom:1px solid #EEF0F3;vertical-align:top}
.admin-table th{font-size:.8rem;text-transform:uppercase;color:var(--muted);background:#FAFBFC}
.admin-search{display:flex;gap:10px;margin-bottom:12px}
.admin-search input,.admin-search select,.admin-edit input,.admin-edit select,.admin-edit textarea{border:1px solid #D0D5DD;border-radius:12px;padding:10px 12px;font:inherit}
.admin-search input{min-width:280px}
.admin-edit{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.admin-edit textarea{grid-column:1/-1;min-height:90px}
.admin-note{padding:13px 15px;background:#FFF8D8;border-radius:14px;color:#6B5300;margin-bottom:15px}
.admin-denied{max-width:650px;margin:70px auto;background:#fff;border:1px solid var(--border);border-radius:24px;padding:28px}
.fixlink-stat-bar{height:10px;border-radius:999px;background:#EEF0F3;overflow:hidden;margin-top:5px}
.fixlink-stat-bar span{display:block;height:100%;background:var(--yellow)}
@media(max-width:950px){.admin-kpis{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.admin-edit{grid-template-columns:1fr}}


/* Sistema admin */
.system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.system-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px}
.system-card h3{margin:0 0 10px;color:var(--navy)}
.system-status{display:inline-flex;align-items:center;gap:7px;font-weight:850}
.system-dot{width:10px;height:10px;border-radius:50%;background:#98A2B3}
.system-dot.ok{background:#12B76A}.system-dot.bad{background:#F04438}
.system-row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid #F2F4F7}
.system-row:last-child{border-bottom:0}
.system-row span:first-child{color:var(--muted)}
.system-wide{grid-column:1/-1}
.system-progress{height:11px;background:#EEF2F6;border-radius:999px;overflow:hidden;margin-top:9px}
.system-progress span{display:block;height:100%;background:var(--yellow)}
.system-warning{background:#FFF8D8;border:1px solid #FCE7A2;border-radius:14px;padding:13px 15px;color:#6B5300}
@media(max-width:1000px){.system-grid{grid-template-columns:1fr}}

.location-box{margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:18px;background:#FAFBFC}
.location-box h3{margin:0 0 6px;color:var(--navy);font-size:1.05rem}.location-box p{margin:0 0 12px;color:var(--muted);font-size:.9rem}
.location-actions{display:flex;gap:9px;flex-wrap:wrap}.location-search{display:flex;gap:8px;margin-top:12px}
.location-search input{flex:1;min-width:0;border:1px solid #D0D5DD;border-radius:14px;padding:12px 13px;font:inherit;background:#fff}
.location-results{display:grid;gap:7px;margin-top:10px}.location-result{width:100%;text-align:left;border:1px solid var(--border);background:#fff;border-radius:13px;padding:10px 12px;cursor:pointer;font:inherit;color:#344054}
.location-result:hover{border-color:#98A2B3;background:#F9FAFB}.location-selected{margin-top:10px;padding:10px 12px;background:#ECFDF3;color:#166534;border-radius:13px;font-size:.88rem}
.location-help{font-size:.82rem;color:var(--muted);margin-top:9px}.location-pin-label{font-weight:800;color:var(--navy)}
@media(max-width:700px){.location-search{flex-direction:column}.location-search .btn{width:100%}}

.edit-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}

.request-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:12px}

.profile-mode{display:grid;gap:10px;margin:8px 0 18px}
.profile-mode label{display:flex;gap:10px;align-items:flex-start;padding:13px 14px;border:1px solid var(--border);border-radius:14px;background:#fff;cursor:pointer}
.profile-mode label:hover{border-color:#98A2B3}
.profile-mode input{margin-top:3px}
.profile-mode strong{display:block;color:var(--navy)}
.profile-mode small{display:block;color:var(--muted);margin-top:2px}
.profile-provider-fields[hidden]{display:none!important}


/* FixLink v0.16.1 - navigazione responsive sempre visibile */
@media (max-width: 980px){
  .site-header .wrap.nav{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "brand actions"
      "menu menu";
    gap:10px 12px;
    align-items:center;
    padding-top:10px;
    padding-bottom:10px;
  }
  .site-header .brand{grid-area:brand}
  .site-header .header-actions{grid-area:actions}
  .site-header .menu{
    grid-area:menu;
    display:flex !important;
    flex-wrap:nowrap;
    gap:8px;
    overflow-x:auto;
    overflow-y:hidden;
    width:100%;
    max-width:100%;
    padding:4px 0 6px;
    margin:0;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
  .site-header .menu a{
    display:inline-flex !important;
    flex:0 0 auto;
    white-space:nowrap;
    padding:9px 12px;
    border-radius:12px;
  }
}

@media (max-width: 620px){
  .site-header .wrap.nav{
    grid-template-columns:1fr;
    grid-template-areas:
      "brand"
      "actions"
      "menu";
  }
  .site-header .header-actions{
    display:flex;
    justify-content:flex-start;
    gap:8px;
    flex-wrap:wrap;
  }
  .site-header .menu{
    border-top:1px solid rgba(255,255,255,.12);
    padding-top:8px;
  }
}


/* Home community v0.17 */
.home-map-status{font-size:.82rem;color:var(--muted);margin-top:8px}
.provider-popup{min-width:190px}
.provider-popup strong{font-size:1rem}
.provider-popup .provider-type{text-transform:capitalize;font-weight:700;color:var(--navy)}
.provider-popup .provider-rating{margin-top:6px;font-weight:700}
.reviews-section{padding-top:12px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.review-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(16,24,40,.05)}
.review-stars{font-size:1.05rem;font-weight:800;color:var(--navy);margin-bottom:8px}
.review-text{font-size:.96rem;line-height:1.55;margin:0 0 12px}
.review-meta{font-size:.83rem;color:var(--muted)}
.home-empty-review{grid-column:1/-1;padding:18px;border:1px dashed var(--border);border-radius:16px;color:var(--muted)}
@media(max-width:900px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.reviews-grid{grid-template-columns:1fr}}


/* FixLink v0.17.1 - header sempre sopra mappe e contenuti */
.site-header{
  position:sticky;
  top:0;
  z-index:5000 !important;
  isolation:isolate;
}

.site-header .wrap,
.site-header .nav,
.site-header .menu,
.site-header .header-actions{
  position:relative;
  z-index:5001 !important;
}

/* Mantiene tutti i layer Leaflet sotto la barra principale */
.leaflet-container{
  position:relative;
  z-index:1 !important;
}

.map-card,
.request-map,
.offer-map,
#home-map,
#request-map,
#offer-map,
#edit-request-map,
#requests-map{
  position:relative;
  z-index:1 !important;
}


/* FixLink v0.17.2 - controllo "Mia posizione" su tutte le mappe */
.leaflet-control.fixlink-locate-control{
  box-shadow:0 1px 5px rgba(0,0,0,.35);
  border-radius:6px;
  overflow:hidden;
  background:#fff;
}
.fixlink-locate-btn{
  display:flex;
  align-items:center;
  gap:6px;
  border:0;
  background:#fff;
  color:#10233f;
  min-height:34px;
  padding:0 10px;
  font:700 12px/1.2 inherit;
  cursor:pointer;
}
.fixlink-locate-btn:hover{background:#f4f6f8}
.fixlink-locate-btn:disabled{opacity:.6;cursor:wait}
.fixlink-locate-dot{
  width:9px;height:9px;border-radius:50%;
  border:2px solid #10233f;
  display:inline-block;
  box-sizing:border-box;
}
@media(max-width:600px){
  .fixlink-locate-btn{padding:0 8px;font-size:11px}
}
