/* CasaTeam — stile specifico dell'app immobiliare (si appoggia ad app.css) */
:root{--arancio:#f97316;--oro:#eab308;--argento:#94a3b8;--bronzo:#b45309}

/* ---------- testata ---------- */
/* il nome dell'agenzia puo' essere lungo: deve accorciarsi, non allargare la pagina */
.top{gap:10px}
.top .brand{display:flex;align-items:center;gap:8px;min-width:0;flex:1;overflow:hidden}
.top .brand>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.logo-ag{display:block;border-radius:6px;background:#fff;padding:2px;flex:none}
.top-dx{display:flex;align-items:center;gap:8px;flex:none}
.chip-ruolo{display:flex;align-items:center;gap:7px;color:#fff;font-weight:600;font-size:.9rem;
 background:rgba(255,255,255,.16);padding:3px 10px 3px 3px;border-radius:999px}
.chip-ruolo.tit{background:var(--arancio)}
.solo-pc{display:none}
@media(min-width:768px){.solo-pc{display:inline}}

.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;object-fit:cover;flex:none}
.avatar-txt{color:#fff;font-weight:800;letter-spacing:.5px}

.pallino{position:absolute;transform:translate(10px,-8px);background:var(--rosso);color:#fff;font-style:normal;
 font-size:.62rem;font-weight:800;min-width:17px;height:17px;line-height:17px;text-align:center;border-radius:999px;padding:0 4px}
.menu a .ico{position:relative}

.demo-switch{display:block;margin-top:6px;font-size:.82rem}
.demo-switch a{margin-left:4px;padding:2px 9px;border-radius:999px;background:#fff;border:1px solid #f1d98a;color:#5b4500}
.demo-switch a.on{background:var(--blu);border-color:var(--blu);color:#fff}

/* ---------- chip ---------- */
.chip{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--sfondo);border:1px solid var(--bordo);
 font-size:.76rem;font-weight:600;color:#374151;white-space:nowrap}
.chip-warn{background:#fef3c7;border-color:#fcd34d;color:#92400e}
.chip-ko{background:#fee2e2;border-color:#fca5a5;color:#991b1b}
.chip-ok{background:#dcfce7;border-color:#86efac;color:#166534}
.chip-blu{background:#dbeafe;border-color:#93c5fd;color:#1e40af}

/* ---------- card immobile ---------- */
.imm-card{display:flex;align-items:stretch;gap:12px;background:var(--card);border:1px solid var(--bordo);
 border-radius:var(--r);padding:10px;margin-bottom:10px;color:inherit;overflow:hidden}
.imm-card:hover{border-color:var(--blu)}
.imm-foto{flex:none;width:92px;height:92px;border-radius:10px;background:#e5e7eb center/cover no-repeat;
 display:flex;align-items:center;justify-content:center;font-size:2rem}
.imm-corpo{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;justify-content:center}
.imm-corpo b{font-size:1rem;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.imm-corpo small{color:var(--grigio);font-size:.8rem}
.imm-riga{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.imm-prezzo{flex:none;align-self:center;text-align:right;font-weight:800;font-size:1.05rem;white-space:nowrap}
.imm-prezzo .ribasso{display:block;font-weight:600;font-size:.78rem;color:var(--grigio);text-decoration:line-through}
/* su telefono il prezzo va sotto il testo: altrimenti restano tre colonne strettissime
   e i tag (mq, locali, ascensore) finiscono uno per riga */
@media(max-width:560px){
  .imm-card{display:grid;grid-template-columns:88px 1fr;grid-template-areas:"foto corpo" "foto prezzo";
   gap:4px 10px;align-items:start}
  .imm-foto{grid-area:foto;width:88px;height:88px;align-self:start}
  .imm-corpo{grid-area:corpo;justify-content:flex-start}
  .imm-prezzo{grid-area:prezzo;text-align:left;align-self:start;font-size:1.15rem}
  .imm-prezzo .ribasso{display:inline;margin-left:8px;font-size:.8rem}
}

/* ---------- galleria foto ---------- */
.galleria{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.galleria figure{margin:0;position:relative}
.galleria img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--bordo);display:block}
.galleria .cop{position:absolute;top:6px;left:6px;background:var(--blu);color:#fff;font-size:.68rem;
 font-weight:700;padding:2px 7px;border-radius:999px}
.galleria .tools{position:absolute;bottom:6px;right:6px;display:flex;gap:4px}
.galleria .tools button{min-height:28px;padding:2px 8px;font-size:.75rem;border-radius:7px;border:0;background:rgba(0,0,0,.6);color:#fff;cursor:pointer}
.foto-hero{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r);background:#e5e7eb;display:block}

/* ---------- schede dati ---------- */
.dati{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:12px 0}
.dati div{background:var(--sfondo);border-radius:10px;padding:8px 10px}
.dati small{display:block;color:var(--grigio);font-size:.73rem;text-transform:uppercase;letter-spacing:.3px}
.dati b{font-size:1rem}

/* ---------- barre punteggio ---------- */
.barra{display:inline-block;vertical-align:middle;width:100%;max-width:180px;height:9px;background:#e5e7eb;border-radius:999px;overflow:hidden}
.barra i{display:block;height:100%;border-radius:999px}
.barra-alto{background:var(--verde)}.barra-medio{background:var(--giallo)}.barra-basso{background:#ef4444}
.barra-val{margin-left:8px;font-variant-numeric:tabular-nums}
.stelle{color:var(--oro);letter-spacing:1px;white-space:nowrap}

/* menu con molte voci (il titolare ne ha una in piu'): deve starci su un telefono stretto */
.menu a{min-width:0;padding-left:2px;padding-right:2px}
.menu a>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
@media(max-width:480px){.menu a{font-size:.66rem}.menu a .ico{font-size:1.2rem}}

/* ---------- classifica ---------- */
.podio{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:end;margin:6px 0 18px}
.podio .p{background:var(--card);border:1px solid var(--bordo);border-radius:var(--r);padding:12px 6px;text-align:center;min-width:0;overflow:hidden}
.podio .p1{border-color:var(--oro);border-width:2px;order:2}
.podio .p2{order:1}.podio .p3{order:3}
.podio .p1 .corona{font-size:1.6rem}
.podio .p b{display:block;margin-top:6px;font-size:.92rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podio .p .pt{display:block;font-size:1.35rem;font-weight:800;color:var(--blu)}
.podio .p2 .pt,.podio .p3 .pt{font-size:1.15rem}
.podio .p1{padding-top:18px}

.class-riga{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--bordo)}
.class-riga:last-child{border-bottom:0}
.class-pos{flex:none;width:28px;text-align:center;font-weight:800;color:var(--grigio)}
.class-riga.io{background:#eff6ff;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}
.class-chi{flex:1;min-width:0;overflow:hidden}
.class-chi b{display:block;font-size:.98rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.class-chi small{display:block;margin-top:2px}
.class-chi .barra{max-width:240px;display:block}
.class-pt{flex:none;font-weight:800;font-size:1.1rem;text-align:right;min-width:52px}

/* ---------- migliori per categoria ---------- */
.migliori{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.migliori .m{background:var(--card);border:1px solid var(--bordo);border-radius:var(--r);padding:12px;
 display:flex;gap:10px;align-items:center}
.migliori .m .t{min-width:0}
.migliori .m small{display:block;color:var(--grigio);font-size:.74rem;text-transform:uppercase;letter-spacing:.3px}
.migliori .m b{display:block;font-size:.98rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.migliori .m i{font-style:normal;font-size:.76rem;color:var(--grigio)}

/* ---------- voti (input a stelle) ---------- */
.voto-stelle{display:inline-flex;gap:2px;direction:rtl}
.voto-stelle input{display:none}
.voto-stelle label{font-size:1.7rem;color:#d1d5db;cursor:pointer;margin:0;line-height:1;padding:0 2px}
.voto-stelle input:checked ~ label,.voto-stelle label:hover,.voto-stelle label:hover ~ label{color:var(--oro)}
.riga-voto{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--bordo);flex-wrap:wrap}
.riga-voto:last-of-type{border-bottom:0}
.riga-voto .q{flex:1;min-width:150px}
.riga-voto .q small{display:block;color:var(--grigio);font-size:.8rem}

/* ---------- bacheca e messaggi ---------- */
.post-h{display:flex;gap:10px;align-items:center;padding:12px 14px 0}
.post-h .chi{flex:1;min-width:0}
.post-h b{display:block;font-size:.93rem}
.post-h small{color:var(--grigio);font-size:.78rem}
.post .testo h3{margin:0 0 6px;font-size:1.05rem}
.post .barra-azioni{display:flex;gap:8px;padding:0 14px 12px;flex-wrap:wrap;align-items:center}
.commenti{border-top:1px solid var(--bordo);padding:10px 14px;background:#fafafa}
.commento{display:flex;gap:8px;margin-bottom:8px}
.commento .b{background:#fff;border:1px solid var(--bordo);border-radius:12px;padding:7px 11px;font-size:.9rem}
.commento .b b{display:block;font-size:.8rem;color:var(--blu)}
.nuovo-post{position:sticky;bottom:78px;z-index:5}
@media(min-width:768px){.nuovo-post{position:static}}

.chat{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto;padding:4px}
.bolla{max-width:80%;padding:8px 12px;border-radius:14px;font-size:.93rem;background:#fff;border:1px solid var(--bordo)}
.bolla small{display:block;font-size:.7rem;color:var(--grigio);margin-top:3px}
.bolla.mia{align-self:flex-end;background:var(--blu);color:#fff;border-color:var(--blu)}
.bolla.mia small{color:rgba(255,255,255,.75)}

/* ---------- agenda ---------- */
.ag-giorno{margin-bottom:16px}
.ag-giorno>h3{margin:0 0 6px;font-size:.88rem;text-transform:uppercase;letter-spacing:.4px;color:var(--grigio)}
.ag-riga{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--bordo);
 border-left:4px solid var(--blu);border-radius:10px;padding:10px 12px;margin-bottom:7px;color:inherit}
.ag-riga.fatto{border-left-color:var(--verde);opacity:.72}
.ag-riga.annullato{border-left-color:var(--rosso);opacity:.6}
.ag-riga.annullato b{text-decoration:line-through}
.ag-ora{flex:none;font-weight:800;font-variant-numeric:tabular-nums;min-width:46px}
.ag-corpo{flex:1;min-width:0}
.ag-corpo b{display:block;font-size:.97rem}
.ag-corpo small{display:block;color:var(--grigio);font-size:.82rem}
.oggi-vuoto{text-align:center;color:var(--grigio);padding:22px 10px}

/* ---------- storico prezzi / timeline ---------- */
.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--bordo)}
.timeline li{position:relative;padding:0 0 14px 14px}
.timeline li::before{content:'';position:absolute;left:-23px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--blu);border:2px solid #fff}
.timeline small{display:block;color:var(--grigio);font-size:.78rem}

/* ---------- match ---------- */
.match-riga{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--bordo);flex-wrap:wrap}
.match-riga:last-child{border-bottom:0}
.match-pct{flex:none;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
 font-weight:800;font-size:.88rem;color:#fff;background:var(--verde)}
.match-pct.medio{background:var(--giallo)}
.match-chi{flex:1;min-width:140px}
.match-chi small{display:block;color:var(--grigio);font-size:.82rem}

/* ---------- pannello QR / cartello ---------- */
.cartello{max-width:520px;margin:0 auto;background:#fff;border:2px solid var(--blu);border-radius:14px;padding:22px;text-align:center}
.cartello h2{font-size:1.9rem;margin:8px 0}
.cartello .qr{margin:14px auto;width:210px;height:210px}
.cartello .prezzo{font-size:2rem;font-weight:800;color:var(--blu)}

/* niente scorrimento orizzontale: se un testo e' troppo lungo va a capo */
body{overflow-x:hidden}
.card,.wrap{min-width:0}

/* ---------- utility ---------- */
.riga-4{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}
@media(min-width:768px){.riga-4{grid-template-columns:repeat(4,1fr)}}
.sep{height:1px;background:var(--bordo);margin:16px 0}
.vuoto{text-align:center;color:var(--grigio);padding:28px 14px}
.vuoto .em{font-size:2.4rem;display:block;margin-bottom:6px}
.fab{position:fixed;right:16px;bottom:82px;z-index:15;box-shadow:0 6px 18px rgba(0,0,0,.22);border-radius:999px}
@media(min-width:768px){.fab{bottom:24px}}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar input,.toolbar select{width:auto;min-width:130px;flex:1}
details.acc{border:1px solid var(--bordo);border-radius:var(--r);background:var(--card);padding:0;margin-bottom:10px}
details.acc>summary{padding:13px 15px;font-weight:700;cursor:pointer;list-style:none}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary::after{content:'▾';float:right;color:var(--grigio)}
details.acc[open]>summary::after{content:'▴'}
details.acc>div{padding:0 15px 15px}
.firma-box{border:2px dashed var(--bordo);border-radius:10px;background:#fff;touch-action:none;width:100%;height:170px;display:block}
