/* TOAST NOTIFICATIONS */
.fc-toast-container{position:fixed;top:60px;right:1rem;z-index:99999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}
.fc-toast{pointer-events:auto;padding:.7rem 1.2rem;border-radius:8px;font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:600;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.2);animation:fcToastIn .3s ease;max-width:350px;display:flex;align-items:center;gap:.5rem}
.fc-toast.success{background:#1B5E20}.fc-toast.error{background:#C62828}.fc-toast.warn{background:#E65100}.fc-toast.info{background:#1565C0}
.fc-toast.hiding{animation:fcToastOut .3s ease forwards}
@keyframes fcToastIn{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@keyframes fcToastOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
@keyframes fcSlideDown{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}
/* CUSTOM CONFIRM MODAL */
.fc-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:99998;display:flex;align-items:center;justify-content:center;animation:fcFadeIn .2s ease}
.fc-confirm-box{background:#fff;border-radius:12px;padding:1.5rem;max-width:380px;width:90%;box-shadow:0 8px 32px rgba(0,0,0,.2);font-family:'Montserrat',sans-serif}
.fc-confirm-title{font-size:.85rem;font-weight:700;margin-bottom:.5rem;color:var(--fc-text)}
.fc-confirm-msg{font-size:.78rem;color:var(--fc-muted);margin-bottom:1.2rem;line-height:1.5}
.fc-confirm-btns{display:flex;gap:.5rem;justify-content:flex-end}
.fc-confirm-btns button{padding:.45rem 1rem;border-radius:6px;font-family:'Montserrat';font-size:.72rem;font-weight:700;cursor:pointer;letter-spacing:.5px;transition:all .2s}
.fc-confirm-cancel{background:#fff;border:1px solid #ccc;color:#666}.fc-confirm-cancel:hover{border-color:#999}
.fc-confirm-ok{background:var(--fc-green);border:none;color:#fff}.fc-confirm-ok:hover{background:var(--fc-green-light)}
.fc-confirm-danger{background:#C62828;border:none;color:#fff}.fc-confirm-danger:hover{background:#E53935}
@keyframes fcFadeIn{from{opacity:0}to{opacity:1}}
/* OFFLINE BANNER */
.fc-offline-banner{position:fixed;bottom:0;left:0;right:0;background:#C62828;color:#fff;text-align:center;padding:.5rem;font-family:'Montserrat',sans-serif;font-size:.75rem;font-weight:700;z-index:99999;display:none}
.fc-offline-banner.visible{display:block;animation:fcFadeIn .3s ease}
/* TASKS */
.task-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.15rem .4rem;border-radius:4px;font-size:.6rem;font-weight:700;cursor:pointer}
.task-badge.da_fare{background:#FFF3E0;color:#E65100}.task-badge.in_corso{background:#E3F2FD;color:#1565C0}.task-badge.completata{background:#E8F5E9;color:#1B5E20}
.task-badge.overdue{background:#FFEBEE;color:#C62828}
.task-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:99997;display:flex;align-items:center;justify-content:center;animation:fcFadeIn .2s ease}
.task-modal{background:#fff;border-radius:12px;max-width:520px;width:95%;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.2);font-family:'Montserrat',sans-serif}
.task-modal-header{background:var(--fc-deep);padding:.8rem 1.2rem;border-radius:12px 12px 0 0;display:flex;align-items:center;justify-content:space-between}
.task-modal-header h3{color:#fff;font-size:.78rem;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.task-modal-header button{background:none;border:none;color:rgba(255,255,255,.5);font-size:1.2rem;cursor:pointer}
.task-modal-body{padding:1.2rem}
.task-item{padding:.6rem;border:1px solid var(--fc-border);border-radius:8px;margin-bottom:.5rem;position:relative}
.task-item.completata{opacity:.6}
.task-item-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}
.task-item-title{font-size:.75rem;font-weight:700;flex:1}
.task-item-meta{font-size:.62rem;color:var(--fc-muted);display:flex;gap:.8rem;flex-wrap:wrap}
.task-prio-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.task-prio-dot.alta{background:#C62828}.task-prio-dot.media{background:#E65100}.task-prio-dot.bassa{background:#1565C0}
.task-form .fg{margin-bottom:.6rem}
.task-form .fg label{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);margin-bottom:.2rem}
.task-form .fg input,.task-form .fg select,.task-form .fg textarea{width:100%;padding:.4rem .6rem;border:1.5px solid var(--fc-border);border-radius:6px;font-family:'Montserrat';font-size:.75rem}
.task-form .fr{display:flex;gap:.5rem}
.task-form .fr .fg{flex:1}
:root{--fc-green:#1B5E20;--fc-green-light:#2E7D32;--fc-green-soft:#4CAF50;--fc-green-pale:#E8F5E9;--fc-green-accent:#00C853;--fc-black:#1a1a1a;--fc-deep:#0d0d0d;--fc-white:#fff;--fc-off:#F0F0EC;--fc-cream:#e8ebe4;--fc-text:#1a1a1a;--fc-muted:#6b7c6b;--fc-border:#d4ddd4;--fc-bdark:#2a3a2a;--fc-warn:#FF8F00;--fc-danger:#E53935;--shadow-sm:0 2px 6px rgba(0,0,0,.06);--shadow-md:0 4px 16px rgba(0,0,0,.08);--shadow-lg:0 8px 32px rgba(0,0,0,.1);--r:10px;--rs:6px;--sidebar-w:220px}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Montserrat',sans-serif;background:var(--fc-off);color:var(--fc-text);min-height:100vh;font-size:14px;line-height:1.5}
body::before{display:none}

/* ═══ SIDEBAR ═══ */
.sidebar{width:var(--sidebar-w);background:#0F1A0F;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:600;border-right:1px solid rgba(27,94,32,.12);transition:transform .25s ease}
.sidebar-logo{padding:16px 16px 12px;border-bottom:1px solid rgba(255,255,255,.06)}
.sidebar-logo .logo{display:flex;align-items:center;gap:.5rem}
.sidebar-logo .logo-badge{width:28px;height:28px;background:linear-gradient(135deg,#2E7D32,#1B5E20);border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.7rem;color:#fff}
.sidebar-logo .logo-text{font-weight:700;font-size:.78rem;letter-spacing:2.5px;text-transform:uppercase}
.sidebar-logo .logo-text .g{color:var(--fc-green-accent)}
.sidebar-logo .logo-text .w{color:rgba(255,255,255,.8)}
.sidebar-nav{flex:1;padding:8px 8px;overflow-y:auto;scrollbar-width:none}
.sidebar-nav::-webkit-scrollbar{display:none}
.sidebar-section-label{font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,.18);padding:14px 10px 4px}
.nav-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;font-size:.78rem;font-weight:500;color:rgba(255,255,255,.35);cursor:pointer;transition:all .15s;margin-bottom:1px;user-select:none}
.nav-item:hover{background:rgba(255,255,255,.05);color:rgba(255,255,255,.65)}
.nav-item.active{background:rgba(0,200,83,.1);color:#00C853;font-weight:600}
.nav-icon{font-size:.7rem;width:16px;text-align:center;flex-shrink:0}
.sidebar-footer{padding:12px 14px;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:8px}
.sidebar-avatar{width:28px;height:28px;border-radius:50%;background:var(--fc-green);display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff;flex-shrink:0}
.sidebar-user-info{flex:1;min-width:0}
.sidebar-user-name{font-size:.68rem;font-weight:600;color:rgba(255,255,255,.55);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-user-role{font-size:.55rem;color:rgba(255,255,255,.2)}
.sidebar-logout{background:none;border:none;color:rgba(255,255,255,.2);font-size:.85rem;cursor:pointer;padding:4px}
.sidebar-logout:hover{color:rgba(255,255,255,.5)}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:599}

/* ═══ HEADER (top bar) ═══ */
header{background:var(--fc-deep);height:52px;display:flex;align-items:center;padding:0 20px;position:sticky;top:0;z-index:500;border-bottom:1px solid rgba(27,94,32,.15);box-shadow:0 1px 3px rgba(0,0,0,.1);margin-left:var(--sidebar-w);gap:.5rem}
.hamburger{display:none;background:none;border:none;font-size:1.3rem;cursor:pointer;padding:4px 8px;color:rgba(255,255,255,.5)}
.logo{display:flex;align-items:center;gap:.5rem}
.logo-badge{width:30px;height:30px;background:var(--fc-green);border-radius:5px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.75rem;color:#fff}
.logo-text{font-weight:700;font-size:.85rem;letter-spacing:3px;text-transform:uppercase}
.logo-text .g{color:var(--fc-green-accent)}.logo-text .w{color:#fff}
.hdr-actions{display:flex;gap:.5rem;align-items:center;flex:1;justify-content:flex-end}
.hdr-btn{padding:.4rem .8rem;border-radius:var(--rs);font-family:'Montserrat';font-size:.62rem;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:all .15s;border:none;display:inline-flex;align-items:center;gap:4px}
.hdr-btn-primary{background:var(--fc-green);color:#fff}.hdr-btn-primary:hover{background:var(--fc-green-light);box-shadow:0 2px 8px rgba(27,94,32,.25)}
.hdr-btn-ghost{background:transparent;color:rgba(255,255,255,.5);border:1.5px solid rgba(255,255,255,.15)}.hdr-btn-ghost:hover{color:#fff;border-color:rgba(255,255,255,.3)}
.hdr-btn-icon{background:none;border:none;color:rgba(255,255,255,.4);font-size:1.1rem;cursor:pointer;padding:.3rem}.hdr-btn-icon:hover{color:var(--fc-green-accent)}

/* ═══ MAIN ═══ */
.main{padding:.8rem 1rem;margin-left:var(--sidebar-w)}.panel{display:none}.panel.active{display:block}
#pan-gmail:not(.active){display:none !important}
#pan-gmail.active{display:flex;flex-direction:column}

/* CARDS */
.card{background:#fff;border-radius:var(--r);border:1px solid #e0e0dc;overflow:hidden;box-shadow:var(--shadow-sm);position:relative}
.card-h{background:#1a1a1a;padding:.8rem 1.2rem;display:flex;align-items:center;gap:.6rem;border-bottom:1px solid rgba(27,94,32,.2)}
.card-h h2{font-size:.72rem;font-weight:700;color:rgba(255,255,255,.9);letter-spacing:2px;text-transform:uppercase}
.card-h h2 em{font-family:'Playfair Display',serif;font-style:italic;color:var(--fc-green-accent);font-size:.9rem;letter-spacing:0;text-transform:none}
.card-icon{width:26px;height:26px;background:var(--fc-green);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}
.card-b{padding:1.2rem}

/* LIBRO MASTRO TOOLBAR */
.lm-toolbar{margin-bottom:.8rem;display:flex;flex-direction:column;gap:.5rem}
.lm-toolbar-row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.lm-search-wrap{position:relative;flex:1;min-width:200px;display:flex;align-items:center}
.lm-search-icon{position:absolute;left:.6rem;font-size:.85rem;pointer-events:none;opacity:.5}
.lm-search{width:100%;padding:.5rem .8rem .5rem 2rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat';font-size:.82rem;background:#fff;outline:none;transition:border-color .2s}
.lm-search:focus{border-color:var(--fc-green);box-shadow:0 0 0 3px rgba(27,94,32,.08)}
.lm-search-clear{position:absolute;right:.5rem;background:none;border:none;cursor:pointer;font-size:.75rem;color:var(--fc-muted);padding:.2rem;border-radius:50%;line-height:1;display:none}
.lm-search-clear.visible{display:block}
.lm-sel{padding:.5rem .65rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat';font-size:.75rem;background:#fff;outline:none;cursor:pointer;transition:border-color .2s;color:var(--fc-text)}
.lm-sel:focus{border-color:var(--fc-green)}
.lm-sel.active{border-color:var(--fc-green);background:var(--fc-green-pale);color:var(--fc-green);font-weight:700}
.lm-adv-toggle{padding:.45rem .7rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat';font-size:.65rem;font-weight:700;letter-spacing:.5px;background:#fff;cursor:pointer;transition:all .2s;color:var(--fc-muted);white-space:nowrap}
.lm-adv-toggle:hover,.lm-adv-toggle.on{border-color:var(--fc-green);background:var(--fc-green-pale);color:var(--fc-green)}
.lm-reset-btn{padding:.45rem .7rem;border:1.5px solid var(--fc-danger);border-radius:var(--rs);font-family:'Montserrat';font-size:.65rem;font-weight:700;letter-spacing:.5px;background:#fff;cursor:pointer;color:var(--fc-danger);white-space:nowrap;transition:all .2s}
.lm-reset-btn:hover{background:var(--fc-danger);color:#fff}
.lm-adv{background:var(--fc-cream);border:1px solid var(--fc-border);border-radius:var(--rs);padding:.7rem;animation:fadeIn .15s ease}
.lm-adv-row{display:flex;gap:.8rem;flex-wrap:wrap;align-items:flex-start}
.lm-range-group{display:flex;flex-direction:column;gap:.2rem}
.lm-range-label{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--fc-muted)}
.lm-range-inputs{display:flex;align-items:center;gap:.3rem}
.lm-range-in{width:80px;padding:.35rem .5rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat';font-size:.78rem;background:#fff;outline:none;transition:border-color .2s}
.lm-range-in:focus{border-color:var(--fc-green)}
.lm-range-in.active{border-color:var(--fc-green);background:var(--fc-green-pale)}
.lm-range-sep{color:var(--fc-muted);font-size:.8rem}
.lm-chip-check{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:600;padding:.3rem .6rem;border:1.5px solid var(--fc-border);border-radius:20px;cursor:pointer;background:#fff;transition:all .15s;color:var(--fc-text)}
.lm-chip-check:hover{border-color:var(--fc-green)}
.lm-chip-check:has(input:checked){border-color:var(--fc-green);background:var(--fc-green-pale);color:var(--fc-green)}
.lm-chip-check input{display:none}
.lm-table-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.3rem 0}
.lm-count{font-size:.75rem;color:var(--fc-muted);font-weight:600;flex:1}
.lm-sort-pills{display:flex;gap:.3rem;flex-wrap:wrap}
.lm-sort-pill{display:flex;align-items:center;gap:.2rem;font-size:.62rem;font-weight:700;padding:.25rem .55rem;border-radius:20px;background:var(--fc-green-pale);color:var(--fc-green);border:1.5px solid var(--fc-green);cursor:pointer;transition:all .15s;white-space:nowrap}
.lm-sort-pill:hover{background:var(--fc-green);color:#fff}
.lm-sort-pill .pill-x{font-size:.7rem;opacity:.7;margin-left:.1rem}
/* Tabella lista */
#listaTable{width:100%;border-collapse:collapse}
.lm-th{padding:.6rem .8rem;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--fc-muted);border-bottom:2px solid var(--fc-border);white-space:nowrap;background:#fff;position:sticky;top:0;z-index:1}
.lm-th-sort{cursor:pointer;user-select:none;transition:background .15s}
.lm-th-sort:hover{background:var(--fc-green-pale);color:var(--fc-green)}
.lm-th-sort.sorted{color:var(--fc-green)}
.lm-th-num{text-align:right}
.lm-sort-icon{display:inline-block;width:12px;text-align:center;font-size:.65rem;opacity:.4;transition:all .15s}
.lm-th-sort:hover .lm-sort-icon,.lm-th-sort.sorted .lm-sort-icon{opacity:1}
#listaTable tbody tr{border-bottom:1px solid var(--fc-border);transition:background .1s}
#listaTable tbody tr:hover{background:var(--fc-green-pale)}
#listaTable tbody tr.from-storico{opacity:.85}
#listaTable td{padding:.55rem .8rem;font-size:.82rem;vertical-align:middle}
#listaTable td.td-num{text-align:right;font-family:'Montserrat'}
.tag-source{font-size:.5rem;font-weight:700;padding:.1rem .3rem;border-radius:3px;letter-spacing:.5px;text-transform:uppercase}
.tag-source-s{background:#e8f5e9;color:#1B5E20}
.tag-source-p{background:#fff3e0;color:#e65100}
@keyframes fadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* PIPELINE KANBAN */
.pipeline{display:flex;gap:.5rem;padding-bottom:.5rem;min-height:calc(100vh - 200px)}
.pipe-col{flex:1 1 0;min-width:0;background:#fff;border-radius:var(--r);border:1px solid #e0e0dc;display:flex;flex-direction:column;max-height:calc(100vh - 200px);box-shadow:var(--shadow-sm)}
.pipe-col-head{padding:.5rem .6rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:1;border-radius:var(--r) var(--r) 0 0;position:relative}
/* Colored top accent bar per status */
.pipe-col-head::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r) var(--r) 0 0}
.pipe-col[data-status="segnalazione"] .pipe-col-head::before{background:#5C9AE6}
.pipe-col[data-status="analisi"] .pipe-col-head::before{background:#E6A04C}
.pipe-col[data-status="proposta"] .pipe-col-head::before{background:#E67A5C}
.pipe-col[data-status="due_diligence"] .pipe-col-head::before{background:#A873CC}
.pipe-col[data-status="preliminare"] .pipe-col-head::before{background:#4CC5D4}
.pipe-col[data-status="rogito"] .pipe-col-head::before{background:#6BBF7A}
.pipe-col[data-status="cantiere"] .pipe-col-head::before{background:#8FBF5C}
.pipe-col[data-status="in_vendita"] .pipe-col-head::before{background:#00C853}
.pipe-col[data-status="completata"] .pipe-col-head::before{background:#1B5E20}
.pipe-col[data-status="scartata"] .pipe-col-head::before{background:#C62828}
/* Investitori status accent bars */
.pipe-col[data-status="inv-cliente"] .pipe-col-head::before{background:#1B5E20}
.pipe-col[data-status="inv-iscritto"] .pipe-col-head::before{background:#6A1B9A}
.pipe-col[data-status="inv-potenziale"] .pipe-col-head::before{background:#E65100}
.pipe-col-title{font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#555}
.pipe-col-count{font-size:.55rem;font-weight:700;background:var(--fc-green-pale);color:var(--fc-green);padding:.1rem .35rem;border-radius:10px}
.pipe-col-body{padding:.35rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.3rem}

/* OPERATION CARD (in pipeline) */
.op-card{background:#F9FAF7;border-radius:var(--rs);border:1.5px solid #e8e8e4;padding:.5rem .6rem .5rem .75rem;cursor:pointer;transition:all .15s;position:relative}
.op-card::after{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;background:#ddd;transition:background .15s}
.op-card:hover{border-color:var(--fc-green);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.op-card:hover::after{background:var(--fc-green)}
.op-card-city{font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--fc-green);margin-bottom:.1rem}
.op-card-addr{font-weight:600;font-size:.72rem;line-height:1.25;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-card-row{display:flex;gap:.2rem;flex-wrap:wrap;margin-bottom:.2rem}
.op-tag{font-size:.5rem;font-weight:700;padding:.05rem .3rem;border-radius:3px;letter-spacing:.3px}
.op-tag-tipo{background:var(--fc-green-pale);color:var(--fc-green)}
.op-tag-agenzia{background:#f0f4f0;color:var(--fc-muted)}
.op-card-price{font-family:'Montserrat';font-weight:800;font-size:.85rem;color:var(--fc-black)}
.op-card-metrics{display:flex;gap:.4rem;margin-top:.2rem}
.op-metric{font-size:.55rem;color:var(--fc-muted);font-weight:600}
.op-metric span{color:var(--fc-green-accent);font-weight:800}
.op-card-risk{position:absolute;top:.6rem;right:.6rem;width:10px;height:10px;border-radius:50%}
.risk-green{background:#00C853;box-shadow:0 0 6px rgba(0,200,83,.4)}
.risk-yellow{background:#FFD600;box-shadow:0 0 6px rgba(255,214,0,.4)}
.risk-red{background:#E53935;box-shadow:0 0 6px rgba(229,57,53,.4)}

/* STATUS COLORS */
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.3rem}
.st-segnalazione{background:#64B5F6}.st-analisi{background:#FFB74D}.st-proposta{background:#FF8A65}
.st-due_diligence{background:#BA68C8}.st-preliminare{background:#4DD0E1}.st-rogito{background:#81C784}
.st-cantiere{background:#AED581}.st-in_vendita{background:#00C853}.st-completata{background:#1B5E20}.st-scartata{background:#E53935}

/* FORMS */
.fg{margin-bottom:.8rem}.fg label{display:block;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:#777;margin-bottom:.25rem}
.fg input,.fg select,.fg textarea{width:100%;padding:.5rem .7rem;border:1.5px solid #ddd;border-radius:var(--rs);font-family:'Montserrat';font-size:.82rem;color:var(--fc-text);background:#F8F8F6;transition:all .15s;outline:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--fc-green);box-shadow:0 0 0 3px rgba(27,94,32,.08);background:#fff}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.fr3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem}
.btn{padding:.7rem 1rem;border-radius:var(--rs);font-family:'Montserrat';font-size:.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s;border:none}
.btn-green{background:var(--fc-green);color:#fff;width:100%}.btn-green:hover{background:var(--fc-green-light);transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--fc-green);border:1.5px solid var(--fc-green)}.btn-outline:hover{background:var(--fc-green);color:#fff}
.btn-danger{background:transparent;color:var(--fc-danger);border:1.5px solid var(--fc-danger)}.btn-danger:hover{background:var(--fc-danger);color:#fff}
.btn-sm{padding:.4rem .7rem;font-size:.62rem;letter-spacing:1px}

/* WIZARD STEPS */
.wizard-nav{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin-bottom:1rem;border-radius:var(--rs);overflow:hidden;border:1px solid var(--fc-border)}
.wiz-step{padding:.45rem .3rem;text-align:center;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);background:var(--fc-cream);cursor:pointer;transition:all .2s;border-right:1px solid var(--fc-border);border-bottom:1px solid var(--fc-border);position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wiz-step:nth-child(6n){border-right:none}
.wiz-step:nth-last-child(-n+6){border-bottom:none}
.wiz-step:last-child{border-right:none}
.wiz-step.active{background:var(--fc-green);color:#fff;z-index:1}
.wiz-step.done{background:var(--fc-green-pale);color:var(--fc-green)}
.wiz-step:hover{background:rgba(27,94,32,.1)}
.wiz-panel{display:none}.wiz-panel.active{display:block}

/* CHECKLIST */
.check-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border:1px solid var(--fc-border);border-radius:var(--rs);margin-bottom:.4rem;transition:all .15s;cursor:pointer}
.check-item:hover{border-color:var(--fc-green);background:#f8fcf8}
.check-item.checked{border-color:var(--fc-warn);background:#FFF8E1}
.check-toggle{width:18px;height:18px;border:2px solid var(--fc-border);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;transition:all .15s}
.check-item.checked .check-toggle{background:var(--fc-warn);border-color:var(--fc-warn);color:#fff}
.check-label{font-size:.8rem;font-weight:500;flex:1}
.check-note{width:100%;margin-top:.3rem}
.check-note input{font-size:.75rem;padding:.3rem .5rem}

/* COMPARABLES / TABLE */
table{width:100%;border-collapse:collapse}
thead{background:#1a1a1a}
th{padding:.65rem .8rem;text-align:left;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.55);white-space:nowrap}
tbody tr{border-bottom:1px solid var(--fc-border);transition:background .1s}
tbody tr:hover{background:#f5faf5}
td{padding:.55rem .8rem;font-size:.82rem}
td.price{font-family:'Montserrat';font-weight:700;font-size:.9rem;color:var(--fc-black)}
.tag{font-size:.58rem;font-weight:700;padding:.1rem .4rem;border-radius:3px;text-transform:uppercase;letter-spacing:.3px}
.tag-city{background:var(--fc-deep);color:var(--fc-green-accent);border:1px solid rgba(27,94,32,.3)}
.tag-tipo{background:var(--fc-green-pale);color:var(--fc-green)}

/* STATS ROW */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin-bottom:1rem}
.stat-card{background:#fff;border-radius:var(--rs);padding:.8rem;text-align:center;border:1.5px solid rgba(27,94,32,.15);box-shadow:var(--shadow-sm)}
.stat-val{font-family:'Montserrat';font-weight:800;font-size:1.6rem;color:var(--fc-green);line-height:1}
.stat-lbl{font-size:.55rem;color:#888;text-transform:uppercase;letter-spacing:.8px;font-weight:600;margin-top:.2rem}

/* CE TABLE */
.ce-section{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--fc-muted);background:var(--fc-cream);padding:.4rem .8rem}
.ce-total{background:rgba(27,94,32,.06);font-weight:700}
.bp-section{background:var(--fc-bg);border:1px solid var(--fc-border);border-radius:var(--rs);margin-bottom:.6rem;overflow:hidden}
.bp-section-head{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--fc-muted);padding:.5rem .7rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:var(--fc-cream);border-bottom:1px solid var(--fc-border);user-select:none}
.bp-section-head:hover{background:rgba(27,94,32,.04)}
.bp-section-body{padding:.6rem .7rem;display:none}
.bp-section-body.bp-open{display:block}
.bp-chev{font-size:.5rem;color:var(--fc-muted);transition:transform .2s}

/* BP CONFIG BAR */
.bp-config-bar{display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:flex-end;padding:.5rem .7rem;background:var(--fc-cream);border:1px solid var(--fc-border);border-radius:var(--rs);margin-bottom:.8rem}
.bp-cfg-item{display:flex;flex-direction:column;gap:.15rem}
.bp-cfg-item>label{font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--fc-muted)}
.bp-cfg-item select,.bp-cfg-item input{padding:.25rem .4rem;border:1.5px solid var(--fc-border);border-radius:4px;font-size:.72rem;font-family:'Outfit','Montserrat',sans-serif}
.bp-cfg-item select{max-width:130px}
.bp-cfg-timeline{cursor:pointer;font-size:.65rem;color:var(--fc-green);font-weight:600;padding:.25rem .5rem;background:var(--fc-green-pale);border-radius:4px;border:1px solid var(--fc-green);display:flex;align-items:center;gap:.3rem;align-self:center}
.bp-cfg-timeline:hover{background:var(--fc-green);color:#fff}

/* CE INLINE TABLE */
.ce-inline-table{width:100%;border-collapse:collapse;font-size:.72rem}
.ce-inline-table th{padding:.35rem .4rem;text-align:left;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--fc-muted);border-bottom:2px solid var(--fc-border);white-space:nowrap}
.ce-inline-table td{padding:.25rem .4rem;border-bottom:1px solid rgba(0,0,0,.04)}
.ce-col-val{text-align:right!important;min-width:85px;font-family:'Montserrat',monospace}
.ce-v{text-align:right;font-family:'Montserrat',monospace;font-size:.72rem;white-space:nowrap}
.ce-v.ce-bold{font-weight:700}
.ce-v.ce-sm{font-size:.62rem;color:var(--fc-muted)}
.ce-section-row td{font-size:.55rem!important;font-weight:700!important;text-transform:uppercase;letter-spacing:1px;color:var(--fc-green)!important;padding:.5rem .4rem .25rem!important;border-bottom:1.5px solid var(--fc-green)!important;background:transparent}
.ce-total-row{background:rgba(27,94,32,.03)}
.ce-total-row td{border-top:1.5px solid var(--fc-border);font-weight:600}
.ce-grand-total-row{background:var(--fc-deep)}
.ce-grand-total-row td{color:#fff!important;font-weight:700;border-top:2px solid var(--fc-green)}
.ce-grand-total-row .ce-v{color:#fff!important}
.ce-profit-row{background:linear-gradient(90deg,rgba(27,94,32,.08),transparent)}
.ce-profit-row td{border-top:2px solid var(--fc-green);padding:.4rem!important}
.ce-calc{font-size:.6rem;color:var(--fc-muted);font-style:italic}
.ce-inp{padding:.2rem .35rem;border:1.5px solid var(--fc-border);border-radius:4px;font-size:.72rem;font-family:'Montserrat',monospace;text-align:right;width:80px;background:#fff;transition:border-color .15s}
.ce-inp:focus{border-color:var(--fc-green);outline:none;box-shadow:0 0 0 2px rgba(27,94,32,.12)}
.ce-inp-eur{width:85px}
.ce-inp-pct{width:50px}
.ce-inp-wrap{display:flex;align-items:center;gap:.2rem}
.ce-unit{font-size:.58rem;color:var(--fc-muted);white-space:nowrap}

/* BP MAIN GRID responsive */
@media(max-width:900px){.bp-main-grid{grid-template-columns:1fr!important}.bp-scratchpad{max-height:300px}}

/* SCRATCHPAD */
.bp-scratchpad{border:1px solid var(--fc-border);border-radius:var(--rs);overflow:hidden;position:sticky;top:0}
.bp-sp-header{display:flex;justify-content:space-between;align-items:center;padding:.35rem .5rem;background:var(--fc-cream);border-bottom:1px solid var(--fc-border);font-size:.6rem;font-weight:700;color:var(--fc-muted);text-transform:uppercase;letter-spacing:.8px}
.bp-sp-formula{font-size:.6rem;font-family:'Montserrat',monospace;color:var(--fc-green);font-weight:600;text-transform:none;letter-spacing:0;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bp-sp-grid{max-height:500px;overflow-y:auto}
.bp-sp-table{width:100%;border-collapse:collapse;font-size:.65rem}
.bp-sp-table th{padding:.2rem .25rem;background:var(--fc-cream);font-size:.5rem;font-weight:700;color:var(--fc-muted);border-bottom:1px solid var(--fc-border);text-align:center;position:sticky;top:0;z-index:1}
.bp-sp-rownum{font-size:.5rem;color:var(--fc-muted);text-align:center;padding:.2rem .2rem;background:var(--fc-cream);width:20px;border-right:1px solid var(--fc-border);user-select:none}
.bp-sp-cell{padding:.2rem .25rem;border:1px solid rgba(0,0,0,.04);min-width:50px;font-family:'Montserrat',monospace;font-size:.65rem;cursor:cell;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55px}
.bp-sp-cell:hover{background:rgba(27,94,32,.04);border-color:var(--fc-green)}
.bp-sp-edit{width:100%;border:none;outline:none;font-family:'Montserrat',monospace;font-size:.65rem;text-align:right;background:var(--fc-green-pale);padding:.1rem .2rem;box-sizing:border-box}

/* CHART */
.chart-wrap{position:relative;height:280px;width:100%}

/* MAP */
.map-container{border-radius:var(--r);overflow:hidden;border:1px solid var(--fc-border);box-shadow:var(--shadow-sm)}
.leaflet-popup-content-wrapper{border-radius:var(--r)!important;box-shadow:var(--shadow-lg)!important;padding:0!important;overflow:hidden;font-family:'Montserrat'!important}
.leaflet-popup-content{margin:0!important;width:220px!important}
.leaflet-popup-tip-container{display:none!important}
.popup-h{background:var(--fc-deep);padding:.6rem .8rem}
.popup-city{font-size:.55rem;text-transform:uppercase;letter-spacing:1px;color:var(--fc-green-accent);font-weight:700}
.popup-addr{font-size:.78rem;color:#fff;font-weight:600;margin-top:.1rem}
.popup-b{padding:.6rem .8rem}
.popup-r{display:flex;justify-content:space-between;margin-bottom:.2rem}
.popup-l{font-size:.6rem;color:var(--fc-muted);text-transform:uppercase;font-weight:600}
.popup-v{font-size:.75rem;font-weight:600}
.popup-p{font-family:'Montserrat';font-weight:800;font-size:1rem;color:var(--fc-green)}

/* MODAL / SHEET */
.modal-overlay{position:fixed;top:0;left:var(--sidebar-w);right:0;bottom:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);z-index:1000;display:none;align-items:flex-start;justify-content:center;padding:2rem;overflow-y:auto}
.modal-overlay.open{display:flex}
.modal{background:#F8F8F6;border-radius:var(--r);width:100%;max-width:960px;box-shadow:var(--shadow-lg);overflow:hidden;animation:slideUp .25s ease}
/* PLANIMETRIE GALLERY */
.plan-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem;margin-bottom:.8rem}
.plan-thumb{border-radius:var(--rs);overflow:hidden;border:1.5px solid var(--fc-border);cursor:pointer;transition:all .18s;position:relative;aspect-ratio:3/2;background:var(--fc-cream)}
.plan-thumb:hover{border-color:var(--fc-green);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.plan-thumb img{width:100%;height:100%;object-fit:cover}
.plan-thumb-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font-size:.52rem;font-weight:700;padding:.25rem .4rem;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plan-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--fc-muted);font-size:1.5rem}

/* LIGHTBOX */
#planLightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.92);z-index:2000;display:none;align-items:center;justify-content:center;flex-direction:column}
#planLightbox.open{display:flex}
#planLightbox img{max-width:92vw;max-height:85vh;object-fit:contain;border-radius:var(--rs);box-shadow:0 0 60px rgba(0,0,0,.5)}
#planLightboxCaption{color:rgba(255,255,255,.6);font-size:.72rem;margin-top:.7rem;letter-spacing:1px;font-weight:600;text-transform:uppercase}
#planLightboxClose{position:absolute;top:1.2rem;right:1.5rem;color:rgba(255,255,255,.5);font-size:2rem;cursor:pointer;line-height:1;background:none;border:none}
#planLightboxClose:hover{color:#fff}
#planLightboxNav{display:flex;gap:1rem;margin-top:.8rem}
.plan-lb-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;padding:.4rem .9rem;border-radius:var(--rs);font-size:.72rem;cursor:pointer;font-family:'Montserrat'}
.plan-lb-btn:hover{background:rgba(255,255,255,.2)}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.15)}}
.modal-top{background:#1a1a1a;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between}
.modal-title{font-size:.75rem;font-weight:700;color:rgba(255,255,255,.9);letter-spacing:2px;text-transform:uppercase}
.modal-title em{font-family:'Playfair Display',serif;font-style:italic;color:var(--fc-green-accent);font-size:.9rem;letter-spacing:0;text-transform:none}
.modal-close{background:none;border:none;color:rgba(255,255,255,.4);font-size:1.3rem;cursor:pointer;padding:.2rem}.modal-close:hover{color:#fff}
.modal-body{padding:1.5rem;max-height:calc(100vh - 180px);overflow-y:auto}

/* OMI */
.omi-card{background:#fff;border-radius:var(--r);border:1px solid var(--fc-border);overflow:hidden;margin-bottom:.5rem;box-shadow:var(--shadow-sm)}
.omi-card:hover{box-shadow:var(--shadow-md)}
.omi-head{background:var(--fc-deep);padding:.5rem .8rem;display:flex;align-items:center;gap:.5rem}
.omi-badge{font-weight:800;font-size:.7rem;background:var(--fc-green);color:#fff;padding:.05rem .4rem;border-radius:3px;letter-spacing:.5px}
.omi-name{font-size:.75rem;color:#fff;font-weight:600;flex:1}
.omi-body{padding:.6rem .8rem}
.omi-bar-bg{height:7px;background:var(--fc-border);border-radius:3px;overflow:hidden;flex:1}
.omi-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--fc-green),var(--fc-green-accent))}

/* PAGINATION */
.pag{display:flex;justify-content:center;gap:.3rem;padding:.8rem;border-top:1px solid var(--fc-border)}
.pg-btn{padding:.25rem .55rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);background:#fff;font-size:.75rem;cursor:pointer;font-family:'Montserrat';font-weight:600}
.pg-btn:hover{border-color:var(--fc-green);color:var(--fc-green)}.pg-btn.active{background:var(--fc-green);color:#fff;border-color:var(--fc-green)}.pg-btn:disabled{opacity:.3}

/* FOOTER */
footer{background:var(--fc-deep);color:rgba(255,255,255,.25);text-align:center;padding:.8rem;font-size:.6rem;letter-spacing:1.5px;text-transform:uppercase;font-weight:600}
footer span{color:var(--fc-green-accent)}

/* PWA INSTALLED APP — safe areas for notch/dynamic island devices */
@supports(padding-top:env(safe-area-inset-top)){
  header{padding-top:calc(.4rem + env(safe-area-inset-top))}
  .sidebar{padding-top:calc(.5rem + env(safe-area-inset-top));padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}
  #fcUpdateBanner{padding-top:calc(.55rem + env(safe-area-inset-top))}
  #pwaInstallBanner{padding-bottom:calc(.6rem + env(safe-area-inset-bottom))}
}
/* Casafari tooltip info icons */
.cf-tip-wrap.cf-tip-open .cf-tip-box{display:block!important}

/* Rich Text Editor (Email WYSIWYG) */
.gm-rte-wrap{border:1.5px solid var(--fc-border);border-radius:6px;overflow:hidden;background:#fff}
.gm-rte-toolbar{display:flex;flex-wrap:wrap;gap:1px;padding:4px 6px;background:#f5f5f5;border-bottom:1px solid var(--fc-border);align-items:center}
.gm-rte-btn{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;border:none;background:transparent;cursor:pointer;font-size:.7rem;font-family:'Montserrat',sans-serif;font-weight:700;color:#333;border-radius:3px;padding:0 4px;transition:background .15s}
.gm-rte-btn:hover{background:#e0e0e0}
.gm-rte-btn:active{background:#bdbdbd}
.gm-rte-sel{height:26px;border:1px solid #ddd;border-radius:3px;font-size:.6rem;font-family:'Montserrat',sans-serif;background:#fff;cursor:pointer;padding:0 2px;max-width:85px;color:#333}
.gm-rte-sep{width:1px;height:20px;background:#ddd;margin:0 3px}
.gm-rte-body{min-height:180px;max-height:400px;overflow-y:auto;padding:.6rem .7rem;font-size:.78rem;font-family:'Montserrat',sans-serif;line-height:1.5;color:#222;outline:none}
.gm-rte-body:empty:before{content:attr(data-placeholder);color:#aaa;pointer-events:none;font-style:italic}
.gm-rte-body ul,.gm-rte-body ol{margin:.3rem 0 .3rem 1.5rem;padding:0}
.gm-rte-body li{margin:.15rem 0}
.gm-rte-body blockquote{border-left:3px solid #ccc;margin:.5rem 0;padding:.3rem .8rem;color:#555}

/* Standalone PWA mode — extra adjustments */
@media(display-mode:standalone){
  header{-webkit-app-region:drag}
  .hdr-btn,.hdr-actions button,.hamburger{-webkit-app-region:no-drag}
  /* Prevent pull-to-refresh interference on mobile */
  body{overscroll-behavior-y:contain}
}

/* RESPONSIVE */
@media(max-width:1024px){.fr{grid-template-columns:1fr}.fr3{grid-template-columns:1fr 1fr}.pipeline{min-height:auto;flex-wrap:wrap}.pipe-col{flex:1 1 calc(25% - .4rem);min-width:140px}.bp-two-col{grid-template-columns:1fr!important}}

@media(max-width:768px){
  /* SIDEBAR: hide off-screen, show on toggle */
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .sidebar-overlay.open{display:block}
  .hamburger{display:block}

  /* Header: no sidebar offset */
  header{margin-left:0;padding:.4rem .6rem;height:auto;min-height:48px;gap:.3rem}
  .hdr-actions{gap:.25rem;flex-wrap:wrap;flex:1}
  .hdr-btn{font-size:.5rem;padding:.25rem .4rem;letter-spacing:.5px}
  /* Hide secondary buttons on mobile */
  .hdr-btn[onclick*="importExcelFile"],
  .hdr-btn[onclick*="exportAllCSV"],
  .hdr-btn[onclick*="exportFullJSON"],
  .hdr-btn[onclick*="importFullJSON"],
  .hdr-btn[onclick*="resetToSeed"]{display:none}
  #hdrStats{display:none}
  /* Search bar */
  .gsearch-wrap{order:-1;width:100%}
  .gsearch-input{width:100%!important;font-size:.68rem;padding:.3rem .5rem .3rem 1.6rem}
  .gsearch-input:focus{width:100%!important}

  /* Main: no sidebar offset */
  .main{margin-left:0;padding:.5rem}

  /* Stats */
  .stats-row{grid-template-columns:1fr 1fr;gap:.4rem}

  /* Pipeline */
  .pipe-col{flex:1 1 calc(50% - .3rem);min-width:110px}

  /* Forms */
  .fr3{grid-template-columns:1fr}

  /* Modal */
  .modal-body{padding:.8rem}
  .modal{max-width:100%!important;width:100%!important;border-radius:0!important;margin:0}
  .modal-overlay{padding:0;left:0}

  /* Wizard steps */
  .wizard-nav{grid-template-columns:repeat(4,1fr)}
  .wiz-step{padding:.35rem .2rem;font-size:.42rem;letter-spacing:.3px}
  .wiz-step:nth-child(6n){border-right:1px solid var(--fc-border)}
  .wiz-step:nth-child(4n){border-right:none}
  .wiz-step:nth-last-child(-n+6){border-bottom:1px solid var(--fc-border)}
  .wiz-step:nth-last-child(-n+4){border-bottom:none}

  /* Libro Mastro mobile cards */
  #listaTable{display:none}#mobileListaCards{display:block}
  .lm-toolbar-row{flex-wrap:wrap;gap:.3rem}.lm-search-wrap{width:100%}.lm-sel{flex:1;min-width:0;font-size:.6rem}

  /* Riunione */
  .riu-container table{display:none}.riu-mobile-cards{display:block}

  /* Scadenze panel: full width su mobile */
  #scadenzePanel{left:5px!important;right:5px!important;width:auto!important;top:auto!important;bottom:0!important;max-height:60vh!important;border-radius:12px 12px 0 0!important}

  /* Pipeline filters */
  #pipeFilters{flex-direction:column;gap:.3rem}
  #pipeFilters select{width:100%;min-width:0}

  /* Casafari params */
  .cf-params-grid{grid-template-columns:repeat(2,1fr)!important}
  #casafariResults .stats-row{grid-template-columns:1fr 1fr}
  /* Casafari tooltip — mobile tap */
  .cf-tip-wrap.cf-tip-open .cf-tip-box{display:block!important}

  /* Bulk actions */
  .bulk-bar{flex-wrap:wrap}

  /* KPI grid */
  .kpi-grid{grid-template-columns:repeat(2,1fr);gap:.3rem}
  .kpi-val{font-size:1rem}
  .kpi-lbl{font-size:.45rem}
}

@media(max-width:480px){
  header{padding:.3rem .5rem;gap:.2rem}
  .hdr-btn-primary{font-size:.5rem;padding:.25rem .5rem}

  /* Stats: colonna singola */
  .stats-row{grid-template-columns:1fr}
  .stat-card{padding:.4rem .5rem}
  .stat-val{font-size:1rem}
  .stat-lbl{font-size:.45rem}

  /* Pipeline: colonna singola */
  .pipe-col{flex:1 1 100%;min-width:0}
  .pipe-col-body{max-height:250px;overflow-y:auto}

  /* Modal full screen */
  .modal-body{padding:.5rem}

  /* Op card */
  .op-card-addr{font-size:.65rem}
  .op-card-price{font-size:.75rem}

  /* KPI */
  .kpi-grid{grid-template-columns:1fr 1fr}
  .kpi-card{padding:.4rem .5rem}
  .kpi-val{font-size:.9rem}

  /* Casafari params: 1 colonna su phone */
  .cf-params-grid{grid-template-columns:1fr!important}

  /* Agenzie grid */
  #agenzieGrid{grid-template-columns:1fr!important}
}

/* Mobile card view for Libro Mastro */
#mobileListaCards{display:none}
.mob-op-card{background:#fff;border:1.5px solid var(--fc-border);border-radius:var(--r);padding:.7rem;margin-bottom:.5rem;cursor:pointer;transition:all .2s}
.mob-op-card:active{transform:scale(.98);border-color:var(--fc-green)}
.mob-op-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem}
.mob-op-addr{font-weight:700;font-size:.82rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mob-op-price{font-weight:800;font-size:.9rem;color:var(--fc-deep)}
.mob-op-meta{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;font-size:.65rem;color:var(--fc-muted)}
.mob-op-tag{padding:.1rem .35rem;border-radius:3px;font-size:.55rem;font-weight:700;letter-spacing:.5px}

/* Mobile card view for Riunione table */
.riu-mobile-cards{display:none}
.riu-mob-card{background:#fff;border:1.5px solid var(--fc-border);border-radius:var(--r);padding:.6rem;margin-bottom:.4rem}
.riu-mob-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}
.riu-mob-field{font-size:.7rem;color:var(--fc-muted);margin-bottom:.15rem}
.riu-mob-field b{color:var(--fc-deep)}

/* AGENZIA AUTOCOMPLETE */
.agenzia-dd{position:absolute;top:100%;left:0;right:0;background:#fff;border:1.5px solid var(--fc-border);border-radius:0 0 8px 8px;max-height:220px;overflow-y:auto;z-index:500;box-shadow:0 6px 16px rgba(0,0,0,.12)}
.agenzia-dd-item{padding:.4rem .6rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;border-bottom:1px solid rgba(0,0,0,.04);transition:background .1s;font-size:.72rem}
.agenzia-dd-item:hover{background:var(--fc-green-pale)}
.agenzia-dd-item.create{background:#E3F2FD;font-weight:600;color:#1565C0}
.agenzia-dd-item.create:hover{background:#BBDEFB}
.agenzia-dd-sub{font-size:.55rem;color:var(--fc-muted)}


/* SCORECARD */
.sc-bar{height:6px;border-radius:3px;background:var(--fc-border);overflow:hidden;margin-top:.2rem}
.sc-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}
.sc-score{font-family:'Montserrat';font-weight:800;font-size:2rem;line-height:1}
.sc-grade{font-size:.6rem;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;padding:.15rem .5rem;border-radius:3px;display:inline-block}

/* POI CHIPS */
.poi-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:10px;font-size:.6rem;font-weight:700;background:var(--fc-cream);border:1px solid var(--fc-border)}
.poi-cat{font-size:.65rem;font-weight:700;color:var(--fc-muted);margin-bottom:.2rem;text-transform:uppercase;letter-spacing:.5px}

/* DEADLINE BADGE */
#deadlineBadge{position:relative;padding:.3rem .6rem;border-radius:12px;font-size:.58rem;font-weight:800;letter-spacing:.5px;font-family:'Montserrat'}
.badge-urgent{background:#E53935;color:#fff;animation:pulse 2s infinite}
.badge-soon{background:#FF8F00;color:#fff}
.badge-ok{background:rgba(76,175,80,.2);color:var(--fc-green-accent)}

/* COMPARE VIEW */
.cmp-grid{display:grid;gap:.5rem;margin-bottom:.8rem}
.cmp-card{background:#fff;border:1.5px solid var(--fc-border);border-radius:var(--r);padding:.8rem;position:relative;transition:all .2s}
.cmp-card.selected{border-color:var(--fc-green);box-shadow:0 0 0 2px rgba(0,200,83,.2)}
.cmp-row{display:flex;justify-content:space-between;align-items:center;padding:.15rem 0;font-size:.75rem}
.cmp-row-label{color:var(--fc-muted);font-weight:600;font-size:.65rem}
.cmp-row-best{font-weight:800;color:var(--fc-green)}

/* COST TRACKER */
.ct-row{display:grid;grid-template-columns:2fr 1fr 1fr 60px;gap:.3rem;align-items:center;padding:.3rem 0;border-bottom:1px solid var(--fc-border);font-size:.78rem}
.ct-over{color:#E53935;font-weight:700}
.ct-under{color:#00C853;font-weight:700}
.ct-bar{height:4px;background:var(--fc-border);border-radius:2px;overflow:hidden}
.ct-bar-fill{height:100%;border-radius:2px}

/* DEC SCENARIO CARDS */
.dec-sc-card{transition:all .2s}
.dec-sc-label{font-size:.48rem;color:rgba(255,255,255,.7);text-transform:uppercase;font-weight:600}
.dec-sc-val{font-family:'Montserrat'}
.dec-sc-title{color:rgba(255,255,255,.75)}

/* PRINT */
#decPlanPrintSection{display:none}
@media print{
  #decPlanPrintSection{display:block!important}
  #decPlanPrintSection img{max-width:100%!important;height:auto!important;border:1px solid #ccc!important}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body{background:#fff!important;font-size:9pt!important;color:#1a1a1a!important}
  .sidebar,header,.nav,footer,.dec-no-print,.hdr-actions,#pipeStats,.pipeline{display:none!important}
  .main{margin-left:0!important}
  .modal-overlay{position:static!important;display:block!important;background:none!important;padding:0!important;overflow:visible!important}
  .modal{box-shadow:none!important;max-width:100%!important;border-radius:0!important}
  .modal-top{display:none!important}
  .modal-close{display:none!important}
  .modal-body{max-height:none!important;overflow:visible!important;padding:6px 0!important}
  .wizard-nav,.bpPan,.bp-section{display:none!important}
  .dec-print-header{display:flex!important}
  /* STAT CARDS: force light bg + dark text */
  .stat-card{background:#f0f4f0!important;border:1px solid #bbb!important;padding:5px!important;break-inside:avoid}
  .stat-card,.stat-card *,.stat-card div,.stat-card span{color:#1a1a1a!important}
  .stat-val{color:#1B5E20!important;font-size:11pt!important}
  .stat-lbl{color:#555!important;font-size:6pt!important}
  .stats-row{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))!important;gap:4px!important;margin-bottom:5px!important}
  /* Tables */
  table{break-inside:avoid;page-break-inside:avoid;font-size:8pt!important;width:100%!important}
  th{background:#1B5E20!important;color:#fff!important;padding:3px 5px!important;font-size:6pt!important}
  td{padding:3px 5px!important;font-size:8pt!important;border-bottom:1px solid #ddd!important;color:#1a1a1a!important;word-break:break-word!important}
  .tag{background:#E8F5E9!important;color:#1B5E20!important}
  .tag-city{background:#1B5E20!important;color:#fff!important}
  /* Map */
  #decGMap{height:260px!important;break-inside:avoid;page-break-inside:avoid}
  /* Risk dots */
  .op-card-risk{border:1px solid #999!important}
  .risk-green{background:#00C853!important}.risk-yellow{background:#FFD600!important}.risk-red{background:#E53935!important}
  /* Numbered badges */
  td span[style*="background:#1B5E20"]{background:#1B5E20!important;color:#fff!important}
  /* Prevent overflow */
  .modal-body *{max-width:100%!important;overflow-wrap:break-word!important}
  @page{size:A4;margin:8mm 10mm}
  /* DEC SCENARIO CARDS print */
  .dec-sc-card{background:#f5f5f5!important;border:1px solid #ccc!important}
  .dec-sc-card,.dec-sc-card *{color:#1a1a1a!important}
  .dec-sc-title{color:#555!important}
  .dec-sc-label{color:#777!important}
  .dec-sc-val{color:#1B5E20!important}
  .dec-sc-val[style*="E53935"]{color:#c62828!important}
  .dec-scenarios{gap:4px!important}
}

/* GLOBAL SEARCH */
.gsearch-wrap{position:relative}
.gsearch-input{padding:.4rem .6rem .4rem 1.8rem;border:1.5px solid rgba(255,255,255,.15);border-radius:var(--rs);font-family:'Montserrat';font-size:.72rem;background:rgba(255,255,255,.06);color:#fff;outline:none;width:280px;transition:all .2s}
.gsearch-input::placeholder{color:rgba(255,255,255,.3)}
.gsearch-input:focus{border-color:var(--fc-green-accent);background:rgba(255,255,255,.1);width:380px}
.gsearch-icon{position:absolute;left:.55rem;top:50%;transform:translateY(-50%);font-size:.7rem;opacity:.4;pointer-events:none}
.gsearch-dd{position:absolute;top:100%;left:0;min-width:380px;background:var(--fc-deep);border:1px solid var(--fc-bdark);border-radius:0 0 var(--rs) var(--rs);max-height:320px;overflow-y:auto;z-index:600;display:none;box-shadow:var(--shadow-lg)}
.gsearch-dd.open{display:block}
.gsearch-item{padding:.5rem .7rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;border-bottom:1px solid rgba(255,255,255,.05);transition:background .1s}
.gsearch-item:hover{background:rgba(76,175,80,.15)}
.gsearch-item-addr{font-size:.78rem;font-weight:600;color:#fff;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gsearch-item-city{font-size:.58rem;color:var(--fc-green-accent);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.gsearch-item-status{font-size:.5rem;font-weight:700;padding:.1rem .3rem;border-radius:3px;text-transform:uppercase}

/* PORTFOLIO MAP */
.map-legend{display:flex;gap:.6rem;flex-wrap:wrap;padding:.5rem 0;font-size:.65rem;font-weight:600}
.map-legend-item{display:flex;align-items:center;gap:.25rem;cursor:pointer;opacity:.9;transition:opacity .15s}
.map-legend-item:hover{opacity:1}
.map-legend-dot{width:10px;height:10px;border-radius:50%;border:2px solid rgba(255,255,255,.8)}

/* GANTT */
.gantt-wrap{overflow-x:auto;padding:.5rem 0}
.gantt-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem;min-height:28px}
.gantt-label{width:160px;min-width:160px;font-size:.7rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;color:var(--fc-green)}
.gantt-label:hover{text-decoration:underline}
.gantt-track{flex:1;height:20px;background:var(--fc-cream);border-radius:3px;position:relative;overflow:hidden;min-width:400px}
.gantt-bar{position:absolute;height:100%;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:.5rem;font-weight:700;color:#fff;letter-spacing:.3px;text-transform:uppercase;overflow:hidden;white-space:nowrap;min-width:2px}
.gantt-today{position:absolute;top:0;bottom:0;width:2px;background:#E53935;z-index:2}
.gantt-month-label{position:absolute;top:-16px;font-size:.5rem;color:var(--fc-muted);font-weight:600}

/* DRAG & DROP */
.op-card[draggable="true"]{cursor:grab;transition:opacity .2s,transform .2s,box-shadow .2s}
.op-card.dragging{opacity:.35;transform:scale(.92);box-shadow:none!important}
.pipe-col-body.drag-over{background:rgba(76,175,80,.1);border:2px dashed var(--fc-green);border-radius:var(--rs);position:relative}
.pipe-col-body.drag-over::before{content:'Rilascia qui';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--fc-green);font-weight:700;font-size:.7rem;letter-spacing:1px;text-transform:uppercase;opacity:.6;pointer-events:none;z-index:2}
.pipe-col.drag-source .pipe-col-head{opacity:.5}
.op-card.just-dropped{animation:dropPulse .5s ease}
@keyframes dropPulse{0%{transform:scale(.9);box-shadow:0 0 0 4px rgba(76,175,80,.4)}50%{transform:scale(1.02);box-shadow:0 0 0 6px rgba(76,175,80,.2)}100%{transform:scale(1);box-shadow:none}}
.dnd-ghost{position:fixed;pointer-events:none;z-index:9999;opacity:.85;transform:rotate(2deg);box-shadow:0 8px 24px rgba(0,0,0,.25);border-radius:var(--r);max-width:200px}

/* BULK ACTIONS BAR */
.bulk-bar{display:none;align-items:center;gap:.5rem;padding:.5rem .8rem;background:var(--fc-deep);border-radius:var(--r);margin-bottom:.5rem;animation:slideDown .2s ease}
.bulk-bar.visible{display:flex}
.bulk-count{color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.5px}
.bulk-btn{padding:.3rem .6rem;border-radius:var(--rs);font-family:'Montserrat';font-size:.6rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;border:1.5px solid rgba(255,255,255,.2);background:transparent;color:rgba(255,255,255,.8);transition:all .2s}
.bulk-btn:hover{border-color:var(--fc-green);color:var(--fc-green);background:rgba(76,175,80,.1)}
.bulk-btn-danger{color:#ef5350;border-color:#ef5350}.bulk-btn-danger:hover{background:rgba(239,83,80,.15)}
.bulk-sel{padding:.3rem .5rem;border-radius:var(--rs);font-family:'Montserrat';font-size:.65rem;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.2);color:#fff;outline:none}
.lm-chk{width:14px;height:14px;accent-color:var(--fc-green);cursor:pointer}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* RIUNIONE TAB */
.riu-toolbar{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin-bottom:.6rem}
.riu-toolbar select,.riu-toolbar input{padding:.4rem .5rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat';font-size:.72rem;background:#fff;outline:none}
.riu-toolbar select:focus,.riu-toolbar input:focus{border-color:var(--fc-green)}
.riu-btn{padding:.4rem .7rem;border-radius:var(--rs);font-family:'Montserrat';font-size:.62rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:none;transition:all .2s}
.riu-btn-primary{background:var(--fc-green);color:#fff}.riu-btn-primary:hover{background:var(--fc-green-light)}
.riu-btn-ghost{background:#fff;color:var(--fc-muted);border:1.5px solid var(--fc-border)}.riu-btn-ghost:hover{border-color:var(--fc-green);color:var(--fc-green)}
.riu-btn-save{background:var(--fc-green-accent);color:#fff;padding:.35rem .7rem;font-size:.6rem;font-weight:700;border:none;border-radius:var(--rs);cursor:pointer;font-family:'Montserrat';letter-spacing:.5px;animation:riuPulse 1.5s infinite}
@keyframes riuPulse{0%,100%{opacity:1}50%{opacity:.7}}
.riu-wrap{overflow:auto;border:1px solid var(--fc-border);border-radius:var(--r);background:#fff;max-height:calc(100vh - 240px)}
.riu-table{border-collapse:collapse;font-size:.7rem}
.riu-table th{padding:.4rem .5rem;font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--fc-muted);border-bottom:2px solid var(--fc-border);border-right:1px solid var(--fc-border);background:var(--fc-cream);white-space:nowrap;position:sticky;top:0;z-index:2;vertical-align:bottom}
.riu-table td{padding:.25rem .35rem;border-bottom:1px solid var(--fc-border);border-right:1px solid rgba(0,0,0,.04);vertical-align:top}
.riu-table tbody tr{transition:background .1s}.riu-table tbody tr:hover{background:var(--fc-green-pale)}
.riu-table .riu-id-cell{font-weight:700;font-size:.68rem;cursor:pointer;color:var(--fc-green);white-space:nowrap}
.riu-table .riu-id-cell:hover{text-decoration:underline}
/* Sticky columns: ID (col 0) + Indirizzo (col 1) */
.riu-table th.riu-sticky-0,.riu-table td.riu-sticky-0{position:sticky;left:0;z-index:3;background:var(--fc-cream)}
.riu-table th.riu-sticky-1,.riu-table td.riu-sticky-1{position:sticky;left:56px;z-index:3;background:var(--fc-cream);border-right:2px solid var(--fc-border)}
.riu-table tbody td.riu-sticky-0{background:#fff}
.riu-table tbody td.riu-sticky-1{background:#fff;border-right:2px solid var(--fc-border)}
.riu-table tbody tr:hover td.riu-sticky-0,.riu-table tbody tr:hover td.riu-sticky-1{background:var(--fc-green-pale)}
.riu-wf-sel{width:100%;padding:.2rem .15rem;border:1px solid transparent;border-radius:3px;font-family:'Montserrat';font-size:.62rem;background:transparent;cursor:pointer;outline:none;-webkit-appearance:none;text-align:center}
.riu-wf-sel:hover{border-color:var(--fc-border)}
.riu-wf-sel:focus{border-color:var(--fc-green);box-shadow:0 0 0 2px rgba(27,94,32,.15)}
.riu-edit{width:100%;padding:.2rem .3rem;border:1px solid transparent;border-radius:3px;font-family:'Montserrat';font-size:.68rem;background:transparent;outline:none;box-sizing:border-box}
.riu-edit:hover{border-color:var(--fc-border)}
.riu-edit:focus{border-color:var(--fc-green);background:#fff;box-shadow:0 0 0 2px rgba(27,94,32,.12)}
.riu-note-ta{width:100%;min-height:48px;padding:.3rem .4rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat';font-size:.68rem;resize:vertical;outline:none;background:#fffde7;line-height:1.35;box-sizing:border-box}
.riu-note-ta:focus{border-color:var(--fc-green);box-shadow:0 0 0 2px rgba(27,94,32,.12);background:#fff}
.riu-note-saved{background:var(--fc-cream)!important;border-color:var(--fc-border)!important}
.wf-fatta{background:#c8e6c9;color:#1B5E20;font-weight:700}
.wf-incorso{background:#fff9c4;color:#F57F17;font-weight:700}
.wf-richiesto{background:#ffe0b2;color:#E65100;font-weight:700}
.wf-confermato{background:#b2dfdb;color:#00695C;font-weight:700}
.wf-firmato{background:#c8e6c9;color:#1B5E20;font-weight:700}
/* Storico Note Popup */
.note-history-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}
.note-history-box{background:#fff;border-radius:12px;width:min(520px,92vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.note-history-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.2rem;background:var(--fc-green);color:#fff;border-radius:12px 12px 0 0;font-weight:700;font-size:.85rem}
.note-history-header button{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;opacity:.8}
.note-history-header button:hover{opacity:1}
.note-history-body{overflow-y:auto;padding:1rem 1.2rem;flex:1}
.note-history-empty{text-align:center;color:var(--fc-muted);padding:2rem 0;font-size:.75rem}
.note-entry{border-left:3px solid var(--fc-green);padding:.5rem .8rem;margin-bottom:.6rem;background:var(--fc-cream);border-radius:0 6px 6px 0;font-size:.72rem;line-height:1.45}
.note-entry-date{font-weight:700;color:var(--fc-green);font-size:.62rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.15rem}
.note-entry-text{color:#333}
.note-history-footer{padding:.7rem 1.2rem;border-top:1px solid var(--fc-border);display:flex;gap:.4rem}
.note-history-footer textarea{flex:1;padding:.4rem .5rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat';font-size:.7rem;resize:none;outline:none;min-height:36px}
.note-history-footer textarea:focus{border-color:var(--fc-green)}
.note-history-footer button{padding:.4rem .8rem;background:var(--fc-green);color:#fff;border:none;border-radius:var(--rs);font-family:'Montserrat';font-size:.62rem;font-weight:700;cursor:pointer;white-space:nowrap}
.note-history-footer button:hover{background:var(--fc-green-light)}
.riu-note-cell{cursor:pointer;transition:background .15s}.riu-note-cell:hover{background:var(--fc-green-pale)}
.wf-attivate{background:#c8e6c9;color:#1B5E20;font-weight:700}
.wf-posati{background:#c8e6c9;color:#1B5E20;font-weight:700}
.wf-presentata{background:#e1bee7;color:#6A1B9A;font-weight:700}
.wf-inlavorazione{background:#fff9c4;color:#F57F17;font-weight:700}
.wf-nonnecessaria{background:#f5f5f5;color:#9e9e9e;font-style:italic}
.wf-dafare{background:#ffcdd2;color:#c62828;font-weight:700}
.wf-trovato{background:#c8e6c9;color:#1B5E20;font-weight:700}
.wf-fissato{background:#bbdefb;color:#1565C0;font-weight:700}
.wf-inviato{background:#bbdefb;color:#1565C0;font-weight:700}
.wf-conclusa{background:#1B5E20;color:#fff;font-weight:700}
.wf-na{background:#fafafa;color:#bbb}
.prio-alta{background:#E53935;color:#fff;font-weight:800;padding:.15rem .4rem;border-radius:3px;font-size:.55rem;letter-spacing:.5px}
.prio-media{background:#FF8F00;color:#fff;font-weight:800;padding:.15rem .4rem;border-radius:3px;font-size:.55rem;letter-spacing:.5px}
.prio-bassa{background:#66BB6A;color:#fff;font-weight:800;padding:.15rem .4rem;border-radius:3px;font-size:.55rem;letter-spacing:.5px}
.riu-note-btn{background:var(--fc-green);color:#fff;border:none;border-radius:3px;font-size:.58rem;padding:.2rem .4rem;cursor:pointer;font-family:'Montserrat';font-weight:700}
.riu-note-btn:hover{background:var(--fc-green-light)}
.riu-diary{max-height:200px;overflow-y:auto;font-size:.72rem}
.riu-diary-entry{padding:.4rem .6rem;border-left:3px solid var(--fc-green);margin-bottom:.4rem;background:var(--fc-cream);border-radius:0 var(--rs) var(--rs) 0}
.riu-diary-date{font-size:.58rem;font-weight:700;color:var(--fc-green);margin-bottom:.1rem}
.riu-diary-text{color:var(--fc-text);line-height:1.4;white-space:pre-wrap}
.riu-modal-wf{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.riu-modal-wf-item{display:flex;flex-direction:column;gap:.15rem}
.riu-modal-wf-item label{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted)}
.riu-modal-wf-item select{padding:.35rem .5rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat';font-size:.72rem;background:#fff}

/* KPI DASHBOARD */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem;margin-bottom:.8rem}
.kpi-card{background:#fff;border-radius:var(--rs);padding:.7rem .9rem;border:1.5px solid rgba(27,94,32,.15);text-align:center;box-shadow:var(--shadow-sm);transition:box-shadow .15s}
.kpi-card:hover{box-shadow:var(--shadow-md);border-color:rgba(27,94,32,.25)}
.kpi-val{font-family:'Montserrat';font-weight:800;font-size:1.3rem;color:var(--fc-green);line-height:1.1}
.kpi-sub{font-size:.9rem;color:#999}
.kpi-lbl{font-size:.5rem;color:var(--fc-muted);text-transform:uppercase;letter-spacing:.8px;font-weight:600;margin-top:.15rem}

/* UNLOCK BUTTON */
.unlock-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;background:linear-gradient(90deg,rgba(76,175,80,.08),rgba(76,175,80,.02));border:1px solid var(--fc-green);border-radius:var(--rs);margin-bottom:.8rem;cursor:pointer;transition:all .2s}
.unlock-bar:hover{background:rgba(76,175,80,.12);border-color:var(--fc-green-accent)}

/* ═══ LEARNING ═══ */
.ln-spinner{width:24px;height:24px;border:3px solid var(--fc-border);border-top-color:var(--fc-green);border-radius:50%;animation:lnSpin .6s linear infinite;margin:0 auto}
@keyframes lnSpin{to{transform:rotate(360deg)}}
.ln-header{margin-bottom:1.5rem}
.ln-title{font-size:1.2rem;font-weight:800;color:var(--fc-text);margin:0}
.ln-subtitle{font-size:.72rem;color:var(--fc-muted);margin:.2rem 0 0}
.ln-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.8rem}
.ln-card{background:#fff;border:1.5px solid var(--fc-border);border-radius:var(--r);cursor:pointer;transition:all .2s;display:flex;overflow:hidden}
.ln-card:hover{border-color:var(--fc-green);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.ln-card-icon{width:64px;min-height:100%;background:linear-gradient(135deg,#0F1A0F,#1B5E20);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}
.ln-card-body{padding:.7rem .9rem;flex:1;min-width:0;display:flex;flex-direction:column}
.ln-card-num{font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--fc-green);margin-bottom:.15rem}
.ln-card-title{font-size:.82rem;font-weight:700;color:var(--fc-text);margin-bottom:.15rem}
.ln-card-sub{font-size:.62rem;color:var(--fc-muted);line-height:1.4;margin-bottom:.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ln-card-meta{display:flex;align-items:center;gap:.6rem;font-size:.58rem;color:var(--fc-muted);margin-bottom:.4rem}
.ln-diff{padding:.1rem .35rem;border-radius:3px;font-weight:700;font-size:.5rem;text-transform:uppercase;letter-spacing:.5px}
.ln-diff-intermedio{background:#FFF3E0;color:#E65100}
.ln-diff-avanzato{background:#FCE4EC;color:#C62828}
.ln-diff-base{background:#E8F5E9;color:#1B5E20}
.ln-progress-bar{height:3px;background:var(--fc-border);border-radius:2px;overflow:hidden;margin-top:auto}
.ln-progress-fill{height:100%;background:var(--fc-green);border-radius:2px;transition:width .3s}

/* Lesson detail */
.ln-lesson-header{margin-bottom:1.2rem}
.ln-back{background:none;border:none;color:var(--fc-muted);font-size:.7rem;font-weight:600;cursor:pointer;padding:0;margin-bottom:.6rem;font-family:'Montserrat',sans-serif}
.ln-back:hover{color:var(--fc-green)}
.ln-lesson-title-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem}
.ln-lesson-icon{font-size:1.6rem}
.ln-lesson-title{font-size:1.05rem;font-weight:800;margin:0}
.ln-lesson-sub{font-size:.65rem;color:var(--fc-muted);margin:.1rem 0 0}
.ln-section-nav{margin-bottom:.2rem}
.ln-section-progress{height:4px;background:var(--fc-border);border-radius:2px;overflow:hidden;margin-bottom:.3rem}
.ln-section-progress-fill{height:100%;background:linear-gradient(90deg,var(--fc-green),var(--fc-green-accent));border-radius:2px;transition:width .3s}
.ln-section-label{font-size:.55rem;color:var(--fc-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.ln-section-content{background:#fff;border:1.5px solid var(--fc-border);border-radius:var(--r);padding:1.2rem;margin-bottom:.8rem}
.ln-section-title{font-size:.9rem;font-weight:800;margin:0 0 .8rem;color:var(--fc-text);border-bottom:2px solid var(--fc-green);padding-bottom:.4rem;display:inline-block}

/* Theory elements */
.ln-p{font-size:.75rem;line-height:1.65;color:var(--fc-text);margin-bottom:.7rem}
.ln-def{background:var(--fc-off);border-left:3px solid var(--fc-green);padding:.6rem .8rem;border-radius:0 var(--rs) var(--rs) 0;margin-bottom:.6rem}
.ln-def-term{font-size:.72rem;font-weight:700;color:var(--fc-green);margin-bottom:.15rem}
.ln-def-text{font-size:.7rem;line-height:1.5;color:var(--fc-text)}
.ln-formula{background:#F5F5F0;border:1px dashed var(--fc-border);border-radius:var(--rs);padding:.7rem .9rem;margin-bottom:.6rem;text-align:center}
.ln-formula-name{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--fc-muted);margin-bottom:.3rem}
.ln-formula-eq{font-size:.82rem;font-weight:800;color:var(--fc-text);font-family:'Courier New',monospace;margin-bottom:.2rem}
.ln-formula-ex{font-size:.62rem;color:var(--fc-muted);font-style:italic}
.ln-table-wrap{overflow-x:auto;margin-bottom:.6rem;border:1px solid var(--fc-border);border-radius:var(--rs)}
.ln-table{width:100%;border-collapse:collapse;font-size:.65rem}
.ln-table th{background:var(--fc-deep);color:#fff;padding:.4rem .6rem;text-align:left;font-weight:700;font-size:.58rem;text-transform:uppercase;letter-spacing:.5px}
.ln-table td{padding:.35rem .6rem;border-bottom:1px solid var(--fc-border);color:var(--fc-text)}
.ln-table tr:last-child td{border-bottom:none}
.ln-table tr:nth-child(even){background:rgba(0,0,0,.015)}
.ln-highlight{background:linear-gradient(90deg,rgba(27,94,32,.08),rgba(27,94,32,.03));border:1px solid rgba(27,94,32,.2);border-radius:var(--rs);padding:.6rem .8rem;font-size:.7rem;line-height:1.5;color:var(--fc-text);margin-bottom:.6rem;font-weight:500}
.ln-case{background:#fff;border:1.5px solid var(--fc-border);border-radius:var(--rs);padding:.8rem;margin-bottom:.6rem;box-shadow:var(--shadow-sm)}
.ln-case-title{font-size:.72rem;font-weight:700;color:var(--fc-text);margin-bottom:.3rem;display:flex;align-items:center;gap:.3rem}
.ln-case-title::before{content:'📌';font-size:.7rem}
.ln-case-desc{font-size:.65rem;color:var(--fc-muted);background:var(--fc-off);padding:.4rem .6rem;border-radius:4px;margin-bottom:.3rem;font-family:'Courier New',monospace}
.ln-case-analysis{font-size:.68rem;line-height:1.5;color:var(--fc-text);margin-bottom:.3rem}
.ln-case-conclusion{font-size:.68rem;line-height:1.5;color:var(--fc-green);background:var(--fc-green-pale);padding:.4rem .6rem;border-radius:4px}

/* Quiz */
.ln-quiz{display:flex;flex-direction:column;gap:.8rem}
.ln-q{background:var(--fc-off);border-radius:var(--rs);padding:.8rem}
.ln-q-num{font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--fc-green);margin-bottom:.3rem}
.ln-q-text{font-size:.75rem;font-weight:600;color:var(--fc-text);margin-bottom:.5rem;line-height:1.5}
.ln-q-opts{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.4rem}
.ln-opt{text-align:left;padding:.45rem .7rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);background:#fff;font-family:'Montserrat',sans-serif;font-size:.7rem;cursor:pointer;transition:all .15s;color:var(--fc-text)}
.ln-opt:hover:not(:disabled){border-color:var(--fc-green);background:rgba(27,94,32,.04)}
.ln-opt:disabled{cursor:default}
.ln-opt-selected{border-color:var(--fc-green);font-weight:600}
.ln-opt-correct{border-color:#1B5E20!important;background:#E8F5E9!important;color:#1B5E20!important}
.ln-opt-wrong.ln-opt-selected{border-color:#C62828!important;background:#FFEBEE!important;color:#C62828!important}
.ln-q-explain{font-size:.68rem;line-height:1.5;padding:.5rem .7rem;border-radius:4px;margin-top:.3rem}
.ln-q-correct{background:#E8F5E9;color:#1B5E20;border-left:3px solid #1B5E20}
.ln-q-wrong{background:#FFEBEE;color:#C62828;border-left:3px solid #C62828}
.ln-show-answer{font-size:.68rem!important;margin-top:.3rem}

/* Navigation buttons */
.ln-nav-buttons{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}
.ln-nav-btn{font-size:.7rem!important;padding:.45rem 1rem!important}

/* Glossary */
.ln-glossary{background:#fff;border:1.5px solid var(--fc-border);border-radius:var(--r);padding:1rem;margin-top:.4rem}
.ln-glossary-title{font-size:.75rem;font-weight:800;margin:0 0 .6rem;color:var(--fc-text)}
.ln-glossary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.4rem}
.ln-glossary-item{font-size:.62rem;padding:.3rem .5rem;background:var(--fc-off);border-radius:4px;display:flex;gap:.3rem}
.ln-glossary-item strong{color:var(--fc-green);white-space:nowrap}
.ln-glossary-item span{color:var(--fc-muted)}

@media(max-width:768px){
  .ln-grid{grid-template-columns:1fr}
  .ln-card-icon{width:48px}
  .ln-section-content{padding:.8rem}
  .ln-glossary-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════
   GMAIL PANEL — 3-column Outlook layout
   ═══════════════════════════════════════ */

/* Header bar */
/* ── Gmail Toolbar ── */
.gm-toolbar{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;border-bottom:1px solid var(--fc-border);flex-wrap:wrap;flex-shrink:0;position:relative;z-index:10}
.gm-toolbar-left{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;flex-wrap:wrap}
.gm-toolbar-left h2{display:flex;align-items:center}
.gm-toolbar-left h2 svg{color:var(--fc-green)}
.gm-search-box{position:relative;display:flex;align-items:center;flex:1;max-width:320px;min-width:120px}
.gm-search-icon{position:absolute;left:.5rem;color:var(--fc-muted);pointer-events:none}
.gm-search-box input{font-size:.68rem;padding:.35rem .6rem .35rem 1.8rem;border:1.5px solid var(--fc-border);border-radius:8px;width:100%;font-family:'Montserrat',sans-serif;transition:border-color .15s,box-shadow .15s}
.gm-search-box input:focus{border-color:var(--fc-green);box-shadow:0 0 0 3px rgba(27,94,32,.08);outline:none}
.gm-search-clear{position:absolute;right:.4rem;background:none;border:none;font-size:.9rem;color:var(--fc-muted);cursor:pointer;padding:0;line-height:1}
.gm-search-clear:hover{color:var(--fc-text)}
/* Advanced search filters */
.gm-search-filters{position:absolute;top:100%;left:0;right:0;background:#fff;border:1.5px solid var(--fc-green);border-top:none;border-radius:0 0 10px 10px;padding:.6rem .8rem;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:50}
.gm-sf-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;flex-wrap:wrap}
.gm-sf-row:last-child{margin-bottom:0}
.gm-sf-row label{font-size:.58rem;font-weight:700;color:var(--fc-muted);white-space:nowrap;min-width:fit-content}
.gm-sf-input{font-size:.62rem;padding:.25rem .5rem;border:1.5px solid var(--fc-border);border-radius:6px;font-family:'Montserrat',sans-serif;flex:1;min-width:80px}
.gm-sf-cb{width:14px;height:14px;accent-color:var(--fc-green)}
.gm-toolbar-right{display:flex;align-items:center;gap:.4rem;flex-shrink:0}
.gm-compose-btn{font-size:.6rem!important;padding:.3rem .7rem!important;background:var(--fc-green)!important;color:#fff!important;border:none!important;border-radius:8px!important;font-weight:700!important;white-space:nowrap;display:flex;align-items:center;gap:.3rem;transition:all .15s!important}
.gm-compose-btn:hover{background:var(--fc-green-light,#2E7D32)!important;box-shadow:0 2px 8px rgba(27,94,32,.25)!important}
.gm-email-count{font-size:.52rem;color:var(--fc-muted);white-space:nowrap}
.gm-bulk-bar{display:flex;align-items:center;gap:.25rem;font-size:.58rem;color:var(--fc-muted);font-weight:600;background:var(--fc-green-pale,rgba(27,94,32,.04));padding:.2rem .5rem;border-radius:8px;animation:gmBulkIn .2s ease}
@keyframes gmBulkIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.gm-bulk-btn{background:#fff!important;border:1.5px solid var(--fc-border)!important;border-radius:6px!important;width:28px!important;height:28px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer;transition:all .12s!important}
.gm-bulk-btn:hover{border-color:var(--fc-green)!important;background:var(--fc-green-pale)!important}
.gm-bulk-btn svg{display:block}
.gm-bulk-danger:hover{border-color:#C62828!important;background:#FFEBEE!important}
.gm-bulk-danger:hover svg{stroke:#C62828}

/* Gmail panel: viewport-height container */
#pan-gmail.active{display:flex!important;flex-direction:column;height:calc(100vh - 52px - 1.6rem)}

/* ── 4-Column Outlook-style Grid ── */
.gm-layout{display:grid;grid-template-columns:160px 1fr 2fr 240px;flex:1;overflow:hidden;min-height:0}

/* Col 1: Folder sidebar */
.gm-folders{border-right:1px solid var(--fc-border);overflow-y:auto;padding:.4rem 0;background:#fff}
.gm-folder-item{display:flex;align-items:center;gap:.4rem;padding:.4rem .6rem;font-size:.62rem;color:var(--fc-text);cursor:pointer;transition:all .12s;font-weight:500;border-left:3px solid transparent;border-radius:0 6px 6px 0;margin-right:.3rem}
.gm-folder-item:hover{background:rgba(27,94,32,.04)}
.gm-folder-item.active{background:rgba(27,94,32,.08);border-left-color:var(--fc-green);font-weight:700;color:var(--fc-green)}
.gm-folder-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.gm-folder-icon svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gm-folder-item.active .gm-folder-icon svg{stroke:var(--fc-green)}
.gm-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gm-folder-count{font-size:.48rem;background:var(--fc-green);color:#fff;border-radius:10px;padding:.1rem .4rem;font-weight:700;min-width:18px;text-align:center;line-height:1.3}
.gm-folder-sep{border-top:1px solid var(--fc-border);margin:.3rem .6rem}
.gm-folder-label-header{font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);padding:.5rem .6rem .2rem;margin-top:.2rem}

/* Col 2: Email list */
.gm-list{border-right:1px solid var(--fc-border);overflow-y:auto;background:#fff}

/* Col 3: Email preview */
.gm-preview{overflow-y:auto;background:var(--fc-off);min-width:0}

/* Col 4: Right panel */
.gm-right{border-left:1px solid var(--fc-border);overflow-y:auto;padding:0;background:#fff}
.gm-right-section{padding:.5rem .6rem}
.gm-right-title{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);margin-bottom:.4rem;display:flex;align-items:center;gap:.3rem}
.gm-right-sep{border-top:1px solid var(--fc-border);margin:0}
.gm-cal-item{display:flex;gap:.4rem;padding:.3rem 0;font-size:.6rem;border-bottom:1px solid rgba(0,0,0,.04)}
.gm-cal-item:last-child{border-bottom:none}
.gm-cal-time{font-weight:700;color:var(--fc-green);min-width:38px;flex-shrink:0}
.gm-cal-title{color:var(--fc-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gm-star-item{display:flex;align-items:center;gap:.3rem;padding:.25rem 0;font-size:.58rem;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.04)}
.gm-star-item:last-child{border-bottom:none}
.gm-star-item:hover{color:var(--fc-green)}
.gm-star-from{font-weight:600;color:var(--fc-text);max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.gm-star-subj{color:var(--fc-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}

/* ── Legacy compat (old classes, keep for preview/row styles) ── */
.gm-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:2rem}
.gm-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:2rem}
.gm-preview-content{padding:1.2rem}
.gm-preview-subject{font-size:.9rem;font-weight:800;color:var(--fc-text);margin-bottom:.6rem;line-height:1.3}
.gm-preview-meta{font-size:.65rem;color:var(--fc-muted);margin-bottom:.8rem;padding-bottom:.6rem;border-bottom:1px solid var(--fc-border)}
.gm-preview-from-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem}
.gm-preview-from-line strong{color:var(--fc-text);font-size:.68rem}
.gm-preview-date{color:var(--fc-muted);font-size:.58rem;white-space:nowrap}
.gm-preview-to{font-size:.6rem;color:var(--fc-muted)}

/* Email list rows — card style */
.gm-row{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .7rem;border-bottom:1px solid var(--fc-border);cursor:pointer;transition:all .15s}
.gm-row:hover{background:rgba(27,94,32,.04)}
.gm-row.gm-active{background:rgba(27,94,32,.08);border-left:3px solid var(--fc-green)}
.gm-unread{background:rgba(27,94,32,.02)}
.gm-unread .gm-from{font-weight:700}
.gm-unread .gm-subj{font-weight:600;color:var(--fc-text)}

/* Avatar circle */
.gm-avatar{width:32px;height:32px;min-width:32px;border-radius:50%;background:var(--fc-green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.48rem;font-weight:700;letter-spacing:.5px;flex-shrink:0;margin-top:.1rem}

/* Row content */
.gm-row-content{flex:1;min-width:0;overflow:hidden}
.gm-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:.3rem}
.gm-from{font-size:.66rem;color:var(--fc-text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.gm-date{font-size:.52rem;color:var(--fc-muted);white-space:nowrap;flex-shrink:0}
.gm-subj{font-size:.62rem;color:var(--fc-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.1rem}
.gm-subj span{opacity:.5;font-size:.58rem}
.gm-snippet{font-size:.56rem;color:var(--fc-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.15rem;line-height:1.3}

/* Row controls: checkbox, star, unread dot */
.gm-row-ctrl{display:flex;flex-direction:column;align-items:center;gap:.25rem;flex-shrink:0;padding-top:.15rem}
.gm-row-cb{width:14px;height:14px;accent-color:var(--fc-green);cursor:pointer;margin:0}
.gm-row-star{background:none;border:none;cursor:pointer;font-size:.8rem;line-height:1;padding:0;color:var(--fc-muted);transition:color .12s}
.gm-row-star:hover{color:#f9a825}
.gm-row-star.starred{color:#f9a825}
.gm-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--fc-green);flex-shrink:0;margin-top:.3rem}

/* Autocomplete dropdown */
.gm-ac-dropdown{font-family:'Montserrat',sans-serif;border-radius:6px}
.gm-ac-dropdown div{border-bottom:1px solid var(--fc-border)}
.gm-ac-dropdown div:last-child{border-bottom:none}

/* Attachments */
.gm-attachments{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem;padding:.6rem;background:#fff;border:1.5px solid var(--fc-green-soft);border-radius:var(--rs);position:relative;z-index:5}
.gm-att-card{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;background:var(--fc-off);border:1px solid var(--fc-border);border-radius:8px;transition:all .15s;min-width:200px;max-width:340px}
.gm-att-card:hover{border-color:var(--fc-green);background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.gm-att-icon{font-size:1.1rem;flex-shrink:0}
.gm-att-info{flex:1;min-width:0}
.gm-att-name{font-size:.65rem;font-weight:700;color:var(--fc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gm-att-size{font-size:.55rem;color:var(--fc-muted)}
.gm-att-btns{display:flex;gap:.3rem;flex-shrink:0}
.gm-att-btn{background:#fff;border:1.5px solid var(--fc-border);border-radius:6px;width:32px;height:32px;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0;position:relative;z-index:6}
.gm-att-btn:hover{border-color:var(--fc-green);background:var(--fc-green-pale);box-shadow:0 2px 6px rgba(27,94,32,.15)}
.gm-att-btn:active{transform:scale(.9);background:var(--fc-green);color:#fff}
.gm-att-btn-drive{color:var(--fc-green);border-color:var(--fc-green-soft)}
.gm-att-btn-drive:hover{background:var(--fc-green);color:#fff}

/* Link email to operation - bar at top */
.gm-link-op-bar{margin-bottom:.8rem;display:flex;flex-direction:column;gap:.4rem;position:relative}
.gm-linked-badge{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.5rem .8rem;background:linear-gradient(135deg,var(--fc-green-pale),#fff);border:1.5px solid var(--fc-green-soft);border-radius:8px;font-size:.68rem;color:var(--fc-green);font-weight:600}
.gm-linked-badge strong{color:var(--fc-green)}
.gm-link-op-btn{width:100%;padding:.5rem 1rem;background:var(--fc-off);color:var(--fc-green);border:1.5px dashed var(--fc-green-soft);border-radius:8px;font-family:'Montserrat',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.3px;cursor:pointer;transition:all .15s}
.gm-link-op-btn:hover{background:var(--fc-green-pale);border-style:solid;border-color:var(--fc-green)}
/* Legacy class kept for compatibility */
.gm-link-op-banner{margin-bottom:.8rem;position:relative}
/* Link email to operation dropdown */
.gm-link-op-dropdown{position:absolute;top:100%;left:0;right:0;min-width:260px;max-height:280px;overflow-y:auto;background:#fff;border:1.5px solid var(--fc-green);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.15);z-index:100;margin-top:.3rem}
.gm-link-op-search{width:100%;padding:.45rem .6rem;border:none;border-bottom:1.5px solid var(--fc-border);font-family:'Montserrat',sans-serif;font-size:.65rem;outline:none;border-radius:8px 8px 0 0}
.gm-link-op-search::placeholder{color:var(--fc-muted)}
.gm-link-op-item{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .6rem;cursor:pointer;font-size:.65rem;transition:background .12s;border-bottom:1px solid var(--fc-border)}
.gm-link-op-item:last-child{border-bottom:none}
.gm-link-op-item:hover{background:rgba(27,94,32,.08)}

/* Operation email links section */
.op-email-section{padding:.5rem}
.op-email-card{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.6rem .8rem;background:#fff;border:1px solid var(--fc-border);border-left:4px solid var(--fc-green);border-radius:8px;margin-bottom:.5rem;transition:all .15s}
.op-email-card:hover{border-color:var(--fc-green);box-shadow:0 2px 8px rgba(27,94,32,.08)}
.op-email-card-left{flex:1;min-width:0}
.op-email-from{font-size:.68rem;font-weight:700;color:var(--fc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-email-subj{font-size:.65rem;font-weight:600;color:var(--fc-text);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-email-snippet{font-size:.58rem;color:var(--fc-muted);margin-top:.15rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.op-email-date{font-size:.52rem;color:var(--fc-muted);margin-top:.2rem}
.op-email-card-actions{display:flex;align-items:center;gap:.3rem;flex-shrink:0}

/* Email body in preview — CONTAINED to prevent email CSS from leaking */
.gm-body{font-size:.72rem;line-height:1.7;color:var(--fc-text);padding:.8rem;background:#fff;border:1px solid var(--fc-border);border-radius:var(--rs);overflow-x:auto;overflow-y:auto;max-height:60vh;word-wrap:break-word;position:relative;z-index:0;isolation:isolate;contain:layout style}
.gm-body *{position:static!important;z-index:auto!important;pointer-events:auto!important}
.gm-body img{max-width:100%;height:auto;position:static!important}
.gm-body a{color:var(--fc-green)}

/* Actions bar */
.gm-actions{display:flex;gap:.4rem;margin-top:.8rem;flex-wrap:wrap;padding-top:.6rem;border-top:1px solid var(--fc-border)}
.gm-actions button{font-size:.6rem!important;padding:.35rem .8rem!important}

/* Compose (reuses genModal) */
.gm-compose-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:99997;display:flex;align-items:center;justify-content:center;animation:fcFadeIn .2s ease}
.gm-compose-box{background:#fff;border-radius:12px;max-width:600px;width:95%;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.2)}

/* Compose Attachment Zone */
.comp-att-zone{margin-top:.3rem}
.comp-att-drop{border:2px dashed var(--fc-border);border-radius:8px;padding:.6rem .8rem;text-align:center;font-size:.68rem;color:var(--fc-muted);transition:all .2s;cursor:default;display:flex;flex-direction:column;align-items:center;gap:.4rem}
.comp-att-drop-active{border-color:var(--fc-green);background:var(--fc-green-pale);color:var(--fc-green)}
.comp-att-btns{display:flex;gap:.4rem;margin-top:.2rem}
.btn-xs{font-size:.6rem!important;padding:.25rem .6rem!important;border-radius:6px}
.comp-att-list{display:flex;flex-direction:column;gap:.25rem;margin-top:.3rem}
.comp-att-item{display:flex;align-items:center;gap:.4rem;padding:.3rem .5rem;background:var(--fc-off);border:1px solid var(--fc-border);border-radius:6px;font-size:.65rem}
.comp-att-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.comp-att-size{color:var(--fc-muted);font-size:.58rem;flex-shrink:0}
.comp-att-rm{background:none;border:none;color:#C62828;cursor:pointer;font-size:.7rem;padding:0 .2rem;font-weight:700;line-height:1}
.comp-att-rm:hover{color:#F44336}

/* Drive Attach Picker */
.drive-att-picker{position:relative;background:#fff;border:1.5px solid var(--fc-green);border-radius:8px;max-height:250px;overflow-y:auto;margin-top:.3rem;box-shadow:0 4px 16px rgba(0,0,0,.1)}
.drive-att-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;border-bottom:1px solid var(--fc-border);position:sticky;top:0;background:#fff;z-index:1}
.drive-att-bc{font-size:.62rem;color:var(--fc-muted)}
.drive-att-bc-link{cursor:pointer;color:var(--fc-green);text-decoration:underline}
.drive-att-bc-link:hover{color:var(--fc-green-dark,#1B5E20)}
.drive-att-section{font-size:.58rem;color:var(--fc-muted);padding:.3rem .6rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.drive-att-row{padding:.35rem .6rem;font-size:.65rem;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--fc-off)}
.drive-att-row:hover{background:var(--fc-green-pale)}
.drive-att-row:last-child{border-bottom:none}
.drive-att-folder{font-weight:600}
.drive-att-file{color:var(--fc-text)}

/* Thread view — conversation messages */
.gm-thread-header{font-size:.55rem;color:var(--fc-muted);font-weight:600;padding:.4rem .8rem;display:flex;align-items:center;gap:.3rem;border-bottom:1px solid var(--fc-border);background:var(--fc-off)}
.gm-thread-header svg{width:14px;height:14px;stroke:var(--fc-muted)}
.gm-thread-msg{border:1px solid var(--fc-border);border-radius:8px;margin:.5rem .8rem;background:#fff;overflow:hidden;transition:all .15s}
.gm-thread-msg.gm-thread-collapsed{cursor:pointer}
.gm-thread-msg.gm-thread-collapsed:hover{border-color:var(--fc-green)}
.gm-thread-msg-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;cursor:pointer;transition:background .12s}
.gm-thread-msg-header:hover{background:rgba(27,94,32,.03)}
.gm-thread-msg-avatar{width:28px;height:28px;min-width:28px;border-radius:50%;background:var(--fc-green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.42rem;font-weight:700;flex-shrink:0}
.gm-thread-msg-meta{flex:1;min-width:0}
.gm-thread-msg-from{font-size:.65rem;font-weight:700;color:var(--fc-text)}
.gm-thread-msg-snippet{font-size:.56rem;color:var(--fc-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem}
.gm-thread-msg-date{font-size:.5rem;color:var(--fc-muted);white-space:nowrap;flex-shrink:0}
.gm-thread-msg-body{padding:.6rem .8rem;border-top:1px solid var(--fc-border)}
.gm-thread-expand-icon{width:16px;height:16px;flex-shrink:0;color:var(--fc-muted);transition:transform .2s}
.gm-thread-msg:not(.gm-thread-collapsed) .gm-thread-expand-icon{transform:rotate(180deg)}

/* Row hover actions (quick actions on hover) */
.gm-row-actions{display:none;position:absolute;right:.5rem;top:50%;transform:translateY(-50%);gap:.2rem;background:#fff;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);padding:.2rem}
.gm-row:hover .gm-row-actions{display:flex}
.gm-row{position:relative}
.gm-row-action-btn{background:none;border:none;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .12s;display:flex;align-items:center;justify-content:center}
.gm-row-action-btn:hover{background:rgba(27,94,32,.08)}
.gm-row-action-btn svg{width:14px;height:14px;stroke:var(--fc-muted);stroke-width:2;fill:none}
.gm-row-action-btn:hover svg{stroke:var(--fc-green)}
.gm-row-action-btn.gm-trash-btn:hover svg{stroke:#C62828}

/* Thread count badge on list rows */
.gm-thread-badge{font-size:.42rem;background:var(--fc-muted);color:#fff;border-radius:4px;padding:.05rem .3rem;font-weight:700;margin-left:.3rem;vertical-align:middle}

/* Empty / loading */
.gm-empty{text-align:center;padding:2rem;color:var(--fc-muted);font-size:.72rem}
.gm-loading{text-align:center;padding:2rem;color:var(--fc-muted);font-size:.72rem}

/* ── Gmail Undo Toast ── */
.gm-undo-toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(20px);background:#323232;color:#fff;padding:.65rem 1.2rem;border-radius:8px;display:flex;align-items:center;gap:1rem;z-index:9999;font-size:.72rem;font-family:'Montserrat',sans-serif;box-shadow:0 4px 16px rgba(0,0,0,.25);opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}
.gm-undo-toast.visible{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.gm-undo-btn{color:#8AB4F8;background:none;border:none;cursor:pointer;font-weight:700;font-size:.72rem;font-family:'Montserrat',sans-serif;padding:.2rem .5rem;border-radius:4px;transition:background .15s;text-transform:uppercase;letter-spacing:.3px}
.gm-undo-btn:hover{background:rgba(138,180,248,.15)}

/* ── Gmail Thread Per-Message Actions ── */
.gm-thread-msg-actions{display:flex;gap:.4rem;padding:.5rem 0 .2rem;border-top:1px solid var(--fc-border);margin-top:.5rem}
.gm-thread-msg-actions .btn-xs{font-size:.58rem;padding:.2rem .5rem;border-radius:4px}

/* ── Gmail Keyboard Shortcut Selected Row ── */
.gm-row.kb-selected{outline:2px solid var(--fc-green);outline-offset:-2px;border-radius:6px}

/* ── Floating Compose Box (Gmail-style) ── */
.fc-compose-float{position:fixed;bottom:0;right:2rem;width:480px;max-height:75vh;background:#fff;border-radius:10px 10px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.2);z-index:2000;display:flex;flex-direction:column;font-family:'Montserrat',sans-serif;transition:all .2s ease;animation:fcSlideUp .2s ease}
@keyframes fcSlideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
.fc-compose-float.fc-compose-minimized{max-height:38px;overflow:hidden;width:320px;cursor:pointer}
.fc-compose-float.fc-compose-minimized .fc-compose-body{display:none}
.fc-compose-float.fc-compose-expanded{width:680px;max-height:85vh}
.fc-compose-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .8rem;background:#1a1a1a;border-radius:10px 10px 0 0;cursor:default;user-select:none;flex-shrink:0}
.fc-compose-title{font-size:.7rem;font-weight:700;color:#fff;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.fc-compose-header-btns{display:flex;gap:.2rem;flex-shrink:0;margin-left:.5rem}
.fc-compose-hbtn{background:none;border:none;color:rgba(255,255,255,.5);font-size:.75rem;cursor:pointer;padding:.15rem .35rem;border-radius:3px;transition:all .12s;line-height:1}
.fc-compose-hbtn:hover{color:#fff;background:rgba(255,255,255,.12)}
.fc-compose-close:hover{background:#E53935;color:#fff}
.fc-compose-body{padding:.6rem .8rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.35rem}
.fc-compose-field{display:flex;align-items:center;gap:.4rem}
.fc-compose-field label{font-size:.6rem;font-weight:600;color:var(--fc-muted);min-width:42px;text-align:right}
.fc-compose-field input{flex:1;padding:.3rem .5rem;border:1px solid var(--fc-border);border-radius:5px;font-size:.7rem;font-family:'Montserrat',sans-serif;outline:none;transition:border-color .15s}
.fc-compose-field input:focus{border-color:var(--fc-green)}
.fc-compose-field .gm-rte-wrap{flex:1}

/* ═══════════════════════════════════════
   GOOGLE CALENDAR PANEL
   ═══════════════════════════════════════ */

/* ── Calendar Header ── */
.gcal-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--fc-border);background:#fff;flex-wrap:wrap;gap:.4rem}
.gcal-header-left{display:flex;align-items:center;gap:.5rem}
.gcal-header-center{display:flex;align-items:center}
.gcal-header-right{display:flex;align-items:center;gap:.5rem}
.gcal-header-icon{color:var(--fc-green);flex-shrink:0}
.gcal-title{font-size:.88rem;font-weight:800;color:var(--fc-text);margin:0;white-space:nowrap}
.gcal-month-label{font-size:.82rem;font-weight:800;min-width:140px;text-align:center;color:var(--fc-text)}
.gcal-nav-btn{background:none;border:1.5px solid var(--fc-border);border-radius:6px;width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fc-text);transition:all .15s}
.gcal-nav-btn:hover{border-color:var(--fc-green);color:var(--fc-green);background:rgba(27,94,32,.04)}
.gcal-today-btn{background:#fff;border:1.5px solid var(--fc-green);color:var(--fc-green);font-size:.68rem;font-weight:700;padding:.3rem .8rem;border-radius:6px;cursor:pointer;transition:all .15s}
.gcal-today-btn:hover{background:var(--fc-green);color:#fff}

/* View Toggle */
.gcal-view-toggle{display:flex;border:1.5px solid var(--fc-border);border-radius:8px;overflow:hidden}
.gcal-view-btn{display:flex;align-items:center;gap:.3rem;background:none;border:none;padding:.3rem .7rem;font-size:.65rem;font-weight:600;color:var(--fc-muted);cursor:pointer;transition:all .15s;white-space:nowrap}
.gcal-view-btn:hover{background:rgba(27,94,32,.04);color:var(--fc-text)}
.gcal-view-btn.active{background:var(--fc-green);color:#fff}
.gcal-view-btn+.gcal-view-btn{border-left:1px solid var(--fc-border)}

/* Search box */
.gcal-search-box{position:relative;display:flex;align-items:center}
.gcal-search-box input{border:1.5px solid var(--fc-border);border-radius:8px;padding:.35rem .6rem .35rem 1.8rem;font-size:.72rem;width:180px;transition:all .2s;font-family:'Montserrat',sans-serif}
.gcal-search-box input:focus{border-color:var(--fc-green);outline:none;width:220px}
.gcal-search-icon{position:absolute;left:.5rem;color:var(--fc-muted);pointer-events:none}
.gcal-search-clear{position:absolute;right:.3rem;background:none;border:none;color:var(--fc-muted);font-size:1rem;cursor:pointer;padding:0 .2rem;line-height:1}
.gcal-search-clear:hover{color:var(--fc-text)}

/* Create button */
.gcal-create-btn{background:var(--fc-green);color:#fff;border:none;font-size:.68rem;font-weight:700;padding:.4rem 1rem;border-radius:8px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.3rem;white-space:nowrap}
.gcal-create-btn:hover{background:var(--fc-green-light);transform:translateY(-1px);box-shadow:0 2px 8px rgba(27,94,32,.15)}

/* ── Calendar 3-Column Body ── */
.gcal-body{display:flex;height:calc(100vh - 180px);overflow:hidden}

/* Left: sidebar with mini-cal + calendar list */
.gcal-sidebar-pane{width:200px;flex-shrink:0;border-right:1px solid var(--fc-border);background:#fff;padding:.6rem;overflow-y:auto}
.gcal-sidebar-divider{height:1px;background:var(--fc-border);margin:.6rem 0}
.gcal-sidebar-title{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);margin-bottom:.5rem}
.gcal-sidebar-section-title{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);margin-top:.6rem;margin-bottom:.3rem}
.gcal-cal-item{display:flex;align-items:center;gap:.35rem;padding:.3rem .2rem;cursor:pointer;font-size:.72rem;color:var(--fc-text);transition:background .12s;border-radius:4px}
.gcal-cal-item:hover{background:rgba(27,94,32,.03)}
.gcal-cal-item input[type="checkbox"]{width:14px;height:14px;margin:0;accent-color:var(--fc-green);cursor:pointer}
.gcal-cal-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.gcal-cal-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px;font-size:.72rem}

/* Mini Calendar */
.gcal-mini-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}
.gcal-mini-nav{background:none;border:none;color:var(--fc-muted);cursor:pointer;padding:.15rem;display:flex;align-items:center;border-radius:4px;transition:all .12s}
.gcal-mini-nav:hover{color:var(--fc-green);background:rgba(27,94,32,.05)}
.gcal-mini-month{font-size:.72rem;font-weight:700;color:var(--fc-text)}
.gcal-mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}
.gcal-mini-hdr{text-align:center;font-size:.52rem;font-weight:700;color:var(--fc-muted);padding:.2rem 0}
.gcal-mini-cell{text-align:center;font-size:.6rem;padding:.25rem .1rem;cursor:pointer;border-radius:50%;transition:all .12s;color:var(--fc-text);position:relative}
.gcal-mini-cell:hover{background:rgba(27,94,32,.06)}
.gcal-mini-cell.gcal-mini-today{background:var(--fc-green);color:#fff;font-weight:700}
.gcal-mini-cell.gcal-mini-selected{box-shadow:inset 0 0 0 1.5px var(--fc-green)}
.gcal-mini-cell.gcal-mini-has-evt::after{content:'';position:absolute;bottom:1px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--fc-green)}
.gcal-mini-cell.gcal-mini-today.gcal-mini-has-evt::after{background:#fff}
.gcal-mini-cell.gcal-mini-empty{visibility:hidden}

/* Center: month/week/agenda grid */
.gcal-grid-pane{flex:1;min-width:0;overflow-y:auto;padding:.6rem;background:var(--fc-off)}

/* Month grid */
.gcal-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1.5px solid var(--fc-border);border-radius:var(--r);overflow:hidden;background:#fff}
.gcal-hdr{background:var(--fc-deep);color:#fff;text-align:center;padding:.5rem;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:1px}
.gcal-cell{min-height:85px;border:.5px solid var(--fc-border);padding:.35rem;position:relative;cursor:pointer;transition:all .15s;background:#fff;vertical-align:top}
.gcal-cell:hover{background:rgba(27,94,32,.03)}
.gcal-cell.gcal-today{background:rgba(27,94,32,.05)}
.gcal-cell.gcal-today .gcal-day-num{color:#fff}
.gcal-cell.gcal-today .gcal-day-num span:first-child,.gcal-cell.gcal-today>.gcal-day-num{background:var(--fc-green);border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:.62rem}
.gcal-cell.gcal-selected{background:var(--fc-green-pale);box-shadow:inset 0 -3px 0 0 var(--fc-green)}
.gcal-cell.gcal-empty{background:var(--fc-off);cursor:default;opacity:.4}
.gcal-cell.gcal-empty:hover{background:var(--fc-off)}
.gcal-day-num{font-size:.68rem;font-weight:700;color:var(--fc-text);margin-bottom:.25rem;display:flex;align-items:center;gap:.3rem}
.gcal-day-badge{background:var(--fc-green);color:#fff;font-size:.46rem;font-weight:700;border-radius:50%;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}

/* Calendar event pills in grid */
.gcal-evt{font-size:.52rem;padding:.12rem .35rem;border-radius:4px;margin-bottom:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:opacity .15s;line-height:1.3}
.gcal-evt:hover{opacity:.8}
.gcal-more{font-size:.5rem;color:var(--fc-muted);text-align:center;cursor:pointer;padding:.08rem 0}
.gcal-more:hover{color:var(--fc-green)}

/* ── Week View ── */
.gcal-week{display:flex;flex-direction:column;border:1.5px solid var(--fc-border);border-radius:var(--r);overflow:hidden;background:#fff}
.gcal-week-header{display:flex;border-bottom:1.5px solid var(--fc-border)}
.gcal-week-gutter{width:60px;flex-shrink:0;text-align:right;padding:.3rem .5rem;font-size:.58rem;color:var(--fc-muted)}
.gcal-week-day-hdr{flex:1;text-align:center;padding:.5rem .2rem;cursor:pointer;transition:background .12s;border-left:1px solid var(--fc-border)}
.gcal-week-day-hdr:hover{background:rgba(27,94,32,.03)}
.gcal-week-day-hdr.gcal-week-today{background:rgba(27,94,32,.05)}
.gcal-week-day-hdr.gcal-week-sel{background:var(--fc-green-pale)}
.gcal-week-day-name{display:block;font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted)}
.gcal-week-day-num{display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:var(--fc-text);width:26px;height:26px;border-radius:50%}
.gcal-week-day-num.gcal-today-num{background:var(--fc-green);color:#fff}

/* All-day row */
.gcal-week-allday{display:flex;border-bottom:1px solid var(--fc-border);min-height:28px}
.gcal-week-allday-label{display:flex;align-items:center;justify-content:center;color:var(--fc-muted)}
.gcal-week-allday-cell{flex:1;border-left:1px solid var(--fc-border);padding:.2rem;display:flex;flex-wrap:wrap;gap:.15rem;align-items:flex-start}
.gcal-week-allday-evt{font-size:.5rem;padding:.1rem .3rem;border-radius:3px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* Week body (time grid) */
.gcal-week-body{position:relative;overflow-y:auto;max-height:calc(100vh - 280px)}
.gcal-week-row{display:flex;min-height:44px;border-bottom:1px solid rgba(0,0,0,.05)}
.gcal-week-time{font-size:.58rem;border-right:1px solid var(--fc-border);display:flex;align-items:flex-start;padding-top:.2rem}
.gcal-week-cell{flex:1;border-left:1px solid var(--fc-border);position:relative;cursor:pointer;transition:background .1s}
.gcal-week-cell:hover{background:rgba(27,94,32,.02)}

/* Week events */
.gcal-week-evt{position:absolute;left:2px;right:2px;border-radius:4px;padding:.2rem .3rem;color:#fff;font-size:.52rem;overflow:hidden;cursor:pointer;z-index:1;transition:opacity .12s}
.gcal-week-evt:hover{opacity:.85;z-index:2}
.gcal-week-evt-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcal-week-evt-time{font-size:.48rem;opacity:.85}

/* Current time indicator */
.gcal-week-now{position:absolute;z-index:5;pointer-events:none;display:flex;align-items:center}
.gcal-week-now-dot{width:8px;height:8px;border-radius:50%;background:#E53935;flex-shrink:0;margin-left:-4px}
.gcal-week-now-line{height:2px;background:#E53935;flex:1}

/* ── Agenda View ── */
.gcal-agenda{padding:.4rem}
.gcal-agenda-empty{text-align:center;padding:3rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.gcal-agenda-date{padding:.6rem .4rem .3rem;position:sticky;top:0;background:var(--fc-off);z-index:1}
.gcal-agenda-date.gcal-agenda-today .gcal-agenda-day-num{background:var(--fc-green);color:#fff}
.gcal-agenda-date-label{display:flex;align-items:center;gap:.6rem}
.gcal-agenda-day-num{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:800;color:var(--fc-text);background:var(--fc-border);flex-shrink:0}
.gcal-agenda-day-text{font-size:.72rem;font-weight:600;color:var(--fc-muted);text-transform:capitalize}
.gcal-agenda-item{display:flex;align-items:stretch;background:#fff;border:1px solid var(--fc-border);border-radius:8px;margin:.3rem .4rem;overflow:hidden;transition:all .15s;cursor:pointer}
.gcal-agenda-item:hover{border-color:var(--fc-green);box-shadow:0 2px 8px rgba(27,94,32,.08)}
.gcal-agenda-stripe{width:4px;flex-shrink:0}
.gcal-agenda-time{display:flex;align-items:center;gap:.3rem;padding:.5rem;min-width:90px;font-size:.68rem;color:var(--fc-muted);flex-shrink:0}
.gcal-agenda-time svg{flex-shrink:0}
.gcal-agenda-body{flex:1;padding:.5rem .4rem;min-width:0}
.gcal-agenda-title{font-size:.78rem;font-weight:700;color:var(--fc-text);margin-bottom:.15rem}
.gcal-agenda-cal{font-size:.62rem;color:var(--fc-muted);font-style:italic}
.gcal-agenda-loc{font-size:.62rem;color:var(--fc-muted);display:flex;align-items:center;gap:.2rem;margin-top:.1rem}
.gcal-agenda-actions{display:flex;align-items:center;gap:.2rem;padding:.3rem;opacity:0;transition:opacity .15s}
.gcal-agenda-item:hover .gcal-agenda-actions{opacity:1}

/* Event action buttons (shared between day panel, agenda) */
.gcal-evt-action-btn{background:none;border:1px solid var(--fc-border);border-radius:5px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fc-muted);transition:all .12s}
.gcal-evt-action-btn:hover{border-color:var(--fc-green);color:var(--fc-green);background:rgba(27,94,32,.04)}
.gcal-evt-action-btn.gcal-evt-danger:hover{border-color:var(--fc-danger);color:var(--fc-danger);background:rgba(198,40,40,.04)}

/* Right: day detail panel */
.gcal-day-pane{width:300px;flex-shrink:0;border-left:1px solid var(--fc-border);background:#fff;overflow-y:auto}
.gcal-day-content{padding:.7rem}
.gcal-day-empty{text-align:center;padding:2rem .5rem;color:var(--fc-muted);font-size:.75rem;display:flex;flex-direction:column;align-items:center}

/* Day header inside right panel */
.gcal-day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7rem;padding-bottom:.5rem;border-bottom:1.5px solid var(--fc-border)}
.gcal-day-title{font-size:.78rem;font-weight:800;color:var(--fc-text);text-transform:capitalize}
.gcal-add-evt-btn{background:none;border:1.5px solid var(--fc-green);color:var(--fc-green);width:28px;height:28px;border-radius:6px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}
.gcal-add-evt-btn:hover{background:var(--fc-green);color:#fff}
.gcal-day-empty-msg{text-align:center;padding:2rem .5rem;font-size:.75rem;color:var(--fc-muted)}

/* Event cards in day panel */
.gcal-event-card{display:flex;align-items:stretch;background:#fff;border:1px solid var(--fc-border);border-radius:8px;margin-bottom:.5rem;overflow:hidden;transition:all .15s;position:relative}
.gcal-event-card-gcal{cursor:pointer}
.gcal-event-card:hover{border-color:var(--fc-green);box-shadow:0 2px 8px rgba(27,94,32,.08)}
.gcal-event-stripe{width:4px;flex-shrink:0;border-radius:4px 0 0 4px}
.gcal-event-body{flex:1;padding:.5rem .6rem;min-width:0}
.gcal-event-title{font-size:.78rem;font-weight:700;color:var(--fc-text);margin-bottom:.2rem}
.gcal-event-meta{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.2rem}
.gcal-event-time-badge{font-size:.65rem;font-weight:600;color:var(--fc-green);background:rgba(27,94,32,.08);padding:.15rem .4rem;border-radius:4px;display:flex;align-items:center;gap:.25rem}
.gcal-event-time-badge svg{flex-shrink:0}
.gcal-event-cal-name{font-size:.6rem;color:var(--fc-muted);font-style:italic}
.gcal-event-loc{font-size:.65rem;color:var(--fc-muted);margin-top:.15rem;display:flex;align-items:center;gap:.25rem}
.gcal-event-loc svg{flex-shrink:0}
.gcal-event-meet{margin-top:.2rem}
.gcal-event-meet a{font-size:.65rem;color:#1a73e8;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:.25rem}
.gcal-event-meet a:hover{text-decoration:underline}
.gcal-event-desc{font-size:.65rem;color:var(--fc-muted);margin-top:.25rem;line-height:1.4;border-top:1px solid var(--fc-border);padding-top:.25rem}
.gcal-event-actions{display:flex;flex-direction:column;gap:.2rem;padding:.3rem;opacity:0;transition:opacity .15s}
.gcal-event-card:hover .gcal-event-actions{opacity:1}

/* Modal input shared class */
.gcal-modal-input{width:100%;padding:.45rem .6rem;border:1.5px solid var(--fc-border);border-radius:6px;font-size:.78rem;font-family:'Montserrat',sans-serif;transition:border-color .15s}
.gcal-modal-input:focus{border-color:var(--fc-green);outline:none}

/* ═══════════════════════════════════════
   DRIVE FILE BROWSER (in operation modal)
   ═══════════════════════════════════════ */
.drv-browser{padding:.8rem}
.drv-breadcrumb{display:flex;align-items:center;gap:.2rem;margin-bottom:.6rem;flex-wrap:wrap;font-size:.62rem}
.drv-breadcrumb a{color:var(--fc-green);cursor:pointer;text-decoration:none}
.drv-breadcrumb a:hover{text-decoration:underline}
.drv-breadcrumb span{color:var(--fc-muted)}
.drv-list{display:flex;flex-direction:column;gap:.3rem}
.drv-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border:1px solid var(--fc-border);border-radius:var(--rs);cursor:pointer;transition:all .15s;background:#fff}
.drv-item:hover{border-color:var(--fc-green);background:rgba(27,94,32,.02)}
.drv-item-icon{font-size:1rem;flex-shrink:0}
.drv-item-name{flex:1;font-size:.7rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drv-item-meta{font-size:.58rem;color:var(--fc-muted)}
.drv-item-actions{display:flex;gap:.3rem}
.drv-item-actions a{font-size:.58rem;color:var(--fc-green);text-decoration:none}
.drv-item-actions a:hover{text-decoration:underline}
.drv-empty{text-align:center;padding:1.5rem;color:var(--fc-muted);font-size:.7rem}
.drv-preview{margin-top:.6rem;border:1px solid var(--fc-border);border-radius:var(--rs);overflow:hidden}
.drv-preview iframe,.drv-preview img{width:100%;max-height:400px;object-fit:contain}

/* ═══ RESPONSIVE — Gmail & Calendar ═══ */
@media(max-width:1200px){
  .gm-layout{grid-template-columns:140px 1fr 1.5fr 200px}
  .gm-search-filters{left:auto;width:400px}
  .gcal-sidebar-pane{width:160px;padding:.5rem}
  .gcal-day-pane{width:240px}
  .gcal-search-box input{width:140px}
  .gcal-search-box input:focus{width:160px}
  .gcal-view-btn{padding:.25rem .5rem;font-size:.6rem}
}
@media(max-width:992px){
  .gm-layout{grid-template-columns:1fr 1.5fr;display:grid}
  .gm-folders{display:none}
  .gm-right{display:none}
  .gm-search-box{max-width:none}
  .gm-search-filters{width:100%;left:0}
  .gm-row-actions{display:none!important}
  /* Calendar: stack sidebar hidden, grid + day panel vertical */
  .gcal-body{flex-direction:column;height:auto}
  .gcal-sidebar-pane{display:none}
  .gcal-grid-pane{overflow:visible}
  .gcal-day-pane{width:100%;border-left:none;border-top:1px solid var(--fc-border)}
  .gcal-header-center{order:-1;width:100%;justify-content:center;margin-bottom:.3rem}
  .gcal-week-body{max-height:none}
  .gcal-search-box{display:none}
}
/* ═══════════════════════════════════════
   GESTIONE — Step 9 Back-Office Panel
   ═══════════════════════════════════════ */
.gest-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.gest-section{border:1.5px solid var(--fc-border);border-radius:var(--r);margin-bottom:.6rem;overflow:hidden}
.gest-section-head{background:var(--fc-bg);padding:.45rem .7rem;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--fc-green);cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none}
.gest-section-head:hover{background:#E8F5E9}
.gest-section-body{padding:.6rem .7rem}
.gest-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.4rem;flex-wrap:wrap}
.gest-label{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);min-width:70px}
.gest-input{padding:.3rem .5rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat',sans-serif;font-size:.68rem;background:#fff;flex:1;min-width:0}
.gest-input:focus{border-color:var(--fc-green);outline:none}
.gest-select{padding:.3rem .5rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat',sans-serif;font-size:.68rem;background:#fff;cursor:pointer}
.gest-select:focus{border-color:var(--fc-green);outline:none}
.gest-textarea{padding:.3rem .5rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat',sans-serif;font-size:.62rem;background:#fff;width:100%;min-height:40px;resize:vertical}
.gest-textarea:focus{border-color:var(--fc-green);outline:none}
.gest-num{width:55px;text-align:center;padding:.3rem .3rem;border:1.5px solid var(--fc-border);border-radius:var(--rs);font-family:'Montserrat',sans-serif;font-size:.68rem}
.gest-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:3px;font-size:.52rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.gest-badge-green{background:#E8F5E9;color:#2E7D32}
.gest-badge-yellow{background:#FFF3E0;color:#E65100}
.gest-badge-red{background:#FFEBEE;color:#C62828}
.gest-badge-grey{background:#F5F5F5;color:#757575}
.gest-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}
.gest-dot-green{background:#4CAF50}
.gest-dot-yellow{background:#FF9800}
.gest-dot-red{background:#E53935}
.gest-dot-grey{background:#BDBDBD}
.gest-card{border:1.5px solid var(--fc-border);border-radius:var(--rs);padding:.5rem .6rem;flex:1;min-width:120px}
.gest-card-title{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);margin-bottom:.3rem}
.gest-utenze-table{width:100%;border-collapse:collapse;font-size:.6rem}
.gest-utenze-table th{text-align:left;padding:.3rem .4rem;background:var(--fc-bg);font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fc-muted);border-bottom:1.5px solid var(--fc-border)}
.gest-utenze-table td{padding:.3rem .4rem;border-bottom:1px solid var(--fc-border);vertical-align:middle}
.gest-utenze-table input,.gest-utenze-table select,.gest-utenze-table textarea{font-family:'Montserrat',sans-serif;font-size:.6rem;padding:.2rem .3rem;border:1px solid var(--fc-border);border-radius:3px;background:#fff;width:100%}
.gest-utenze-table textarea{min-height:30px;resize:vertical}
.gest-inline{display:flex;gap:.5rem;flex-wrap:wrap}
@media(max-width:768px){
  .gest-grid{grid-template-columns:1fr}
  .gest-inline{flex-direction:column}
}

@media(max-width:768px){
  .gm-layout{grid-template-columns:1fr;grid-template-rows:35vh 1fr}
  .gm-list{border-right:none;border-bottom:1px solid var(--fc-border)}
  .gm-preview{min-height:300px}
  .gm-row{padding:.4rem .5rem;gap:.3rem}
  .gm-avatar{width:28px;height:28px;min-width:28px;font-size:.42rem}
  .gm-from{font-size:.6rem}
  .gm-subj{font-size:.56rem}
  .gm-snippet{display:none}
  .gm-preview-content{padding:.8rem}
  .gm-compose-box{width:98%}
  .gm-toolbar-left{flex-direction:column;align-items:flex-start;gap:.3rem}
  .gm-toolbar-left h2{font-size:.85rem!important}
  .gm-search-box{width:100%;max-width:none}
  .gm-thread-msg{margin:.3rem}
  .fc-compose-float{right:0;left:0;width:100%;border-radius:10px 10px 0 0}
  .fc-compose-float.fc-compose-minimized{width:240px;left:auto;right:.5rem}
  .fc-compose-float.fc-compose-expanded{width:100%}
  .gcal-grid{font-size:.58rem}
  .gcal-cell{min-height:55px;padding:.2rem}
  .gcal-evt{font-size:.46rem;padding:.1rem .2rem}
  .gcal-hdr{padding:.35rem;font-size:.52rem}
  .gcal-day-badge{width:13px;height:13px;font-size:.38rem}
  .gcal-header{padding:.4rem .6rem}
  .gcal-month-label{font-size:.72rem;min-width:100px}
  .gcal-title{display:none}
  .gcal-view-toggle{width:100%}
  .gcal-view-btn{flex:1;justify-content:center;font-size:.58rem}
  .gcal-create-btn span,.gcal-create-btn{font-size:.6rem;padding:.35rem .6rem}
  .gcal-week-gutter{width:40px;font-size:.5rem;padding:.2rem .3rem}
  .gcal-agenda-time{min-width:70px;padding:.3rem;font-size:.6rem}
  .drv-item-name{font-size:.62rem}
}
