/* ===== FBF Struttura v0.7 - CSS unico e pulito ===== */

/* pagina admin: sfondo blu ovunque, niente footer WP */
body.toplevel_page_fbf-struttura #wpcontent,
body.toplevel_page_fbf-struttura #wpbody-content{background:#0a1120;padding-bottom:0;min-height:calc(100vh - 32px)}
body.toplevel_page_fbf-struttura #wpfooter{display:none}
body.toplevel_page_fbf-struttura .wrap h1{color:#c8d4e8}

/* schermo intero: nasconde menu e barra WP */
body.fbfs-full #adminmenumain,body.fbfs-full #wpadminbar,body.fbfs-full #wpfooter,
body.fbfs-full .update-nag,body.fbfs-full .notice{display:none !important}
body.fbfs-full #wpcontent{margin-left:0 !important;padding-left:8px}
body.fbfs-full.wp-admin{margin-top:0}
body.fbfs-full{overflow:auto !important;height:auto !important}
body.fbfs-full html{overflow:auto !important}
body.fbfs-full #wpbody-content{overflow:visible !important}
body.fbfs-full .fbfs-app{height:auto !important;min-height:0;overflow:visible}
body.fbfs-full .fbfs-main{min-height:0}
body.fbfs-full .fbfs-big{height:68vh}
/* Modalita' schematica (preventivazione singolo vano, non l'intero edificio): il piano di lavoro
   non deve avere l'altezza pensata per navigare una casa intera — qui c'e' un solo vano, quindi
   un riquadro piu' contenuto e proporzionato basta e avanza (e lascia piu' spazio al resto della
   pagina). Vince sulla regola sopra grazie alla classe piu' specifica aggiunta solo qui. */
body.fbfs-full .fbfs-big.fbfs-big-schem{height:46vh;max-height:480px}
.fbfs-big.fbfs-big-schem{min-height:0;max-height:480px}
body.fbfs-full .fbfs-panel{max-height:none;overflow:visible}

/* layout app */
.fbfs-app{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;background:#0a1120;padding:12px;border-radius:8px;
  font-family:ui-monospace,Menlo,Consolas,monospace;color:#c8d4e8;min-height:calc(100vh - 160px);box-sizing:border-box}
.fbfs-main{flex:1 1 620px;min-width:0;display:flex;flex-direction:column;gap:8px}
.fbfs-panel{flex:1 1 340px;max-width:470px;min-width:300px;background:#0f1930;border:1px solid #1c2a44;border-radius:6px;padding:10px;font-size:11px}

/* viste */
.fbfs-v{background:#0d1526;border:1px solid #1c2a44;border-radius:6px;overflow:hidden}
.fbfs-big{flex:1;min-height:220px;position:relative}
.fbfs-big svg{width:100%;height:100%;display:block}
#fbfs-locale{cursor:default}
#fbfs-3d{cursor:grab}
#fbfs-3d canvas{width:100% !important;height:100% !important;display:block}
#fbfs-vanowrap{flex:none}
.fbfs-vanobar{display:flex;gap:6px;align-items:center;color:#7F93B5;font-size:10px;padding:3px 0;flex-wrap:wrap}
.fbfs-vanorow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;height:236px}
.fbfs-vanorow .fbfs-v{min-width:0}
.fbfs-vanorow svg{width:100%;height:100%;display:block}

/* barra comandi */
.fbfs-drawbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:2px}
.fbfs-sep{width:10px}
.fbfs-btn{border:1px solid #2a4a7a;border-radius:5px;padding:4px 9px;cursor:pointer;color:#9fc3ef;font-size:11px;user-select:none}
.fbfs-btn:hover{background:#13233f}
.fbfs-sel{background:#1c3a63;color:#fff;border-color:#5AB0F0}
.fbfs-ddwrap{position:relative;display:inline-block}
.fbfs-dd{position:absolute;top:110%;left:0;z-index:50;background:#0f1930;border:1px solid #2a4a7a;border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:5px;min-width:170px;box-shadow:0 6px 18px rgba(0,0,0,.5)}
.fbfs-ddrow{display:flex;gap:6px;align-items:center;font-size:11px;color:#c8d4e8;cursor:pointer;white-space:nowrap}

/* pannello destro */
.fbfs-ttl{color:#ADD8E6;font-weight:bold;font-size:11px;margin:8px 0 4px}
.fbfs-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px;align-items:flex-end}
.fbfs-row label{display:flex;flex-direction:column;gap:2px;font-size:9px;color:#7F93B5}
.fbfs-in{background:#0a1120;border:1px solid #24365c;color:#dbe6f5;border-radius:4px;padding:3px 5px;font-size:11px;width:74px}
select.fbfs-in{width:auto;min-width:104px}
.fbfs-s{width:60px}
.fbfs-col{width:36px;height:22px;border:1px solid #24365c;background:none;border-radius:4px;padding:0}
.fbfs-u{color:#5c6e8e;font-size:9px;margin-left:2px}
.fbfs-inline{display:flex;flex-direction:row !important;gap:4px;align-items:center;font-size:10px;color:#9db3d6}
.fbfs-card{border:1px solid #1c2a44;border-radius:6px;margin:6px 0;background:#0c1528}
.fbfs-csel{border-color:#7CE0B0}
.fbfs-ch{padding:5px 8px;color:#F0B357;font-weight:bold;border-bottom:1px solid #16233d;display:flex;justify-content:space-between}
.fbfs-x{color:#e5736b;cursor:pointer;font-weight:bold;padding:0 4px}
.fbfs-fs{display:flex;gap:6px 10px;flex-wrap:wrap;padding:7px 8px}
.fbfs-f{display:flex;flex-direction:column;gap:2px;font-size:9px;color:#7F93B5}
.fbfs-add{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.fbfs-note{color:#5c6e8e;font-size:9px;margin-top:4px}

/* tabella pareti (4 colonne) e vertici */
.fbfs-phead,.fbfs-prow{display:grid;grid-template-columns:34px 92px 74px minmax(150px,1fr);gap:5px;align-items:center;margin:2px 0}
.fbfs-phead{color:#5c6e8e;font-size:9px}
.fbfs-prow{padding:2px 3px;border:1px solid transparent;border-radius:5px;cursor:pointer}
.fbfs-prow .fbfs-in{width:100%;box-sizing:border-box}
.fbfs-psel{border-color:#F0B357;background:#141f36}
.fbfs-pn{color:#F0B357;font-size:10px}
.fbfs-phead2,.fbfs-vrow{display:grid;grid-template-columns:32px 92px 92px 92px;gap:5px;align-items:center;margin:2px 0;color:#7F93B5;font-size:10px}
.fbfs-vrow .fbfs-in{width:100%;box-sizing:border-box}

/* responsive: il pannello NON esce mai dallo schermo, scende sotto */
@media (max-width:1250px){
  .fbfs-app{height:auto}
  .fbfs-main{flex:1 1 100%}
  .fbfs-panel{flex:1 1 100%;max-width:none}
  .fbfs-big{height:56vh;min-height:300px;flex:none}
}
/* tablet / smartphone */
@media (max-width:760px){
  .fbfs-app{padding:8px;gap:8px}
  .fbfs-big{height:48vh;min-height:240px}
  .fbfs-vanorow{grid-template-columns:1fr;height:auto}
  .fbfs-vanorow .fbfs-v{height:220px}
  .fbfs-phead,.fbfs-prow{grid-template-columns:30px 76px 62px minmax(110px,1fr)}
  .fbfs-phead2,.fbfs-vrow{grid-template-columns:28px 1fr 1fr 1fr}
}
/* v0.8: lo sfondo copre SEMPRE tutto, niente contenuti fuori */
body.toplevel_page_fbf-struttura,
body.toplevel_page_fbf-struttura #wpwrap{background:#0a1120}
.fbfs-vanorow{height:250px}
/* v0.9: tabella pareti a 5 colonne (con destino) */
.fbfs-phead,.fbfs-prow{grid-template-columns:30px 80px 60px minmax(108px,1fr) 96px}
.fbfs-prow select.fbfs-in{min-width:0}
@media (max-width:760px){ .fbfs-phead,.fbfs-prow{grid-template-columns:26px 66px 52px minmax(90px,1fr) 84px} }
/* v0.12: pannello 9 colonne, overlay zoom viste */
.fbfs-panel{width:560px;max-width:560px}
.fbfs-phead,.fbfs-prow{grid-template-columns:26px 58px 44px 66px 74px 64px 64px 32px 52px;gap:4px}
.fbfs-prow .fbfs-col{width:100%;height:24px;box-sizing:border-box;padding:0}
.fbfs-ovl{position:fixed;inset:0;background:rgba(4,8,18,0.82);z-index:100000;display:flex;align-items:center;justify-content:center;cursor:pointer}
.fbfs-ovlbox{background:#0d1526;border:1px solid #2a4a7a;border-radius:8px;padding:10px}
.fbfs-vanorow .fbfs-v{cursor:zoom-in}
@media (max-width:1350px){ .fbfs-panel{width:auto;max-width:none} }
/* v0.12.1: tabella pareti distribuita su tutta la larghezza, zoom vero */
.fbfs-panel{width:600px;max-width:600px}
.fbfs-phead,.fbfs-prow{grid-template-columns:26px 1fr 0.7fr 0.9fr 1.1fr 1.1fr 1.1fr 34px 0.8fr;gap:4px}
.fbfs-prow .fbfs-in,.fbfs-prow select.fbfs-in{font-size:10px;padding:3px 3px;min-width:0}
.fbfs-ovlbox svg{width:100%;height:auto;display:block}
@media (max-width:1400px){ .fbfs-panel{width:auto;max-width:none} }
.fbfs-dis{opacity:.35;cursor:not-allowed}

/* ---- sezioni comprimibili del pannello ---- */
.fbfs-sec{border:1px solid #1c2a44;border-radius:6px;margin:8px 0;overflow:hidden}
.fbfs-sechd{background:#12203a;color:#4aa3ff;font-size:11px;text-transform:uppercase;letter-spacing:1px;
  padding:8px 10px;cursor:pointer;user-select:none;display:flex;align-items:center;gap:8px}
.fbfs-sechd:hover{background:#16274a}
.fbfs-sscar{display:inline-block;transition:transform .15s;font-size:10px}
.fbfs-sec-closed .fbfs-sscar{transform:rotate(-90deg)}
.fbfs-sextra{margin-left:auto;display:flex;gap:6px}
.fbfs-secbody{padding:10px}

/* ---- macro-sezioni (livello 1: Struttura / Lavorazioni) ---- */
.fbfs-macro{border:1px solid #2a3f66;border-radius:8px;margin:10px 0;overflow:hidden}
.fbfs-macrohd{background:linear-gradient(180deg,#16294a,#122038);color:#e8f0ff;font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:1.5px;padding:11px 12px;cursor:pointer;user-select:none;
  display:flex;align-items:center;gap:9px;border-bottom:1px solid #2a3f66}
.fbfs-macrohd:hover{background:linear-gradient(180deg,#1a3157,#152743)}
.fbfs-macrobody{padding:10px}
/* sotto-titolo (livello annidato: Zone, Vani, Su Parete...) */
.fbfs-subttl{color:#7f93b5;font-size:10px;text-transform:uppercase;letter-spacing:1px;
  margin:12px 0 6px;padding-bottom:4px;border-bottom:1px dashed #1c2a44}

/* ---- gruppi campi tecniche/estetiche ---- */
.fbfs-grp{grid-column:1/-1;color:#4aa3ff;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin:8px 0 2px;padding-bottom:3px;border-bottom:1px dashed #1c2a44}

/* ---- header elemento collassabile ---- */
.fbfs-elhd .fbfs-sscar{display:inline-block;transition:transform .15s;font-size:9px;margin-right:6px}
.fbfs-elhd.fbfs-sec-closed .fbfs-sscar{transform:rotate(-90deg)}

/* ---- sotto-sezioni dentro un elemento (Generale/Tecniche/Estetiche) ---- */
.fbfs-elbody{padding:6px}
.fbfs-subsec{border:1px solid #17233c;border-radius:6px;margin:6px 0;overflow:hidden}
.fbfs-substtl{background:#101c33;color:#8fb4e8;font-size:10px;text-transform:uppercase;letter-spacing:1px;padding:6px 9px;border-bottom:1px solid #17233c}
.fbfs-subsec .fbfs-fs{padding:8px}

/* ---- toggle Ante/Post per elemento ---- */
.fbfs-phasetog{display:flex;gap:0;border:1px solid #2a3f66;border-radius:6px;overflow:hidden;width:100%}
.fbfs-pbtn{flex:1;text-align:center;padding:6px 8px;font-size:11px;cursor:pointer;background:#0d1526;color:#7f93b5;user-select:none}
.fbfs-pbtn.on{background:#1a3157;color:#e8f0ff;font-weight:600}
.fbfs-pbtn:hover{background:#16274a}
.fbfs-warn{grid-column:1/-1;font-size:11px;color:#f2c744;background:#2a2410;border:1px solid #4a3f1a;border-radius:5px;padding:6px 8px;line-height:1.4}

/* ---- campo materiale+finitura ricco ---- */
.fbfs-matfin{display:flex;flex-direction:column;gap:4px}
.fbfs-matfin-col{display:flex;align-items:center;gap:6px;font-size:11px;color:#7f93b5}
.fbfs-matfin-col.fbfs-dis{opacity:.45}

/* ---- griglia miniature finiture ---- */
.fbfs-fingrid{display:grid;grid-template-columns:repeat(auto-fill,72px);gap:6px;margin:4px 0;justify-content:start}
.fbfs-fintile{width:72px;box-sizing:border-box;border:1px solid #1c2a44;border-radius:6px;padding:4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;background:#0d1526;transition:border-color .12s}
.fbfs-fintile:hover{border-color:#4aa3ff}
.fbfs-fintile.sel{border-color:#F0B357;box-shadow:0 0 0 1px #F0B357}
.fbfs-finimg{width:100%;height:44px;border-radius:4px;background-size:cover;background-position:center;display:block}
.fbfs-finnotex{border:1px solid #26334d}
.fbfs-finall{display:flex;align-items:center;justify-content:center;font-size:22px;color:#4aa3ff;background:#101c33}
.fbfs-finname{font-size:9px;color:#c8d4e8;text-align:center;line-height:1.2;width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.fbfs-finpz{font-size:9px;color:#F0B357;font-weight:600}
.fbfs-finhint{font-size:11px;color:#7f93b5;padding:6px;font-style:italic}
.fbfs-fintile-all{border-style:dashed}

/* ---- etichette viste vano/parete ---- */
.fbfs-vcell{display:flex;flex-direction:column;min-width:0;height:236px}
.fbfs-vcell .fbfs-v{flex:1;min-height:0;border-radius:0 0 5px 5px}
.fbfs-vlab{font-size:10px;color:#8fb4e8;text-transform:uppercase;letter-spacing:.5px;text-align:center;padding:3px 0;background:#101c33;border:1px solid #1c2a44;border-bottom:none;border-radius:5px 5px 0 0}

/* campo materiale+finitura a tutta larghezza (cosi' i campi maniglia si raggruppano) */
.fbfs-f-wide{flex:1 1 100%;width:100%}

/* elemento selezionato: card evidenziata giallo */
.fbfs-card.fbfs-osel{border-color:#F0B357;box-shadow:0 0 0 1px #F0B357}

/* ---- visibilità locali (layer) ---- */
.fbfs-locvis{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0}
.fbfs-locitem{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:4px 8px;border:1px solid #1c2a44;border-radius:5px;cursor:pointer;color:#c8d4e8;background:#0d1526}
.fbfs-locitem.cur{border-color:#4aa3ff}
.fbfs-locitem.off{opacity:.45}
.fbfs-eye{cursor:pointer;font-size:12px}

/* ---- editor stratigrafia ---- */
.fbfs-strati{margin:4px 0;padding:6px;background:#0d1526;border:1px solid #1c2a44;border-radius:6px}
.fbfs-strati-hd{font-size:11px;color:#8fb4e8;margin-bottom:4px}
.fbfs-note2{font-size:10px;color:#6b7c99;font-style:italic;margin:3px 0}
.fbfs-strow{display:grid;grid-template-columns:1fr 1fr 52px 32px 56px;gap:4px;align-items:center;margin:3px 0}
.fbfs-strhd{font-size:9px;color:#6b7c99}
.fbfs-strow input{font-size:11px}
.fbfs-strbtns{display:flex;gap:2px;justify-content:flex-end}
.fbfs-mini{cursor:pointer;font-size:10px;color:#7f93b5;padding:1px 3px;border:1px solid #1c2a44;border-radius:3px}
.fbfs-mini:hover{border-color:#4aa3ff}
.fbfs-mini.fbfs-del{color:#e66}

/* campi X/Y a metà larghezza uguale */
.fbfs-f-half{flex:1 1 calc(50% - 5px);min-width:0}
.fbfs-f-half .fbfs-in{width:100%;box-sizing:border-box}

/* fascia laterale collassabile */
body.fbfs-panelhidden .fbfs-panel{display:none !important}
body.fbfs-panelhidden .fbfs-main{flex:1 1 100% !important;max-width:none !important}
#fbfs-panelbtn{cursor:pointer}
/* ---- select a immagini: MODELLI (porta ecc.) ---- */
.fbfs-imgsel{margin:4px 0}
.fbfs-modgrid{display:grid;grid-template-columns:repeat(auto-fill,84px);gap:8px;margin:4px 0;justify-content:start}
.fbfs-modtile{width:84px;box-sizing:border-box;border:1px solid #1c2a44;border-radius:6px;padding:5px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;background:#0d1526;transition:border-color .12s}
.fbfs-modtile:hover{border-color:#4aa3ff}
.fbfs-modtile.sel{border-color:#F0B357;box-shadow:0 0 0 1px #F0B357}
.fbfs-modimg{width:64px;height:88px;display:flex;align-items:center;justify-content:center;background:#f4f2ec;border-radius:3px;overflow:hidden}
.fbfs-modimg svg{width:100%;height:100%;display:block}
.fbfs-modname{font-size:9px;line-height:1.1;text-align:center;color:#9db0cc;word-break:break-word}
/* ---- imgsel come pulsante + popup modale ---- */
.fbfs-imgselbtn{display:flex;align-items:center;gap:8px;border:1px solid #1c2a44;border-radius:6px;padding:6px 8px;background:#0d1526;cursor:pointer;transition:border-color .12s}
.fbfs-imgselbtn:hover{border-color:#4aa3ff}
.fbfs-imgselbtn.fbfs-dis{opacity:.5;cursor:default}
.fbfs-imgselbtn .fbfs-modimg{width:34px;height:48px;flex:0 0 auto}
.fbfs-imgsellab{flex:1;font-size:12px;color:#cdd8ea}
.fbfs-imgselarr{color:#7F93B5;font-size:12px}
.fbfs-modempty{display:flex;align-items:center;justify-content:center;color:#5b6b85}
.fbfs-modal-ov{position:fixed;inset:0;background:rgba(4,9,18,.72);display:flex;align-items:center;justify-content:center;z-index:2147483647}
.fbfs-modal-box{background:#0f1a2e;border:1px solid #24344f;border-radius:10px;width:min(720px,92vw);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.fbfs-modal-head{padding:14px 16px;font-weight:600;color:#e6edf7;border-bottom:1px solid #1c2a44;display:flex;align-items:center;justify-content:space-between}
.fbfs-modal-x{cursor:pointer;font-size:22px;line-height:1;color:#8aa0c0;padding:0 4px}
.fbfs-modal-x:hover{color:#fff}
.fbfs-modal-body{padding:12px 16px;overflow:auto}
.fbfs-modal-cat{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#7F93B5;margin:14px 0 6px;border-bottom:1px solid #1c2a44;padding-bottom:3px}
.fbfs-modal-cat:first-child{margin-top:0}
