:root {
  --primary:#ff6b8b;--primary-strong:#f34f75;--primary-soft:#ffe7ed;--secondary:#ffa8b6;
  --bg:#f7f9fc;--surface:#fff;--text:#2b2d42;--muted:#8d99ae;--line:#e9edf4;
  --success:#0faf83;--warning:#d9902f;--danger:#d94668;--info:#4e8fd6;
  --sidebar:280px;--radius:18px;--shadow:0 14px 40px rgba(43,45,66,.07);
}
*{box-sizing:border-box}html{font-family:Nunito,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}body{margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}code{background:#f1f4f8;border:1px solid var(--line);padding:.1rem .35rem;border-radius:6px;font-size:.9em}.app-body{min-height:100vh;overflow-x:hidden}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line);z-index:30}.brand{height:92px;display:flex;align-items:center;gap:13px;padding:18px 22px;border-bottom:1px solid var(--line)}.brand img{border-radius:14px}.brand strong{display:block;font-size:1rem}.brand span{display:block;font-size:.73rem;color:var(--muted);font-weight:700;margin-top:2px}.main-nav{padding:18px 14px;display:flex;flex-direction:column;gap:5px;overflow-y:auto;flex:1}.nav-section{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#abb4c3;font-weight:900;padding:17px 14px 7px}.nav-link{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:13px;color:#6d778a;font-weight:800;text-align:left;cursor:pointer;transition:.18s}.nav-link:hover:not(.is-disabled){background:#f8fafc;color:var(--primary-strong);transform:translateX(2px)}.nav-link.is-active{background:var(--primary-soft);color:var(--primary-strong)}.nav-link.is-disabled{opacity:.38;cursor:not-allowed}.nav-icon{width:26px;text-align:center;font-size:1.15rem}.sidebar-footer{border-top:1px solid var(--line);padding:17px 22px;display:flex;align-items:center;gap:10px}.sidebar-footer strong{display:block;font-size:.75rem;letter-spacing:.1em}.sidebar-footer small{display:block;color:var(--muted);font-size:.7rem;margin-top:2px}.environment-dot{width:10px;height:10px;border-radius:50%;background:var(--success);box-shadow:0 0 0 5px rgba(15,175,131,.12)}.main-shell{margin-left:var(--sidebar);min-height:100vh}.topbar{min-height:92px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:16px 34px;position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}.topbar-left,.topbar-right,.user-chip{display:flex;align-items:center}.topbar-left{gap:15px}.topbar-right{gap:18px}.topbar h1{font-size:1.35rem;margin:1px 0 0;color:var(--primary-strong)}.eyebrow{font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:900;margin:0}.user-chip{gap:10px}.user-chip strong,.user-chip span{display:block}.user-chip strong{font-size:.86rem}.user-chip span{font-size:.72rem;color:var(--muted);font-weight:700;margin-top:2px}.avatar{display:grid!important;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:900}.mobile-toggle{display:none;border:0;background:var(--primary-soft);color:var(--primary-strong);width:40px;height:40px;border-radius:11px;cursor:pointer}.page-content{padding:34px;max-width:1600px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;margin-bottom:26px}.page-heading h2{font-size:1.8rem;margin:7px 0 7px}.page-heading p{max-width:780px;color:var(--muted);font-weight:600;line-height:1.55;margin:0}.stage-badge{display:inline-flex;background:var(--primary-soft);color:var(--primary-strong);font-size:.68rem;letter-spacing:.1em;font-weight:900;padding:7px 10px;border-radius:999px}.status-pill{display:inline-flex;align-items:center;gap:8px;background:#e9fbf5;color:#087c5c;border:1px solid #c8f2e5;padding:9px 12px;border-radius:999px;font-size:.78rem;font-weight:900;white-space:nowrap}.status-pill span{width:8px;height:8px;background:var(--success);border-radius:50%}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:20px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:21px;box-shadow:var(--shadow);min-width:0;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--primary),var(--secondary))}.stat-card span{color:var(--muted);font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.stat-card strong{display:block;font-size:2rem;margin:10px 0 7px}.stat-card small{display:block;color:#9aa4b5;font-weight:650;line-height:1.35}.stat-icon{position:absolute;right:18px;top:18px;width:38px;height:38px;border-radius:12px;background:var(--primary-soft);display:grid;place-items:center;color:var(--primary-strong);font-weight:900}.dashboard-grid,.system-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 22px;border-bottom:1px solid var(--line)}.panel-header h3{margin:3px 0 0;font-size:1.08rem}.panel-note{font-size:.69rem;font-weight:900;color:var(--muted);background:#f4f6f9;padding:6px 9px;border-radius:999px}.panel-body{padding:22px}.panel-body.no-padding{padding:0}.event-list,.activity-list,.check-list{list-style:none;padding:0;margin:0}.event-list li{display:grid;grid-template-columns:108px 1fr 24px;gap:14px;align-items:center;padding:17px 22px;border-bottom:1px solid var(--line)}.event-list li:last-child,.activity-list li:last-child{border-bottom:0}.event-list strong,.event-list span,.activity-list strong,.activity-list span{display:block}.event-list li div span,.activity-list li div span{color:var(--muted);font-size:.78rem;font-weight:700;margin-top:3px}.date-box{color:var(--primary-strong);font-size:.76rem;font-weight:900}.chevron{color:#c1c8d3;font-size:1.5rem}.activity-list li{display:flex;align-items:center;gap:13px;padding:19px 22px;border-bottom:1px solid var(--line)}.activity-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 5px var(--primary-soft);flex:0 0 auto}.architecture-card{background:linear-gradient(135deg,#2b2d42,#3d405b);border-radius:22px;padding:28px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;box-shadow:0 18px 45px rgba(43,45,66,.18)}.architecture-card .eyebrow{color:#ffbdcb}.architecture-card h3{font-size:1.25rem;margin:7px 0}.architecture-card p{color:#d8dbe5;line-height:1.55;margin:0;max-width:700px}.architecture-card code{color:#fff;background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.12)}.architecture-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.architecture-flow span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);padding:8px 10px;border-radius:9px;font-weight:800;font-size:.77rem}.architecture-flow b{color:#ff9cb0}.button{border:0;border-radius:11px;padding:10px 15px;font-weight:900;cursor:pointer}.button-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;box-shadow:0 8px 20px rgba(255,107,139,.22)}.button-ghost{background:#f4f6f9;color:#697386}.public-body{min-height:100vh;background:radial-gradient(circle at top left,#ffe9ef 0,transparent 34%),var(--bg)}.access-page{min-height:100vh;display:grid;place-items:center;padding:25px}.access-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;padding:32px;box-shadow:0 20px 60px rgba(43,45,66,.1)}.access-logo-wrap{display:flex;justify-content:center;margin-bottom:15px}.access-logo{width:76px;height:76px;border-radius:20px}.access-card .stage-badge{margin-bottom:8px}.access-card h1{font-size:1.6rem;margin:8px 0}.access-card>p{color:var(--muted);line-height:1.55;font-weight:600}.stack-form{display:grid;gap:15px;margin:22px 0}.stack-form label{font-size:.78rem;font-weight:900;color:#667085}.stack-form input{display:block;width:100%;margin-top:7px;padding:13px 14px;border:1.5px solid #dfe4eb;border-radius:11px;outline:0;color:var(--text)}.stack-form input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.alert{border-radius:12px;padding:13px 14px;font-size:.84rem;line-height:1.45}.alert-danger{background:#fff0f3;color:#a92d4d;border:1px solid #ffd1db}.muted{color:var(--muted)}.definition-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.definition-list dt{color:var(--muted);font-weight:800}.definition-list dd{margin:0;text-align:right;font-weight:900}.check-list{display:grid;gap:9px}.check-list li{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1px solid var(--line);padding:11px 13px;border-radius:11px;font-weight:800}.check-list li span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-weight:900}.check-list li.ok span{background:#e4f8f1;color:var(--success)}.check-list li.warn span{background:#fff5e9;color:var(--warning)}.check-list li.bad span{background:#fff0f3;color:var(--danger)}.check-list li em{margin-left:auto;color:var(--muted);font-size:.75rem;font-style:normal}.system-panel{margin-bottom:20px}.info-note{margin:18px 0 0;color:#667085;line-height:1.55;font-size:.86rem}.mobile-overlay{display:none}.page-actions{padding-top:4px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.architecture-card{align-items:flex-start;flex-direction:column}.architecture-flow{justify-content:flex-start}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:transform .22s ease}.main-shell{margin-left:0}.mobile-toggle{display:grid;place-items:center}.sidebar-open .sidebar{transform:translateX(0)}.mobile-overlay{position:fixed;inset:0;background:rgba(25,29,41,.45);z-index:25}.sidebar-open .mobile-overlay{display:block}.topbar{padding:14px 18px}.user-chip{display:none}.page-content{padding:22px 18px}.dashboard-grid,.system-grid{grid-template-columns:1fr}.page-heading{flex-direction:column}.page-actions{padding:0}}
@media(max-width:560px){.stats-grid{grid-template-columns:1fr}.topbar h1{font-size:1.1rem}.event-list li{grid-template-columns:90px 1fr 14px}.architecture-flow b{display:none}.definition-list{grid-template-columns:1fr}.definition-list dd{text-align:left}.access-card{padding:24px}}
.empty-state{padding:28px 22px;color:var(--muted);font-weight:750;text-align:center}.alert-danger strong{font-weight:900}

.google-button{width:100%;margin-top:20px;background:#fff;color:var(--text);border:1.5px solid #dfe4eb;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 15px}.google-button:hover{background:#f8fafc;border-color:#cbd3df}.google-button:disabled{opacity:.65;cursor:wait}.google-mark{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#4285f4;border:1px solid #e5e7eb;background:#fff}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin:19px 0 5px}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line);flex:1}.login-hint{margin:18px 0 0!important;padding:13px 14px;border-radius:12px;background:#f8fafc;border:1px solid var(--line);font-size:.8rem!important;color:#667085!important}.alert[hidden]{display:none}

/* v5 · Dashboard consolidata / ownership UID-first */
.license-pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:9px 13px;font-size:.78rem;font-weight:900;border:1px solid var(--line);background:#f4f6f9;color:#667085;white-space:nowrap}.license-pill.is-ok{background:#e9fbf5;border-color:#c8f2e5;color:#087c5c}.license-pill.is-warn{background:#fff7e8;border-color:#f5dfb4;color:#9b681f}.license-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.event-list-rich li{grid-template-columns:108px 1fr auto}.event-main{min-width:0}.countdown-badge{font-size:.7rem!important;font-weight:900!important;background:#f6f7fa;color:#697386!important;padding:7px 9px;border-radius:999px;white-space:nowrap;margin:0!important}.dashboard-grid-secondary{align-items:stretch}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden}.account-grid>div{padding:14px 16px;border-bottom:1px solid var(--line)}.account-grid>div:nth-child(odd){border-right:1px solid var(--line)}.account-grid>div:nth-last-child(-n+2){border-bottom:0}.account-grid dt{font-size:.69rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900;margin-bottom:5px}.account-grid dd{margin:0;font-weight:900;color:var(--text);overflow-wrap:anywhere}.inline-warning{margin:14px 0 0;background:#fff8e9;border:1px solid #f5e2bd;color:#8d6424;border-radius:11px;padding:11px 13px;font-size:.78rem;line-height:1.45;font-weight:750}.migration-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.migration-metrics>div{background:#f8fafc;border:1px solid var(--line);border-radius:13px;padding:14px}.migration-metrics strong{display:block;font-size:1.45rem}.migration-metrics span{display:block;color:var(--muted);font-size:.7rem;font-weight:850;margin-top:3px}.migration-copy{color:#667085;line-height:1.55;font-size:.82rem;margin:15px 0}.migration-status{display:flex;align-items:center;gap:11px;border-radius:12px;padding:12px 13px}.migration-status>span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.migration-status strong,.migration-status small{display:block}.migration-status small{margin-top:2px;font-size:.72rem;line-height:1.35}.migration-status.ok{background:#e9fbf5;color:#087c5c}.migration-status.ok>span{background:#ccf2e6}.migration-status.warn{background:#fff7e8;color:#8d6424}.migration-status.warn>span{background:#f8e5bd}.compact-architecture{margin-top:0;padding:24px 26px}.migration-alert{font-weight:700}.activity-contract{background:#8b5cf6!important;box-shadow:0 0 0 5px rgba(139,92,246,.12)!important}.activity-task{background:var(--success)!important;box-shadow:0 0 0 5px rgba(15,175,131,.12)!important}.activity-guest{background:var(--info)!important;box-shadow:0 0 0 5px rgba(78,143,214,.12)!important}.activity-event{background:var(--primary)!important;box-shadow:0 0 0 5px var(--primary-soft)!important}
@media(max-width:720px){.event-list-rich li{grid-template-columns:88px 1fr}.countdown-badge{grid-column:2;justify-self:start}.account-grid{grid-template-columns:1fr}.account-grid>div:nth-child(odd){border-right:0}.account-grid>div:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.account-grid>div:last-child{border-bottom:0}.migration-metrics{grid-template-columns:1fr}}

/* v6 · Parità visiva menu produzione */
.main-nav{gap:3px}.nav-label{min-width:0}.nav-link.has-separator{margin-top:12px;border-top:1px dashed var(--line);border-radius:0;padding-top:16px}.nav-accent-primary:not(.is-active){color:var(--primary-strong)}.nav-accent-info:not(.is-active){color:var(--info)}.nav-accent-danger:not(.is-active){color:var(--danger);background:#fff7f8}.nav-badge{margin-left:auto;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:#ef476f;color:#fff;display:grid;place-items:center;font-size:.68rem;font-weight:900}.topbar-production-actions{gap:10px}.production-actions{display:flex;align-items:center;gap:7px}.production-action{height:38px;border:1px solid var(--line);background:#fff;color:#697386;border-radius:12px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:900;cursor:pointer;position:relative;white-space:nowrap}.production-action:hover{border-color:#ffc6d2;color:var(--primary-strong);background:#fff9fb}.production-action-install{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border-color:transparent}.production-action-news{background:#fff2f5;color:var(--primary-strong);border-color:#ffd2dc}.production-action-feedback{background:#fff8ec;color:#b26b14;border-color:#f5dfba}.production-action-guide{background:#f3f7fc;color:#4e6f96}.production-action-icon{width:38px;padding:0;justify-content:center;border-radius:50%;font-size:1rem}.action-badge{position:absolute;right:-3px;top:-4px;background:#ef476f;color:#fff;border:2px solid #fff;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;font-size:.58rem;font-style:normal}.user-chip-compact{margin-left:3px}.preview-toast{position:fixed;right:22px;top:82px;z-index:80;max-width:350px;background:#2b2d42;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 18px 45px rgba(43,45,66,.2);font-size:.8rem;font-weight:800;opacity:0;transform:translateY(-8px);pointer-events:none;transition:.2s}.preview-toast.is-visible{opacity:1;transform:translateY(0)}.module-preview-panel{max-width:900px}.preview-module-card{display:flex;align-items:flex-start;gap:18px;padding:20px;border:1px dashed #d9deea;border-radius:16px;background:#fbfcfe}.preview-module-icon{width:54px;height:54px;border-radius:15px;background:var(--primary-soft);display:grid;place-items:center;font-size:1.6rem;flex:0 0 auto}.preview-module-card strong{display:block;font-size:1.05rem}.preview-module-card p{margin:7px 0 0;color:var(--muted);line-height:1.55}.preview-safety-note{margin-top:16px}.module-preview-heading p{max-width:760px}
@media(max-width:1450px){.production-action strong{display:none}.production-action:not(.production-action-icon){width:38px;padding:0;justify-content:center}.user-chip-compact{display:none}}
@media(max-width:980px){.production-actions{display:none}}

/* v7 · Rubrica Eventi server-side read-only */
.clients-heading{align-items:center}.clients-page-actions{display:flex;gap:9px;flex-wrap:wrap}.clients-alert{margin-bottom:18px}.clients-stats-grid{margin-bottom:18px}.clients-toolbar{padding:14px 16px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.clients-toolbar-main{display:flex;gap:10px;align-items:center;flex:1;min-width:0}.clients-toolbar input,.clients-toolbar select{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:11px;padding:10px 12px;outline:none;font-weight:700}.clients-toolbar input:focus,.clients-toolbar select:focus{border-color:#ffc2cf;box-shadow:0 0 0 4px var(--primary-soft)}.clients-search{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:11px;padding:0 11px;flex:1;min-width:230px;background:#fff}.clients-search input{border:0!important;box-shadow:none!important;padding-left:0;width:100%;min-width:0}.clients-toolbar-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.76rem;font-weight:850;white-space:nowrap}.read-only-badge{background:#eef8f5;color:#087c5c;border:1px solid #d5eee7;padding:7px 9px;border-radius:999px}.clients-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-bottom:20px;align-items:start}.clients-layout.has-detail{grid-template-columns:minmax(0,1fr) 390px}.clients-list-panel{min-width:0}.clients-grid{padding:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.client-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px;transition:.18s;min-width:0}.client-card:hover{border-color:#ffc7d2;box-shadow:0 12px 30px rgba(43,45,66,.07);transform:translateY(-1px)}.client-card.is-selected{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.client-card-top{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center}.client-event-icon{width:44px;height:44px;border-radius:13px;background:#f7f8fb;display:grid;place-items:center;font-size:1.25rem}.client-title-wrap{min-width:0}.client-title-wrap h4{margin:0;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-subtitle{margin-top:3px;color:var(--muted);font-size:.72rem;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-status{display:inline-flex;padding:6px 8px;border-radius:999px;font-size:.66rem;font-weight:900;white-space:nowrap}.status-lead{background:#f4f6f9;color:#667085}.status-preventivo{background:#eef5ff;color:#3f72af}.status-confermato{background:#fff0f3;color:#c23d60}.status-attivo{background:#e9fbf5;color:#087c5c}.status-concluso{background:#f3f1ff;color:#6e56cf}.status-archiviato{background:#eef0f3;color:#737b8c}.client-card-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:15px 0;margin-top:11px;border-top:1px solid #f0f2f6;border-bottom:1px solid #f0f2f6;color:#667085;font-size:.75rem;font-weight:720}.client-card-facts span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px}.client-card-meta,.client-card-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.mini-chip{display:inline-flex;background:#f7f8fa;color:#697386;border:1px solid var(--line);padding:5px 7px;border-radius:999px;font-size:.64rem;font-weight:900}.muted-chip{color:#929aab}.legacy-chip{background:#fff7e8;color:#9b681f;border-color:#f5dfb4}.button-small{padding:7px 10px;font-size:.7rem}.icon-action{width:31px;height:31px;border:1px solid var(--line);background:#fff;border-radius:9px;cursor:pointer}.icon-action:hover{background:var(--primary-soft);border-color:#ffcbd6}.client-detail{position:sticky;top:112px}.client-detail-header{padding:23px 22px 18px;border-bottom:1px solid var(--line);position:relative}.client-detail-header h3{margin:5px 0 10px;font-size:1.23rem;padding-right:22px}.client-detail-icon{width:45px;height:45px;border-radius:14px;background:var(--primary-soft);display:grid;place-items:center;font-size:1.35rem;margin-bottom:12px}.detail-close{position:absolute;right:15px;top:13px;width:32px;height:32px;border-radius:10px;background:#f4f6f9;color:#7a8495;display:grid;place-items:center;font-size:1.35rem;font-weight:700}.client-detail-body{padding:18px 20px}.detail-section{padding:0 0 17px;margin-bottom:17px;border-bottom:1px solid var(--line)}.detail-section h4{margin:0 0 10px;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:#667085}.detail-list{margin:0}.detail-list>div{display:grid;grid-template-columns:105px 1fr;gap:10px;padding:6px 0}.detail-list dt{color:var(--muted);font-size:.72rem;font-weight:800}.detail-list dd{margin:0;text-align:right;font-size:.77rem;font-weight:850;overflow-wrap:anywhere}.detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.detail-metrics>div{border:1px solid var(--line);background:#f8fafc;border-radius:11px;padding:10px;text-align:center}.detail-metrics strong{display:block;font-size:1.15rem}.detail-metrics span{font-size:.62rem;color:var(--muted);font-weight:800}.detail-actions{display:grid;gap:8px}.detail-safety{font-size:.68rem;color:var(--muted);line-height:1.45;margin:11px 0 0}.clients-architecture{margin-top:0}.filtered-empty{border-top:1px solid var(--line)}
@media(max-width:1320px){.clients-layout.has-detail{grid-template-columns:minmax(0,1fr) 340px}.clients-grid{grid-template-columns:1fr}.clients-toolbar{align-items:flex-start;flex-direction:column}.clients-toolbar-main{width:100%;flex-wrap:wrap}.clients-search{flex-basis:100%}}
@media(max-width:980px){.clients-layout.has-detail{grid-template-columns:1fr}.client-detail{position:static;order:-1}.clients-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.clients-grid{grid-template-columns:1fr}.clients-toolbar-main{display:grid;grid-template-columns:1fr}.clients-search{min-width:0}.clients-toolbar input,.clients-toolbar select{width:100%}.client-card-facts{grid-template-columns:1fr}.client-card-top{grid-template-columns:40px minmax(0,1fr)}.client-status{grid-column:2;justify-self:start}.client-card-footer{align-items:flex-start;flex-direction:column}.client-card-actions{width:100%}.client-card-actions .button{flex:1;text-align:center}.detail-list>div{grid-template-columns:1fr}.detail-list dd{text-align:left}.clients-page-actions{width:100%}.clients-page-actions .button{flex:1}}

/* v8 · Modulo 1 Lavagna Lavori server-side read-only */
.heading-muted{font-weight:700;color:var(--muted);font-size:.7em}.workboard-heading{align-items:center}.workboard-page-actions{display:flex;gap:9px;flex-wrap:wrap}.workboard-alert{margin-bottom:18px}.workboard-stats-grid{margin-bottom:18px}.workboard-notifications{margin-bottom:18px;overflow:hidden}.workboard-notification-toggle{width:100%;padding:15px 18px;border:0;background:#fff;display:flex;justify-content:space-between;align-items:center;color:var(--text);font-weight:900;cursor:pointer;text-align:left}.workboard-notification-toggle>span:first-child{display:flex;align-items:center;gap:8px}.notification-alert-dot{width:24px;height:24px;border-radius:8px;background:var(--danger);color:#fff;display:grid;place-items:center}.notification-toggle-meta{color:var(--muted);font-size:.72rem;display:flex;align-items:center;gap:8px}.workboard-notification-list{border-top:1px solid var(--line);padding:10px 12px;display:grid;gap:8px;max-height:320px;overflow:auto}.compact-empty{padding:20px}.smart-notification{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-left:5px solid var(--info);border-radius:12px;background:#fff;padding:11px 12px}.notification-danger{border-left-color:var(--danger)}.notification-warning{border-left-color:#f4a261}.notification-primary{border-left-color:var(--primary)}.smart-notification-icon{font-size:1.35rem;text-align:center}.smart-notification-copy{min-width:0}.smart-notification-copy strong{display:block;font-size:.79rem}.smart-notification-copy p{margin:4px 0 0;color:var(--muted);font-size:.75rem;font-weight:700;line-height:1.4}.smart-notification-actions{display:flex;gap:6px;align-items:center}.button-success-outline{border:1px solid #bfe6d9!important;background:#f1fbf7!important;color:#087c5c!important}.workboard-toolbar{margin-bottom:18px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:16px}.workboard-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 11px;min-width:300px;max-width:520px;flex:1}.workboard-search input{border:0;outline:0;padding:10px 0;width:100%;font-weight:750;color:var(--text)}.workboard-toolbar-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.72rem;font-weight:800;flex-wrap:wrap;justify-content:flex-end}.kanban-shell{display:flex;gap:14px;overflow-x:auto;padding:1px 1px 18px;margin-bottom:2px;scrollbar-width:thin}.kanban-column-new{min-width:285px;width:285px;background:#eef0f3;border:1px solid #e2e6ec;border-radius:16px;padding:12px;flex:0 0 auto}.kanban-column-header-new{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 2px 12px}.kanban-column-header-new>div{display:flex;align-items:center;gap:7px;min-width:0}.kanban-column-header-new strong{text-transform:uppercase;font-size:.7rem;letter-spacing:.055em;white-space:nowrap}.kanban-column-header-new>b{width:25px;height:25px;border-radius:8px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:.69rem}.kanban-column-body-new{min-height:420px}.kanban-card-new{background:#fff;border:1px solid #e6e9ef;border-radius:13px;padding:13px;margin-bottom:9px;box-shadow:0 4px 12px rgba(43,45,66,.045);transition:.18s}.kanban-card-new:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(43,45,66,.075);border-color:#f6bdc9}.kanban-card-title{display:flex;gap:9px;align-items:center}.kanban-card-title>div{min-width:0}.kanban-card-title strong{display:block;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-card-title small{display:block;color:var(--muted);font-size:.64rem;margin-top:2px;font-weight:750}.kanban-event-icon{width:34px;height:34px;border-radius:10px;background:#f7f8fa;display:grid;place-items:center;flex:0 0 auto}.kanban-card-primary-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.68rem;font-weight:800;padding:11px 0 9px;border-bottom:1px solid #f0f2f5}.kanban-card-facts{display:grid;gap:5px;padding:9px 0;color:#70798a;font-size:.67rem;font-weight:730}.kanban-card-facts span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-card-footer-new{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:7px}.kanban-card-footer-new>div{display:flex;gap:5px;flex-wrap:wrap}.kanban-open-detail{display:grid;place-items:center;text-decoration:none;color:inherit}.kanban-empty{border:1px dashed #d7dbe3;background:rgba(255,255,255,.5);border-radius:12px;padding:18px 12px;text-align:center;color:#8a93a4;font-size:.68rem;font-weight:750;line-height:1.45}.kanban-lead{border-top:4px solid #8d99ae}.kanban-preventivo{border-top:4px solid #4e8fd6}.kanban-confermato{border-top:4px solid #ff6b8b}.kanban-attivo{border-top:4px solid #0faf83}.kanban-concluso{border-top:4px solid #6e56cf}.workboard-filter-empty{margin:0 0 18px;padding:24px;text-align:center}.workboard-parity-note{margin-top:0;margin-bottom:18px}.workboard-parity-grid{padding:16px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.workboard-parity-grid>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:13px}.workboard-parity-grid strong{display:block;font-size:.77rem;margin-bottom:5px}.workboard-parity-grid span{display:block;color:var(--muted);font-size:.69rem;line-height:1.45;font-weight:700}.workboard-architecture{margin-top:0}
@media(max-width:1180px){.workboard-parity-grid{grid-template-columns:repeat(2,1fr)}.smart-notification{grid-template-columns:40px minmax(0,1fr)}.smart-notification-actions{grid-column:2;justify-content:flex-start}.workboard-toolbar{align-items:flex-start;flex-direction:column}.workboard-toolbar-meta{justify-content:flex-start}.workboard-search{max-width:none;width:100%}}
@media(max-width:700px){.workboard-page-actions{width:100%}.workboard-page-actions .button{flex:1;text-align:center}.workboard-parity-grid{grid-template-columns:1fr}.smart-notification-actions{flex-wrap:wrap}.workboard-search{min-width:0}.kanban-column-new{min-width:270px;width:270px}}

/* v9 · Moduli 2 Preventivi + 3 Budget & Contratti · server-side read-only */
.stat-success:before{background:#0faf83}.stat-success .stat-icon{background:#e8f8f3;color:#087c5c}.stat-danger:before{background:#e2556f}.stat-danger .stat-icon{background:#fff0f3;color:#b83255}.stat-info:before{background:#4e8fd6}.stat-info .stat-icon{background:#eef6ff;color:#2f6da7}.button-info{background:#eaf5ff;color:#2f6da7;border:1px solid #cfe7fb}.icon-action.dark-action{background:#2b2d42;color:#fff;border-color:#2b2d42}.icon-action.danger-action{background:#fff0f3;color:#b83255;border-color:#ffd0da}.module-toolbar{padding:12px 15px;margin-bottom:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.module-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 11px;min-width:300px;flex:1}.module-search input{border:0;outline:0;padding:10px 0;width:100%;font-weight:750;color:var(--text);background:transparent}.module-filter{display:flex;align-items:center;gap:8px;font-size:.7rem;font-weight:850;color:var(--muted)}.module-filter select{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:10px;padding:9px 11px;font-weight:750}.module-parity-card{margin:18px 0}.module-parity-grid{padding:16px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.module-parity-grid>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:13px}.module-parity-grid strong{display:block;font-size:.77rem;margin-bottom:5px}.module-parity-grid span{display:block;color:var(--muted);font-size:.69rem;line-height:1.45;font-weight:700}
.preventivi-heading,.budget-heading{align-items:center}.preventivi-page-actions,.budget-page-actions{display:flex;gap:9px;flex-wrap:wrap}.preventivi-stats,.budget-stats{margin-bottom:18px}.preventivi-list{display:grid;gap:12px;margin-bottom:18px}.preventivo-card{border-left:5px solid #e2556f}.preventivo-card.is-paid{border-left-color:#0faf83}.preventivo-main{display:grid;grid-template-columns:minmax(280px,2fr) minmax(230px,1fr) auto;gap:20px;align-items:center;padding:18px 20px}.preventivo-identity{display:flex;gap:12px;align-items:flex-start;min-width:0}.preventivo-icon{width:42px;height:42px;border-radius:12px;background:var(--primary-soft);display:grid;place-items:center;flex:0 0 auto;font-size:1.2rem}.preventivo-identity>div:last-child{min-width:0}.preventivo-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.preventivo-title-line h3{margin:0;font-size:1rem}.preventivo-identity p{margin:4px 0 0;color:var(--muted);font-size:.75rem;font-weight:750}.preventivo-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:8px;color:#858fa0;font-size:.66rem;font-weight:750}.quote-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.62rem;font-weight:900}.quote-status-inviato{background:#fff3df;color:#9a681d}.quote-status-accettato{background:#e6f8f2;color:#087c5c}.quote-status-rifiutato{background:#fff0f3;color:#b83255}.quote-status-bozza{background:#eef0f3;color:#687386}.preventivo-finance{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;border-left:1px solid var(--line);padding-left:18px;min-width:0}.preventivo-finance>div span{display:block;color:var(--muted);font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;font-weight:850}.preventivo-finance>div strong{display:block;font-size:.8rem;margin-top:3px}.preventivo-finance .positive strong{color:#087c5c}.preventivo-finance .negative strong{color:#b83255}.payment-progress{grid-column:1/-1;width:100%;height:7px;border:0;border-radius:99px;overflow:hidden}.payment-progress::-webkit-progress-bar{background:#edf0f4;border-radius:99px}.payment-progress::-webkit-progress-value{background:#0faf83;border-radius:99px}.payment-progress::-moz-progress-bar{background:#0faf83;border-radius:99px}.preventivo-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.deposit-details{border-top:1px solid var(--line);padding:10px 20px 14px;background:#fbfcfd}.deposit-details summary{cursor:pointer;color:#667085;font-size:.7rem;font-weight:900}.deposit-list{display:grid;gap:6px;margin-top:9px}.deposit-list>div{display:grid;grid-template-columns:100px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 10px;font-size:.7rem}.deposit-list strong{text-align:right}.deposit-state{font-size:.62rem;font-weight:900;padding:4px 7px;border-radius:999px}.deposit-state.paid{background:#e6f8f2;color:#087c5c}.deposit-state.pending{background:#fff3df;color:#9a681d}
.budget-filter-panel{padding:13px 15px;margin-bottom:16px;display:flex;align-items:end;gap:14px;flex-wrap:wrap}.budget-event-filter{display:flex;align-items:end;gap:8px;flex:1;min-width:430px}.budget-event-filter label{display:grid;gap:5px;flex:1;color:var(--muted);font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.budget-event-filter select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);padding:10px 11px;font-weight:750}.budget-search{max-width:420px}.budget-context{margin-bottom:16px;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:15px}.budget-context>div{display:flex;align-items:center;gap:11px}.budget-context-icon{width:38px;height:38px;border-radius:11px;background:var(--primary-soft);display:grid;place-items:center}.budget-context small,.budget-context strong,.budget-context div span{display:block}.budget-context small{font-size:.58rem;letter-spacing:.08em;color:var(--muted);font-weight:900}.budget-context strong{font-size:.88rem;margin:2px 0}.budget-context div span{font-size:.66rem;color:var(--muted);font-weight:700}.budget-table-panel{margin-bottom:18px}.budget-table-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.budget-table-head h3{margin:3px 0 0;font-size:1rem}.budget-table-wrap{overflow:auto}.budget-table{width:100%;border-collapse:collapse;min-width:980px}.budget-table th{padding:12px 13px;text-align:left;color:#788294;background:#f8fafc;border-bottom:1px solid var(--line);font-size:.63rem;text-transform:uppercase;letter-spacing:.045em}.budget-table td{padding:13px;border-bottom:1px solid #eff1f4;vertical-align:top;font-size:.72rem}.budget-table tr:last-child td{border-bottom:0}.category-cell{display:flex;align-items:center;gap:7px;font-weight:850}.category-cell b{font-size:1rem}.supplier-cell{display:grid;gap:5px}.supplier-cell strong{font-size:.78rem}.supplier-cell small{color:var(--muted);font-size:.63rem;font-weight:750}.supplier-state{width:max-content;padding:4px 7px;border-radius:999px;font-size:.58rem;font-weight:900;color:#fff;background:#8d99ae}.supplier-state.state-trattativa{background:#f4a261}.supplier-state.state-confermato{background:#06a77d}.supplier-state.state-saldo{background:#118ab2}.supplier-state.state-completato{background:#2b2d42}.amount-cell,.payments-cell{display:grid;gap:5px}.amount-cell strong,.payments-cell strong{font-size:.8rem}.amount-cell span{width:max-content;background:#f0f2f5;color:#687386;padding:3px 6px;border-radius:6px;font-size:.58rem;font-weight:850}.amount-cell small{color:var(--muted);font-size:.62rem}.payments-cell strong{color:#087c5c}.payments-cell>span{font-size:.62rem;color:var(--muted);font-weight:750}.payments-cell>span.urgent-date{color:#b83255;font-weight:900}.expense-deposits summary{cursor:pointer;color:#3e72a3;font-size:.61rem;font-weight:900}.expense-deposits>div{display:grid;grid-template-columns:72px auto auto;gap:7px;margin-top:5px;align-items:center;font-size:.59rem}.expense-deposits a{color:#2f6da7;font-weight:900}.budget-actions{display:flex;gap:5px}.budget-detail-row td{padding-top:0!important;background:#fbfcfd}.budget-detail-row details{border-top:1px dashed #d9dee6;padding-top:8px}.budget-detail-row summary{cursor:pointer;color:var(--muted);font-size:.64rem;font-weight:900}.budget-detail-row p{margin:7px 0;color:#667085;font-size:.68rem;line-height:1.45}.budget-filter-empty{margin:12px}.read-only-badge{display:inline-flex;background:#f4f6f9;color:#7c8799;border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:.62rem;font-weight:900;white-space:nowrap}
@media(max-width:1220px){.preventivo-main{grid-template-columns:1fr 1fr}.preventivo-actions{grid-column:1/-1;justify-content:flex-start}.module-parity-grid{grid-template-columns:repeat(2,1fr)}.budget-filter-panel{align-items:stretch}.budget-search{max-width:none;flex-basis:100%}}
@media(max-width:760px){.preventivi-page-actions,.budget-page-actions{width:100%}.preventivi-page-actions .button,.budget-page-actions .button{flex:1;text-align:center}.preventivo-main{grid-template-columns:1fr}.preventivo-finance{border-left:0;border-top:1px solid var(--line);padding:13px 0 0}.preventivo-actions{grid-column:auto}.module-toolbar{align-items:stretch}.module-search{min-width:0;flex-basis:100%}.module-filter{justify-content:space-between}.module-parity-grid{grid-template-columns:1fr}.budget-event-filter{min-width:0;width:100%;display:grid;grid-template-columns:1fr}.budget-context{align-items:flex-start;flex-direction:column}.budget-context .button{width:100%;text-align:center}.deposit-list>div{grid-template-columns:1fr 1fr}.deposit-state{grid-column:1/-1;width:max-content}}

/* v10 · Moduli 3b Modelli Contratti + 4 Tuoi Fornitori · server-side read-only */
.contracts-heading,.suppliers-heading{align-items:center}.contracts-page-actions,.suppliers-page-actions{display:flex;gap:9px;flex-wrap:wrap}.button-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:5px;border-radius:999px;background:#fff;color:var(--primary-strong);font-size:.65rem}.contracts-toolbar{align-items:center}.contract-tabs{display:flex;gap:5px;flex-wrap:wrap}.contract-tabs button{border:1px solid var(--line);background:#f8fafc;color:#697386;border-radius:9px;padding:8px 10px;font-size:.66rem;font-weight:850;cursor:pointer}.contract-tabs button.is-active{background:var(--primary-soft);border-color:#ffc9d5;color:var(--primary-strong)}.contract-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.contract-template-card{padding:18px;overflow:visible}.contract-template-top{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:start}.contract-type-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.25rem;background:#fff1f4;color:#c94365}.contract-type-privacy{background:#eaf5ff;color:#2f6da7}.contract-type-liberatoria_foto{background:#e8f8f3;color:#087c5c}.contract-type-altro{background:#fff3df;color:#9a681d}.contract-template-title{min-width:0}.contract-name-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.contract-name-line h3{margin:0;font-size:.96rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contract-type-pill{display:inline-flex;margin-top:5px;border-radius:999px;padding:4px 7px;background:#fff1f4;color:#b83255;font-size:.59rem;font-weight:900}.contract-type-pill-privacy{background:#eaf5ff;color:#2f6da7}.contract-type-pill-liberatoria_foto{background:#e8f8f3;color:#087c5c}.contract-type-pill-altro{background:#fff3df;color:#9a681d}.contract-version{font-size:.58rem;font-weight:900;color:#7f899a;background:#f2f4f7;border:1px solid var(--line);border-radius:999px;padding:4px 7px}.contract-template-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:15px}.contract-template-meta>div{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:8px}.contract-template-meta span{display:block;color:var(--muted);font-size:.55rem;text-transform:uppercase;font-weight:850}.contract-template-meta strong{display:block;font-size:.72rem;margin-top:3px}.contract-usage-strip{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;border-radius:10px;background:#fbfcfd;border:1px dashed #dce2ea;color:#697386;font-size:.6rem;font-weight:800}.contract-template-actions{display:flex;gap:6px;align-items:center;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);flex-wrap:wrap}.contract-template-actions .icon-action{display:grid;place-items:center;text-decoration:none}.contract-send-action{background:#fff5f8!important;border-color:#ffc8d5!important;color:var(--primary-strong)!important}.sent-contracts-panel{margin-bottom:18px}.sent-contracts-tools{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.sent-contract-table-wrap{overflow:auto}.sent-contract-table{width:100%;min-width:820px;border-collapse:collapse}.sent-contract-table th{padding:11px 13px;text-align:left;background:#f8fafc;color:#788294;border-bottom:1px solid var(--line);font-size:.61rem;text-transform:uppercase;letter-spacing:.04em}.sent-contract-table td{padding:12px 13px;border-bottom:1px solid #eff1f4;font-size:.69rem}.sent-contract-table td strong{margin-right:5px}.sent-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:.59rem;font-weight:900}.sent-status-inviato{background:#eaf5ff;color:#2f6da7}.sent-status-visto{background:#fff3df;color:#9a681d}.sent-status-firmato{background:#e8f8f3;color:#087c5c}
.suppliers-toolbar{align-items:center}.supplier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.supplier-card{padding:18px;overflow:visible}.supplier-card.is-inactive{opacity:.72}.supplier-card-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:start}.supplier-avatar{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-size:1.1rem;font-weight:950}.supplier-head-copy{min-width:0}.supplier-name-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.supplier-name-line h3{margin:0;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.supplier-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.supplier-category-badge,.supplier-status-badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:.58rem;font-weight:900}.supplier-category-badge{background:#eef4fb;color:#476b91}.supplier-status-badge.active{background:#e8f8f3;color:#087c5c}.supplier-status-badge.inactive{background:#eef0f3;color:#687386}.supplier-rating{text-align:right}.supplier-rating strong{display:block;color:#e3a629;letter-spacing:1px;font-size:.8rem;white-space:nowrap}.supplier-rating span{display:block;color:var(--muted);font-size:.58rem;font-weight:850;margin-top:3px}.supplier-contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:14px}.supplier-contact-grid>div{display:flex;gap:8px;align-items:flex-start;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:9px}.supplier-contact-grid>div>span{font-size:.9rem}.supplier-contact-grid p{margin:0;min-width:0}.supplier-contact-grid small,.supplier-contact-grid strong{display:block}.supplier-contact-grid small{font-size:.55rem;color:var(--muted);font-weight:850;text-transform:uppercase}.supplier-contact-grid strong{font-size:.68rem;margin-top:2px;word-break:break-word}.supplier-pricelist,.supplier-notes{margin-top:10px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd}.supplier-pricelist summary,.supplier-notes summary{cursor:pointer;padding:9px 11px;color:#667085;font-size:.65rem;font-weight:900}.supplier-pricelist-list{display:grid;gap:5px;padding:0 10px 10px}.supplier-pricelist-list>div{display:flex;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:.64rem}.supplier-pricelist-list strong{white-space:nowrap}.supplier-usage{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.supplier-usage span{background:#f5f7fa;border:1px solid var(--line);border-radius:999px;padding:5px 7px;color:#697386;font-size:.58rem;font-weight:850}.supplier-notes p{margin:0;padding:0 11px 11px;color:#667085;font-size:.67rem;line-height:1.5}.supplier-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}
@media(max-width:1180px){.contract-grid,.supplier-grid{grid-template-columns:1fr}.contracts-toolbar,.suppliers-toolbar{align-items:stretch}.contract-tabs{flex-basis:100%}}
@media(max-width:760px){.contracts-page-actions,.suppliers-page-actions{width:100%}.contracts-page-actions .button,.suppliers-page-actions .button{flex:1;text-align:center}.contract-template-meta{grid-template-columns:repeat(2,1fr)}.supplier-contact-grid{grid-template-columns:1fr}.supplier-card-head{grid-template-columns:42px minmax(0,1fr)}.supplier-avatar{width:42px;height:42px}.supplier-rating{grid-column:2;text-align:left}.supplier-rating strong,.supplier-rating span{display:inline}.supplier-rating span{margin-left:6px}.sent-contracts-tools .module-search{flex-basis:100%}}

/* v11 · Moduli 5 To-Do + 6 Timeline · server-side read-only */
.heading-muted{font-size:.65em;color:var(--muted);font-weight:800}.task-heading,.timeline-heading{align-items:center}.task-page-actions{display:flex;gap:8px}.task-toolbar{align-items:center}.task-table-panel{overflow:hidden}.task-table-wrap,.timeline-table-wrap{overflow:auto}.task-table,.timeline-table{width:100%;min-width:760px;border-collapse:collapse}.task-table th,.timeline-table th{padding:11px 13px;background:#f8fafc;border-bottom:1px solid var(--line);color:#788294;text-align:left;font-size:.61rem;text-transform:uppercase;letter-spacing:.04em}.task-table td,.timeline-table td{padding:12px 13px;border-bottom:1px solid #eff1f4;font-size:.7rem;vertical-align:middle}.task-table tr.is-overdue{background:#fff8fa}.task-table tr.is-completed{opacity:.7}.task-main strong,.task-main span{display:block}.task-main strong{color:var(--primary-strong);font-size:.67rem}.task-main span{margin-top:4px;font-size:.74rem;font-weight:850;color:var(--text)}.task-date{font-weight:850}.task-date small{display:block;color:var(--muted);font-size:.58rem;margin-top:3px}.task-date.danger,.task-date.danger small{color:#b83255}.task-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.59rem;font-weight:900}.task-status-todo{background:#fff3df;color:#9a681d}.task-status-progress{background:#eaf5ff;color:#2f6da7}.task-status-completed{background:#e8f8f3;color:#087c5c}.task-actions{display:flex;gap:5px;align-items:center}.success-action{color:#087c5c!important}.stat-danger{border-left-color:var(--danger)!important}.stat-danger strong{color:var(--danger)!important}.stat-warning{border-left-color:var(--warning)!important}.stat-warning strong{color:var(--warning)!important}.table-empty{text-align:center!important;padding:38px!important;color:var(--muted)!important}.timeline-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.timeline-event-select{display:grid;gap:5px;flex:1;min-width:300px}.timeline-event-select span{font-size:.59rem;color:var(--muted);font-weight:900;text-transform:uppercase}.timeline-event-select select{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 11px;color:var(--text);font-weight:800}.timeline-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}.button-dark{background:#2b2d42;color:#fff;border-color:#2b2d42}.timeline-overview{overflow:hidden}.timeline-time-cell strong,.timeline-time-cell small{display:block}.timeline-time-cell strong{color:var(--primary-strong);font-size:.75rem}.timeline-time-cell small{margin-top:3px;color:var(--muted);font-size:.59rem}.timeline-responsible{display:inline-flex;background:#eaf5ff;color:#2f6da7;border-radius:999px;padding:5px 8px;font-size:.59rem;font-weight:900}.timeline-detail{margin-bottom:18px}.timeline-event-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:13px}.timeline-event-summary h3{margin:2px 0 0}.timeline-event-summary p{margin:4px 0 0;color:var(--muted);font-size:.68rem}.timeline-event-kpis{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.timeline-event-kpis span{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:7px 9px;color:var(--muted);font-size:.58rem;font-weight:800}.timeline-event-kpis b{display:block;color:var(--text);font-size:.72rem}.luxury-timeline-readonly{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.timeline-card-readonly{background:#fff;border:1px solid var(--line);border-left:5px solid #eaecef;border-radius:12px;padding:14px 16px;box-shadow:0 4px 12px rgba(0,0,0,.03);display:grid;grid-template-columns:100px 45px minmax(0,1fr) auto;gap:14px;align-items:center}.timeline-clock{text-align:center;border-right:2px solid #f0f2f5;padding-right:14px}.timeline-clock strong,.timeline-clock span{display:block}.timeline-clock strong{font-size:1.12rem;color:var(--primary-strong)}.timeline-clock span{margin-top:3px;color:var(--muted);font-size:.65rem;font-weight:800}.timeline-step-icon{font-size:1.55rem;text-align:center}.timeline-step-copy h4{margin:0;font-size:.82rem}.timeline-step-copy>div{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.timeline-step-copy span{font-size:.58rem;font-weight:850;border-radius:999px;padding:5px 8px;background:#eef7fd;color:#2f6da7}.timeline-step-copy span+span{background:#fff1f4;color:#b83255}.timeline-step-actions{display:flex;gap:5px}.empty-state{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:850px){.timeline-event-summary{align-items:flex-start;flex-direction:column}.timeline-event-kpis{justify-content:flex-start}.timeline-card-readonly{grid-template-columns:72px 36px minmax(0,1fr)}.timeline-clock{padding-right:10px}.timeline-step-actions{grid-column:3}.timeline-toolbar{align-items:stretch}.timeline-event-select{min-width:0;flex-basis:100%}.timeline-toolbar-actions{width:100%}.timeline-toolbar-actions .button{flex:1;text-align:center}}
@media(max-width:620px){.timeline-card-readonly{grid-template-columns:58px minmax(0,1fr)}.timeline-step-icon{display:none}.timeline-step-copy{grid-column:2}.timeline-step-actions{grid-column:2}.task-page-actions{width:100%}.task-page-actions .button{width:100%}}

/* v12 · Moduli 7 Invitati + 8 Mappa Tavoli · server-side read-only */
.button-light{background:#fff;color:#566174;border:1px solid var(--line)}.button-light:hover{background:#f8fafc}.danger-text{color:#b83255!important}.warning-chip{background:#fff7e8!important;color:#9b681f!important;border-color:#f5dfb4!important}
.guests-heading,.seating-heading{align-items:center}.guests-page-actions{display:flex;gap:8px}.guests-toolbar,.seating-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.module-event-select{display:grid;gap:5px;min-width:320px;flex:1}.module-event-select>span{font-size:.59rem;color:var(--muted);font-weight:900;text-transform:uppercase}.module-event-select select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 11px;color:var(--text);font-weight:800;outline:none}.module-event-select select:focus{border-color:#ffc2cf;box-shadow:0 0 0 4px var(--primary-soft)}.module-select-empty{text-align:center;padding:52px 24px;margin-bottom:18px;border:2px dashed #dde2ea;background:#fbfcfd}.module-select-empty h3{margin:10px 0 6px}.module-select-empty p{margin:0;color:var(--muted);font-weight:700}.module-select-empty small{display:block;margin-top:9px;color:#9aa3b2;font-weight:750}.module-empty-icon{font-size:2.2rem}.selected-event-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;margin-bottom:16px}.selected-event-banner>div:first-child{display:flex;align-items:center;gap:12px;min-width:0}.event-big-icon{width:46px;height:46px;border-radius:14px;background:var(--primary-soft);display:grid;place-items:center;font-size:1.25rem;flex:0 0 auto}.selected-event-banner h3{margin:1px 0 2px;font-size:1rem}.selected-event-banner p{margin:0;color:var(--muted);font-size:.67rem;font-weight:750}.event-banner-tags{display:flex!important;gap:7px!important;flex-wrap:wrap;justify-content:flex-end}.guest-stats-grid,.seating-stats-grid{margin-bottom:16px}
.guests-actions-panel{padding:12px 14px;margin-bottom:14px}.guest-report-actions{display:flex;gap:8px;flex-wrap:wrap}.guest-list-panel{overflow:hidden}.guest-list-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 15px;border-bottom:1px solid var(--line)}.guest-visible-count{color:var(--muted);font-size:.64rem;font-weight:900;white-space:nowrap}.guest-table-wrap{overflow:auto}.guest-table{width:100%;min-width:820px;border-collapse:collapse}.guest-table th{padding:11px 13px;background:#f8fafc;border-bottom:1px solid var(--line);color:#788294;text-align:left;font-size:.61rem;text-transform:uppercase;letter-spacing:.04em}.guest-table td{padding:12px 13px;border-bottom:1px solid #eff1f4;font-size:.69rem;vertical-align:middle}.guest-name-cell strong,.guest-name-cell small{display:block}.guest-name-cell strong{font-size:.76rem}.guest-name-cell small{margin-top:4px;color:var(--muted);font-size:.6rem;font-weight:800}.guest-name-cell .legacy-chip{display:inline-flex;margin-left:6px}.guest-rsvp{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.59rem;font-weight:900}.guest-rsvp-confirmed{background:#e8f8f3;color:#087c5c}.guest-rsvp-declined{background:#fff0f3;color:#b83255}.guest-rsvp-pending{background:#fff3df;color:#9a681d}.guest-menu-cell{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}.guest-menu-cell>span{display:inline-flex;background:#eaf5ff;color:#2f6da7;border-radius:999px;padding:5px 8px;font-size:.58rem;font-weight:900}.guest-child-badge{background:#fff4dc!important;color:#956516!important}.guest-note-alert{flex-basis:100%;color:#b83255;font-size:.58rem;font-weight:850;line-height:1.4}.guest-table-name{font-size:.68rem;color:#536176}
.seating-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}.seating-toolbar-actions button:disabled{opacity:.5;cursor:not-allowed}.seating-event-banner{margin-bottom:14px}.seating-workspace{display:grid;grid-template-columns:285px minmax(0,1fr);gap:14px;margin-bottom:16px;align-items:stretch}.unassigned-panel{padding-bottom:12px;min-width:0;max-height:620px;display:flex;flex-direction:column}.panel-copy{margin:0 15px 10px;color:var(--muted);font-size:.64rem;line-height:1.45;font-weight:700}.compact-search{margin:0 14px 10px;min-width:0;flex:none}.unassigned-list{padding:0 12px 10px;display:flex;flex-direction:column;gap:7px;overflow:auto}.small-empty{padding:20px 10px;text-align:center;color:var(--muted);font-size:.68rem;font-weight:800}.seating-guest-pill{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid #dfe5ec;border-radius:10px;background:#fff;box-shadow:0 3px 9px rgba(43,45,66,.035)}.seating-guest-pill strong,.seating-guest-pill small{display:block}.seating-guest-pill strong{font-size:.68rem}.seating-guest-pill small{margin-top:2px;color:var(--muted);font-size:.56rem;font-weight:750}.guest-pill-tags{display:flex;align-items:center;gap:4px}.guest-pill-tags span{background:#f2f4f7;border-radius:999px;padding:4px 6px;color:#677285;font-size:.53rem;font-weight:900}.guest-pill-tags b{color:#b83255}.seating-map-panel{overflow:hidden;min-width:0}.seating-map-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid var(--line)}.seating-map-head h3{margin:1px 0 0;font-size:.86rem}.seating-zoom-controls{display:flex;align-items:center;gap:5px}.seating-zoom-controls button{width:31px;height:31px;border-radius:9px;border:1px solid var(--line);background:#fff;color:#536176;font-weight:950;cursor:pointer}.seating-zoom-controls button:hover{background:var(--primary-soft);border-color:#ffcbd6}.seating-zoom-controls span{min-width:48px;text-align:center;color:var(--muted);font-size:.6rem;font-weight:900}.seating-map-viewport{height:500px;position:relative;overflow:hidden;background-color:#f8fafc;background-image:linear-gradient(#edf1f5 1px,transparent 1px),linear-gradient(90deg,#edf1f5 1px,transparent 1px);background-size:28px 28px;cursor:grab;touch-action:none}.seating-map-viewport.is-panning{cursor:grabbing}.seating-world{position:absolute;width:2000px;height:1500px;transform-origin:0 0;transition:transform .05s linear}.seating-table{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:2px solid var(--primary);background:rgba(255,255,255,.97);box-shadow:0 5px 15px rgba(43,45,66,.16);color:var(--text);padding:5px;cursor:pointer;transition:box-shadow .16s,border-color .16s,filter .16s;z-index:2}.seating-table:hover{box-shadow:0 10px 26px rgba(43,45,66,.22);border-color:var(--primary-strong);filter:saturate(1.08)}.seating-table-rotondo{width:88px;height:88px;border-radius:50%}.seating-table-ovale{width:118px;height:76px;border-radius:50%}.seating-table-sposi{width:132px;height:58px;border-radius:14px}.seating-table-quadrato{width:82px;height:82px;border-radius:10px}.seating-table-imperiale{width:140px;height:66px;border-radius:10px}.seating-table.is-rotated{transform:rotate(90deg)}.seating-table.is-over-capacity{border-color:var(--danger);box-shadow:0 0 0 4px rgba(217,70,104,.11),0 5px 15px rgba(43,45,66,.16)}.seating-table.is-virtual{border-style:dashed;opacity:.82}.seating-table-name{display:block;max-width:96%;font-size:.58rem;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seating-table strong{font-size:.67rem;color:var(--primary-strong)}.seating-table small{font-size:.5rem;color:var(--muted);font-weight:850}.seating-table em{font-size:.45rem;color:#956516;font-weight:900}.seating-map-hint{margin:0;padding:8px 12px;background:#fafbfc;border-top:1px solid var(--line);color:var(--muted);font-size:.57rem;font-weight:800;text-align:center}.table-roster-panel{margin-bottom:18px}.table-roster-grid{padding:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.table-roster-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;transition:.15s}.table-roster-card.is-highlighted{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.table-roster-card header{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;padding-bottom:9px;border-bottom:1px solid #f0f2f5}.table-roster-card header strong,.table-roster-card header span{display:block}.table-roster-card header strong{font-size:.72rem}.table-roster-card header span{margin-top:2px;color:var(--muted);font-size:.54rem;font-weight:800}.table-capacity-badge{background:#e8f8f3;color:#087c5c;border-radius:999px;padding:4px 6px;font-size:.49rem;font-weight:900;white-space:nowrap}.table-capacity-badge.danger{background:#fff0f3;color:#b83255}.main-people-list{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.main-people-list span{background:linear-gradient(135deg,#fff4bd,#ffdd67);color:#735718;border-radius:999px;padding:5px 7px;font-size:.54rem;font-weight:900}.table-guest-list{display:flex;gap:5px;flex-wrap:wrap;padding:10px 0;min-height:42px}.table-guest-list span{background:#f4f7fa;border:1px solid var(--line);border-radius:999px;padding:5px 7px;font-size:.54rem;font-weight:800}.table-guest-list small{color:var(--muted);font-size:.57rem;font-weight:750}.table-guest-list b{color:#b83255}.table-roster-card footer{display:flex;gap:5px;flex-wrap:wrap;border-top:1px solid #f0f2f5;padding-top:8px}.table-roster-card footer .button{padding:6px 8px;font-size:.56rem}
@media(max-width:1120px){.seating-workspace{grid-template-columns:1fr}.unassigned-panel{max-height:none}.unassigned-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:240px}.table-roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.guests-page-actions,.guest-report-actions,.seating-toolbar-actions{width:100%}.guest-report-actions .button,.seating-toolbar-actions .button{flex:1}.module-event-select{min-width:0;flex-basis:100%}.selected-event-banner{align-items:flex-start;flex-direction:column}.event-banner-tags{justify-content:flex-start}.guest-list-tools .module-search{min-width:0;flex-basis:100%}.unassigned-list{grid-template-columns:1fr}.table-roster-grid{grid-template-columns:1fr}.seating-map-viewport{height:420px}}

/* v13 · Modulo 9 Archivio & Cloud + Modulo 10 Modelli Messaggi */
.documents-heading,.communications-heading{align-items:center}.documents-page-actions,.communications-page-actions{display:flex;gap:8px}.documents-stats-grid,.communications-stats-grid{margin-bottom:16px}.documents-toolbar,.communications-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:15px}.document-filter-field{min-width:230px;flex:0 1 290px}.document-search,.communication-search{flex:1;min-width:240px}.communication-channel-filter{min-width:190px;flex:0 1 220px}.document-list-panel,.communication-list-panel{overflow:hidden}.document-table-wrap,.communication-table-wrap{overflow:auto}.document-table,.communication-table{width:100%;border-collapse:collapse;min-width:900px}.document-table th,.communication-table th{padding:11px 13px;background:#f8fafc;border-bottom:1px solid var(--line);color:#788294;text-align:left;font-size:.61rem;text-transform:uppercase;letter-spacing:.04em}.document-table td,.communication-table td{padding:12px 13px;border-bottom:1px solid #eff1f4;font-size:.68rem;vertical-align:middle}.document-event-cell,.document-title-cell{display:flex;align-items:center;gap:9px}.document-event-cell>span{font-size:1.15rem}.document-event-cell strong,.document-event-cell small,.document-title-cell strong,.document-title-cell small{display:block}.document-event-cell small{margin-top:3px}.document-title-cell small{margin-top:3px;color:var(--muted);font-size:.55rem;font-weight:750}.document-file-icon{min-width:38px;height:32px;padding:0 7px;border-radius:8px;background:#eef3fa;color:#49617d;display:grid;place-items:center;font-size:.52rem;font-weight:950}.document-category,.document-origin,.communication-channel{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:.56rem;font-weight:900;white-space:nowrap}.document-category{background:#f2f4f7;color:#596577}.document-category-planimetria{background:#eaf5ff;color:#2f6da7}.document-category-contract-client,.document-category-contract-supplier{background:#fff0f4;color:#a13c5c}.document-category-receipt{background:#e8f8f3;color:#087c5c}.document-category-moodboard{background:#f5efff;color:#7655a8}.document-category-event{background:#fff4df;color:#94631c}.document-origin-internal{background:#e8f8f3;color:#087c5c}.document-origin-external{background:#eaf5ff;color:#2f6da7}.document-origin-missing,.document-origin-blocked{background:#fff0f3;color:#b83255}.document-row-actions,.communication-actions{display:flex;gap:5px;align-items:center;flex-wrap:nowrap}.compact-empty{margin:14px}.table-empty-state{padding:28px;text-align:center;color:var(--muted);font-size:.68rem;font-weight:850}.communication-empty{text-align:center;padding:45px 22px}.communication-empty h3{margin:10px 0 5px}.communication-empty p{color:var(--muted);font-weight:700;margin:0 0 18px}.communication-title-cell{display:flex;align-items:center;gap:7px;min-width:150px}.communication-title-cell strong{font-size:.72rem}.communication-channel-whatsapp{background:#e2f8f0;color:#087c5c}.communication-channel-email{background:#e1f1fd;color:#2f6da7}.communication-channel-other{background:#f2f4f7;color:#596577}.communication-preview{min-width:300px;max-width:470px;line-height:1.45;color:#596577}.communication-preview>span{font-style:italic;white-space:pre-line}.communication-preview pre{margin:9px 0 0;padding:10px;border-radius:9px;background:#f7f9fb;border:1px solid var(--line);white-space:pre-wrap;font:600 .61rem/1.55 system-ui,-apple-system,sans-serif;color:#394254;max-height:220px;overflow:auto}.text-link{display:block;margin-top:5px;border:0;background:transparent;color:var(--primary);padding:0;font:800 .56rem system-ui;cursor:pointer}.text-link:hover{text-decoration:underline}.variable-chips{display:flex;gap:4px;flex-wrap:wrap;min-width:120px}.variable-chip{display:inline-flex;padding:4px 6px;border-radius:999px;background:var(--primary-soft);color:var(--primary-strong);font-size:.51rem;font-weight:900}.variable-chip.muted{background:#f2f4f7;color:#7b8594}.communication-token-panel{margin-top:16px}.communication-token-grid{padding:14px;display:flex;gap:8px;flex-wrap:wrap}.communication-token-grid>div{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}.communication-token-grid code{font-weight:900;color:var(--primary-strong)}.communication-token-grid span{color:var(--muted);font-size:.57rem;font-weight:850}.communication-token-note{margin:0;padding:0 14px 15px;color:var(--muted);font-size:.62rem;font-weight:700;line-height:1.5}.communication-token-note code{color:var(--primary-strong);font-weight:900}
@media(max-width:760px){.documents-page-actions,.communications-page-actions{width:100%}.documents-page-actions .button,.communications-page-actions .button{width:100%}.document-filter-field,.document-search,.communication-search,.communication-channel-filter{min-width:0;flex-basis:100%}.documents-toolbar .read-only-badge,.communications-toolbar .read-only-badge{width:100%;justify-content:center}}
.button-success{background:#0faf83;color:#fff;border:1px solid #0faf83}.button-success:hover{background:#0c936f}

/* v14 · Modulo 11 Finanza & Marginalità + Modulo 12 Calendario */
.finance-heading,.calendar-heading{align-items:center}.finance-page-actions{display:flex;gap:8px;flex-wrap:wrap}.finance-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:15px}.finance-filter-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.finance-event-select{min-width:330px}.finance-stats-grid,.calendar-stats-grid,.finance-event-stats{margin-bottom:16px}.finance-global-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.finance-card{overflow:hidden}.cashflow-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}.cashflow-box{border-radius:13px;padding:15px;border-left:6px solid;background:#fff}.cashflow-box span,.cashflow-box strong,.cashflow-box small,.cashflow-box b{display:block}.cashflow-box span{font-size:.58rem;text-transform:uppercase;font-weight:900;color:var(--muted);letter-spacing:.05em}.cashflow-box strong{font-size:1.12rem;margin:5px 0;color:var(--text)}.cashflow-box small{font-size:.58rem;color:var(--muted);font-weight:800}.cashflow-box b{margin-top:9px;padding-top:8px;border-top:1px solid rgba(0,0,0,.06);font-size:.66rem}.cashflow-box.income{background:#edf7ff;border-color:#3f9adb}.cashflow-box.income b{color:#b83255}.cashflow-box.costs{background:#fff8e9;border-color:#e7a62d}.cashflow-box.costs b{color:#b83255}.finance-ranking{padding:9px 14px 14px}.finance-rank-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #eff1f4;text-decoration:none;color:inherit}.finance-rank-row:last-child{border-bottom:0}.rank-index{width:25px;height:25px;border-radius:8px;background:var(--primary-soft);color:var(--primary-strong);display:grid;place-items:center;font-size:.58rem;font-weight:950}.rank-main{flex:1;min-width:0}.rank-main strong{font-size:.66rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-track{height:5px;background:#eef1f4;border-radius:999px;margin-top:5px;overflow:hidden}.rank-track i{display:block;height:100%;background:#13a77c;border-radius:999px}.rank-track i.negative{background:#d94668}.finance-rank-row>b{font-size:.63rem;color:#087c5c;white-space:nowrap}.negative-text{color:#b83255!important}.success-text{color:#087c5c!important}.finance-events-panel{overflow:hidden;margin-bottom:16px}.finance-table{width:100%;border-collapse:collapse;min-width:860px}.finance-table th{padding:10px 12px;background:#f8fafc;border-bottom:1px solid var(--line);text-align:left;color:#788294;font-size:.58rem;text-transform:uppercase;letter-spacing:.04em}.finance-table td{padding:11px 12px;border-bottom:1px solid #eff1f4;font-size:.66rem;vertical-align:middle}.finance-table td>small{display:block;color:var(--muted);font-size:.52rem;margin-top:3px}.finance-event-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;margin-bottom:14px}.finance-event-banner small,.finance-event-banner h3,.finance-event-banner span{display:block}.finance-event-banner small{font-size:.52rem;font-weight:900;color:var(--primary-strong)}.finance-event-banner h3{margin:3px 0;font-size:.92rem}.finance-event-banner span{font-size:.58rem;color:var(--muted);font-weight:800}.finance-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.finance-summary-box{padding:18px;border-radius:15px;border-left:8px solid;box-shadow:0 4px 12px rgba(43,45,66,.05)}.finance-summary-box h3{margin:0 0 13px;font-size:.82rem}.finance-summary-box p{display:flex;justify-content:space-between;gap:12px;margin:8px 0;font-size:.65rem;color:#596577}.finance-summary-box>div{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding-top:11px;border-top:1px solid rgba(0,0,0,.08);font-size:.67rem;font-weight:900}.finance-summary-box.income{background:#edf7ff;border-color:#3f9adb}.finance-summary-box.costs{background:#fff8e9;border-color:#e7a62d}.finance-budget-panel{overflow:hidden;margin-bottom:16px}.calendar-heading{gap:15px}.calendar-legend{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.calendar-legend span{display:flex;align-items:center;gap:5px;font-size:.55rem;color:var(--muted);font-weight:900}.calendar-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}.legend-event{background:#ff6b8b}.legend-task{background:#4ea8de}.legend-done{background:#06d6a0}.calendar-peak-value{font-size:.92rem!important;text-transform:capitalize}.calendar-shell{overflow:hidden;margin-bottom:16px}.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.calendar-toolbar h3{margin:0;text-align:center;text-transform:capitalize;font-size:.82rem}.calendar-nav,.calendar-view-switch{display:flex;gap:5px;align-items:center}.calendar-view-switch{justify-content:flex-end}.calendar-view-switch .is-active{background:var(--primary);color:#fff;border-color:var(--primary)}.calendar-week-head{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:1px solid var(--line)}.calendar-week-head span{padding:8px 6px;text-align:center;font-size:.52rem;font-weight:950;color:#788294;text-transform:uppercase}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-cell{min-height:122px;padding:8px;border-right:1px solid #eff1f4;border-bottom:1px solid #eff1f4;background:#fff;cursor:pointer;overflow:hidden}.calendar-cell:nth-child(7n){border-right:0}.calendar-cell.outside{background:#fafbfc;cursor:default}.calendar-cell.today{background:#fff8fb;box-shadow:inset 0 0 0 2px #ffc4d2}.calendar-day-number{display:flex;width:23px;height:23px;border-radius:7px;align-items:center;justify-content:center;font-size:.57rem;font-weight:950;color:#596577;margin-bottom:4px}.calendar-cell.today .calendar-day-number{background:var(--primary);color:#fff}.calendar-cell-items{display:flex;flex-direction:column;gap:3px}.calendar-cell-items>small{font-size:.47rem;color:var(--muted);font-weight:900;padding-left:4px}.calendar-item{display:block;padding:4px 5px;border-radius:6px;text-decoration:none;font-size:.48rem;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid}.calendar-item-event{background:#fff0f4;border-color:#ff6b8b;color:#8f3452}.calendar-item-task{background:#eaf5ff;border-color:#4ea8de;color:#2f6da7}.calendar-item-done{background:#e8f8f3;border-color:#06d6a0;color:#087c5c;text-decoration:line-through}.calendar-year-list{padding:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.calendar-year-month{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.calendar-year-month header{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;background:#f8fafc;border-bottom:1px solid var(--line);text-transform:capitalize}.calendar-year-month header strong{font-size:.65rem}.calendar-year-month header span{font-size:.5rem;color:var(--muted);font-weight:900}.calendar-year-month>div{display:grid;grid-template-columns:24px 1fr;gap:5px;align-items:start;padding:5px 8px;border-bottom:1px solid #f1f2f4}.calendar-year-month>div time{font-size:.52rem;color:var(--muted);font-weight:950;padding-top:4px}.calendar-year-month>small{display:block;padding:14px;color:var(--muted);font-size:.55rem;text-align:center}.calendar-day-list{padding:14px;display:grid;gap:8px}.calendar-day-card{padding:13px;border:1px solid var(--line);border-left:5px solid;border-radius:11px;background:#fff}.calendar-day-card>span{font-size:.48rem;font-weight:950;color:var(--muted)}.calendar-day-card>strong{display:block;margin:4px 0;font-size:.72rem}.calendar-day-card>small{display:block;color:var(--muted);font-size:.54rem}.calendar-day-card>a{display:inline-block;margin-top:7px;font-size:.56rem;font-weight:900;color:var(--primary-strong);text-decoration:none}.calendar-day-card.calendar-item-event{border-left-color:#ff6b8b}.calendar-day-card.calendar-item-task{border-left-color:#4ea8de}.calendar-day-card.calendar-item-done{border-left-color:#06d6a0}.calendar-empty{padding:22px;text-align:center;color:var(--muted);font-weight:800}.finance-page-actions .button,.calendar-toolbar .button{white-space:nowrap}
@media(max-width:1000px){.finance-global-grid,.finance-pair-grid{grid-template-columns:1fr}.calendar-year-list{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-cell{min-height:105px}}
@media(max-width:760px){.finance-page-actions{width:100%}.finance-page-actions .button{flex:1}.finance-toolbar{align-items:stretch}.finance-filter-form{width:100%}.finance-event-select{min-width:0;flex-basis:100%}.cashflow-grid{grid-template-columns:1fr}.finance-event-banner{align-items:flex-start;flex-direction:column}.calendar-toolbar{grid-template-columns:1fr;text-align:center}.calendar-nav,.calendar-view-switch{justify-content:center}.calendar-year-list{grid-template-columns:1fr}.calendar-cell{min-height:88px;padding:4px}.calendar-day-number{width:20px;height:20px}.calendar-item{font-size:.42rem;padding:3px}.calendar-week-head span{font-size:.45rem;padding:6px 2px}}

/* v15 · Modulo 13 Riunioni & Briefing + Modulo 14 Hub Messaggi */
.meetings-heading,.hub-heading{align-items:center}.meetings-page-actions{display:flex;gap:8px;flex-wrap:wrap}.meetings-stats-grid,.hub-stats-grid{margin-bottom:16px}.meetings-panel,.requests-panel{margin-bottom:16px}.meetings-toolbar{align-items:flex-end}.meetings-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.meetings-filters .input{min-width:145px}.meetings-search{min-width:240px!important}.meeting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.meeting-card{border:1px solid var(--line);border-left:5px solid #4e8fd6;border-radius:15px;padding:15px;background:#fff;box-shadow:0 5px 15px rgba(43,45,66,.04)}.meeting-card.is-past{opacity:.72;background:#fafbfc}.meeting-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start}.meeting-icon{width:37px;height:37px;border-radius:11px;background:#edf6ff;display:grid;place-items:center;font-size:1rem}.meeting-card-title strong,.meeting-card-title span{display:block}.meeting-card-title strong{font-size:.76rem}.meeting-card-title span{color:var(--primary-strong);font-size:.6rem;font-weight:900;margin-top:3px}.meeting-period-badge{font-size:.48rem;font-weight:950;padding:5px 8px;border-radius:999px}.meeting-period-badge.future{background:#e9fbf5;color:#087c5c}.meeting-period-badge.past{background:#eef1f4;color:#788294}.meeting-meta-grid{display:grid;grid-template-columns:1.4fr .8fr .65fr;gap:8px;margin-top:12px}.meeting-meta-grid>div{background:#f8fafc;padding:9px;border-radius:10px}.meeting-meta-grid span,.meeting-meta-grid strong{display:block}.meeting-meta-grid span{font-size:.46rem;text-transform:uppercase;color:var(--muted);font-weight:950}.meeting-meta-grid strong{font-size:.58rem;margin-top:3px}.meeting-participants{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.meeting-participants span{background:#f3f5f8;border:1px solid var(--line);padding:4px 7px;border-radius:999px;font-size:.5rem;font-weight:850;color:#657083}.meeting-notes{font-size:.58rem;color:#596577;line-height:1.55;background:#f8fafc;padding:9px 10px;border-radius:10px;margin:10px 0 0;white-space:pre-line}.meeting-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.meetings-request-table{min-width:900px}.meetings-request-table td>small{display:block;color:var(--muted);font-size:.52rem;margin-top:3px;max-width:280px}.request-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.5rem;font-weight:950;white-space:nowrap}.status-in_attesa{background:#fff5d9;color:#8d6815}.status-disponibile{background:#e8f8f3;color:#087c5c}.status-non_disponibile{background:#ffedf1;color:#b83255}.actions-cell{white-space:nowrap}.filter-empty{text-align:center;padding:18px;color:var(--muted);font-size:.65rem;font-weight:850}
.hub-unread-title{display:inline-flex;vertical-align:middle;background:#ef476f;color:#fff;padding:4px 10px;border-radius:999px;font-size:.48em;margin-left:7px}.hub-shell{display:grid;grid-template-columns:340px 1fr;min-height:610px;margin-bottom:16px;overflow:hidden}.hub-conversations{border-right:1px solid var(--line);min-width:0;background:#fff}.hub-list-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--line)}.hub-list-header h3{margin:2px 0 0;font-size:.82rem}.hub-list-header>span{background:#f3f5f8;border-radius:999px;padding:4px 8px;font-size:.52rem;font-weight:950}.hub-search-wrap{padding:10px;border-bottom:1px solid var(--line)}.hub-search-wrap .input{width:100%}.hub-conversation-list{max-height:535px;overflow:auto}.hub-conversation-card{width:100%;border:0;border-bottom:1px solid #eff1f4;background:#fff;padding:12px;display:grid;grid-template-columns:auto 1fr auto;gap:9px;text-align:left;cursor:pointer;color:inherit}.hub-conversation-card:hover,.hub-conversation-card.is-active{background:#f5f9ff}.hub-conversation-card.is-active{box-shadow:inset 4px 0 0 var(--primary)}.hub-conversation-icon{width:34px;height:34px;border-radius:10px;background:var(--primary-soft);display:grid;place-items:center}.hub-conversation-copy{min-width:0}.hub-conversation-copy strong,.hub-conversation-copy small,.hub-conversation-copy time{display:block}.hub-conversation-copy strong{font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-conversation-copy small{font-size:.52rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.hub-conversation-copy time{font-size:.45rem;color:#a0a9b7;font-weight:800;margin-top:3px}.hub-unread-badge{min-width:23px;height:23px;border-radius:999px;background:#ef476f;color:#fff;display:grid;place-items:center;font-size:.5rem}.hub-chat-area{min-width:0;position:relative;background:#fbfcfe}.hub-placeholder{min-height:610px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:var(--muted)}.hub-placeholder>div{font-size:2.2rem}.hub-placeholder strong{color:var(--text);margin-top:10px}.hub-placeholder span{font-size:.62rem;margin-top:5px;max-width:420px}.hub-chat-panel{height:610px;display:grid;grid-template-rows:auto 1fr auto}.hub-chat-panel[hidden]{display:none}.hub-chat-header{padding:15px 17px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.hub-chat-header strong,.hub-chat-header span{display:block}.hub-chat-header strong{font-size:.78rem}.hub-chat-header div>span{font-size:.52rem;color:var(--muted);font-weight:800;margin-top:3px}.hub-message-list{overflow-y:auto;padding:18px;background:#f8fafc}.hub-message{display:flex;margin-bottom:10px}.hub-message.is-planner{justify-content:flex-end}.hub-message.is-incoming{justify-content:flex-start}.hub-message-bubble{max-width:76%;padding:10px 12px;border-radius:14px;background:#e8f3fd;border-bottom-left-radius:4px;border:1px solid rgba(0,0,0,.03)}.hub-message.is-planner .hub-message-bubble{background:#ffe8ee;border-bottom-left-radius:14px;border-bottom-right-radius:4px}.hub-message.type-sposi .hub-message-bubble{background:#e9f8f3}.hub-message.is-hidden-spouses .hub-message-bubble{opacity:.75;border:2px dashed #ef476f}.hub-message-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.48rem;color:var(--muted);font-weight:900}.hub-message-meta time{margin-left:auto}.hub-message-meta b{background:#ef476f;color:#fff;padding:2px 5px;border-radius:999px;font-size:.42rem}.hub-message-bubble p{font-size:.62rem;line-height:1.55;margin:6px 0 0;white-space:normal;overflow-wrap:anywhere}.hub-message-flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.hub-message-flags span{font-size:.44rem;font-weight:850;background:rgba(255,255,255,.65);padding:3px 6px;border-radius:999px;color:#657083}.hub-message-flags .visible{color:#087c5c}.hub-message-flags .hidden{color:#b83255}.hub-compose-readonly{background:#fff;border-top:1px solid var(--line);padding:12px;display:grid;grid-template-columns:1fr auto;gap:7px}.hub-compose-readonly textarea{resize:none;border:1px solid var(--line);border-radius:10px;padding:9px;background:#f6f7f9;color:var(--muted)}.hub-compose-readonly small{grid-column:1/-1;color:var(--muted);font-size:.48rem}.stat-danger:before{background:#d94668}.stat-danger .stat-icon{background:#ffedf1;color:#b83255}
@media(max-width:1000px){.meeting-grid{grid-template-columns:1fr}.hub-shell{grid-template-columns:290px 1fr}.hub-message-bubble{max-width:86%}}
@media(max-width:760px){.meetings-page-actions{width:100%}.meetings-page-actions .button{flex:1}.meetings-toolbar{align-items:stretch}.meetings-filters{width:100%;justify-content:stretch}.meetings-filters .input,.meetings-search{min-width:0!important;flex:1 1 100%}.meeting-meta-grid{grid-template-columns:1fr}.hub-shell{grid-template-columns:1fr;min-height:0}.hub-conversations{border-right:0;border-bottom:1px solid var(--line)}.hub-conversation-list{max-height:300px}.hub-chat-panel{height:570px}.hub-placeholder{min-height:260px}.hub-message-bubble{max-width:92%}.hub-compose-readonly{grid-template-columns:1fr}.hub-compose-readonly .button{width:100%}}

/* v16 · Setup Agenzia autenticato e prima scrittura tenant-safe */
.alert-success{background:#e9fbf5;color:#087c5c;border:1px solid #c8f2e5}.setup-heading{align-items:center}.setup-heading-status{display:flex;gap:8px;flex-wrap:wrap}.setup-security-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.setup-security-strip>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px 14px;box-shadow:0 5px 16px rgba(43,45,66,.035);min-width:0}.setup-security-strip strong,.setup-security-strip span{display:block}.setup-security-strip strong{font-size:.62rem;color:var(--primary-strong);margin-bottom:4px}.setup-security-strip span{font-size:.57rem;color:var(--muted);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setup-security-strip.compact{margin:0;box-shadow:none}.setup-form{display:grid;gap:16px}.setup-section{overflow:visible}.setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.setup-grid-finance{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.field{display:block;min-width:0}.field>span{display:block;font-size:.58rem;font-weight:950;color:#657083;margin-bottom:6px}.field small{display:block;color:var(--muted);font-size:.49rem;line-height:1.45;margin-top:5px}.field-full{grid-column:1/-1}.input,.field input,.field select{width:100%;border:1px solid #dfe4eb;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text);font:inherit;font-size:.68rem;outline:0}.input:focus,.field input:focus,.field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.checkbox-field{display:flex!important;align-items:center;gap:8px;padding-top:21px}.checkbox-field input{width:17px!important;height:17px!important;accent-color:var(--primary);flex:0 0 auto}.checkbox-field span{margin:0!important}.budget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.service-editor{display:grid;gap:8px}.service-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(120px,.7fr) auto;gap:8px;align-items:center}.button-small{padding:7px 10px;font-size:.6rem}.button-danger{background:#fff0f3;color:#b83255;border:1px solid #ffd1db}.setup-help{color:var(--muted);font-size:.62rem;line-height:1.55;margin:0 0 12px}.signature-wrap{position:relative;border:2px dashed #cfd6e1;border-radius:14px;background:#fbfcfe;overflow:hidden}.signature-wrap canvas{display:block;width:100%;height:170px;touch-action:none;cursor:crosshair}.signature-wrap span{position:absolute;inset:0;display:grid;place-items:center;color:#a0a9b7;font-size:.62rem;font-weight:850;pointer-events:none}.signature-wrap span.hidden{display:none}.signature-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:10px}.signature-actions .checkbox-field{padding-top:0}.setup-savebar{position:sticky;bottom:12px;z-index:8;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:0 12px 35px rgba(43,45,66,.12);border-radius:16px;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.setup-savebar strong,.setup-savebar span{display:block}.setup-savebar strong{font-size:.7rem}.setup-savebar span{font-size:.52rem;color:var(--muted);margin-top:3px}.setup-save-button{min-width:210px}.setup-save-button:disabled{opacity:.45;cursor:not-allowed}.setup-smtp-panel{border-color:#ffe0a8}.setup-smtp-panel .panel-header{background:#fffaf0}
@media(max-width:1100px){.budget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-security-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-grid-finance{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.setup-grid,.setup-grid-finance,.budget-grid,.setup-security-strip{grid-template-columns:1fr}.field-full{grid-column:auto}.service-row{grid-template-columns:1fr}.setup-savebar{position:static;align-items:stretch;flex-direction:column}.setup-save-button{width:100%}.checkbox-field{padding-top:0}.signature-actions{align-items:flex-start;flex-direction:column}}
.alert-warning{background:#fff8e8;color:#8d6815;border:1px solid #f5dfa7}.setup-write-warning{margin-bottom:16px}

/* v17 — Storico Eventi + Admin SaaS */
.archive-filters,.admin-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.archive-filters .input,.admin-filters .input{min-width:190px}.archive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px}.archive-card{background:#fff;border:1px solid var(--border,#e8e9ef);border-radius:16px;padding:18px;box-shadow:0 4px 16px rgba(43,45,66,.05)}.archive-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.archive-card-head h3{margin:4px 0 0;font-size:1.08rem}.archive-type{font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--gray,#7b8094)}.status-pill.status-archived{background:#eaf4ff;color:#276fbf;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900}.archive-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin:14px 0;color:var(--gray,#6f7486);font-size:.85rem}.archive-linked-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#f8f9fc;border-radius:12px;padding:10px}.archive-linked-grid div{text-align:center}.archive-linked-grid strong{display:block;font-size:1rem;color:var(--dark,#2b2d42)}.archive-linked-grid span{font-size:.68rem;color:var(--gray,#7b8094)}.archive-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:12px 0;color:var(--gray,#7b8094)}.archive-actions{display:flex;gap:7px;flex-wrap:wrap}.legacy-badge{background:#fff3cd;color:#8a6200;padding:3px 7px;border-radius:999px;font-size:.68rem;font-weight:900}
.admin-denied code{display:inline-block;max-width:100%;overflow:auto;padding:8px 10px;background:#f6f7fb;border-radius:8px}.admin-user-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.admin-user-card{border:1px solid var(--border,#e7e9ef);border-radius:15px;padding:16px;background:#fff}.admin-user-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.admin-user-head strong{display:block;overflow-wrap:anywhere}.admin-user-head span{font-size:.8rem;color:var(--gray,#777c8f)}.license-pill{padding:5px 9px;border-radius:999px;font-size:.7rem;font-weight:900;white-space:nowrap}.license-new{background:#eaf4ff;color:#276fbf}.license-active,.license-lifetime{background:#e7f8ee;color:#16834b}.license-expiring{background:#fff3cd;color:#8a6200}.license-expired,.license-suspended{background:#ffe8ed;color:#b42345}.admin-user-meta{display:grid;gap:5px;margin:12px 0;font-size:.8rem;color:var(--gray,#6f7486)}.admin-user-meta code{font-size:.72rem;overflow-wrap:anywhere}.admin-user-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.compact-alert{padding:9px 10px;margin:8px 0;font-size:.78rem}.admin-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.admin-feed-list{display:grid;gap:10px}.admin-feed-item{border:1px solid #e8e9ef;border-radius:12px;padding:12px;background:#fff}.admin-feed-item.is-unread{border-left:4px solid #ef476f}.admin-feed-item>div{display:flex;justify-content:space-between;gap:12px}.admin-feed-item span{font-size:.72rem;color:var(--gray,#7b8094)}.admin-feed-item p{margin:8px 0 0;white-space:normal;overflow-wrap:anywhere}.admin-toolbar{gap:15px}.admin-stats-grid{margin-bottom:18px}@media(max-width:900px){.admin-two-columns{grid-template-columns:1fr}.archive-linked-grid{grid-template-columns:repeat(2,1fr)}}

/* v18 — CRUD tenant-safe Modulo 0 + Modulo 1 */
.write-enabled-badge{display:inline-flex;align-items:center;gap:6px;background:#e9fbf5;color:#087c5c;border:1px solid #c8f2e5;padding:6px 9px;border-radius:999px;font-size:.58rem;font-weight:900}.button.is-disabled{opacity:.45;pointer-events:none}.client-editor-panel{margin-bottom:18px}.client-editor-form{display:grid;gap:16px}.client-form-section{border:1px solid var(--line);border-radius:14px;padding:15px;background:#fbfcfe}.client-form-section h4{margin:0 0 12px;font-size:.82rem}.client-form-section textarea{width:100%;border:1px solid #dfe4eb;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text);font:inherit;font-size:.68rem;outline:0;resize:vertical}.client-form-section textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.client-contract-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.client-form-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center;position:sticky;bottom:10px;z-index:7;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:14px;padding:11px 13px;box-shadow:0 10px 30px rgba(43,45,66,.09);backdrop-filter:blur(10px)}.client-status-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.danger-zone-form{margin-top:12px;padding-top:12px;border-top:1px dashed #ffd1db}.client-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.kanban-quick-stage{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:9px}.kanban-quick-stage select{min-width:0;border:1px solid var(--line);border-radius:9px;padding:7px 8px;background:#fff;font-size:.56rem;font-weight:800;color:var(--text)}.kanban-card-new.is-draggable{cursor:grab}.kanban-card-new.is-dragging{opacity:.45;transform:scale(.98)}[data-kanban-dropzone].is-dragover{outline:2px dashed var(--primary);outline-offset:-4px;background:#fff6f8}.kanban-column-body-new{transition:.15s background,.15s outline}.architecture-card.compact-architecture{margin-top:18px}
@media(max-width:1100px){.client-contract-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.client-contract-grid{grid-template-columns:1fr}.client-form-actions{position:static;flex-direction:column-reverse;align-items:stretch}.client-status-form{grid-template-columns:1fr}.kanban-quick-stage{grid-template-columns:1fr}.clients-page-actions{width:100%}.clients-page-actions .button{flex:1}}

/* v19 CRUD editors */
.crud-form-panel{margin-bottom:18px;display:grid;gap:14px}.crud-form-panel form{display:grid;gap:16px}.field textarea{width:100%;border:1px solid #dfe4eb;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text);font:inherit;font-size:.68rem;outline:0;resize:vertical}.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.dynamic-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(140px,1fr) auto;gap:8px;align-items:end;padding:10px 0;border-bottom:1px dashed var(--line)}.dynamic-row:last-child{border-bottom:0}.dynamic-row .checkbox-field{padding-top:0;align-self:center}.preventivo-actions form,.budget-actions form,.supplier-actions form{display:inline-flex;margin:0}.contract-card .supplier-actions{flex-wrap:wrap}.contract-card .supplier-actions form{display:inline-flex;margin:0}.alert-warning{background:#fff8e8;color:#8a6116;border:1px solid #f4dfab}@media(max-width:760px){.dynamic-row{grid-template-columns:1fr}.dynamic-row .icon-action{justify-self:end}.crud-form-panel .client-form-actions{position:static}}
.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px}.guest-assign-form select,.table-guest-assignment select{max-width:140px;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff;font-size:.58rem}.table-guest-assignment{display:flex;align-items:center;justify-content:space-between;gap:8px}.table-edit-details{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}.table-edit-details summary{cursor:pointer;font-size:.62rem;font-weight:900;color:var(--primary)}.table-inline-editor{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:7px;align-items:end;margin-top:8px}.table-inline-editor label{display:grid;gap:3px;font-size:.5rem;font-weight:800;color:var(--muted)}.table-inline-editor input,.table-inline-editor select{min-width:0;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff;font:inherit}.seating-table[data-draggable="1"]{cursor:grab}.seating-table.is-dragging{cursor:grabbing;z-index:999;opacity:.9}.seating-floorplan-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;pointer-events:none}.seating-map-viewport{position:relative}.compact-field{min-width:130px}.timeline-smart-form{display:flex;align-items:end;gap:8px}.timeline-smart-form[hidden]{display:none!important}@media(max-width:800px){.table-inline-editor{grid-template-columns:1fr 1fr}.timeline-smart-form{width:100%;flex-wrap:wrap}}
/* v21 · moduli 9-12 CRUD */
.document-origin-private{background:#efeafd;color:#6f4fa3}.document-row-actions form,.communications-toolbar form,.communication-actions form{display:inline-flex;margin:0}.communication-send-details{position:relative}.communication-send-details>summary{list-style:none;cursor:pointer}.communication-send-details>summary::-webkit-details-marker{display:none}.communication-send-details[open]>form{position:absolute;z-index:30;right:0;top:calc(100% + 6px);width:260px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 40px rgba(43,45,66,.16);display:grid;gap:8px}.communication-send-details select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff;font-size:.6rem}.finance-category-editor{grid-template-columns:minmax(180px,1.4fr) minmax(130px,.7fr) minmax(120px,.6fr) auto}.finance-live-diff{align-self:center;display:grid;gap:4px}.finance-live-diff span{font-size:.5rem;font-weight:900;color:var(--muted);text-transform:uppercase}.finance-live-diff strong{font-size:.7rem}.finance-percent-total{text-align:right;padding:8px 0;font-size:.65rem;font-weight:850}.calendar-write-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.calendar-write-grid .crud-form-panel{margin:0}.calendar-write-grid .client-form-actions{padding-top:4px}.button.is-disabled{opacity:.45;pointer-events:none}@media(max-width:850px){.finance-category-editor{grid-template-columns:1fr}.calendar-write-grid{grid-template-columns:1fr}.communication-send-details[open]>form{right:auto;left:0}}
/* v23 · Armony + Smart Match */
.armony-widget{position:fixed;right:22px;bottom:22px;z-index:1100}.armony-fab{width:56px;height:56px;border:0;border-radius:50%;cursor:pointer;font-size:1.35rem;background:linear-gradient(135deg,#9333ea,#ff6b8b);color:#fff;box-shadow:0 12px 30px rgba(147,51,234,.28)}.armony-panel{position:absolute;right:0;bottom:68px;width:min(390px,calc(100vw - 28px));height:min(540px,70vh);background:#fff;border:1px solid #e8ddf7;border-radius:18px;box-shadow:0 24px 70px rgba(43,45,66,.22);overflow:hidden}.armony-panel header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(135deg,#faf5ff,#fff0f4)}.armony-panel header strong{display:block;color:#6d28d9}.armony-panel header small{display:block;color:var(--muted);font-size:.58rem;margin-top:2px}.armony-panel header button{border:0;background:transparent;font-size:1.4rem;cursor:pointer}.armony-body{height:calc(100% - 118px);overflow:auto;padding:14px;display:flex;flex-direction:column;gap:9px}.armony-message{max-width:88%;padding:10px 12px;border-radius:13px;font-size:.68rem;line-height:1.5;white-space:pre-wrap}.armony-system{background:#f5efff;color:#3c2861;align-self:flex-start}.armony-user{background:#ffedf2;color:#77233b;align-self:flex-end}.armony-form{height:58px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px}.armony-form input{border:1px solid var(--line);border-radius:10px;padding:9px 10px;font:inherit}.armony-form button{border:0;border-radius:10px;width:42px;background:#9333ea;color:#fff;font-size:1rem;cursor:pointer}
.armony-client-box{border:1px solid #e9d5ff;background:linear-gradient(135deg,#faf5ff,#fff);border-radius:14px;padding:15px}.armony-client-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.armony-ai-status{font-size:.62rem;font-weight:800;color:#6f4fa3}.armony-moodboard-preview{display:block;max-width:520px;width:100%;border-radius:14px;margin-top:12px;border:1px solid #e9d5ff}.armony-table-output{width:100%;min-height:120px;border:1px solid #e9d5ff;border-radius:10px;padding:10px;background:#fff;font:inherit;font-size:.65rem;resize:vertical}
.smartmatch-shell{display:grid;grid-template-columns:270px 1fr;gap:16px}.smartmatch-categories{display:grid;align-content:start;gap:7px}.smartmatch-cat{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;color:var(--text);text-decoration:none;background:#fff}.smartmatch-cat strong{font-size:.65rem}.smartmatch-cat span{font-size:.56rem;color:var(--muted);font-weight:800}.smartmatch-cat.is-active{border-color:var(--primary);background:var(--primary-soft)}.smartmatch-main{min-width:0}.smartmatch-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.algorithm-badge{font-size:.55rem;font-weight:900;background:#eef7ff;color:#276fbf;border-radius:999px;padding:6px 9px}.smartmatch-tagbar{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.smart-tag{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:8px 11px;font-size:.58rem;font-weight:900;cursor:pointer}.smart-tag.is-selected{background:var(--primary);border-color:var(--primary);color:#fff}.smartmatch-assigned{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#e9fbf5;border-left:4px solid #18a67a;padding:12px 14px;border-radius:11px;margin:14px 0}.smartmatch-assigned small,.smartmatch-assigned strong,.smartmatch-assigned span{display:block}.smartmatch-assigned small{font-size:.5rem;font-weight:900;color:#16805f}.smartmatch-assigned strong{font-size:.75rem}.smartmatch-assigned span{font-size:.58rem;color:var(--muted)}.smartmatch-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.smartmatch-option{position:relative;border:2px solid var(--line);border-radius:15px;padding:18px 14px;background:#fff;display:grid;gap:8px;align-content:start}.option-saving{border-color:#2fa36b}.option-standard{border-color:#3d8ad8}.option-premium{border-color:#e3b126}.smartmatch-option-label{font-size:.58rem;font-weight:950;text-transform:uppercase}.smartmatch-source-row{display:flex;gap:6px;flex-wrap:wrap}.source-pill,.premium-pill{font-size:.5rem;font-weight:900;border-radius:999px;padding:4px 7px}.source-privato{background:#eef2ff;color:#4254a4}.source-pubblico{background:#eefaf2;color:#277449}.premium-pill{background:#fff5d6;color:#936d00}.smartmatch-option h4{margin:0;font-size:.82rem}.smartmatch-option p{margin:0;color:var(--muted);font-size:.6rem}.smartmatch-price{font-size:1.35rem}.smartmatch-option small{font-size:.55rem;color:var(--muted)}.smartmatch-diff{font-size:.55rem;font-weight:900}.smartmatch-diff.over{color:#b42345}.smartmatch-diff.under{color:#16834b}.smartmatch-option form{margin-top:4px}.smartmatch-all{margin-top:16px}.smartmatch-all summary{cursor:pointer;font-weight:900;font-size:.65rem}.smartmatch-all table{width:100%;margin-top:10px}.smartmatch-all th,.smartmatch-all td{padding:8px;font-size:.56rem;border-bottom:1px solid var(--line);text-align:left}
@media(max-width:980px){.smartmatch-shell{grid-template-columns:1fr}.smartmatch-categories{grid-template-columns:repeat(2,minmax(0,1fr))}.smartmatch-options{grid-template-columns:1fr}.smartmatch-head{display:grid}}@media(max-width:600px){.armony-widget{right:12px;bottom:12px}.smartmatch-categories{grid-template-columns:1fr}}

/* v24 · Fascicolo evento a modali separate */
.fascicolo-layout{grid-template-columns:minmax(0,1fr) minmax(430px,500px)!important}.fascicolo-v24{position:sticky;top:112px;overflow:visible}.fascicolo-head{position:relative;padding:22px;display:grid;grid-template-columns:54px 1fr;gap:14px;border-bottom:1px solid var(--line)}.fascicolo-head .client-detail-icon{margin:0;width:54px;height:54px}.fascicolo-title{min-width:0}.fascicolo-title h3{margin:3px 34px 7px 0;font-size:1.22rem}.fascicolo-title>div{display:flex;gap:6px;flex-wrap:wrap}.fascicolo-title>p:last-child{margin:8px 0 0;color:var(--muted);font-size:.7rem;font-weight:750;line-height:1.45}.fascicolo-primary-actions{padding:14px 18px;display:grid;grid-template-columns:1fr 1fr;gap:8px;border-bottom:1px solid var(--line)}.fascicolo-action{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;text-align:left;font:inherit;font-size:.68rem;font-weight:900;cursor:pointer;transition:.16s}.fascicolo-action:hover{transform:translateY(-1px);border-color:#ffc4d0;box-shadow:0 8px 20px rgba(43,45,66,.06)}.fascicolo-action span{margin-left:4px}.fascicolo-action.armony-action{background:#faf5ff;border-color:#ead8ff;color:#6d28d9}.fascicolo-action.portal-action{background:#fffaf0;border-color:#f6e1ae;color:#8a6116}.fascicolo-action.contract-action{background:#f2f7ff;border-color:#dce8fb;color:#315f9b}.fascicolo-kpis{padding:16px 18px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.fascicolo-kpis>div{border:1px solid var(--line);background:#fafbfc;border-radius:12px;padding:11px}.fascicolo-kpis span,.fascicolo-kpis strong,.fascicolo-kpis small{display:block}.fascicolo-kpis span{font-size:.53rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:900}.fascicolo-kpis strong{font-size:.95rem;margin:4px 0}.fascicolo-kpis small{font-size:.55rem;color:var(--muted);font-weight:750}.fascicolo-progress-stack{padding:0 18px 14px;display:grid;gap:9px}.fascicolo-progress-stack>div>div{display:flex;justify-content:space-between;font-size:.55rem;color:var(--muted);font-weight:900;margin-bottom:4px}.fascicolo-progress-stack progress{appearance:none;width:100%;height:7px;border:0;border-radius:999px;overflow:hidden;background:#edf0f4}.fascicolo-progress-stack progress::-webkit-progress-bar{background:#edf0f4}.fascicolo-progress-stack progress::-webkit-progress-value{background:linear-gradient(90deg,var(--primary),var(--secondary))}.fascicolo-progress-stack progress::-moz-progress-bar{background:var(--primary)}.fascicolo-contact-line{display:grid;gap:6px;padding:13px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#667085;font-size:.62rem;font-weight:800}.fascicolo-section{padding:15px 18px;border-bottom:1px solid var(--line)}.fascicolo-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.fascicolo-section-title h4{margin:0;font-size:.72rem}.fascicolo-section-title span{font-size:.5rem;color:var(--muted);font-weight:800}.quick-action-grid,.fascicolo-module-links{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.quick-action-grid a,.fascicolo-module-links a{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px;text-align:center;font-size:.56rem;font-weight:900}.quick-action-grid a:hover,.fascicolo-module-links a:hover{background:var(--primary-soft);border-color:#ffc6d2}.fascicolo-v24 .client-status-form,.fascicolo-v24 .danger-zone-form{margin-left:18px;margin-right:18px}.fascicolo-v24 .danger-zone-form{margin-bottom:18px}
.pm-modal[hidden]{display:none!important}.pm-modal{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;padding:24px}.pm-modal-backdrop{position:absolute;inset:0;background:rgba(27,31,44,.62);backdrop-filter:blur(4px)}.pm-modal-card{position:relative;width:min(620px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.5);border-radius:20px;box-shadow:0 30px 90px rgba(27,31,44,.28)}.pm-modal-card-lg{width:min(820px,100%)}.pm-modal-card-xl{width:min(1080px,100%)}.pm-modal-header{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:19px 22px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.pm-modal-header h3{margin:4px 0 5px;font-size:1.15rem}.pm-modal-header p:last-child{margin:0;color:var(--muted);font-size:.65rem;line-height:1.45;font-weight:700}.pm-modal-x{border:0;background:#f4f6f9;color:#697386;width:35px;height:35px;border-radius:10px;display:grid;place-items:center;font-size:1.3rem;cursor:pointer;flex:0 0 auto}.pm-modal-body{padding:20px 22px;display:grid;gap:16px}.pm-modal-footer{position:sticky;bottom:-20px;display:flex;justify-content:flex-end;gap:9px;margin:5px -22px -20px;padding:13px 22px;background:rgba(255,255,255,.97);border-top:1px solid var(--line);backdrop-filter:blur(10px)}html.pm-modal-open,html.pm-modal-open body{overflow:hidden}.field-inline{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:stretch}.field-inline .button{white-space:nowrap}.portal-feature-note{background:#fff8e8;border:1px solid #f4dfab;color:#79591d;border-radius:11px;padding:11px 12px;font-size:.6rem;font-weight:800;line-height:1.45}
@media(max-width:1320px){.fascicolo-layout{grid-template-columns:minmax(0,1fr) 410px!important}.quick-action-grid,.fascicolo-module-links{grid-template-columns:1fr 1fr}}@media(max-width:980px){.fascicolo-layout{grid-template-columns:1fr!important}.fascicolo-v24{position:static;order:-1}.fascicolo-primary-actions{grid-template-columns:repeat(4,1fr)}.fascicolo-action{text-align:center}.fascicolo-action span{display:block;margin:5px 0 0}}@media(max-width:720px){.pm-modal{padding:0}.pm-modal-card,.pm-modal-card-lg,.pm-modal-card-xl{width:100%;height:100%;max-height:none;border-radius:0}.pm-modal-header{padding:15px}.pm-modal-body{padding:15px}.pm-modal-footer{margin:5px -15px -15px;padding:12px 15px}.fascicolo-primary-actions{grid-template-columns:1fr 1fr}.fascicolo-kpis{grid-template-columns:1fr 1fr}.field-inline{grid-template-columns:1fr}.client-contract-grid{grid-template-columns:1fr 1fr}.quick-action-grid,.fascicolo-module-links{grid-template-columns:1fr 1fr}}


/* v24.1 · Fascicolo a tutta larghezza */
.fascicolo-full-layout{display:block!important;width:100%;max-width:none!important}
.fascicolo-full-layout .fascicolo-v24{position:static!important;width:100%;max-width:none;overflow:visible}
.fascicolo-full-layout .fascicolo-primary-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
.fascicolo-full-layout .fascicolo-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.fascicolo-full-layout .fascicolo-progress-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:2px}
.fascicolo-full-layout .fascicolo-contact-line{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fascicolo-full-layout .quick-action-grid,.fascicolo-full-layout .fascicolo-module-links{grid-template-columns:repeat(6,minmax(0,1fr))}
.fascicolo-full-layout .fascicolo-action{text-align:center;padding:15px 12px;font-size:.72rem}
.fascicolo-full-layout .fascicolo-action span{display:block;margin:6px 0 0}
.fascicolo-full-layout .fascicolo-section{padding-top:20px;padding-bottom:20px}
.fascicolo-page-heading{margin-bottom:18px}
@media(max-width:1180px){.fascicolo-full-layout .quick-action-grid,.fascicolo-full-layout .fascicolo-module-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.fascicolo-full-layout .fascicolo-primary-actions,.fascicolo-full-layout .fascicolo-kpis,.fascicolo-full-layout .fascicolo-progress-stack,.fascicolo-full-layout .fascicolo-contact-line{grid-template-columns:1fr 1fr}.fascicolo-full-layout .quick-action-grid,.fascicolo-full-layout .fascicolo-module-links{grid-template-columns:1fr 1fr}}
.live-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px}.live-modal-backdrop{position:absolute;inset:0;background:rgba(25,28,45,.68);backdrop-filter:blur(4px)}.live-modal-card{position:relative;width:min(560px,100%);max-height:82vh;background:#fff;border-radius:20px;box-shadow:0 28px 80px rgba(0,0,0,.25);overflow:hidden}.live-modal-card header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.live-modal-card header h3{margin:0}.live-modal-card header button{border:0;background:transparent;font-size:1.6rem;cursor:pointer}.live-modal-body{padding:18px;overflow:auto;max-height:70vh}.live-update-item{display:flex;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--dark);margin-bottom:9px}.live-update-item span{font-size:1.3rem}.live-update-item strong,.live-update-item small{display:block}.live-update-item small{color:var(--muted);margin-top:3px}.live-news{border-left:4px solid var(--primary);padding:12px 14px;background:#f8f9fb;border-radius:0 12px 12px 0;margin-bottom:12px}.live-news small,.live-news strong{display:block}.live-news small{color:var(--primary-strong);font-weight:900}.live-news p{margin:6px 0 0;color:var(--muted)}.live-modal textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;resize:vertical}
.jitsi-overlay{position:fixed;inset:0;z-index:140;background:#171827;display:flex;flex-direction:column}.jitsi-overlay[hidden]{display:none}.jitsi-toolbar{min-height:58px;padding:10px 16px;background:#24263b;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px}.jitsi-toolbar>div{display:flex;gap:8px}.jitsi-overlay iframe{border:0;width:100%;height:calc(100vh - 58px);background:#111}.jitsi-toolbar .button-light{background:#fff}@media(max-width:600px){.jitsi-toolbar{align-items:flex-start;flex-direction:column}.jitsi-overlay iframe{height:calc(100vh - 100px)}}
.timeline-card-readonly[data-timeline-draggable]{cursor:grab;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.timeline-card-readonly[data-timeline-draggable]:active{cursor:grabbing}.timeline-card-readonly.is-dragging{opacity:.48;transform:scale(.99)}.timeline-card-readonly.is-drop-target{border-top:4px dashed var(--primary-color,#ff6b8b);box-shadow:0 14px 30px rgba(255,107,139,.12)}.timeline-drag-hint{margin:12px 0 6px}
/* v35 · guest drag & drop seating parity */
.seating-guest-pill[data-guest-draggable="1"],.table-guest-assignment[data-guest-draggable="1"]{cursor:grab}
.seating-guest-pill.is-guest-dragging,.table-guest-assignment.is-guest-dragging{opacity:.45;cursor:grabbing}
[data-guest-dropzone="1"]{transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.unassigned-list[data-guest-dropzone="1"].is-guest-drop-target{background:#fff4f7;border:1px dashed var(--primary);border-radius:12px}
.seating-table[data-guest-dropzone="1"].is-guest-drop-target{border-color:#08a67a!important;box-shadow:0 0 0 6px rgba(8,166,122,.14),0 10px 26px rgba(43,45,66,.22)!important;background:#f2fffb}
[data-guest-dropzone="1"].is-saving-guest{opacity:.65;pointer-events:none}

/* v36 · Setup branding tenant-safe */
.setup-branding-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.setup-logo-preview{width:150px;height:92px;display:grid;place-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.setup-logo-preview img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.setup-logo-upload{flex:1;min-width:240px}.setup-logo-upload small{color:var(--muted);font-size:.6rem;line-height:1.45}.button-small{padding:7px 10px;font-size:.62rem}.setup-logo-upload .button-small{margin-top:8px}
@media(max-width:640px){.setup-branding-row{align-items:stretch;flex-direction:column}.setup-logo-preview{width:100%;height:110px}.setup-logo-upload{min-width:0}}

/* v39 Smart Match diagnostics + actionable comparison */
.smartmatch-filter-label{margin:18px 0 8px;font-size:.62rem;font-weight:900;color:var(--text)}
.smartmatch-diagnostic-empty{margin:18px 0;padding:22px;border:1px solid #f0d7a8;background:#fffaf0;border-radius:15px}
.smartmatch-diagnostic-empty h4{margin:0 0 7px;font-size:.82rem}.smartmatch-diagnostic-empty p{margin:0;color:var(--muted);font-size:.62rem}
.smartmatch-diagnostic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0}
.smartmatch-diagnostic-grid span{display:flex;gap:6px;align-items:center;padding:10px 11px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:.56rem;color:var(--muted);font-weight:800}
.smartmatch-diagnostic-grid b{font-size:.8rem;color:var(--text)}
.smartmatch-empty-actions{justify-content:flex-start;flex-wrap:wrap;margin-top:14px}
.smartmatch-options-1{grid-template-columns:minmax(0,420px)}
.smartmatch-options-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:840px}
.smartmatch-all td:last-child{white-space:nowrap}.smartmatch-all form{margin:0}
@media(max-width:760px){.smartmatch-diagnostic-grid{grid-template-columns:1fr 1fr}.smartmatch-options-2{grid-template-columns:1fr}}
@media(max-width:480px){.smartmatch-diagnostic-grid{grid-template-columns:1fr}}


/* v40 · UI stabilization / cache-refresh release
   Regole conservative: nessun redesign, solo allineamenti e overflow coerenti. */
.page-heading{min-width:0}.page-heading>div{min-width:0}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.panel-header{flex-wrap:wrap}.panel-header>div{min-width:0}.panel-header h3,.panel-header h4{overflow-wrap:anywhere}
.button,.button-small,.icon-action{line-height:1.2}.button-small{margin-top:0}
.setup-logo-upload .button-small{margin-top:8px}
.field,.field input,.field select,.field textarea,.module-search,.module-filter,.module-filter select{min-width:0}
.setup-grid>*,.dynamic-row>*,.module-toolbar>*,.client-contract-grid>*,.stats-grid>*,.dashboard-grid>*,.system-grid>*{min-width:0}
.module-toolbar{flex-wrap:wrap}.module-search{max-width:100%}
.table-wrap,.sent-contract-table-wrap,.smartmatch-all,.budget-table-wrap,.guests-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.smartmatch-shell,.smartmatch-main,.smartmatch-options,.smartmatch-option{min-width:0}
.smartmatch-option h4,.smartmatch-option p,.smartmatch-assigned strong,.smartmatch-assigned span{overflow-wrap:anywhere}
.smartmatch-all table{min-width:720px;border-collapse:collapse}
@media(max-width:1100px){.page-content{padding-left:24px;padding-right:24px}.page-heading{gap:18px}}
@media(max-width:820px){.page-actions{width:100%}.page-actions .button{max-width:100%}.panel-header{align-items:flex-start}.module-toolbar{align-items:stretch}}
@media(max-width:520px){.page-content{padding-left:14px;padding-right:14px}.page-heading h2{font-size:1.5rem}.stats-grid{grid-template-columns:1fr}.page-actions{display:grid;grid-template-columns:1fr}.page-actions .button{text-align:center;width:100%}}

/* v41 · production-parity UI repair: Smart Match, Fornitori, Contratti, Report, Tavoli */
.smartmatch-categories,.smartmatch-main{padding:18px}.smartmatch-categories .eyebrow{margin-bottom:5px}.smartmatch-cat{min-height:58px;align-content:center}.smartmatch-cat strong{font-size:.72rem;line-height:1.25}.smartmatch-cat span{font-size:.61rem}.smartmatch-head h3{margin:4px 0 6px;font-size:1.2rem}.smartmatch-head p{margin:0;color:var(--muted);font-size:.72rem}.smartmatch-detected-categories{margin:4px 0 0!important;padding:10px 12px;border-radius:10px;background:#fff;border:1px dashed #e2d1aa;color:#7d6740!important;line-height:1.55}.smartmatch-auto-note{margin-bottom:16px}

.supplier-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 14px;margin:0 0 16px;box-shadow:none}.supplier-breadcrumb a{color:#3c6fa7;font-size:.68rem;font-weight:900}.supplier-breadcrumb span{color:#a3adba}.supplier-breadcrumb strong{font-size:.68rem}.supplier-hierarchy{margin-bottom:20px}.supplier-hierarchy-head,.supplier-list-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 2px 12px}.supplier-hierarchy-head h3,.supplier-list-heading h3{margin:4px 0 0;font-size:1.05rem}.supplier-hierarchy-head>p{margin:0;color:var(--muted);font-size:.68rem;font-weight:700}.supplier-nav-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.supplier-macro-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.supplier-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.supplier-nav-card{min-height:92px;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 16px;border:1px solid var(--line);background:#fff;border-radius:15px;box-shadow:0 9px 24px rgba(43,45,66,.055);transition:.15s}.supplier-nav-card:hover{border-color:#ffc5d2;box-shadow:0 12px 28px rgba(43,45,66,.09);transform:translateY(-1px)}.supplier-nav-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:var(--primary-soft);font-size:1.2rem}.supplier-nav-card strong,.supplier-nav-card small{display:block}.supplier-nav-card strong{font-size:.82rem;line-height:1.25}.supplier-nav-card small{margin-top:4px;color:var(--muted);font-size:.61rem;font-weight:800}.supplier-nav-card>b{color:#a8b1bf;font-size:1.1rem}.supplier-list-heading{margin-top:4px}.supplier-editor-panel{overflow:visible}.supplier-editor-panel>.panel-header{margin-bottom:0}.supplier-editor-panel form{padding:0 20px 20px}.supplier-editor-panel form>.setup-grid{padding-top:2px}.supplier-editor-panel .client-form-section{border:1px solid var(--line);border-radius:13px;overflow:hidden}.supplier-editor-panel .client-form-section>.panel-header{padding:13px 15px}.supplier-editor-panel [data-pricelist]{padding:0 14px 10px}

/* Template Contratti v26 usava nomi classe diversi dal CSS v10: riallineamento esplicito. */
.contracts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.contract-card{padding:18px;overflow:visible}.contract-card.is-inactive{opacity:.72}.contract-card-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:start}.contract-card-head>div:nth-child(2){min-width:0}.contract-title-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.contract-title-line h3{margin:0;font-size:.96rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.contract-card-head>div:nth-child(2)>span{display:block;margin-top:5px;color:var(--muted);font-size:.62rem;font-weight:800}.contract-card-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:15px}.contract-card-facts>div{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:9px}.contract-card-facts span,.contract-card-facts strong{display:block}.contract-card-facts span{color:var(--muted);font-size:.56rem;text-transform:uppercase;font-weight:850}.contract-card-facts strong{font-size:.74rem;margin-top:3px}.contract-card>.panel-note{display:block;margin:10px 0 0;border-radius:10px}.contract-card>.supplier-actions{margin-top:12px}.contract-type-tabs{display:flex;gap:5px;flex-wrap:wrap}.contract-type-tabs button{border:1px solid var(--line);background:#f8fafc;color:#697386;border-radius:9px;padding:8px 10px;font-size:.66rem;font-weight:850;cursor:pointer}.contract-type-tabs button.is-active{background:var(--primary-soft);border-color:#ffc9d5;color:var(--primary-strong)}.sent-contract-panel{margin-bottom:18px}.contract-send-details>summary{list-style:none}.contract-send-details>summary::-webkit-details-marker{display:none}

/* Report: il <summary> non deve diventare una barra larga quanto la card. */
.report-event-card{min-width:0}.report-actions>details{display:inline-block!important;width:auto!important;flex:0 0 auto}.report-actions>details>summary{display:inline-flex!important;width:auto!important;list-style:none!important;align-items:center;cursor:pointer}.report-actions>details>summary::-webkit-details-marker{display:none}.report-actions .button{white-space:nowrap}.report-archive-menu{min-width:190px}

/* Tavoli: form di creazione più compatto, senza fascia bianca sproporzionata. */
.seating-toolbar{padding:12px 14px;margin-bottom:14px}.seating-toolbar .module-event-select{min-width:280px}.seating-toolbar-actions{align-items:center}.seating-heading{margin-bottom:18px}.seating-stats-grid .stat-card{padding:18px}.seating-create-panel,.seating-heading+section.crud-form-panel{margin-bottom:16px}.seating-heading+section.crud-form-panel>.panel-header{padding:15px 18px}.seating-heading+section.crud-form-panel>form{padding:0 18px 14px;gap:12px}.seating-heading+section.crud-form-panel .setup-grid{gap:10px}.seating-heading+section.crud-form-panel .client-form-actions{padding-top:0;margin-top:0}

@media(max-width:1180px){.supplier-macro-grid,.supplier-nav-grid,.supplier-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contracts-grid{grid-template-columns:1fr}}
@media(max-width:760px){.smartmatch-categories,.smartmatch-main{padding:14px}.supplier-macro-grid,.supplier-nav-grid,.supplier-category-grid{grid-template-columns:1fr}.supplier-hierarchy-head,.supplier-list-heading{align-items:flex-start;flex-direction:column}.contract-card-head{grid-template-columns:42px minmax(0,1fr)}.contract-card-head>.supplier-status-badge{grid-column:2;justify-self:start}.contract-card-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.seating-toolbar{align-items:stretch}.seating-toolbar .module-event-select{min-width:0}.report-actions{align-items:flex-start}}
.seating-create-panel{margin-bottom:16px}.seating-create-panel>.panel-header{padding:15px 18px}.seating-create-panel>form{padding:0 18px 14px;gap:12px}.seating-create-panel .setup-grid{gap:10px}.seating-create-panel .client-form-actions{padding-top:0;margin-top:0}

/* v42 · Tavoli stable — world 2000×1500, touch assignment, floorplan and reliable map controls */
.seating-create-grid{display:grid;grid-template-columns:100px minmax(220px,2fr) minmax(150px,1fr) 110px minmax(230px,1.2fr);gap:10px;align-items:end}
.seating-create-grid .field{min-width:0}.seating-create-grid .field>span{white-space:nowrap}.seating-position-field .inline-fields{min-width:0}.seating-number-field input{text-align:center}
.seating-save-status{display:block;margin-top:4px;color:var(--muted);font-size:.58rem;font-weight:800}.seating-save-status[data-state="pending"]{color:#8a6a14}.seating-save-status[data-state="ok"]{color:#087c5c}.seating-save-status[data-state="error"]{color:#b83255}
.seating-map-viewport{isolation:isolate;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}.seating-world{will-change:transform;transition:none}.seating-floorplan-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.30;border:0;background:transparent}.seating-floorplan-bg:is(img){object-fit:contain;object-position:center}.seating-floorplan-pdf{opacity:.24;background:#fff}.seating-floorplan-unpreviewable{position:absolute;z-index:1;left:50%;top:28px;transform:translateX(-50%);max-width:720px;padding:9px 13px;border:1px dashed #d8dde6;border-radius:10px;background:rgba(255,255,255,.9);color:var(--muted);font-size:.58rem;font-weight:800;text-align:center;pointer-events:none}
.seating-table{z-index:3;touch-action:none}.seating-table.is-dragging{transition:none;cursor:grabbing;z-index:20;box-shadow:0 14px 34px rgba(43,45,66,.25)}
.seating-guest-pill[data-guest-draggable="1"],.table-guest-assignment[data-guest-draggable="1"]{touch-action:manipulation}.seating-guest-pill.is-touch-selected,.table-guest-assignment.is-touch-selected{border-color:#08a67a!important;box-shadow:0 0 0 3px rgba(8,166,122,.13);background:#f3fffb}.unassigned-list.is-guest-drop-target{outline:2px dashed #08a67a;outline-offset:-5px;background:#f5fffb}.seating-table.is-guest-drop-target{z-index:21}
.seating-map-head>div:first-child{min-width:0}.seating-map-head h3{overflow-wrap:anywhere}.seating-zoom-controls{flex:0 0 auto}.seating-map-hint{line-height:1.45}
.table-guest-assignment{border-radius:9px;padding:3px 4px}.table-guest-assignment>span{min-width:0;overflow-wrap:anywhere}.table-guest-assignment form{flex:0 0 auto}
.seating-event-banner{min-width:0}.seating-event-banner>div:first-child>div{min-width:0}.seating-event-banner h3,.seating-event-banner p{overflow-wrap:anywhere}
@media(max-width:1280px){.seating-create-grid{grid-template-columns:90px minmax(220px,2fr) minmax(140px,1fr) 100px}.seating-position-field{grid-column:1/-1;max-width:420px}}
@media(max-width:920px){.seating-create-grid{grid-template-columns:90px minmax(180px,1.5fr) minmax(130px,1fr) 100px}.seating-map-head{align-items:flex-start;flex-wrap:wrap}.seating-zoom-controls{margin-left:auto}}
@media(max-width:680px){.seating-create-grid{grid-template-columns:1fr 1fr}.seating-name-field,.seating-position-field{grid-column:1/-1;max-width:none}.seating-map-viewport{height:62vh;min-height:390px;max-height:620px}.seating-map-head{padding:11px 12px}.seating-zoom-controls{width:100%;justify-content:flex-end}.seating-zoom-controls button{width:34px;height:34px}.seating-guest-pill{align-items:flex-start;flex-direction:column}.guest-assign-form{width:100%}.guest-assign-form select{max-width:none;width:100%}}

/* v45 · Tavolo 3D isolato: la mappa 2D resta identica alla v42 stabile */
body.has-seating-3d-open{overflow:hidden}.seating-3d-overlay[hidden]{display:none!important}.seating-3d-overlay{position:fixed;inset:0;z-index:9998;display:grid;place-items:center;padding:22px}.seating-3d-backdrop{position:absolute;inset:0;background:rgba(24,27,43,.72);backdrop-filter:blur(10px)}.seating-3d-shell{position:relative;z-index:1;width:min(1480px,96vw);height:min(900px,94vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:26px;background:#f8f7f5;box-shadow:0 35px 100px rgba(18,22,40,.36)}.seating-3d-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border-bottom:1px solid #e6e2df;background:rgba(255,255,255,.92)}.seating-3d-header h3{margin:2px 0 4px;font-size:1.25rem;color:#272a40}.seating-3d-header p{margin:0}.seating-3d-header-actions{display:flex;align-items:center;gap:12px}.seating-3d-dirty{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#fff1f5;color:#b82f55;font-size:.57rem;font-weight:900}.seating-3d-close{width:40px;height:40px;border:0;border-radius:12px;background:#f0f2f6;color:#2b2d42;font-size:1.45rem;line-height:1;cursor:pointer}.seating-3d-close:hover{background:#e7e9ef}.seating-3d-body{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.68fr)}.seating-3d-stage-wrap{min-width:0;min-height:0;display:flex;flex-direction:column;background:linear-gradient(160deg,#f7f2ed,#ede8e1)}.seating-3d-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid rgba(43,45,66,.08);font-size:.58rem;font-weight:800;color:#6c7087}.seating-3d-stage{position:relative;min-height:0;flex:1;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.95),rgba(238,232,225,.65) 55%,rgba(225,217,208,.86))}.seating-3d-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.seating-3d-stage canvas:active{cursor:grabbing}.seating-3d-labels{position:absolute;inset:0;pointer-events:none;z-index:3}.seating-3d-seat-label{position:absolute;transform:translate(-50%,-50%);min-width:92px;max-width:150px;padding:6px 9px;border:1px solid rgba(255,255,255,.9);border-radius:10px;background:rgba(255,255,255,.86);box-shadow:0 8px 22px rgba(43,45,66,.12);backdrop-filter:blur(8px);color:#2b2d42;text-align:center;pointer-events:auto;cursor:pointer}.seating-3d-seat-label span,.seating-3d-seat-label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seating-3d-seat-label span{font-size:.57rem;font-weight:900}.seating-3d-seat-label small{margin-top:2px;font-size:.45rem;color:#8b8fa2}.seating-3d-seat-label.is-occupied{border-color:#ffd2dc}.seating-3d-seat-label.is-selected{border-color:#ff6b8b;box-shadow:0 0 0 4px rgba(255,107,139,.16),0 10px 28px rgba(43,45,66,.16);transform:translate(-50%,-50%) scale(1.04)}.seating-3d-seat-label.is-fixed{background:rgba(255,248,221,.95);border-color:#efcf72}.seating-3d-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:12px 16px;border-radius:12px;background:rgba(255,255,255,.92);box-shadow:0 12px 34px rgba(43,45,66,.14);font-size:.65rem;font-weight:900;color:#575a70;z-index:6}.seating-3d-sidebar{min-height:0;overflow:auto;padding:16px;background:#fff;border-left:1px solid #ece8e4}.seating-3d-section{padding:14px 0;border-bottom:1px solid #edf0f5}.seating-3d-section:first-child{padding-top:0}.seating-3d-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:11px}.seating-3d-section-head strong{font-size:.72rem;color:#2b2d42}.seating-3d-section-head small{font-size:.49rem;color:#9498aa}.seating-3d-style-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.seating-3d-style-grid label,.seating-3d-seat-editor label{display:grid;gap:5px;font-size:.52rem;font-weight:900;color:#777c91}.seating-3d-style-grid select,.seating-3d-seat-editor select{width:100%;min-width:0;border:1px solid #dfe3ec;border-radius:10px;background:#fff;padding:9px 10px;font:inherit;color:#2b2d42}.seating-3d-style-grid .seating-3d-check{display:flex;align-items:center;gap:7px;grid-column:1/-1;padding:9px 10px;border:1px solid #e7e9ef;border-radius:10px;background:#fafbfc;color:#505469}.seating-3d-check input{accent-color:#ff6b8b}.seating-3d-selected-seat{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;margin-bottom:9px;border-radius:11px;background:#f7f8fb}.seating-3d-selected-seat span{font-size:.51rem;font-weight:800;color:#8b90a3}.seating-3d-selected-seat strong{font-size:.67rem;color:#2b2d42}.seating-3d-help{margin:8px 0 0;font-size:.49rem;line-height:1.5;color:#8a8ea1}.seating-3d-guest-pool{display:grid;gap:6px;max-height:210px;overflow:auto;margin-top:10px;padding-right:3px}.seating-3d-guest-chip{display:flex;align-items:center;justify-content:space-between;gap:9px;width:100%;padding:8px 10px;border:1px solid #e5e8ef;border-radius:10px;background:#fff;color:#2b2d42;text-align:left;cursor:pointer}.seating-3d-guest-chip:hover{border-color:#ffc3d1;background:#fff9fb}.seating-3d-guest-chip strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.55rem}.seating-3d-guest-chip small{flex:0 0 auto;font-size:.45rem;color:#8c91a4}.seating-3d-write-box{margin-top:4px;padding:12px!important;border:1px solid #d9eee7!important;border-radius:12px;background:#f5fffb}.seating-3d-write-box strong{font-size:.61rem;color:#087c5c}.seating-3d-write-box p{margin:5px 0 0;font-size:.5rem;line-height:1.45;color:#58746b}.seating-3d-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:14px}.seating-3d-actions .button{justify-content:center}.seating-3d-status{min-height:26px;padding:9px 2px 0;font-size:.53rem;font-weight:800;color:#686d82}.seating-3d-status[data-state="ok"]{color:#087c5c}.seating-3d-status[data-state="error"]{color:#b83255}.seating-3d-status[data-state="pending"]{color:#8a6a14}
@media(max-width:980px){.seating-3d-overlay{padding:10px}.seating-3d-shell{width:98vw;height:96vh;border-radius:18px}.seating-3d-body{grid-template-columns:1fr;grid-template-rows:minmax(420px,58vh) auto;overflow:auto}.seating-3d-stage-wrap{min-height:420px}.seating-3d-sidebar{overflow:visible;border-left:0;border-top:1px solid #ece8e4}.seating-3d-header{padding:14px 16px}.seating-3d-header-actions{align-self:flex-start}.seating-3d-dirty{display:none!important}}
@media(max-width:620px){.seating-3d-overlay{padding:0}.seating-3d-shell{width:100vw;height:100dvh;border-radius:0}.seating-3d-header{align-items:flex-start}.seating-3d-header h3{font-size:1rem}.seating-3d-body{grid-template-rows:minmax(360px,52vh) auto}.seating-3d-stage-wrap{min-height:360px}.seating-3d-toolbar{align-items:flex-start;flex-direction:column}.seating-3d-style-grid{grid-template-columns:1fr}.seating-3d-style-grid .seating-3d-check{grid-column:auto}.seating-3d-actions{position:sticky;bottom:-16px;margin:0 -16px -16px;padding:12px 16px;background:rgba(255,255,255,.96);border-top:1px solid #eceef3;z-index:4}.seating-3d-seat-label{min-width:76px;max-width:110px;padding:5px 7px}.seating-3d-seat-label span{font-size:.5rem}}

/* v46 · Planimetria 2D: resa sedute allineata alla produzione, senza ombra sotto i tavoli */
.seating-table,
.seating-table:hover,
.seating-table.is-dragging{
  box-shadow:none!important;
}
.seating-table:hover{
  filter:none;
}
.seating-table.is-over-capacity{
  box-shadow:none!important;
}
.seating-seat-overlay{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  overflow:visible;
}
.seating-seat-dot{
  position:absolute;
  width:14px;
  height:14px;
  margin:-7px 0 0 -7px;
  border:1.5px solid #b4b2a9;
  border-radius:50%;
  background:#fff;
  box-sizing:border-box;
  pointer-events:none;
}
.seating-seat-dot.is-occupied{
  background:#06d6a0;
  border-color:#0aae82;
}
.seating-seat-dot.is-free{
  background:#fff;
  border-color:#b4b2a9;
}
.seating-table-name,
.seating-table>strong,
.seating-table>small,
.seating-table>em{
  position:relative;
  z-index:5;
}

/* v47 · Tavolo 3D premium: solo vista 3D; planimetria 2D congelata dalla v46 */
.seating-3d-stage-wrap{background:linear-gradient(145deg,#f3eee9 0%,#e8e1db 100%)}
.seating-3d-stage{background:radial-gradient(circle at 48% 18%,rgba(255,255,255,.92),rgba(239,233,227,.72) 48%,rgba(222,214,207,.86) 100%)}
.seating-3d-toolbar{background:rgba(255,255,255,.52);backdrop-filter:blur(12px);border-bottom-color:rgba(68,59,54,.08);color:#6c665f}
.seating-3d-seat-label{min-width:0;max-width:142px;padding:6px 10px;border:1px solid rgba(255,255,255,.74);border-radius:999px;background:rgba(255,252,248,.82);box-shadow:0 7px 20px rgba(58,46,39,.10);backdrop-filter:blur(10px);color:#352f2b}
.seating-3d-seat-label span{font-size:.55rem;letter-spacing:-.01em}.seating-3d-seat-label small{font-size:.43rem;color:#8d8178}
.seating-3d-seat-label.is-empty{min-width:32px;width:32px;height:32px;padding:0;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.70)}
.seating-3d-seat-label.is-empty span{font-size:.49rem}.seating-3d-seat-label.is-empty small{display:none}
.seating-3d-seat-label.is-occupied{border-color:rgba(213,164,139,.48);background:rgba(255,249,244,.88)}
.seating-3d-seat-label.is-selected{border-color:#e78aa0;box-shadow:0 0 0 4px rgba(231,138,160,.16),0 10px 28px rgba(58,46,39,.16)}
.seating-3d-seat-label.is-fixed{background:rgba(255,248,226,.92);border-color:#d8bd74}
.seating-3d-sidebar{background:linear-gradient(180deg,#fff 0%,#fdfbf9 100%)}
.seating-3d-write-box{background:linear-gradient(180deg,#f4fffa,#effbf6)}
.seating-3d-style-grid select,.seating-3d-seat-editor select{background:#fffdfb;border-color:#e4ded8}
.seating-3d-guest-chip{background:#fffdfb;border-color:#e8e2dc}
.seating-3d-guest-chip:hover{border-color:#eab5c1;background:#fff8fa}

/* v48 — Sala 3D completa. Isolata dalla planimetria 2D. */
body.has-seating-room-3d-open{overflow:hidden}
.seating-room-3d-overlay[hidden]{display:none!important}
.seating-room-3d-overlay{position:fixed;inset:0;z-index:9997;display:grid;place-items:center;padding:18px}
.seating-room-3d-backdrop{position:absolute;inset:0;background:rgba(20,22,32,.78);backdrop-filter:blur(12px)}
.seating-room-3d-shell{position:relative;z-index:1;width:min(1640px,98vw);height:min(960px,96vh);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.25);border-radius:26px;background:#f7f4ef;box-shadow:0 36px 110px rgba(12,15,28,.42)}
.seating-room-3d-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;border-bottom:1px solid #e4dfd9;background:rgba(255,255,255,.94)}
.seating-room-3d-header h3{margin:2px 0 4px;font-size:1.25rem;color:#272a40}.seating-room-3d-header p{margin:0;color:#777b8d}
.seating-room-3d-header-actions{display:flex;align-items:center;gap:11px}.seating-room-3d-zero-write{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#effaf5;color:#08785b;font-size:.55rem;font-weight:900}
.seating-room-3d-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;border-bottom:1px solid #e8e3de;background:#fffdfb}
.seating-room-mode-switch{display:inline-flex;padding:3px;border:1px solid #e4ded8;border-radius:12px;background:#f7f3ef}.seating-room-mode-switch button{border:0;border-radius:9px;background:transparent;padding:7px 11px;color:#6d6964;font:inherit;font-size:.56rem;font-weight:900;cursor:pointer}.seating-room-mode-switch button.is-active{background:#fff;color:#2b2d42;box-shadow:0 3px 12px rgba(52,43,37,.10)}
.seating-room-toolbar-actions{display:flex;gap:7px}.seating-room-toolbar-actions .is-active{border-color:#e5a4b4;background:#fff4f7;color:#a83d59}
.seating-room-3d-body{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 285px}.seating-room-3d-stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 20%,#f4f0e9 0%,#ded8d0 72%,#d1c9c0 100%)}
.seating-room-3d-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.seating-room-3d-stage canvas:active{cursor:grabbing}
.seating-room-3d-sidebar{overflow:auto;padding:17px;background:linear-gradient(180deg,#fff,#fbf8f4);border-left:1px solid #e7e1dc}.seating-room-3d-sidebar section{padding:13px 0;border-bottom:1px solid #ece8e3}.seating-room-3d-sidebar section:first-child{padding-top:0}.seating-room-3d-sidebar h4{margin:4px 0 7px;font-size:.85rem;color:#2b2d42}.seating-room-3d-sidebar section>strong{font-size:.62rem;color:#323548}.seating-room-3d-sidebar p{margin:6px 0 0;font-size:.5rem;line-height:1.55;color:#74798b}
.seating-room-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.seating-room-summary div{padding:9px;border:1px solid #ece6e0;border-radius:10px;background:#fff}.seating-room-summary div:last-child{grid-column:1/-1}.seating-room-summary span,.seating-room-summary strong{display:block}.seating-room-summary span{font-size:.45rem;color:#8c8f9d}.seating-room-summary strong{margin-top:3px;font-size:.68rem;color:#2b2d42}.seating-room-note{padding:12px!important;border:1px solid #d7eee5!important;border-radius:12px;background:#f4fcf8}
.seating-room-3d-labels{position:absolute;inset:0;z-index:4;pointer-events:none}.seating-room-table-label{position:absolute;left:0;top:0;pointer-events:auto;display:grid;min-width:92px;max-width:150px;padding:5px 8px;border:1px solid rgba(255,255,255,.86);border-radius:9px;background:rgba(255,253,250,.84);backdrop-filter:blur(8px);box-shadow:0 5px 16px rgba(49,42,37,.10);color:#302d2a;text-align:center;cursor:pointer;transition:border-color .18s,box-shadow .18s,opacity .18s}.seating-room-table-label strong,.seating-room-table-label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seating-room-table-label strong{font-size:.49rem}.seating-room-table-label small{font-size:.40rem;color:#817b75}.seating-room-table-label.is-selected{border-color:#e17692;box-shadow:0 0 0 3px rgba(225,118,146,.16),0 6px 20px rgba(49,42,37,.15)}
.seating-room-3d-loading{position:absolute;left:50%;top:50%;z-index:8;transform:translate(-50%,-50%);padding:11px 15px;border-radius:11px;background:rgba(255,255,255,.92);box-shadow:0 12px 35px rgba(42,36,32,.15);font-size:.62rem;font-weight:900;color:#5c5b66}
.seating-room-help{position:absolute;left:14px;bottom:14px;z-index:5;padding:8px 11px;border:1px solid rgba(255,255,255,.62);border-radius:999px;background:rgba(43,42,43,.66);backdrop-filter:blur(8px);color:#fff;font-size:.48rem;font-weight:800;pointer-events:none}
.seating-room-table-card[hidden]{display:none!important}.seating-room-table-card{position:absolute;right:14px;bottom:14px;z-index:6;display:flex;align-items:center;gap:14px;max-width:min(420px,calc(100% - 28px));padding:10px 11px 10px 13px;border:1px solid rgba(255,255,255,.75);border-radius:14px;background:rgba(255,253,250,.92);backdrop-filter:blur(10px);box-shadow:0 12px 34px rgba(42,36,32,.18)}.seating-room-table-card div{min-width:0}.seating-room-table-card small,.seating-room-table-card strong{display:block}.seating-room-table-card small{font-size:.43rem;color:#89847e}.seating-room-table-card strong{max-width:190px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.63rem;color:#2b2d42}
.seating-room-crosshair{position:absolute;left:50%;top:50%;z-index:3;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none}.seating-room-crosshair span:before,.seating-room-crosshair span:after{content:"";position:absolute;left:50%;top:50%;background:rgba(255,255,255,.86);box-shadow:0 1px 4px rgba(0,0,0,.32);transform:translate(-50%,-50%)}.seating-room-crosshair span:before{width:18px;height:1px}.seating-room-crosshair span:after{width:1px;height:18px}
.seating-room-walk-pad{position:absolute;left:16px;bottom:54px;z-index:7;display:grid;grid-template-columns:40px 40px 40px;grid-template-rows:40px 40px;gap:4px}.seating-room-walk-pad button{border:1px solid rgba(255,255,255,.62);border-radius:10px;background:rgba(37,38,45,.70);backdrop-filter:blur(7px);color:#fff;font-size:.75rem;font-weight:900;touch-action:none}.seating-room-walk-pad button[data-room-move="forward"]{grid-column:2}.seating-room-walk-pad button[data-room-move="left"]{grid-column:1;grid-row:2}.seating-room-walk-pad button[data-room-move="back"]{grid-column:2;grid-row:2}.seating-room-walk-pad button[data-room-move="right"]{grid-column:3;grid-row:2}
@media(min-width:900px) and (pointer:fine){.seating-room-walk-pad{display:none!important}}
@media(max-width:980px){.seating-room-3d-overlay{padding:8px}.seating-room-3d-shell{width:99vw;height:97vh;border-radius:18px}.seating-room-3d-body{grid-template-columns:1fr}.seating-room-3d-sidebar{display:none}.seating-room-3d-header{padding:12px 14px}.seating-room-3d-header p{display:none}.seating-room-3d-zero-write{display:none}.seating-room-help{bottom:12px;max-width:60%;white-space:normal;border-radius:10px}.seating-room-table-card{bottom:12px}}
@media(max-width:620px){.seating-room-3d-overlay{padding:0}.seating-room-3d-shell{width:100vw;height:100dvh;border-radius:0}.seating-room-3d-header h3{font-size:.95rem}.seating-room-3d-toolbar{align-items:flex-start;flex-direction:column}.seating-room-toolbar-actions{width:100%;justify-content:flex-end}.seating-room-table-label{min-width:75px;max-width:105px;padding:4px 6px}.seating-room-table-card{left:10px;right:10px;bottom:10px;justify-content:space-between}.seating-room-help{left:10px;bottom:72px;max-width:calc(100% - 20px)}.seating-room-walk-pad{left:10px;bottom:116px}}

/* v49 — Sala 3D calibrata: misure reali applicate solo su commit esplicito. */
.seating-room-3d-toolbar{flex-wrap:wrap}
.seating-room-calibration{display:flex;align-items:end;gap:7px;flex-wrap:wrap;margin-left:auto}
.seating-room-calibration label{display:grid;gap:2px;color:#6f6b66;font-size:.48rem;font-weight:850}
.seating-room-calibration label span{padding-left:2px}
.seating-room-calibration input{width:74px;height:31px;border:1px solid #ddd6cf;border-radius:9px;background:#fff;padding:0 7px;color:#2b2d42;font:inherit;font-size:.56rem;font-weight:850;outline:0}
.seating-room-calibration input:focus{border-color:#e5a4b4;box-shadow:0 0 0 3px rgba(229,164,180,.14)}
.seating-room-summary .seating-room-collision-summary{grid-column:1/-1}
.seating-room-summary .seating-room-collision-summary.is-warning{border-color:#f1c5a8;background:#fff8f1}
.seating-room-summary .seating-room-collision-summary.is-warning strong{color:#b8662d}
@media(max-width:1180px){.seating-room-calibration{order:3;width:100%;margin-left:0}.seating-room-3d-toolbar{align-items:flex-end}.seating-room-toolbar-actions{margin-left:auto}}
@media(max-width:620px){.seating-room-calibration{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.seating-room-calibration label{min-width:0}.seating-room-calibration input{width:100%}.seating-room-calibration .button{padding-left:7px;padding-right:7px}}

/* v50 · Sala 3D: controlli passeggiata più chiari e coerenti */
.seating-room-walk-pad button{display:grid;place-items:center;grid-template-rows:auto auto;line-height:1;gap:1px;transition:transform .08s ease,background .08s ease,border-color .08s ease}
.seating-room-walk-pad button b{font-size:.62rem;line-height:1;color:#fff}.seating-room-walk-pad button span{font-size:.48rem;line-height:1;color:rgba(255,255,255,.78)}
.seating-room-walk-pad button:active{transform:scale(.94);background:rgba(229,110,143,.88);border-color:rgba(255,255,255,.9)}

/* v53 · Sala 3D builder: elementi architettonici e allestimento, editing locale fino al commit. */
.seating-room-scene-status{align-self:center;max-width:185px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 8px;border-radius:999px;background:#f3f1ee;color:#7f7b75;font-size:.46rem;font-weight:850}.seating-room-scene-status.is-dirty{background:#fff4dd;color:#9a6616}
.seating-room-builder h4,.seating-room-object-editor h4{margin:4px 0 6px}.seating-room-object-palette{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.seating-room-object-palette button{display:flex;align-items:center;gap:6px;min-width:0;padding:8px 9px;border:1px solid #e8e1da;border-radius:10px;background:#fff;color:#444653;font:inherit;font-size:.48rem;font-weight:850;text-align:left;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.seating-room-object-palette button:hover{transform:translateY(-1px);border-color:#dbb2bd;box-shadow:0 4px 14px rgba(58,48,42,.08)}.seating-room-object-palette button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seating-room-object-editor{padding:12px!important;margin-top:10px;border:1px solid #cce1df!important;border-radius:13px;background:#f7fbfb}.seating-room-object-editor[hidden]{display:none!important}.seating-room-object-editor>p[data-room-object-position]{margin-top:3px;font-variant-numeric:tabular-nums}.seating-room-object-nudge{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:10px}.seating-room-object-nudge button,.seating-room-object-actions button{border:1px solid #dfe2e4;border-radius:9px;background:#fff;color:#454957;font:inherit;font-size:.53rem;font-weight:900;cursor:pointer}.seating-room-object-nudge button{height:31px}.seating-room-object-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.seating-room-object-actions button{min-height:31px;padding:6px}.seating-room-object-actions button.is-danger{grid-column:1/-1;border-color:#f0c7cc;background:#fff4f5;color:#a83d51}.seating-room-object-hint{margin-top:8px!important;font-size:.44rem!important;color:#888!important}
.seating-room-3d-stage.is-dragging-object canvas{cursor:move}.seating-room-3d-sidebar{scrollbar-width:thin}
@media(max-width:1280px){.seating-room-3d-body{grid-template-columns:minmax(0,1fr) 310px}.seating-room-calibration{gap:5px}.seating-room-scene-status{display:none}}


/* v54 · Sala 3D: modalità Presentazione / Street View pulita. */
.seating-room-3d-overlay.is-presentation-mode{padding:0}
.seating-room-presentation-bar[hidden]{display:none!important}
.seating-room-presentation-bar{position:absolute;left:18px;right:18px;top:16px;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 11px 10px 14px;border:1px solid rgba(255,255,255,.52);border-radius:16px;background:rgba(28,29,34,.62);backdrop-filter:blur(16px) saturate(125%);box-shadow:0 14px 38px rgba(15,17,24,.18);color:#fff}
.seating-room-presentation-title{display:grid;gap:1px;min-width:0}.seating-room-presentation-title small{font-size:.42rem;font-weight:900;letter-spacing:.12em;color:rgba(255,255,255,.65)}.seating-room-presentation-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;color:#fff}
.seating-room-presentation-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.seating-room-presentation-actions button{min-height:31px;padding:6px 9px;border:1px solid rgba(255,255,255,.24);border-radius:9px;background:rgba(255,255,255,.09);color:#fff;font:inherit;font-size:.48rem;font-weight:900;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.seating-room-presentation-actions button:hover{transform:translateY(-1px);background:rgba(255,255,255,.16)}.seating-room-presentation-actions button.is-active{border-color:rgba(255,255,255,.66);background:rgba(225,110,143,.78)}
.seating-room-3d-shell.is-presentation{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;background:#111;box-shadow:none}.seating-room-3d-shell.is-presentation>.seating-room-3d-header,.seating-room-3d-shell.is-presentation>.seating-room-3d-toolbar{display:none}.seating-room-3d-shell.is-presentation .seating-room-3d-body{grid-template-columns:1fr}.seating-room-3d-shell.is-presentation .seating-room-3d-sidebar{display:none}.seating-room-3d-shell.is-presentation .seating-room-3d-stage{min-height:100dvh}.seating-room-3d-shell.is-presentation .seating-room-help{bottom:18px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);white-space:nowrap;background:rgba(27,29,34,.52)}.seating-room-3d-shell.is-presentation .seating-room-table-card{right:18px;bottom:18px}.seating-room-3d-shell.is-presentation .seating-room-walk-pad{bottom:64px}.seating-room-3d-shell.is-presentation .seating-room-crosshair{z-index:8}
@media(max-width:760px){.seating-room-presentation-bar{left:8px;right:8px;top:8px;align-items:flex-start;padding:9px;gap:8px}.seating-room-presentation-title{display:none}.seating-room-presentation-actions{width:100%;justify-content:center}.seating-room-presentation-actions button{flex:0 0 auto}.seating-room-3d-shell.is-presentation .seating-room-help{bottom:10px;font-size:.43rem}.seating-room-3d-shell.is-presentation .seating-room-table-card{left:8px;right:8px;bottom:52px}.seating-room-3d-shell.is-presentation .seating-room-walk-pad{bottom:110px}}

/* v55 · Configuratore Location 3D: core architettura + persistenza MySQL opzionale. */
.seating-room-location-core{border:1px solid rgba(88,166,166,.28);background:rgba(88,166,166,.055);border-radius:16px;padding:14px}
.seating-room-location-core-head{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}
.seating-room-location-core h4{margin:2px 0 6px}
.seating-room-backend-badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800;background:#f3eee7;color:#7b6d61;border:1px solid #ddd3c8}
.seating-room-backend-badge.is-ready{background:#e8f6ef;color:#25684a;border-color:#b9dec9}
.seating-location-space-form{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,.8fr);gap:7px;margin:12px 0 8px}
.seating-location-space-form label{display:grid;gap:3px;font-size:10px;font-weight:800;color:#786d64}
.seating-location-space-form input,.seating-location-space-form select{width:100%;min-width:0;border:1px solid #ded6cf;border-radius:9px;padding:7px 8px;background:#fff;color:#332d29;font:inherit;font-size:12px}
.seating-location-core-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.seating-location-core-actions .is-active{background:#234d4d;color:#fff;border-color:#234d4d}
.seating-location-space-list{display:grid;gap:5px;max-height:150px;overflow:auto}
.seating-location-space-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:5px}
.seating-location-space-chip{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:6px;text-align:left;border:1px solid #e1d9d1;background:#fff;border-radius:10px;padding:7px 8px;color:#514841;cursor:pointer}
.seating-location-space-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;font-size:11px}
.seating-location-space-chip small{font-size:9px;color:#8a7d73}
.seating-location-space-chip.is-active{border-color:#58a6a6;box-shadow:0 0 0 2px rgba(88,166,166,.12)}
.seating-location-space-remove{border:1px solid #e3d9d2;background:#fff;border-radius:9px;color:#94766d;font-size:18px;line-height:1;cursor:pointer}
.seating-location-space-remove:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:900px){.seating-location-space-form{grid-template-columns:1fr 1fr}}
.seating-location-plan-scale{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:7px;align-items:end;margin:10px 0 8px}
.seating-location-plan-scale label{display:grid;gap:3px;font-size:10px;font-weight:800;color:#786d64}
.seating-location-plan-scale input{width:100%;min-width:0;border:1px solid #ded6cf;border-radius:9px;padding:7px 8px;background:#fff;color:#332d29;font:inherit;font-size:12px}
@media(max-width:900px){.seating-location-plan-scale{grid-template-columns:1fr 1fr}.seating-location-plan-scale button{grid-column:1/-1}}


/* v56 · Configuratore Location 3D: aperture reali su parete + pan CAD con tasto centrale. */
.seating-room-toolbar-actions [data-room-toggle-labels].is-active{border-color:#8bb9b9;background:#f0fbfa;color:#285f5f}
.seating-room-3d-stage.is-panning canvas{cursor:move!important}
.seating-location-architecture-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0 10px}
.seating-location-architecture-tools button{display:flex;align-items:center;gap:6px;min-width:0;padding:8px 9px;border:1px solid #dfd8d1;border-radius:10px;background:#fff;color:#4b4641;font:inherit;font-size:10px;font-weight:850;text-align:left;cursor:pointer;transition:border-color .12s ease,background .12s ease,transform .12s ease}
.seating-location-architecture-tools button:hover{transform:translateY(-1px);border-color:#77afaf}
.seating-location-architecture-tools button.is-active{border-color:#3f8d8d;background:#eaf8f7;color:#245f5f;box-shadow:0 0 0 2px rgba(63,141,141,.10)}
.seating-location-architecture-tools button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seating-location-opening-list{display:grid;gap:5px;margin-top:7px}
.seating-location-opening-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:5px;padding:6px 7px;border:1px solid #e8e0d9;border-radius:9px;background:#fff;color:#554d47;font-size:10px}
.seating-location-opening-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seating-location-opening-row small{color:#94877c;font-size:9px}.seating-location-opening-row button{width:28px;height:28px;border:1px solid #ead8d8;border-radius:8px;background:#fff8f8;color:#a85a60;font-size:16px;line-height:1;cursor:pointer}
@media(max-width:900px){.seating-location-architecture-tools{grid-template-columns:1fr 1fr}}

/* v56 · Base CAD semplificato: calibrazione sala/planimetria, aperture editabili e misure architettoniche reali. */
.seating-location-plan-scale{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}
.seating-location-opening-row{grid-template-columns:1fr;gap:7px}
.seating-location-opening-row-head{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:5px}
.seating-location-opening-row-head>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seating-location-opening-row-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.seating-location-opening-row-fields label,.seating-room-arch-dimensions label{display:grid;gap:2px;color:#7d7167;font-size:9px;font-weight:800}
.seating-location-opening-row-fields input,.seating-room-arch-dimensions input{width:100%;min-width:0;border:1px solid #ded6cf;border-radius:8px;background:#fff;padding:6px;color:#332d29;font:inherit;font-size:10px}
.seating-location-opening-nudge{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.seating-location-opening-nudge button{width:auto;height:27px;border-color:#d9e6e4;background:#f8fcfb;color:#3d7471;font-size:10px;font-weight:850}
.seating-room-arch-dimensions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;padding:8px;border:1px solid #d9e8e6;border-radius:10px;background:#fbfefe}
.seating-room-arch-dimensions[hidden]{display:none!important}.seating-room-arch-dimensions .button{grid-column:1/-1}
.seating-room-3d-stage.is-cad canvas{cursor:crosshair}.seating-room-3d-stage.is-cad.is-panning canvas{cursor:move}
@media(max-width:900px){.seating-location-plan-scale{grid-template-columns:1fr 1fr}.seating-location-plan-scale button{grid-column:auto}.seating-location-opening-row-fields{grid-template-columns:1fr 1fr}}

/* v57 · CAD assistito: calibrazione a due punti e suggerimenti da planimetria. */
.seating-location-cad-assist{margin:10px 0 12px;padding:10px;border:1px solid #d5e7e5;border-radius:12px;background:rgba(255,255,255,.72)}
.seating-location-cad-assist-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.seating-location-cad-assist-head>div{display:grid;gap:2px}.seating-location-cad-assist-head strong{font-size:11px;color:#3e5553}.seating-location-cad-assist-head small{font-size:9px;color:#8b8178}
.seating-location-cad-assist-head>span{max-width:230px;font-size:9px;line-height:1.35;color:#857970;text-align:right}
.seating-location-calibration-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:end}
.seating-location-calibration-row label{display:grid;grid-template-columns:1fr;gap:2px;font-size:9px;font-weight:800;color:#786d64}
.seating-location-calibration-row input{width:100%;min-width:0;border:1px solid #ded6cf;border-radius:8px;background:#fff;padding:6px 7px;color:#332d29;font:inherit;font-size:10px}
.seating-location-analysis-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px}
.seating-location-analysis-actions .button{width:100%;justify-content:center}.seating-location-analysis-actions .button:disabled{opacity:.48;cursor:not-allowed}
.seating-location-calibration-row .is-active{background:#e7f3fb;border-color:#79a4c4;color:#2e648f}
.seating-location-analysis-status{margin:8px 0 0!important;padding:7px 8px;border-radius:8px;background:#f4f1ed;color:#756b63;font-size:9px!important;line-height:1.4}
.seating-location-analysis-status[data-tone="ok"]{background:#edf8f2;color:#31694f}.seating-location-analysis-status[data-tone="error"]{background:#fff0f0;color:#9b5558}
@media(max-width:900px){.seating-location-cad-assist-head{display:grid}.seating-location-cad-assist-head>span{text-align:left;max-width:none}.seating-location-calibration-row{grid-template-columns:1fr 1fr}.seating-location-calibration-row label{grid-column:1/-1}}
.seating-location-opening-row-fields select{width:100%;min-width:0;border:1px solid #ded6cf;border-radius:8px;background:#fff;padding:6px;color:#332d29;font:inherit;font-size:10px}
@media(min-width:1100px){.seating-location-analysis-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.seating-location-opening-row-fields{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* V58 · controlli tavoli nell'area di lavoro 3D */
.seating-room-table-card{flex-wrap:wrap}.seating-room-table-card-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.seating-room-table-work-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap;width:100%;padding-top:7px;border-top:1px solid rgba(80,76,72,.10)}.seating-room-table-work-controls button{min-width:31px;height:31px;padding:0 8px;border:1px solid #dfe2e4;border-radius:9px;background:#fff;color:#454957;font:inherit;font-size:.51rem;font-weight:900;cursor:pointer}.seating-room-table-work-controls button:hover{border-color:#d9aeb9;background:#fff8fa}.seating-room-table-position{margin-left:auto;font-size:.46rem;font-weight:850;color:#777;font-variant-numeric:tabular-nums}.seating-room-3d-stage.is-dragging-table canvas{cursor:grabbing}.seating-room-3d-stage.is-dragging-object canvas{cursor:grabbing}
.seating-room-3d-stage.is-rotating-item canvas{cursor:ew-resize}.seating-room-3d-shell.is-presentation .seating-room-table-work-controls{display:none}

/* V59 · toolbar CAD leggibile + condivisione pubblica */
.seating-room-3d-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:10px 14px}
.seating-room-mode-switch{grid-column:1;grid-row:1;align-self:center}
.seating-room-toolbar-actions{grid-column:3;grid-row:1;justify-self:end;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.seating-room-calibration{grid-column:1/-1;grid-row:2;margin-left:0;width:100%;display:grid;grid-template-columns:repeat(3,minmax(128px,170px)) auto auto minmax(165px,auto);align-items:end;justify-content:start;gap:8px;padding-top:8px;border-top:1px solid #eee8e2}
.seating-room-calibration label{display:grid;gap:4px;min-width:0;color:#69645f;font-size:.5rem;font-weight:900}
.seating-room-calibration label>span:first-child{padding-left:2px;white-space:nowrap}
.seating-room-measure-input{display:grid!important;grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:4px;padding-left:0!important}
.seating-room-measure-input input{width:100%!important;height:34px;font-size:.62rem!important;font-variant-numeric:tabular-nums}
.seating-room-measure-input em{font-style:normal;font-size:.55rem;color:#8a8179;text-align:left}
.seating-room-calibration .button{min-height:34px;white-space:nowrap}
.seating-room-calibration [data-room-save-measures]{min-width:165px}
.seating-room-public-share{padding:13px!important;border:1px solid #d9e8e6!important;border-radius:13px;background:#f8fcfb}
.seating-room-public-share-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}
.seating-room-public-share-actions [data-room-public-create]{grid-column:1/-1}
.seating-room-public-url{width:100%;margin-top:7px;border:1px solid #d7e1df;border-radius:9px;background:#fff;padding:8px 9px;color:#42504f;font:inherit;font-size:10px}
.seating-room-public-status{margin-top:6px!important;padding:6px 7px;border-radius:8px;background:#eef6f4!important;color:#56716e!important}
.seating-room-public-status.is-error{background:#fff0f0!important;color:#9b5558!important}
.seating-room-public-status.is-ok{background:#edf8f2!important;color:#31694f!important}
@media(max-width:1180px){.seating-room-3d-toolbar{grid-template-columns:1fr auto}.seating-room-mode-switch{grid-column:1}.seating-room-toolbar-actions{grid-column:2}.seating-room-calibration{grid-column:1/-1;grid-template-columns:repeat(3,minmax(120px,1fr)) repeat(3,auto)}}
@media(max-width:760px){.seating-room-3d-toolbar{display:grid!important;grid-template-columns:1fr}.seating-room-mode-switch,.seating-room-toolbar-actions,.seating-room-calibration{grid-column:1!important}.seating-room-mode-switch{grid-row:1;max-width:100%;overflow-x:auto}.seating-room-toolbar-actions{grid-row:2;justify-self:stretch;width:100%;justify-content:flex-start}.seating-room-calibration{grid-row:3;grid-template-columns:repeat(3,minmax(0,1fr))}.seating-room-calibration .button{grid-column:auto;min-width:0}.seating-room-calibration [data-room-save-measures]{grid-column:1/-1;width:100%}}
@media(max-width:520px){.seating-room-calibration{grid-template-columns:1fr 1fr}.seating-room-calibration label:nth-child(3){grid-column:1/-1}.seating-room-calibration [data-room-save-measures]{grid-column:1/-1}}

/* V59 · vista pubblica Location 3D */
.public-3d-page{min-height:100vh;background:#111318;color:#fff;display:flex;flex-direction:column}.public-3d-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;background:rgba(22,24,31,.96);border-bottom:1px solid rgba(255,255,255,.12)}.public-3d-header h1{margin:2px 0 3px;font-size:1.15rem}.public-3d-header p{margin:0;color:#adb3bf;font-size:.72rem}.public-3d-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.public-3d-actions button{border:1px solid rgba(255,255,255,.16);border-radius:10px;background:#232733;color:#dfe3ea;padding:8px 10px;font:inherit;font-size:.7rem;font-weight:850;cursor:pointer}.public-3d-actions button.is-active{background:#fff;color:#262936}.public-3d-stage{position:relative;min-height:620px;flex:1;overflow:hidden;background:radial-gradient(circle at 50% 20%,#565862,#22252c 72%,#15171c)}.public-3d-stage canvas{display:block;width:100%;height:100%;min-height:620px;touch-action:none;cursor:grab}.public-3d-stage.is-panning canvas{cursor:move}.public-3d-labels{position:absolute;inset:0;pointer-events:none}.public-3d-label{position:absolute;transform:translate(-50%,-50%);padding:5px 8px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:rgba(20,22,27,.72);backdrop-filter:blur(6px);color:#fff;font-size:.62rem;font-weight:850;white-space:nowrap}.public-3d-help{position:absolute;left:14px;bottom:14px;padding:8px 11px;border-radius:999px;background:rgba(17,19,24,.66);font-size:.62rem;color:#fff}.public-3d-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px 13px;border-radius:10px;background:rgba(255,255,255,.9);color:#252833;font-size:.72rem;font-weight:900}.public-3d-error{min-height:100vh;display:grid;place-items:center;padding:24px}.public-3d-error>div{max-width:520px;padding:28px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow)}.public-3d-error h1{margin:7px 0}.public-3d-error p{color:var(--muted)}
@media(max-width:720px){.public-3d-header{align-items:flex-start;flex-direction:column}.public-3d-actions{justify-content:flex-start}.public-3d-stage,.public-3d-stage canvas{min-height:560px}}
/* V62 workspace precision: direct drag for wall openings and clearer selected state. */
.seating-room-3d-stage.is-dragging-opening canvas{cursor:grabbing!important}
.seating-location-opening-row.is-selected{border-color:#8bb9b9!important;background:#f2fbfa!important;box-shadow:0 0 0 2px rgba(88,166,166,.10)}
/* V62 public 3D: same visual language as the planner presentation scene. */
.public-3d-stage{background:radial-gradient(circle at 50% 18%,#f4f0e9 0%,#ded8d0 72%,#d1c9c0 100%)}
.public-3d-label{display:grid;min-width:88px;max-width:150px;padding:5px 8px;border:1px solid rgba(255,255,255,.86);border-radius:9px;background:rgba(255,253,250,.86);backdrop-filter:blur(8px);box-shadow:0 5px 16px rgba(49,42,37,.12);color:#302d2a;text-align:center;transition:opacity .18s}
.public-3d-label strong,.public-3d-label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-3d-label strong{font-size:.58rem}.public-3d-label small{font-size:.48rem;color:#817b75;margin-top:1px}
.public-3d-walk-pad[hidden]{display:none!important}.public-3d-walk-pad{position:absolute;left:16px;bottom:54px;z-index:7;display:grid;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px;gap:5px}.public-3d-walk-pad button{border:1px solid rgba(255,255,255,.62);border-radius:11px;background:rgba(37,38,45,.72);backdrop-filter:blur(7px);color:#fff;font:inherit;font-size:.8rem;font-weight:900;touch-action:none}.public-3d-walk-pad button[data-public-move="forward"]{grid-column:2}.public-3d-walk-pad button[data-public-move="left"]{grid-column:1;grid-row:2}.public-3d-walk-pad button[data-public-move="back"]{grid-column:2;grid-row:2}.public-3d-walk-pad button[data-public-move="right"]{grid-column:3;grid-row:2}
@media(min-width:900px) and (pointer:fine){.public-3d-walk-pad{display:none!important}}
@media(max-width:720px){.public-3d-help{bottom:10px;max-width:calc(100% - 20px);white-space:normal;border-radius:10px}.public-3d-walk-pad{left:10px;bottom:62px}}


/* V63 · materiali standard per ambiente: pavimento, pareti e soffitto. */
.seating-location-materials{margin:10px 0;padding:10px;border:1px solid #d9e8e6;border-radius:12px;background:#fbfefe}.seating-location-materials-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.seating-location-materials-head>div{display:grid;gap:2px}.seating-location-materials-head strong{font-size:11px;color:#3e5553}.seating-location-materials-head small,.seating-location-materials-head>span{font-size:9px;line-height:1.35;color:#857970}.seating-location-materials-head>span{text-align:right;max-width:190px}.seating-location-material-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(64px,.65fr) minmax(78px,.7fr);gap:6px;margin-top:6px}.seating-location-material-row label{display:grid;gap:2px;min-width:0;color:#786d64;font-size:9px;font-weight:800}.seating-location-material-row input,.seating-location-material-row select{width:100%;min-width:0;border:1px solid #ded6cf;border-radius:8px;background:#fff;padding:6px 7px;color:#332d29;font:inherit;font-size:10px}.seating-location-materials>[data-location-apply-materials]{width:100%;margin-top:8px;justify-content:center}.seating-location-space-chip small:after{content:' · materiali';opacity:.55}
@media(max-width:900px){.seating-location-materials-head{display:grid}.seating-location-materials-head>span{text-align:left;max-width:none}.seating-location-material-row{grid-template-columns:minmax(0,1fr) 70px 82px}}
@media(max-width:520px){.seating-location-material-row{grid-template-columns:1fr 1fr}.seating-location-material-row label:first-child{grid-column:1/-1}}


/* V63 · materiali standard + scheda invitati tavolo + zoom esplicito */
.seating-room-zoom{position:absolute;right:14px;top:14px;z-index:7;display:grid;gap:6px}.seating-room-zoom button,.public-3d-zoom button{width:38px;height:38px;border:1px solid rgba(255,255,255,.78);border-radius:11px;background:rgba(255,253,250,.9);backdrop-filter:blur(8px);box-shadow:0 5px 18px rgba(35,32,30,.12);color:#353238;font:inherit;font-size:1rem;font-weight:950;cursor:pointer}.seating-room-zoom button:focus-visible,.public-3d-zoom button:focus-visible{outline:3px solid rgba(229,110,143,.38);outline-offset:2px}.seating-room-table-guests{width:100%;padding:7px 0 2px;border-top:1px solid rgba(80,76,72,.10)}.seating-room-table-guests-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.seating-room-table-guests-head strong{font-size:.5rem!important;color:#4b4743!important}.seating-room-table-guests-head span{font-size:.43rem;color:#888}.seating-room-table-guests-list{display:flex;gap:5px;flex-wrap:wrap;max-height:86px;overflow:auto}.seating-room-table-guests-list>span{display:grid;gap:1px;padding:4px 6px;border:1px solid #e2ded9;border-radius:8px;background:#fff}.seating-room-table-guests-list b{font-size:.46rem;color:#3e3a36}.seating-room-table-guests-list small{font-size:.39rem;color:#8b8178}.seating-room-table-guests-empty{margin:0;color:#85807b;font-size:.45rem}.seating-room-3d-shell.is-presentation .seating-room-table-guests{display:block}.seating-room-3d-shell.is-presentation .seating-room-table-card{align-items:flex-start}.public-3d-zoom{position:absolute;right:14px;top:14px;z-index:8;display:grid;gap:6px}.public-3d-table-card[hidden]{display:none!important}.public-3d-table-card{position:absolute;right:14px;bottom:54px;z-index:9;width:min(360px,calc(100% - 28px));max-height:min(55%,420px);overflow:auto;padding:13px 14px;border:1px solid rgba(255,255,255,.82);border-radius:15px;background:rgba(255,253,250,.94);backdrop-filter:blur(12px);box-shadow:0 12px 34px rgba(42,36,32,.20);color:#302d2a}.public-3d-table-card>small,.public-3d-table-card>strong{display:block}.public-3d-table-card>small{font-size:.58rem;color:#8b837c}.public-3d-table-card>strong{margin-top:2px;padding-right:28px;font-size:.82rem}.public-3d-table-close{position:absolute;right:8px;top:8px;width:30px;height:30px;border:1px solid #e1ddd8;border-radius:9px;background:#fff;color:#514c47;font-size:1rem;font-weight:900;cursor:pointer}.public-3d-table-guests{display:grid;gap:5px;margin-top:10px}.public-3d-table-guests>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 8px;border:1px solid #e6e1dc;border-radius:9px;background:#fff}.public-3d-table-guests b{font-size:.66rem}.public-3d-table-guests small{color:#897f77;font-size:.55rem}.public-3d-table-guests p{margin:0;padding:8px;border-radius:9px;background:#f4f1ed;color:#77716b;font-size:.62rem}.public-3d-label{cursor:pointer}.public-3d-page canvas{cursor:grab}
@media(max-width:720px){.seating-room-zoom,.public-3d-zoom{right:10px;top:10px}.seating-room-zoom button,.public-3d-zoom button{width:42px;height:42px}.public-3d-table-card{left:10px;right:10px;bottom:58px;width:auto;max-height:46%}.seating-room-table-guests-list{max-height:72px}}

.seating-room-3d-shell.is-presentation .seating-room-zoom{top:62px;right:18px}.seating-room-3d-shell.is-presentation .seating-room-table-card{max-height:52%;overflow:auto}@media(max-width:760px){.seating-room-3d-shell.is-presentation .seating-room-zoom{top:58px;right:8px}}

/* v68 · layout pannello location più leggibile + gestione ambienti estesi */
.seating-field-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}
.seating-field-unit>span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:0 7px;height:34px;border:1px solid #ded6cf;border-radius:8px;background:#f7f4f1;color:#74685f;font-size:11px;font-weight:800}
.seating-field-unit.is-angle>span{min-width:30px}
.seating-location-space-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.seating-location-space-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0 10px}
.seating-location-space-actions .button{justify-content:center}
.seating-location-space-chip{grid-template-columns:22px minmax(0,1fr);grid-template-rows:auto auto;padding:8px 9px}
.seating-location-space-chip b{grid-row:1/span 2;align-self:center;font-size:13px}
.seating-location-space-chip span{font-size:12px}
.seating-location-space-chip small{grid-column:2;white-space:normal;line-height:1.25}
.seating-location-space-list{max-height:220px}
.seating-location-plan-scale{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
.seating-location-plan-scale button{width:100%;justify-content:center}
.seating-location-calibration-row{grid-template-columns:minmax(0,1fr) 1fr 1fr}
.seating-room-location-core p{line-height:1.45}
.seating-location-cad-assist-head>span{max-width:260px}
.seating-location-material-row{grid-template-columns:minmax(0,1.5fr) 86px 88px}
@media(max-width:900px){
  .seating-location-space-form{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .seating-location-plan-scale,.seating-location-calibration-row,.seating-location-space-actions,.seating-location-analysis-actions,.seating-location-material-row{grid-template-columns:1fr}
  .seating-location-space-form{grid-template-columns:1fr}
  .seating-location-cad-assist-head,.seating-location-materials-head{display:grid}
  .seating-location-cad-assist-head>span,.seating-location-materials-head>span{text-align:left;max-width:none}
  .seating-location-architecture-tools{grid-template-columns:1fr 1fr}
}

/* v69 · perimetri esterni */
.seating-location-core-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
@media(max-width:680px){.seating-location-core-actions{grid-template-columns:1fr}}

/* v70 · editor outdoor parametrico */
.seating-location-outdoor-tools{margin:10px 0;padding:10px;border:1px solid #d9e8e6;border-radius:12px;background:#f9fcfb}
.seating-location-outdoor-head{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:end;margin-bottom:8px}
.seating-location-outdoor-head>div{display:grid;gap:2px}.seating-location-outdoor-head strong{font-size:11px;color:#3e5553}.seating-location-outdoor-head small{font-size:9px;line-height:1.35;color:#857970}
.seating-location-outdoor-head label{display:grid;gap:2px;color:#786d64;font-size:9px;font-weight:800}
.seating-location-outdoor-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.seating-location-outdoor-palette button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:34px;border:1px solid #d9e4df;border-radius:9px;background:#fff;color:#4e574f;font:inherit;font-size:10px;font-weight:850;cursor:pointer}
.seating-location-outdoor-palette button:hover{border-color:#76a898}.seating-location-outdoor-palette button.is-active{background:#e7f5ef;border-color:#5e9a87;color:#2f6856}.seating-location-outdoor-palette button:disabled{opacity:.42;cursor:not-allowed}
.seating-location-outdoor-list{display:grid;gap:5px;margin-top:8px}.seating-location-outdoor-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;padding:6px 8px;border:1px solid #e6e0d9;border-radius:9px;background:#fff;font-size:10px}.seating-location-outdoor-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seating-location-outdoor-row small{color:#857970}.seating-location-outdoor-row button{width:28px;height:28px;border:1px solid #ead8d8;border-radius:8px;background:#fff8f8;color:#a85a60;cursor:pointer}
@media(max-width:900px){.seating-location-outdoor-palette{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.seating-location-outdoor-head{grid-template-columns:1fr}.seating-location-outdoor-palette{grid-template-columns:1fr 1fr}}

/* v71 · Outdoor UI leggibile nel sidebar */
.seating-location-outdoor-tools{padding:12px}
.seating-location-outdoor-head{display:grid;grid-template-columns:1fr;gap:9px;align-items:stretch}
.seating-location-outdoor-head label{max-width:150px}
.seating-location-outdoor-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.seating-location-outdoor-palette button{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;justify-content:stretch;gap:7px;min-width:0;min-height:44px;padding:7px 9px;text-align:left;line-height:1.15}
.seating-location-outdoor-palette button b{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:#f2f6f3;font-size:13px;font-weight:900}
.seating-location-outdoor-palette button span{min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:9.5px}
.seating-location-outdoor-palette button[data-location-outdoor-feature="pool"].is-active{background:#e8f8fb;border-color:#59a8b9;color:#246879}
.seating-location-outdoor-palette button[data-location-outdoor-feature="pool"].is-active b{background:#d4f0f6}
.seating-location-outdoor-palette button[data-location-outdoor-feature="stairs"]{grid-column:1/-1}
.seating-location-outdoor-help{margin:8px 0 0!important;padding:7px 8px;border-radius:8px;background:#f5f3ef;color:#756b63!important;font-size:9px!important;line-height:1.4!important}
@media(max-width:680px){.seating-location-outdoor-palette{grid-template-columns:1fr}.seating-location-outdoor-palette button[data-location-outdoor-feature="stairs"]{grid-column:auto}}

/* v72 · Location panel reorganized into clear accordion sections */
.seating-location-organized{display:grid;gap:8px}
.seating-location-intro{margin:0 0 2px!important;padding:8px 10px;border-radius:10px;background:#f4f8f7;color:#65736f!important;font-size:10px!important}
.seating-location-section{border:1px solid #dce6e3;border-radius:12px;background:#fff;overflow:hidden}
.seating-location-section>summary{list-style:none;display:grid;grid-template-columns:28px minmax(0,1fr) 18px;gap:8px;align-items:center;padding:10px;cursor:pointer;background:#fbfdfc;color:#46534f;user-select:none}
.seating-location-section>summary::-webkit-details-marker{display:none}
.seating-location-section>summary:hover{background:#f5faf8}
.seating-location-section>summary>span:nth-child(2){display:grid;gap:1px;min-width:0}
.seating-location-section>summary b{font-size:11px}.seating-location-section>summary small{font-size:9px;color:#897e75;line-height:1.25;font-weight:600}
.seating-location-section>summary i{font-style:normal;font-size:14px;color:#8a9994;transition:transform .15s ease}
.seating-location-section[open]>summary i{transform:rotate(180deg)}
.seating-location-step{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:#edf3f1;color:#526d65;font-size:10px;font-weight:900}
.seating-location-step.is-outdoor{background:#e9f4e7;color:#54764e}
.seating-location-section-body{padding:10px;border-top:1px solid #edf1ef;background:#fdfefe}
.seating-location-section .seating-location-cad-assist,.seating-location-section .seating-location-materials,.seating-location-section .seating-location-outdoor-tools{margin:0;border:0;padding:0;background:transparent}
.seating-location-space-list{margin-top:8px;max-height:190px}
.seating-location-outdoor-section.is-disabled .seating-location-outdoor-palette,.seating-location-outdoor-section.is-disabled .seating-location-outdoor-perimeter-actions,.seating-location-outdoor-section.is-disabled .seating-location-outdoor-head label{opacity:.42;pointer-events:none}
.seating-location-outdoor-state{display:none;margin:0 0 9px;padding:8px 9px;border-radius:9px;background:#f6f2eb;color:#796f65;font-size:9px;line-height:1.35}
.seating-location-outdoor-section.is-disabled .seating-location-outdoor-state{display:block}
.seating-location-outdoor-section:not(.is-disabled)>summary{background:#f6fbf4;border-left:3px solid #75a66c}
.seating-location-outdoor-perimeter-actions{grid-template-columns:1fr 1fr;margin:0 0 10px}
.seating-location-architecture-actions{display:grid;grid-template-columns:1fr;margin:0 0 8px}
.seating-location-outdoor-palette{grid-template-columns:1fr 1fr!important}
.seating-location-outdoor-palette button{min-height:46px!important}
.seating-location-outdoor-palette button[data-location-outdoor-feature="stairs"]{grid-column:1/-1}
@media(max-width:680px){
 .seating-location-section>summary{grid-template-columns:26px minmax(0,1fr) 16px;padding:9px 8px}
 .seating-location-section-body{padding:8px}
 .seating-location-space-form{grid-template-columns:1fr!important}
 .seating-location-outdoor-palette{grid-template-columns:1fr!important}
 .seating-location-outdoor-palette button[data-location-outdoor-feature="stairs"]{grid-column:auto}
 .seating-location-outdoor-perimeter-actions{grid-template-columns:1fr}
}

/* v73 · outdoor con livelli fisici */
.seating-location-outdoor-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seating-location-outdoor-metrics label{max-width:none!important}
@media(max-width:680px){.seating-location-outdoor-metrics{grid-template-columns:1fr}}

/* v74 · evidenza forte durante il tracciamento outdoor */
.seating-location-outdoor-palette button.is-active,
.seating-location-outdoor-palette button[data-location-outdoor-feature="pool"].is-active{background:#fff8bf!important;border-color:#e3bd00!important;color:#4e4300!important;box-shadow:0 0 0 2px rgba(255,225,0,.28)}
.seating-location-outdoor-palette button.is-active b,
.seating-location-outdoor-palette button[data-location-outdoor-feature="pool"].is-active b{background:#ffe100!important;color:#302900!important}

/* v76 · viewer sposi: popup tavolo ancorato e controlli dentro la safe-area browser */
.public-3d-page{min-height:100dvh;height:100dvh;overflow:hidden}
.public-3d-stage{min-height:0;overflow:hidden}
.public-3d-stage canvas{min-height:0;height:100%}
.public-3d-table-card{left:50%;right:auto;top:50%;bottom:auto;z-index:24;width:min(340px,calc(100% - 24px));max-height:min(48dvh,380px);transform:translate(-50%,-100%);transform-origin:center bottom;overflow:auto;overscroll-behavior:contain}
.public-3d-table-card:after{content:'';position:absolute;left:50%;width:14px;height:14px;background:rgba(255,253,250,.96);border-right:1px solid rgba(110,100,92,.18);border-bottom:1px solid rgba(110,100,92,.18);transform:translateX(-50%) rotate(45deg)}
.public-3d-table-card[data-placement="above"]:after{bottom:-8px}
.public-3d-table-card[data-placement="below"]:after{top:-8px;transform:translateX(-50%) rotate(225deg)}
.public-3d-walk-pad{left:max(16px,env(safe-area-inset-left));bottom:calc(76px + env(safe-area-inset-bottom));z-index:20;grid-template-columns:50px 50px 50px;grid-template-rows:50px 50px;gap:7px}
.public-3d-walk-pad button{min-width:50px;min-height:50px;border-radius:14px;background:rgba(27,29,35,.82);box-shadow:0 8px 24px rgba(0,0,0,.22);font-size:1rem}
.public-3d-help{bottom:calc(14px + env(safe-area-inset-bottom));z-index:18}
.public-3d-zoom{top:calc(14px + env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}
@media(max-width:720px){
  .public-3d-page{height:100dvh;min-height:100dvh}
  .public-3d-header{padding-top:calc(10px + env(safe-area-inset-top));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:9px;gap:8px}
  .public-3d-header>div:first-child>p:last-child{display:none}
  .public-3d-actions{gap:5px}
  .public-3d-actions button{padding:7px 8px;font-size:.62rem}
  .public-3d-stage,.public-3d-stage canvas{min-height:0}
  .public-3d-table-card{width:min(320px,calc(100% - 20px));max-height:min(42dvh,330px);padding:11px 12px}
  .public-3d-walk-pad{left:max(10px,env(safe-area-inset-left));bottom:calc(82px + env(safe-area-inset-bottom));grid-template-columns:54px 54px 54px;grid-template-rows:54px 54px}
  .public-3d-walk-pad button{min-width:54px;min-height:54px;font-size:1.05rem}
  .public-3d-help{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));max-width:none}
}
@media(max-height:620px) and (max-width:900px){
  .public-3d-header>div:first-child{display:none}
  .public-3d-header{flex-direction:row;align-items:center;padding-top:calc(6px + env(safe-area-inset-top));padding-bottom:6px}
  .public-3d-actions{width:100%;justify-content:center}
  .public-3d-walk-pad{bottom:calc(68px + env(safe-area-inset-bottom));transform:scale(.9);transform-origin:left bottom}
  .public-3d-table-card{max-height:55dvh}
}

/* v77 · gesti touch viewer 3D */
.public-3d-stage,.public-3d-stage canvas{overscroll-behavior:none;-webkit-user-select:none;user-select:none}


/* V78 · Rubrica Eventi + Fascicolo Evento operativo */
.client-overdue-chip{background:#fff1f0!important;border-color:#ffd0cc!important;color:#b63b35!important}
.fascicolo-command-bar{display:grid;grid-template-columns:minmax(170px,.75fr) minmax(260px,1.5fr) minmax(190px,.9fr);gap:10px;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfcfe)}
.fascicolo-command-bar>div{border:1px solid var(--line);border-radius:14px;padding:13px 14px;background:#fff;min-width:0}
.fascicolo-command-bar span{display:block;color:var(--muted);font-size:.55rem;font-weight:950;letter-spacing:.065em;text-transform:uppercase}
.fascicolo-command-bar strong{display:block;margin:5px 0 2px;font-size:1.05rem;line-height:1.15}
.fascicolo-command-bar small{display:block;color:var(--muted);font-size:.62rem;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fascicolo-countdown{background:linear-gradient(145deg,#fff7fa,#fff)!important;border-color:#f4dce2!important}.fascicolo-countdown.is-past{background:#f6f7f9!important;border-color:var(--line)!important}
.fascicolo-command-main>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.fascicolo-command-main>div b{font-size:.82rem}.fascicolo-command-main progress{appearance:none;width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:#edf0f4;margin:9px 0 5px}.fascicolo-command-main progress::-webkit-progress-bar{background:#edf0f4}.fascicolo-command-main progress::-webkit-progress-value{background:linear-gradient(90deg,var(--primary),var(--secondary))}.fascicolo-command-main progress::-moz-progress-bar{background:var(--primary)}
.fascicolo-command-alert.has-alert{background:#fff5f3!important;border-color:#ffd5cf!important}.fascicolo-command-alert.has-alert strong{color:#aa352f}
.fascicolo-kpis-v78{grid-template-columns:repeat(6,minmax(0,1fr))!important}.fascicolo-kpis-v78>div{min-width:0}.fascicolo-kpis-v78 strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fascicolo-full-layout .fascicolo-contact-line{grid-template-columns:repeat(3,minmax(0,1fr))!important}.fascicolo-contact-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fascicolo-operations-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);border-bottom:1px solid var(--line)}.fascicolo-operations-grid .fascicolo-section{border-bottom:0}.fascicolo-operations-grid .fascicolo-section+ .fascicolo-section{border-left:1px solid var(--line)}
.fascicolo-section-title a{font-size:.58rem;font-weight:900;color:var(--primary);white-space:nowrap}
.fascicolo-deadline-list{display:grid;gap:7px}.fascicolo-deadline{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fff}.fascicolo-deadline:hover{border-color:#ffc6d2;background:#fffafb}.fascicolo-deadline.is-overdue{border-color:#ffd4cf;background:#fff7f6}.fascicolo-deadline-date{font-size:.62rem;font-weight:950;color:#586174}.fascicolo-deadline strong{font-size:.66rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fascicolo-deadline small{font-size:.55rem;font-weight:850;color:var(--muted);white-space:nowrap}.fascicolo-deadline.is-overdue small{color:#b53f37}
.fascicolo-empty-mini{border:1px dashed var(--line);border-radius:11px;padding:15px;background:#fafbfc}.fascicolo-empty-mini strong,.fascicolo-empty-mini span{display:block}.fascicolo-empty-mini strong{font-size:.72rem}.fascicolo-empty-mini span{margin-top:3px;font-size:.6rem;color:var(--muted)}
.fascicolo-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.fascicolo-check-grid span{border:1px solid var(--line);border-radius:9px;padding:8px 9px;font-size:.6rem;font-weight:850}.fascicolo-check-grid .is-ok{background:#f1fbf7;border-color:#d5eee4;color:#14735b}.fascicolo-check-grid .is-missing{background:#fafbfc;color:#81899a}
.fascicolo-full-layout .quick-action-grid-v78{grid-template-columns:repeat(6,minmax(0,1fr))}
.fascicolo-module-links-v78{grid-template-columns:repeat(6,minmax(0,1fr))!important}.fascicolo-module-links-v78 a{display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:8px;text-align:left;padding:10px!important;min-height:60px}.fascicolo-module-links-v78 a>b{grid-row:1/span 2;font-size:1.1rem;text-align:center}.fascicolo-module-links-v78 a>span{font-size:.61rem;font-weight:950;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fascicolo-module-links-v78 a>small{font-size:.52rem;color:var(--muted);font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1260px){.fascicolo-command-bar{grid-template-columns:1fr 1fr}.fascicolo-command-main{grid-column:1/-1;grid-row:2}.fascicolo-kpis-v78{grid-template-columns:repeat(3,minmax(0,1fr))!important}.fascicolo-module-links-v78,.fascicolo-full-layout .quick-action-grid-v78{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:850px){.fascicolo-operations-grid{grid-template-columns:1fr}.fascicolo-operations-grid .fascicolo-section+ .fascicolo-section{border-left:0;border-top:1px solid var(--line)}.fascicolo-full-layout .fascicolo-contact-line{grid-template-columns:1fr!important}}
@media(max-width:640px){.fascicolo-command-bar{grid-template-columns:1fr}.fascicolo-command-main{grid-column:auto;grid-row:auto}.fascicolo-kpis-v78{grid-template-columns:1fr 1fr!important}.fascicolo-check-grid{grid-template-columns:1fr 1fr}.fascicolo-deadline{grid-template-columns:70px minmax(0,1fr)}.fascicolo-deadline small{grid-column:2}.fascicolo-module-links-v78,.fascicolo-full-layout .quick-action-grid-v78{grid-template-columns:1fr 1fr!important}.fascicolo-module-links-v78 a{min-height:64px}}

/* v79 · lavagna operativa */
.workboard-toolbar{flex-wrap:wrap}
.workboard-priority-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.workboard-priority-filters button{border:1px solid var(--line);background:#fff;color:#697386;border-radius:999px;padding:7px 10px;font:inherit;font-size:.68rem;font-weight:850;cursor:pointer}
.workboard-priority-filters button:hover,.workboard-priority-filters button.is-active{border-color:#34495e;background:#34495e;color:#fff}
.kanban-priority-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px}
.kanban-priority{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;font-size:.61rem;font-weight:900;border:1px solid transparent}
.priority-critical{background:#fff0f1;color:#a33443;border-color:#f4c5cc}.priority-attention{background:#fff7e6;color:#9a6516;border-color:#f2d69a}.priority-normal{background:#edf8f2;color:#277354;border-color:#cbe7da}
.kanban-overdue-chip{font-size:.59rem;font-weight:900;color:#b12d3f;background:#fff;border:1px solid #f1c7cd;border-radius:999px;padding:4px 7px}
.kanban-card-facts .is-overdue{color:#b12d3f;font-weight:900}
.kanban-card-actions{display:flex;align-items:center;gap:5px}
.kanban-card-actions a{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;text-decoration:none;color:#4b5565;font-size:.73rem}
.kanban-card-actions a:hover{border-color:#9ec8c2;background:#f1faf8;color:#245f58}
.kanban-card-new[data-priority="critical"]{box-shadow:0 0 0 1px rgba(179,45,62,.08),0 5px 14px rgba(43,45,66,.05)}
.kanban-column-new.is-filter-empty .kanban-column-body-new:after{content:'Nessun evento con questi filtri';display:block;border:1px dashed #cfd5df;border-radius:10px;padding:13px;text-align:center;color:#929aaa;font-size:.65rem;font-weight:750}
@media(max-width:1180px){.workboard-priority-filters{width:100%}}
@media(max-width:700px){.workboard-priority-filters{display:grid;grid-template-columns:1fr 1fr;width:100%}.workboard-priority-filters button{border-radius:10px;padding:9px 8px}.kanban-card-actions a{width:32px;height:32px}}

/* v80 · Preventivi + Budget + Contratti */
.v80-flow-overview{margin-bottom:16px}.v80-flow-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.v80-flow-stats>div{padding:14px;border:1px solid #e8e2dc;border-radius:14px;background:#fcfbf9;display:grid;gap:4px}.v80-flow-stats span{font-size:11px;font-weight:800;color:#756a61}.v80-flow-stats strong{font-size:24px;color:#312b27}.v80-flow-stats small{font-size:10px;color:#8a7e75}.v80-flow-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap;background:#eee9e3;color:#675e57}.v80-flow-badge.flow-contratto{background:#fff0d7;color:#8a5c16}.v80-flow-badge.flow-firma{background:#e9eefb;color:#445c94}.v80-flow-badge.flow-pagamenti{background:#e8f6f3;color:#2d7064}.v80-flow-badge.flow-completo{background:#e8f5e9;color:#347044}.v80-banner-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.v80-event-flow{margin-bottom:16px}.v80-flow-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.v80-flow-steps>div{position:relative;padding:12px;border:1px solid #e7e0da;border-radius:12px;background:#faf8f5;display:grid;gap:3px}.v80-flow-steps b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e8e2dc;color:#756a61;font-size:11px}.v80-flow-steps span{font-size:11px;font-weight:900;color:#514840}.v80-flow-steps small{font-size:9px;color:#8c8077}.v80-flow-steps>div.is-done{border-color:#b9d6cf;background:#f3faf8}.v80-flow-steps>div.is-done b{background:#3f8275;color:#fff}.v80-attention-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.v80-attention-list span{padding:6px 9px;border-radius:9px;background:#fff5df;color:#805d20;font-size:10px;font-weight:800}.v80-flow-ok{margin-top:10px;padding:8px 10px;border-radius:10px;background:#edf8f1;color:#356a46;font-size:11px;font-weight:800}.finance-summary-box progress{width:100%;height:8px;margin:3px 0 8px}.finance-summary-box .button{margin-top:10px}.finance-events-panel .finance-table td small{display:block;margin-top:3px}.finance-events-panel .finance-table td{vertical-align:middle}
@media(max-width:900px){.v80-flow-stats{grid-template-columns:1fr 1fr}.v80-flow-steps{grid-template-columns:1fr 1fr}.v80-flow-steps>div:last-child{grid-column:1/-1}.v80-banner-actions{justify-content:flex-start}}
@media(max-width:560px){.v80-flow-stats,.v80-flow-steps{grid-template-columns:1fr}.v80-flow-steps>div:last-child{grid-column:auto}.v80-banner-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.v80-banner-actions .button{justify-content:center}.finance-event-banner{align-items:flex-start;gap:12px}}

/* v81 · dossier fornitori */
.supplier-dossier{margin:0 0 18px;padding:0;overflow:hidden}.supplier-dossier-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fff,#fbf8ff)}.supplier-dossier-title{display:flex;align-items:center;gap:12px}.supplier-dossier-title h3{margin:2px 0 3px;font-size:1.15rem}.supplier-dossier-title p{margin:0;color:var(--muted);font-size:.67rem}.supplier-dossier-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:14px 20px}.supplier-dossier-kpis>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8fafc}.supplier-dossier-kpis span,.supplier-dossier-kpis strong{display:block}.supplier-dossier-kpis span{font-size:.57rem;color:var(--muted);font-weight:900;text-transform:uppercase}.supplier-dossier-kpis strong{margin-top:4px;font-size:.9rem}.supplier-dossier-layout{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.7fr);gap:14px;padding:0 20px 18px}.supplier-dossier-contact,.supplier-dossier-events{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px}.supplier-dossier-contact h4,.supplier-dossier-events h4,.supplier-dossier-pricelist h4{margin:0 0 10px;font-size:.82rem}.supplier-dossier-contact dl{margin:0;display:grid;gap:7px}.supplier-dossier-contact dl>div{display:grid;grid-template-columns:76px 1fr;gap:8px}.supplier-dossier-contact dt{font-size:.58rem;color:var(--muted);font-weight:900;text-transform:uppercase}.supplier-dossier-contact dd{margin:0;font-size:.68rem;font-weight:750;word-break:break-word}.supplier-dossier-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.supplier-dossier-notes{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:.66rem}.supplier-dossier-notes p{margin:5px 0 0;color:var(--muted);line-height:1.45}.supplier-dossier-events>.panel-header{padding:0 0 10px}.supplier-dossier-table{width:100%;border-collapse:collapse;min-width:720px}.supplier-dossier-table th,.supplier-dossier-table td{padding:9px 8px;text-align:left;border-bottom:1px solid #eef1f4;font-size:.65rem;vertical-align:top}.supplier-dossier-table th{font-size:.56rem;color:var(--muted);text-transform:uppercase}.supplier-dossier-table td strong,.supplier-dossier-table td small{display:block}.supplier-dossier-table td small{color:var(--muted);margin-top:3px}.supplier-dossier-row-actions{display:flex;gap:4px;flex-wrap:wrap}.supplier-dossier-pricelist{margin:0 20px 18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}.supplier-dossier-pricelist>div{display:flex;gap:7px;flex-wrap:wrap}.supplier-dossier-pricelist span{display:flex;gap:8px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 9px;font-size:.61rem}.supplier-dossier-pricelist em{font-style:normal;color:#087c5c;font-weight:900}.smartmatch-supplier-dossier-link{display:inline-block;margin:4px 0 6px;color:#3d6fa0;font-size:.61rem;font-weight:900}
@media(max-width:900px){.supplier-dossier-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-dossier-layout{grid-template-columns:1fr}}
@media(max-width:620px){.supplier-dossier-head{align-items:flex-start;flex-direction:column}.supplier-dossier-kpis{grid-template-columns:1fr 1fr}.supplier-dossier-layout,.supplier-dossier-kpis{padding-left:12px;padding-right:12px}.supplier-dossier-pricelist{margin-left:12px;margin-right:12px}}

/* v82 · agenda operativa unificata */
.event-agenda-strip{margin-bottom:14px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}.event-agenda-select{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);gap:14px;align-items:end}.event-agenda-select h3{margin:2px 0 0}.event-agenda-select label{display:grid;gap:4px;color:var(--muted);font-size:.52rem;font-weight:900}.event-agenda-select select{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px;font:inherit;color:var(--text)}.event-agenda-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.calendar-legend{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.calendar-legend span{display:flex;align-items:center;gap:5px;font-size:.52rem;font-weight:850;color:var(--muted)}.calendar-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}.legend-event{background:#ff6b8b}.legend-task{background:#4ea8de}.legend-meeting{background:#8b6fd6}.legend-timeline{background:#d7902e}.legend-done{background:#06d6a0}.calendar-item-meeting{background:#f1edff;border-color:#8b6fd6;color:#6048a1}.calendar-item-timeline{background:#fff5e7;border-color:#d7902e;color:#8a5817}.calendar-day-card.calendar-item-meeting{border-left-color:#8b6fd6}.calendar-day-card.calendar-item-timeline{border-left-color:#d7902e}
@media(max-width:900px){.event-agenda-strip,.event-agenda-select{grid-template-columns:1fr}.event-agenda-actions{justify-content:flex-start}.event-agenda-actions .button{flex:1 1 calc(50% - 6px)}}
@media(max-width:560px){.event-agenda-actions .button{flex-basis:100%}.calendar-legend{justify-content:flex-start}}

/* v83 · Invitati & RSVP */
.guest-rsvp-banner{gap:14px}.guest-rsvp-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.guest-rsvp-kpis .stat-card strong{font-variant-numeric:tabular-nums}.guest-rsvp-progress{display:grid;gap:8px}.guest-rsvp-progress>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.guest-rsvp-progress>div strong{font-size:.78rem}.guest-rsvp-progress>div span{font-weight:950;color:var(--primary)}.guest-rsvp-progress progress{width:100%;height:10px;accent-color:#08a67a}.guest-rsvp-progress small{color:var(--muted);font-size:.55rem}.guest-source-web{color:#087c5c;font-weight:900}.guest-list-tools{align-items:end}@media(max-width:700px){.guest-rsvp-actions{justify-content:flex-start;width:100%}.guest-rsvp-banner{align-items:flex-start}.guest-rsvp-actions .button{flex:1 1 auto}.guest-list-tools .module-filter{flex:1 1 44%;min-width:130px}}

/* v84 · Comunicazioni unificate e Hub Messaggi */
.hub-heading-v84{gap:18px}.hub-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.hub-shell-v84{grid-template-columns:350px minmax(0,1fr)}
.hub-search-v84{display:grid;grid-template-columns:1fr;gap:7px}.hub-search-v84 select{font-size:.58rem}.hub-conversation-card.is-empty-thread{background:#fcfcfd}.hub-conversation-card.is-empty-thread .hub-conversation-icon{background:#eef7f3;color:#087c5c}.hub-conversation-card.is-empty-thread .hub-conversation-copy small{font-style:italic}
.hub-chat-header-v84{align-items:flex-start}.hub-chat-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.hub-chat-actions form{display:inline-flex;margin:0}.hub-chat-title{min-width:0}.hub-message-filterbar{display:flex;align-items:end;gap:8px;padding:9px 13px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}.hub-message-filterbar label{display:grid;gap:3px;min-width:130px}.hub-message-filterbar label>span{font-size:.46rem;color:var(--muted);font-weight:950;text-transform:uppercase}.hub-message-filterbar .input{padding:6px 8px;font-size:.55rem}.hub-message-filterbar .hub-unread-only{display:flex;align-items:center;gap:6px;min-width:auto;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.hub-message-filterbar .hub-unread-only span{text-transform:none}.hub-message-filterbar input[type=checkbox]{accent-color:var(--primary)}
.hub-channel-chip{display:inline-flex!important;align-items:center;padding:2px 6px;border-radius:999px;font-size:.42rem!important;font-style:normal;font-weight:950}.hub-channel-chip.channel-portal{background:#e8f8f3;color:#087c5c}.hub-channel-chip.channel-email{background:#e1f1fd;color:#2f6da7}.hub-channel-chip.channel-whatsapp{background:#e2f8f0;color:#087c5c}.hub-message.is-external-history .hub-message-bubble{background:#fff;border:1px solid #dde4ec;box-shadow:0 5px 15px rgba(43,45,66,.04)}.hub-message.is-external-history.channel-email .hub-message-bubble{border-left:4px solid #5b9bd5}.hub-message.is-external-history.channel-whatsapp .hub-message-bubble{border-left:4px solid #28a878}.hub-message-subject{display:block;margin-top:7px;font-size:.58rem;color:#344054}.hub-attachment-chip{background:#fff4df!important;color:#94631c!important}.hub-delivery-status{font-weight:950!important}.hub-thread-empty{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:36px}.hub-thread-empty>span{font-size:1.8rem}.hub-thread-empty strong{margin-top:7px;color:var(--text)}.hub-thread-empty small{margin-top:4px;max-width:360px}.hub-filter-no-messages{padding:24px;text-align:center;color:var(--muted);font-size:.58rem;font-weight:850}
.hub-compose-v84{grid-template-columns:minmax(170px,.6fr) minmax(0,1.5fr) auto;align-items:end}.hub-template-select{display:grid;gap:4px}.hub-template-select>span{font-size:.46rem;font-weight:950;color:var(--muted);text-transform:uppercase}.hub-template-select select{width:100%;font-size:.55rem}.hub-compose-v84 textarea{color:var(--text);background:#fff}.hub-compose-v84 small{grid-column:1/-1}.hub-compose-v84 .button{min-height:42px}.communications-page-actions{align-items:center}
@media(max-width:1000px){.hub-shell-v84{grid-template-columns:300px minmax(0,1fr)}.hub-compose-v84{grid-template-columns:1fr auto}.hub-template-select{grid-column:1/-1}}
@media(max-width:760px){.hub-heading-v84{align-items:flex-start}.hub-page-actions{width:100%;justify-content:stretch}.hub-page-actions .button{flex:1}.hub-shell-v84{grid-template-columns:1fr}.hub-message-filterbar{display:grid;grid-template-columns:1fr 1fr}.hub-message-filterbar .hub-unread-only{grid-column:1/-1}.hub-chat-header-v84{display:grid}.hub-chat-actions{justify-content:flex-start}.hub-compose-v84{grid-template-columns:1fr}.hub-compose-v84 .button{width:100%}.hub-template-select{grid-column:auto}.hub-message-bubble{max-width:94%}}
@media(max-width:520px){.hub-message-filterbar{grid-template-columns:1fr}.hub-message-filterbar .hub-unread-only{grid-column:auto}.hub-page-actions{display:grid;grid-template-columns:1fr}.hub-chat-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.hub-chat-actions .button,.hub-chat-actions form,.hub-chat-actions form .button{width:100%}.hub-message-list{padding:12px}.hub-message-bubble{max-width:100%}}

/* v85 · fascicolo documentale / report */
.document-dossiers{margin-bottom:16px;overflow:hidden}.document-dossier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:12px;padding:0 16px 16px}.document-dossier-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;display:grid;gap:11px;min-width:0}.document-dossier-card.is-selected{border-color:#4b9b93;box-shadow:0 0 0 3px rgba(75,155,147,.11)}.document-dossier-card.is-closed{background:#fafbfc}.document-dossier-head{display:flex;gap:9px;align-items:center;min-width:0}.document-dossier-head>span{font-size:1.25rem}.document-dossier-head>div{min-width:0}.document-dossier-head strong,.document-dossier-head small{display:block}.document-dossier-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-dossier-head small{margin-top:3px;color:var(--muted);font-size:.57rem}.document-dossier-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.document-dossier-metrics span{padding:8px 6px;background:#f7f9fb;border-radius:9px;text-align:center;color:var(--muted);font-size:.55rem;font-weight:800}.document-dossier-metrics b{display:block;color:var(--text);font-size:.82rem}.document-dossier-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;color:var(--muted)}.document-dossier-meta span{padding:3px 6px;border-radius:999px;background:#eef2f5;font-size:.52rem;font-weight:900}.document-dossier-actions{display:flex;gap:6px;flex-wrap:wrap}.report-event-card.is-selected{scroll-margin-top:90px}@media(max-width:600px){.document-dossier-grid{grid-template-columns:1fr;padding:0 10px 12px}.document-dossier-actions .button{flex:1 1 100%;justify-content:center}}


/* v86 · account / billing / admin SaaS */
.account-center{margin:18px 0;padding:18px;border:1px solid #dce8e6;border-radius:18px;background:linear-gradient(145deg,#fbfefd,#f7faf9)}
.account-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.account-center-head h3{margin:2px 0 0}.account-completion{display:grid;text-align:right}.account-completion strong{font-size:28px;line-height:1;color:#285f5d}.account-completion span{font-size:10px;color:#857970;font-weight:800}
.account-progress{height:8px;border-radius:999px;background:#e8efed;overflow:hidden;margin:12px 0 16px}.account-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4f8f8b,#86b7a2)}
.account-center-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.account-center-grid article{display:grid;gap:5px;padding:13px;border:1px solid #e5ecea;border-radius:13px;background:#fff}.account-center-grid article>span{font-size:10px;font-weight:850;color:#7d7167;text-transform:uppercase;letter-spacing:.04em}.account-center-grid strong{font-size:13px;color:#332d29}.account-center-grid small{font-size:10px;line-height:1.4;color:#8a7d73}
.account-quick-nav{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.account-quick-nav a{padding:7px 10px;border-radius:9px;border:1px solid #d9e6e4;background:#fff;color:#356d69;font-size:10px;font-weight:850;text-decoration:none}.account-quick-nav a:hover{background:#edf8f6}
.setup-section{scroll-margin-top:90px}
.billing-heading{align-items:center}.account-billing-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0;padding:18px 20px;border:1px solid #dce8e6;border-radius:16px;background:#f8fcfb}.account-billing-hero.is-ok{border-color:#cae5d8;background:#f5fbf7}.account-billing-hero.is-warning{border-color:#ecd9b4;background:#fffaf1}.account-billing-hero h3{margin:2px 0 4px}.account-billing-hero p{margin:0;color:#736961}.account-billing-actions{display:flex;gap:8px;flex-wrap:wrap}.billing-status-grid{margin-top:14px}.billing-account-panel{margin-top:18px}.billing-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.billing-check-grid>div{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e8e0d9;border-radius:12px;background:#fff}.billing-check-grid b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#edf7f4;color:#2f6d61}.billing-check-grid span{display:grid;gap:2px}.billing-check-grid strong{font-size:11px}.billing-check-grid small{font-size:9px;color:#8b8178;line-height:1.3}.billing-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:18px}.billing-plan-card{position:relative}.billing-plan-card.is-current{border-color:#77aaa4;box-shadow:0 0 0 2px rgba(79,143,139,.08)}.plan-current-badge{display:inline-flex;margin:4px 0 12px;padding:5px 8px;border-radius:999px;background:#e9f6f3;color:#2d6d66;font-size:9px;font-weight:900;text-transform:uppercase}.lifetime-panel,.billing-portal-panel{margin-top:18px}.billing-portal-panel .panel-body{display:flex;align-items:center;justify-content:space-between;gap:20px}
.admin-role-matrix{margin:18px 0}.admin-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.admin-role-grid article{display:grid;gap:5px;padding:14px;border:1px solid #e7dfd8;border-radius:12px;background:#fff}.admin-role-grid article>span{font-size:10px;font-weight:900;color:#756a62;text-transform:uppercase}.admin-role-grid strong{font-size:12px}.admin-role-grid small{font-size:9px;color:#8b8178;line-height:1.45}.admin-filters{display:grid!important;grid-template-columns:minmax(180px,1.4fr) minmax(140px,1fr) minmax(140px,1fr)!important}
@media(max-width:1000px){.account-center-grid,.billing-check-grid{grid-template-columns:1fr 1fr}.admin-role-grid{grid-template-columns:1fr}.admin-filters{grid-template-columns:1fr 1fr!important}.admin-filters input{grid-column:1/-1}}
@media(max-width:640px){.account-center-head,.account-billing-hero,.billing-portal-panel .panel-body{display:grid}.account-completion{text-align:left}.account-center-grid,.billing-check-grid,.admin-filters{grid-template-columns:1fr!important}.account-billing-actions .button{width:100%;justify-content:center}}


/* v87 · navigazione account: setup/billing fuori dalla sidebar; Admin SaaS mai esposto nella UI tenant. */
.account-menu{position:relative;flex:0 0 auto}
.account-menu-trigger{min-height:44px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:4px 9px 4px 5px;color:var(--text);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.account-menu-trigger:hover,.account-menu.is-open .account-menu-trigger{border-color:#ffc5d2;background:#fffafb;box-shadow:0 8px 22px rgba(43,45,66,.08)}
.account-menu-identity{display:grid;min-width:0;text-align:left;max-width:180px}
.account-menu-identity strong{font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-menu-identity small{font-size:.66rem;color:var(--muted);font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
.account-menu-chevron{font-size:.82rem;color:#9aa4b5;transition:transform .15s ease}
.account-menu.is-open .account-menu-chevron{transform:rotate(180deg)}
.account-menu-panel{position:absolute;right:0;top:calc(100% + 10px);width:min(330px,calc(100vw - 28px));background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 60px rgba(43,45,66,.18);overflow:hidden;z-index:120}
.account-menu-head{display:flex;align-items:center;gap:11px;padding:16px 17px;background:linear-gradient(135deg,#fff7fa,#f8fbff);border-bottom:1px solid var(--line)}
.account-menu-head>div{min-width:0}.account-menu-head strong,.account-menu-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-head strong{font-size:.88rem}.account-menu-head small{font-size:.7rem;color:var(--muted);font-weight:700;margin-top:2px}
.account-menu-avatar{width:42px;height:42px;border-radius:13px;flex:0 0 auto}
.account-menu-links{display:grid;padding:8px}
.account-menu-links a{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;padding:10px;border-radius:11px;transition:background .15s ease;color:#495266}
.account-menu-links a:hover{background:#f7f9fc;color:var(--primary-strong)}
.account-menu-links a>span{width:34px;height:34px;border-radius:10px;background:#f4f6f9;display:grid;place-items:center;font-size:1rem}
.account-menu-links a strong,.account-menu-links a small{display:block}.account-menu-links a strong{font-size:.79rem}.account-menu-links a small{font-size:.67rem;color:var(--muted);font-weight:700;margin-top:2px;line-height:1.25}
.account-menu-footer{padding:9px;border-top:1px solid var(--line);background:#fbfcfe}.account-menu-footer form{margin:0}
.account-menu-logout{width:100%;display:flex;align-items:center;gap:9px;border:0;background:transparent;color:#9c4057;border-radius:10px;padding:10px 11px;font-size:.77rem;font-weight:900;cursor:pointer;text-align:left}.account-menu-logout:hover{background:#fff0f3}
@media(max-width:1450px){.account-menu-identity{display:none}.account-menu-trigger{padding-right:6px}.account-menu-chevron{display:none}}
@media(max-width:820px){.topbar-right{gap:8px}.account-menu-trigger{min-height:42px;border-radius:13px}.account-menu-panel{position:fixed;right:14px;top:72px;width:min(330px,calc(100vw - 28px))}}


/* v88 · rifinitura generale UI/UX: densità, responsive, focus e coerenza dei controlli. */
:root{--focus-ring:0 0 0 4px rgba(255,107,139,.16)}
html{scroll-behavior:smooth}
body{line-height:1.45}
button,a,input,select,textarea,summary{outline:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{box-shadow:var(--focus-ring);outline:2px solid rgba(243,79,117,.58);outline-offset:2px}
.button,.icon-action,.production-action,.nav-link{transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease,color .14s ease}
.button:hover:not(:disabled){transform:translateY(-1px)}
.button:active:not(:disabled){transform:translateY(0)}
.button:disabled,[disabled]{cursor:not-allowed!important;opacity:.52}
input,select,textarea{max-width:100%;border-color:#dfe4eb}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:40px}
textarea{line-height:1.45;resize:vertical}
.panel{box-shadow:0 10px 30px rgba(43,45,66,.055)}
.panel-header{min-width:0}.panel-header>div{min-width:0}.panel-header h3{line-height:1.25}
.page-heading>div:first-child{min-width:0}.page-heading h2{line-height:1.15}.page-heading p{font-size:.92rem}
.page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.empty-state,.table-empty,.table-empty-state{color:var(--muted);line-height:1.5}
.table-responsive,.table-wrap,.document-table-wrap,.guest-table-wrap,.task-table-wrap,.communication-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
table{border-collapse:collapse}
table th{white-space:nowrap}
table td,table th{vertical-align:middle}
.row-actions,.task-actions,.actions-cell{gap:6px}
.main-nav{scrollbar-width:thin;scrollbar-color:#dce2ea transparent}
.nav-link{min-height:44px}.nav-label{line-height:1.2}
.nav-link.is-active{box-shadow:inset 3px 0 0 var(--primary)}
.topbar{box-shadow:0 4px 20px rgba(43,45,66,.025)}
.preview-toast{max-width:min(390px,calc(100vw - 28px))}

@media(max-width:1100px){
  .page-heading{gap:18px}
  .page-actions{justify-content:flex-start}
  .panel-header{padding:18px}
}
@media(max-width:820px){
  body.sidebar-open{overflow:hidden}
  .topbar{min-height:74px;padding:10px 14px;gap:10px}
  .topbar-left{gap:10px;min-width:0}.topbar-left>div{min-width:0}
  .topbar .eyebrow{font-size:.58rem}.topbar h1{font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48vw}
  .page-content{padding:18px 14px 34px}
  .page-heading{margin-bottom:18px;gap:14px}.page-heading h2{font-size:1.5rem;margin-top:5px}.page-heading p{font-size:.86rem}
  .page-actions{width:100%}.page-actions .button,.page-actions>a.button{flex:1 1 auto;justify-content:center;text-align:center}
  .stats-grid{gap:12px}.stat-card{padding:17px}.stat-card strong{font-size:1.65rem}
  .panel{border-radius:15px}.panel-header{padding:15px 16px}.panel-body{padding:16px}
  .production-actions{display:none}
  .account-menu-panel{top:66px}
  .preview-toast{top:auto;right:14px;left:14px;bottom:18px;max-width:none}
}
@media(max-width:560px){
  .stats-grid{grid-template-columns:1fr}
  .page-heading{display:grid}.page-actions{display:grid;grid-template-columns:1fr}.page-actions>*{width:100%}
  .panel-header{align-items:flex-start;flex-direction:column}.panel-note{align-self:flex-start}
  .definition-list{grid-template-columns:1fr;gap:5px}.definition-list dd{text-align:left;margin-bottom:8px}
  .event-list li{grid-template-columns:88px minmax(0,1fr) 18px;padding:14px 15px;gap:10px}
  .activity-list li{padding:15px 16px}
  .button{min-height:40px}
  .account-menu-panel{right:10px;width:calc(100vw - 20px)}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
/* V91 · Report, PDF & Export premium layout (CSP-safe) */
.reports-premium-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;margin-bottom:24px}
.reports-premium-hero h2{margin:8px 0 8px;font-size:2rem;line-height:1.08;color:#253457}
.reports-premium-hero p{margin:0;max-width:820px;color:#71819e;font-weight:700;line-height:1.55}
.reports-premium-backup{min-height:40px;border-radius:14px;padding:12px 18px;box-shadow:0 12px 24px rgba(39,45,78,.18)}
.reports-premium-panel{overflow:visible;border-radius:22px;padding:0;background:#fff}
.reports-premium-panel-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 24px;border-bottom:1px solid #eceff5}
.reports-premium-panel-head h3{margin:4px 0 0;font-size:1.32rem;color:#24324d}
.reports-premium-inline-note{display:inline-flex;align-items:center;justify-content:center;background:#f5f3fa;color:#7b8296;border:1px solid #ede7f8;padding:8px 12px;border-radius:999px;font-size:.74rem;font-weight:900;text-align:center}
.reports-premium-list{display:grid;gap:14px;padding:18px}
.reports-premium-item{border:1px solid #e7ebf2;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#fcfcfe 100%);padding:16px 16px 14px;box-shadow:0 6px 18px rgba(22,34,61,.04)}
.reports-premium-item.is-selected{border-color:#95d2c7;box-shadow:0 0 0 4px rgba(75,155,147,.12),0 10px 22px rgba(22,34,61,.06)}
.reports-premium-item-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;margin-bottom:12px}
.reports-premium-item-title h4{margin:0;font-size:1.05rem;line-height:1.25;color:#263453}
.reports-premium-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.reports-premium-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:.71rem;font-weight:900;border:1px solid #e7eaf2;background:#f8fafc;color:#697388}
.reports-premium-tag.is-date{background:#f4f7ff;color:#4d6591;border-color:#dde6fb}
.reports-premium-tag.is-status{background:#fff6ea;color:#986626;border-color:#f5e3bf}
.reports-premium-tag.is-selected{background:#e9fbf5;color:#087c5c;border-color:#c8f2e5}
.reports-premium-item-side{font-size:.72rem;font-weight:900;color:#8b93a6;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding-top:2px}
.reports-premium-actions{display:flex;flex-wrap:wrap;gap:8px}
.reports-premium-action{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 12px;border-radius:12px;border:1px solid #e5eaf2;background:#fff;color:#47536c;font-size:.74rem;font-weight:900;line-height:1.2;transition:.16s transform,.16s box-shadow,.16s border-color,.16s background;white-space:nowrap;box-shadow:0 3px 10px rgba(17,24,39,.03)}
.reports-premium-action:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(17,24,39,.07);border-color:#d3dbe8;background:#fcfdff}
.reports-premium-action.is-primary{background:linear-gradient(135deg,#ff8ea7,#ff6f94);border-color:#ff8ea7;color:#fff;box-shadow:0 10px 24px rgba(255,111,148,.24)}
.reports-premium-action.is-info{background:#eef5ff;color:#2c6db2;border-color:#d8e8ff}
.reports-premium-action.is-success{background:#19b885;color:#fff;border-color:#19b885;box-shadow:0 10px 24px rgba(25,184,133,.2)}
.reports-premium-action.is-accent{background:#ff8fa7;color:#fff;border-color:#ff8fa7;box-shadow:0 10px 24px rgba(255,143,167,.22)}
.reports-premium-archive{position:relative;display:inline-block}
.reports-premium-archive>summary{list-style:none;cursor:pointer}
.reports-premium-archive>summary::-webkit-details-marker{display:none}
.reports-premium-archive-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:24;min-width:240px;background:#fff;border:1px solid #e7ebf2;border-radius:16px;padding:12px;box-shadow:0 18px 40px rgba(22,34,61,.15)}
.reports-premium-archive-menu strong{display:block;font-size:.74rem;color:#354462;margin-bottom:8px}
.reports-premium-archive-menu form{margin:0}
.reports-premium-archive-menu button{width:100%;border:0;background:#f8fafc;color:#43506b;font-size:.74rem;font-weight:850;text-align:left;padding:9px 10px;border-radius:10px;cursor:pointer;margin-top:6px}
.reports-premium-archive-menu button:hover{background:#f1f6ff;color:#284a86}
.reports-premium-legacy{margin-top:18px;border-radius:24px;background:linear-gradient(145deg,#303453 0%,#3e4268 100%);color:#fff;padding:26px 28px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;box-shadow:0 18px 40px rgba(48,52,83,.18)}
.reports-premium-legacy .eyebrow{color:#ffb4c6}
.reports-premium-legacy h3{margin:6px 0 8px;font-size:1.6rem;line-height:1.1}
.reports-premium-legacy p:last-child{margin:0;color:#f1f2fa;line-height:1.55;font-weight:700;max-width:820px}
.reports-premium-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.reports-premium-flow span{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border-radius:12px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);font-size:.78rem;font-weight:900;white-space:nowrap}
.reports-premium-flow b{color:#ffb4c6;font-size:1rem}
@media(max-width:980px){.reports-premium-panel-head,.reports-premium-item-top,.reports-premium-legacy,.reports-premium-hero{grid-template-columns:1fr}.reports-premium-item-side,.reports-premium-flow{justify-content:flex-start}.reports-premium-hero-actions{display:flex;justify-content:flex-start}}
@media(max-width:640px){.reports-premium-hero h2{font-size:1.6rem}.reports-premium-panel-head,.reports-premium-list{padding:16px}.reports-premium-item{padding:14px}.reports-premium-actions{display:grid;grid-template-columns:1fr 1fr}.reports-premium-action,.reports-premium-archive,.reports-premium-archive>summary{width:100%}.reports-premium-archive-menu{left:0;right:auto;min-width:min(280px,calc(100vw - 46px))}.reports-premium-flow{gap:8px}.reports-premium-flow span{font-size:.72rem;padding:0 10px;min-height:34px}}
@media(max-width:430px){.reports-premium-actions{grid-template-columns:1fr}.reports-premium-inline-note{justify-content:flex-start;text-align:left}}


/* V103 · Smart Match scoring trasparente */
.smartmatch-score-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 4px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.smartmatch-score-legend span{display:flex;align-items:center;gap:7px;font-size:.58rem;font-weight:850;color:var(--muted)}.smartmatch-score-legend b{font-size:.72rem;color:var(--primary-strong)}
.smartmatch-option-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.smartmatch-score{display:flex;align-items:baseline;gap:2px;padding:7px 9px;border-radius:11px;background:#eef7ff;color:#245f9d;white-space:nowrap}.smartmatch-score strong{font-size:1rem}.smartmatch-score span{font-size:.5rem;font-weight:900}.rank-pill{font-size:.5rem;font-weight:900;border-radius:999px;padding:4px 7px;background:#f2f4f8;color:#5d6679}.option-rank1{border-color:#2f8f72;box-shadow:0 10px 28px rgba(47,143,114,.08)}.option-rank2{border-color:#7195c7}.option-rank3{border-color:#c7a05b}.smartmatch-score-components{display:grid;gap:8px;margin-top:4px;padding-top:10px;border-top:1px solid var(--line)}.smartmatch-score-component>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.smartmatch-score-component span{font-size:.54rem;font-weight:900;color:#4c566a}.smartmatch-score-component em{font-style:normal;color:#9aa3b2;font-size:.48rem}.smartmatch-score-component b{font-size:.58rem}.smartmatch-score-component progress{display:block;width:100%;height:7px;margin:4px 0 3px;accent-color:var(--primary)}.smartmatch-score-component small{display:block;font-size:.49rem;line-height:1.35;color:var(--muted)}.smartmatch-score-warnings{display:grid;gap:5px;padding:8px 9px;border-radius:10px;background:#fff8e9;border:1px solid #f3dfb8}.smartmatch-score-warnings span{font-size:.5rem;line-height:1.35;font-weight:800;color:#87611f}.smartmatch-table-score{display:inline-flex;padding:5px 7px;border-radius:999px;background:#eef7ff;color:#245f9d;font-weight:900;white-space:nowrap}
@media(max-width:760px){.smartmatch-score-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.smartmatch-score-legend{grid-template-columns:1fr}}


/* V104 · Smart Match Requirements Engine */
.smartmatch-requirements{margin:16px 0 18px;padding:17px;border:1px solid #dfe7f2;border-radius:16px;background:linear-gradient(180deg,#fbfdff,#f8fafc)}
.smartmatch-requirements-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.smartmatch-requirements-head h4{margin:3px 0 5px;font-size:1rem}.smartmatch-requirements-head p:last-child{margin:0;color:var(--muted);font-size:.72rem;line-height:1.5;max-width:760px;font-weight:700}
.smartmatch-requirements-form{display:grid;gap:12px}.smartmatch-requirement-tags{display:flex;gap:7px;flex-wrap:wrap}.smartmatch-requirement-tags label{position:relative;cursor:pointer}.smartmatch-requirement-tags input{position:absolute;opacity:0;pointer-events:none}.smartmatch-requirement-tags span{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#687386;font-size:.68rem;font-weight:900;transition:.15s}.smartmatch-requirement-tags input:checked+span{background:var(--primary-soft);border-color:#ffc5d2;color:var(--primary-strong);box-shadow:0 0 0 2px rgba(255,111,148,.08)}
.smartmatch-requirements-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.smartmatch-requirements-actions span{color:var(--muted);font-size:.68rem;font-weight:800}.smartmatch-diff.neutral{background:#eef3f8;color:#607087;border-color:#dde5ee}
@media(max-width:760px){.smartmatch-requirements-head{flex-direction:column}.smartmatch-requirements-actions{align-items:stretch;flex-direction:column}.smartmatch-requirements-actions .button{width:100%}.smartmatch-requirement-tags{display:grid;grid-template-columns:1fr 1fr}.smartmatch-requirement-tags span{width:100%;justify-content:center}}

/* V105 · Wedding Needs Wizard */
.wedding-wizard-summary{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.wedding-wizard-summary h3{margin:4px 0}.wedding-wizard-summary p{margin:0;color:var(--muted)}.wedding-wizard-legend{display:flex;gap:7px;flex-wrap:wrap}.wedding-wizard-legend span{padding:7px 10px;border-radius:999px;font-size:.67rem;font-weight:900}.wedding-wizard-legend .must{background:#fff0f3;color:#b83255}.wedding-wizard-legend .prefer{background:#eef5ff;color:#2f6da7}.wedding-wizard-legend .neutral{background:#f3f5f8;color:#7b8495}.wedding-wizard-progress{position:sticky;top:106px;z-index:9;background:rgba(255,255,255,.96);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:10px 12px;display:grid;grid-template-columns:auto minmax(240px,420px);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;backdrop-filter:blur(10px)}.wedding-wizard-progress div{display:flex;align-items:baseline;gap:6px}.wedding-wizard-progress b{font-size:1.15rem;color:var(--primary-strong)}.wedding-wizard-progress span{font-size:.68rem;color:var(--muted);font-weight:800}.wedding-wizard-progress input{border:1px solid var(--line);border-radius:10px;padding:9px 11px}.wedding-wizard-groups{display:grid;gap:14px}.wedding-wizard-group{padding:16px}.wedding-wizard-group-head{display:flex;gap:11px;align-items:flex-start;margin-bottom:12px}.wedding-wizard-group-head>span{font-size:1.4rem}.wedding-wizard-group-head h3{margin:0 0 3px}.wedding-wizard-group-head p{margin:0;color:var(--muted);font-size:.7rem}.wedding-wizard-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.wedding-need-card{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff}.wedding-need-card>strong,.wedding-need-card>small{display:block}.wedding-need-card>small{margin:4px 0 9px;color:var(--muted);font-size:.58rem;min-height:28px}.need-priority{display:grid;grid-template-columns:auto 1fr 1fr;gap:4px}.need-priority label{position:relative}.need-priority input{position:absolute;opacity:0}.need-priority span{display:flex;justify-content:center;align-items:center;min-height:30px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;font-size:.57rem;font-weight:850;cursor:pointer}.need-priority input:checked+span{background:var(--primary-soft);border-color:#ffc7d3;color:var(--primary-strong)}.wedding-custom-needs{margin-top:15px}.wedding-custom-grid{display:grid;gap:8px}.wedding-custom-row{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:8px}.wedding-custom-row input,.wedding-custom-row select{border:1px solid var(--line);border-radius:9px;padding:9px}.wedding-wizard-save{position:sticky;bottom:10px;z-index:8;margin-top:16px;padding:12px 14px;background:rgba(44,49,83,.96);color:#fff;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:0 14px 34px rgba(25,32,59,.2)}.wedding-wizard-save strong,.wedding-wizard-save span{display:block}.wedding-wizard-save span{font-size:.66rem;opacity:.8;margin-top:3px}
@media(max-width:980px){.wedding-wizard-services{grid-template-columns:repeat(2,minmax(0,1fr))}.wedding-wizard-progress{top:90px}.wedding-custom-row{grid-template-columns:1fr 1fr}.wedding-custom-row input{grid-column:1/-1}}@media(max-width:620px){.wedding-wizard-summary,.wedding-wizard-save{align-items:flex-start;flex-direction:column}.wedding-wizard-progress{position:static;grid-template-columns:1fr}.wedding-wizard-services{grid-template-columns:1fr}.wedding-custom-row{grid-template-columns:1fr}.wedding-custom-row>*{grid-column:auto}.need-priority{grid-template-columns:auto 1fr 1fr}.wedding-wizard-save .button{width:100%}}

/* V108 · Wedding Needs gerarchico */
.wedding-wizard-subgroup{margin:0 0 18px}.wedding-wizard-subgroup-title{display:flex;align-items:center;gap:7px;margin:0 0 9px;color:#718096;font-size:.7rem;font-weight:800}.wedding-wizard-subgroup-title strong{color:#33415f}.wedding-wizard-subgroup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}@media(max-width:980px){.wedding-wizard-subgroup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.wedding-wizard-subgroup-grid{grid-template-columns:1fr}}

/* V109 Planner Showcase */
.planner-showcase-heading{margin-bottom:18px}.planner-showcase-status{padding:18px 20px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.planner-showcase-status h3{margin:7px 0 3px}.planner-showcase-status p{margin:0;color:var(--muted);font-weight:700}.planner-showcase-publish-actions{display:flex;gap:8px}.planner-showcase-section{margin-bottom:18px}.planner-service-groups{display:grid;gap:14px}.planner-service-groups fieldset{border:1px solid var(--line);border-radius:14px;padding:14px}.planner-service-groups legend{font-weight:900;color:var(--primary-strong);padding:0 8px}.planner-service-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.planner-service-options label,.planner-region-grid label{display:flex;align-items:center;gap:8px;background:#f8fafc;border:1px solid var(--line);padding:9px 10px;border-radius:10px;font-size:.72rem;font-weight:850}.planner-region-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.planner-contact-visibility{display:flex;gap:14px;flex-wrap:wrap}.planner-video-list{display:grid;gap:8px}.planner-video-list>div{display:grid;grid-template-columns:1.4fr 1fr;gap:8px}.planner-video-list input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px}.planner-media-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.planner-main-preview{width:100%;max-height:360px;object-fit:cover;border-radius:14px;margin-bottom:12px}.planner-gallery-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.planner-gallery-mini>div{position:relative}.planner-gallery-mini img{width:100%;height:110px;object-fit:cover;border-radius:10px}.planner-gallery-mini form{position:absolute;right:5px;top:5px}.planner-gallery-mini button{width:27px;height:27px;border:0;border-radius:50%;background:#fff;color:#a12d4b;box-shadow:0 4px 14px rgba(0,0,0,.16);cursor:pointer}.planner-gallery-upload{display:grid;gap:8px}.planner-gallery-upload input{border:1px solid var(--line);border-radius:10px;padding:9px}@media(max-width:850px){.planner-showcase-status{align-items:flex-start;flex-direction:column}.planner-service-options,.planner-region-grid{grid-template-columns:1fr 1fr}.planner-media-grid{grid-template-columns:1fr}}@media(max-width:520px){.planner-service-options,.planner-region-grid,.planner-video-list>div{grid-template-columns:1fr}}

/* V113 · Production Readiness Web Console */
.production-console{display:grid;gap:18px}.compact-page-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.compact-page-hero h2{margin:.15rem 0 .35rem}.production-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.production-status-grid .stat-card{padding:16px}.production-status-grid .stat-card span,.production-status-grid .stat-card small{display:block}.production-status-grid .stat-card strong{display:block;margin:6px 0;font-size:1.05rem}.production-step .panel-body{display:grid;gap:14px}.production-target-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr) auto;gap:12px;align-items:end}.production-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.production-actions-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.production-action-card{border:1px solid var(--border,#e6e7ee);border-radius:16px;padding:16px;background:var(--surface,#fff);display:grid;gap:10px;align-content:start}.production-action-card h4,.production-action-card p{margin:0}.production-action-card small{opacity:.75}.production-check-list{display:grid;gap:8px;margin-top:4px}.production-check{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border,#e6e7ee);border-radius:12px}.production-check>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800}.production-check.is-ok>span{background:#e8f7ef}.production-check.is-fail>span{background:#fff0f0}.production-check div{display:grid}.production-check small{opacity:.72}.production-check em{font-size:.75rem;font-style:normal;opacity:.65;text-transform:uppercase}.production-summary-strip{display:flex!important;flex-wrap:wrap;gap:10px}.production-summary-strip>span{padding:8px 11px;border-radius:999px;background:#f6f7fa}.production-table-wrap{overflow:auto}.production-confirm-form{display:grid;grid-template-columns:minmax(300px,1fr) auto;align-items:end;gap:12px}.production-danger-zone{border-color:#f0c9cf}.production-reset{display:flex!important;justify-content:space-between;align-items:center;gap:20px}.production-reset p{margin:.25rem 0 0}.text-success{color:#17794b}.text-danger{color:#b4233e}.panel-help{font-size:.88rem;opacity:.72;margin:0}.status-badge{padding:6px 10px;border-radius:999px;font-size:.8rem;font-weight:700}.status-ok{background:#e8f7ef}.status-warning{background:#fff4df}@media(max-width:1050px){.production-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.production-actions-grid-3{grid-template-columns:1fr}.production-target-form{grid-template-columns:1fr 1fr}.production-target-form .button{grid-column:1/-1}}@media(max-width:720px){.compact-page-hero,.production-reset{display:grid!important}.production-status-grid,.production-actions-grid,.production-target-form,.production-confirm-form{grid-template-columns:1fr}.production-check{grid-template-columns:28px 1fr}.production-check em{grid-column:2}.production-target-form .button{grid-column:auto}}

.account-menu-admin-separator{height:1px;background:var(--line,#e6e7ee);margin:6px 4px}

/* V113.2 · protezioni multiutenza e target migration lock */
.production-target-warning{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.production-target-warning>div{flex:1 1 360px}.production-target-warning form{margin:0}.production-target-active{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f6f8fb;border:1px solid var(--line)}.production-target-active span{font-weight:800}.production-target-active small{margin-left:auto;color:var(--muted)}.production-console .button:disabled{cursor:not-allowed;opacity:.48;filter:saturate(.55)}
.production-reconciliation-planner{border:1px solid var(--border,#e6e7ee);border-radius:14px;background:var(--surface,#fff);overflow:hidden}.production-reconciliation-planner>summary{cursor:pointer;padding:14px 16px;font-weight:600;background:#fafbfc}.production-reconciliation-body{display:grid;gap:14px;padding:16px}.production-reconciliation-body h4{margin:4px 0 0}.production-reconciliation-body details summary{cursor:pointer}.production-reconciliation-body code{white-space:normal;word-break:break-all}

/* V113.11 · one-click post-migration final check */
.post-migration-final{border:2px solid var(--line,#dfe3ea)}.post-migration-final .panel-header{background:linear-gradient(135deg,#f7f9ff,#fff)}.post-migration-progress{display:grid;gap:8px;padding:14px;border:1px solid var(--border,#e6e7ee);border-radius:14px;background:#fafbfc}.post-migration-progress-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.post-migration-progress-bar{height:10px;border-radius:999px;background:#e8ebf1;overflow:hidden}.post-migration-progress-bar i{display:block;width:0;height:100%;background:currentColor;transition:width .2s ease}.post-migration-progress[hidden]{display:none!important}
.cutover-final{border:2px solid #ead7b3}.cutover-final .panel-header{background:linear-gradient(135deg,#fffaf0,#fff)}.production-cutover-confirm{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid #ead7b3;border-radius:12px;background:#fffaf0}.production-cutover-confirm input{margin-top:3px}

/* PM 2.0.3 production UI: hide technical diagnostic/info cards from tenant pages. */
.production-mode .architecture-card,.production-mode .module-parity-card,.production-mode .production-diagnostic{display:none!important}

/* V2.0.5: la diagnostica tecnica resta disponibile solo agli admin SaaS. */
.tenant-account .architecture-card,
.tenant-account .module-parity-card,
.tenant-account .production-diagnostic,
.tenant-account .stage-badge,
.tenant-account .write-enabled-badge,
.tenant-account .read-only-badge,
.tenant-account [data-admin-technical]{display:none!important}
.tenant-account .seating-3d-write-box,
.tenant-account .seating-room-backend-badge,
.tenant-account .seating-room-note{display:none!important}
.tenant-account .seating-room-public-share>.eyebrow{display:none!important}
.tenant-account .workboard-parity-note{display:none!important}
.tenant-account .reports-premium-legacy{display:none!important}

.billing-b2b-confirm{display:flex;gap:9px;align-items:flex-start;margin:14px 0;padding:11px 12px;border:1px solid #e8e0d9;border-radius:12px;background:#fbfaf8;color:#6d625b;font-size:.76rem;font-weight:700;line-height:1.45}.billing-b2b-confirm input{margin-top:2px}.billing-b2b-note{margin-top:18px}.billing-b2b-note a{text-decoration:underline;font-weight:800}.billing-portal-panel small{display:block;margin-top:8px;line-height:1.45}

/* v2.0.24 · Admin SaaS traffic analytics */
.admin-analytics-panel{margin:18px 0}.admin-analytics-head{align-items:flex-start;gap:18px}.admin-analytics-subtitle{margin:5px 0 0;color:var(--gray,#73788a);font-size:.82rem;max-width:720px}.admin-period-filter{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.admin-traffic-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.admin-traffic-stats article{border:1px solid var(--border,#e7e9ef);border-radius:14px;padding:14px;background:#fff;display:grid;gap:4px}.admin-traffic-stats span{font-size:.7rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--gray,#777c8f)}.admin-traffic-stats strong{font-size:1.55rem;color:var(--dark,#2b2d42)}.admin-traffic-stats small{font-size:.7rem;color:var(--gray,#777c8f)}.admin-analytics-privacy-note{padding:11px 13px;border-radius:12px;background:#f7f8fb;border:1px solid #e7e9ef;color:#626779;font-size:.76rem;line-height:1.5;margin-bottom:14px}.admin-analytics-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-analytics-box{border:1px solid var(--border,#e7e9ef);border-radius:14px;background:#fff;overflow:hidden}.admin-analytics-box-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:13px 14px;border-bottom:1px solid var(--border,#e7e9ef)}.admin-analytics-box-head h4{margin:0}.admin-analytics-box-head span{font-size:.7rem;color:var(--gray,#777c8f)}.admin-analytics-table{display:grid}.admin-analytics-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;padding:11px 14px;border-bottom:1px solid #f0f1f5}.admin-analytics-row:last-child{border-bottom:0}.admin-analytics-row>div:first-child{min-width:0}.admin-analytics-row strong{font-size:.8rem;overflow-wrap:anywhere}.admin-analytics-row small{display:block;color:var(--gray,#777c8f);font-size:.65rem;margin-top:2px;overflow-wrap:anywhere}.admin-analytics-number{text-align:right;display:grid;align-content:start}.admin-analytics-number strong{font-size:.85rem}.admin-analytics-number span{font-size:.64rem;color:var(--gray,#777c8f)}.admin-share-track{grid-column:1/-1;height:4px;border-radius:999px;background:#eef0f4;overflow:hidden}.admin-share-track i{display:block;height:100%;border-radius:inherit;background:var(--primary,#6f5bd3)}.admin-daily-strip{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:5px;margin-top:14px}.admin-daily-strip div{display:grid;gap:3px;text-align:center;background:#f7f8fb;border-radius:8px;padding:7px 4px}.admin-daily-strip span{font-size:.6rem;color:var(--gray,#777c8f)}.admin-daily-strip strong{font-size:.72rem}@media(max-width:1000px){.admin-traffic-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-analytics-columns{grid-template-columns:1fr}.admin-daily-strip{grid-template-columns:repeat(7,minmax(0,1fr))}}@media(max-width:640px){.admin-analytics-head{display:grid}.admin-period-filter{justify-content:flex-start}.admin-traffic-stats{grid-template-columns:1fr 1fr}.admin-daily-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}


/* v2.0.25 · registration funnel */
.license-trial{background:#eef0ff;color:#5542b8}.admin-funnel-panel{margin:18px 0}.admin-funnel-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:14px}.admin-funnel-grid article{border:1px solid var(--border,#e7e9ef);border-radius:14px;padding:13px;background:#fff;display:grid;gap:4px}.admin-funnel-grid span{font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.035em;color:var(--gray,#777c8f)}.admin-funnel-grid strong{font-size:1.4rem}.admin-funnel-grid small{font-size:.65rem;color:var(--gray,#777c8f);line-height:1.35}.admin-registration-list-wrap{margin-top:14px;border:1px solid var(--border,#e7e9ef);border-radius:14px;background:#fff;overflow:hidden}.admin-registration-table{display:grid}.admin-registration-row{display:grid;grid-template-columns:120px minmax(180px,1.4fr) minmax(130px,.8fr) minmax(150px,1fr) minmax(120px,.8fr);gap:12px;align-items:center;padding:11px 14px;border-top:1px solid #f0f1f5;font-size:.75rem}.admin-registration-head{font-size:.64rem;font-weight:900;text-transform:uppercase;color:var(--gray,#777c8f);background:#fafbfc}.admin-registration-row strong,.admin-registration-row small{display:block;overflow-wrap:anywhere}.admin-registration-row small{font-size:.65rem;color:var(--gray,#777c8f);margin-top:2px}.admin-registration-status{display:grid;gap:3px}.admin-registration-status i{font-style:normal;font-size:.66rem;font-weight:850}.admin-registration-status i.ok{color:#16834b}.admin-registration-status i.pending{color:#8a6200}.onboarding-grid form{margin:0}.onboarding-grid form button{display:flex;width:100%;height:100%;flex-direction:column;text-align:left;border:1px solid var(--line);border-radius:15px;padding:17px;background:var(--bg);font:inherit;color:inherit;cursor:pointer}.onboarding-grid form button span{color:#757e90;font-size:.82rem;margin-top:3px}.onboarding-main-action{margin:0}
@media(max-width:1100px){.admin-funnel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-registration-row{grid-template-columns:110px minmax(180px,1.3fr) minmax(130px,.8fr) minmax(140px,1fr)}.admin-registration-row>span:last-child{grid-column:2/-1}}
@media(max-width:720px){.admin-funnel-grid{grid-template-columns:1fr 1fr}.admin-registration-table{overflow-x:auto}.admin-registration-row{min-width:760px}.onboarding-grid form button{min-height:82px}}

.admin-funnel-note{margin:-4px 0 14px;color:var(--gray,#777c8f);font-size:.7rem;font-weight:750}

/* v2.0.52 · Mappa Tavoli: nucleo familiare leggibile nel dashboard (non planner.css).
   Solo stili del modulo: le API, gli ID e il drag-and-drop non cambiano. */
.seating-workspace{grid-template-columns:minmax(320px,355px) minmax(0,1fr);gap:18px}
.seating-workspace>.unassigned-panel{display:flex;flex-direction:column;max-height:750px;min-width:0;padding-bottom:12px;overflow:hidden}
.seating-workspace .unassigned-panel>.panel-header{padding:16px 17px;flex:0 0 auto}
.seating-workspace .unassigned-panel .panel-copy{margin:10px 15px;color:#758095;font-size:.72rem;line-height:1.55;font-weight:650;flex:0 0 auto}
.seating-workspace .seating-family-panel{display:flex;flex-direction:column;flex:0 0 auto;min-height:0;max-height:355px;margin:5px 12px 12px;border:1px solid #e8d8bb;border-radius:15px;background:#fffaf2;overflow:hidden}
.seating-workspace .seating-family-head{display:flex;justify-content:space-between;align-items:flex-start;gap:9px;padding:13px 12px 10px;border-bottom:1px solid #eedfca;flex-shrink:0}
.seating-workspace .seating-family-head>div{min-width:0;display:grid;gap:4px}
.seating-workspace .seating-family-head strong{color:#30344c;font-size:.88rem;font-weight:900;line-height:1.28}
.seating-workspace .seating-family-head small{font-size:.72rem;color:#7b715f;line-height:1.42;font-weight:650}
.seating-workspace .seating-family-count{flex-shrink:0;background:#faecd4;border:1px solid #e8d1aa;color:#805e22;font-size:.66rem;font-weight:900;padding:5px 7px;border-radius:999px;white-space:nowrap}
.seating-workspace .seating-family-list{display:block;flex:1 1 auto;max-height:240px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px 11px;scrollbar-gutter:stable}
.seating-workspace .seating-family-item{margin-bottom:9px;min-width:0;background:#fff;border:1px solid #ebdfca;border-radius:12px;overflow:hidden;box-shadow:0 3px 9px rgba(50,40,20,.035)}
.seating-workspace .seating-family-drag{display:grid;gap:5px;min-width:0;padding:11px 11px 8px;background:#fff;cursor:grab;touch-action:pan-y}
.seating-workspace .seating-family-drag:hover{background:#fffcf6}
.seating-workspace .seating-family-drag:focus-visible{outline:3px solid #c6a16c;outline-offset:-3px}
.seating-workspace .seating-family-drag.is-family-selected{background:#fff0d2;box-shadow:inset 0 0 0 2px #bc9149}
.seating-workspace .seating-family-drag.is-guest-dragging{opacity:.55;cursor:grabbing}
.seating-workspace .seating-family-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 7px;min-width:0}
.seating-workspace .seating-family-title strong{min-width:0;overflow-wrap:anywhere;font-size:.82rem;font-weight:900;line-height:1.4;color:#35384d}
.seating-workspace .seating-family-title span{background:#f5f0e7;color:#7c6750;border-radius:999px;padding:3px 7px;font-size:.64rem;white-space:nowrap;font-weight:900}
.seating-workspace .seating-family-drag>small{font-size:.72rem;line-height:1.48;color:#72798b;overflow-wrap:anywhere}
.seating-workspace .seating-family-form{padding:0 10px 10px;min-width:0;margin:0}
.seating-workspace .seating-family-form select{display:block;min-width:0;max-width:100%;width:100%;border:1px solid #dde3eb;border-radius:9px;color:#3b455a;background:#f9fafc;padding:9px 8px;font-size:.72rem;line-height:1.4;cursor:pointer}
.seating-workspace .seating-family-form select:focus{border-color:#c6a16c;outline:2px solid #f2e2c9}
.seating-workspace .seating-family-footnote{flex:0 0 auto;margin:0;padding:8px 12px 10px;border-top:1px solid #eedfca;color:#806f53;font-size:.65rem;line-height:1.45}
.seating-workspace .seating-unassigned-subhead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:2px 15px 7px;flex:0 0 auto}
.seating-workspace .seating-unassigned-subhead strong{font-size:.79rem;color:#41475b}
.seating-workspace .seating-unassigned-subhead span{font-size:.68rem;color:#737f92;font-weight:850}
.seating-workspace .compact-search{display:flex;gap:5px;align-items:stretch;flex-direction:column;margin:0 13px 10px;flex:0 0 auto;max-width:none;width:auto;border:0;padding:0;background:transparent}
.seating-workspace .seating-search-label{position:static;display:block;font-size:.67rem;color:#777f90;font-weight:850;line-height:1.3}
.seating-workspace .compact-search input{display:block;position:static;flex:none;width:100%;min-width:0;max-width:none;margin:0;padding:10px 11px;min-height:40px;font-size:.80rem;border:1px solid #dfe4eb;border-radius:10px;background:#fff}
.seating-workspace .unassigned-list{flex:1 1 auto;min-height:118px;overflow-y:auto;overflow-x:hidden;padding:0 12px 10px}
.seating-workspace .seating-guest-pill{min-width:0;flex-wrap:wrap}
.seating-workspace .seating-guest-pill>div{min-width:0;overflow-wrap:anywhere}
.seating-workspace .guest-assign-form{min-width:0}
.seating-workspace .guest-assign-form select{max-width:100%}
@media(max-width:1320px){
  .seating-workspace{grid-template-columns:minmax(0,1fr)}
  .seating-workspace>.unassigned-panel{max-height:none}
  .seating-workspace .seating-family-list{max-height:260px}
  .seating-workspace .unassigned-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;max-height:280px}
}
@media(max-width:760px){
  .seating-workspace .unassigned-list{grid-template-columns:1fr}
  .seating-workspace .seating-family-head{flex-wrap:wrap}
  .seating-workspace .seating-family-list{max-height:300px}
}


/* 2.0.61 — Controllo qualità rendering, non modifica lo schema né i tavoli. */
.pm61-quality-switch{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid #dcd6d0;border-radius:11px;background:#f8f5f1;flex-wrap:nowrap;white-space:nowrap}
.pm61-quality-switch button{border:0!important;border-radius:8px!important;background:transparent!important;color:#574e46!important;padding:7px 9px!important;font:inherit!important;font-size:.68rem!important;font-weight:750!important;line-height:1.1!important;cursor:pointer}
.pm61-quality-switch button.is-active{background:#17334a!important;color:white!important;box-shadow:0 2px 7px rgba(11,37,51,.17)}
.pm61-quality-switch button:focus-visible{outline:3px solid #f0b973;outline-offset:1px}
@media(max-width:800px){.pm61-quality-switch button{padding:7px 6px!important;font-size:.62rem!important}.public-3d-header{max-height:36dvh;overflow:auto}.seating-room-toolbar-actions{flex-wrap:wrap}}

/* Planning Manager 2.0.70 — transparent status of real GLB assets */
.pm70-model-status{display:inline-flex;align-items:center;font-size:10px;line-height:1.4;padding:4px 8px;border-radius:8px;background:rgba(36,45,51,.10);color:inherit;max-width:280px;white-space:normal;}
.pm70-model-status[data-state="error"]{background:#fff0e7;color:#8b3417;font-weight:700;}
.pm70-public-status{position:absolute;top:12px;left:12px;z-index:18;color:#fff;background:rgba(14,24,30,.78);backdrop-filter:blur(3px);pointer-events:none;}
.pm70-public-status[data-state="error"]{color:#fff;background:rgba(143,39,25,.94);}

/* Planning Manager 2.0.74 — stato asset singolo tavolo */
.seating-3d-asset-status{position:absolute;left:12px;bottom:12px;z-index:4;pointer-events:none;max-width:80%;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.85);color:#535458;font-size:10px;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.seating-3d-asset-status[data-state="ok"]{color:#21654d}.seating-3d-asset-status[data-state="fallback"]{color:#9c5430}

/* PM 2.0.80 — asset catalog + load phases */
.pm280-catalog{margin-top:10px;padding:10px;background:rgba(255,255,255,.65);border:1px solid rgba(120,100,83,.22);border-radius:12px;}
.pm280-catalog>label{display:flex;align-items:center;gap:8px;margin:8px 0;color:#6a5a51;font-size:.74rem;}
.pm280-catalog input[type=search]{width:100%;min-width:0;padding:7px;border:1px solid #ccc0b3;border-radius:8px;}
.pm280-catalog-items{display:flex;flex-wrap:wrap;gap:6px;max-height:300px;overflow:auto;}
.pm280-catalog-heading{width:100%;font-size:.70rem;font-weight:900;color:#827268;margin-top:7px;}
.pm280-catalog-items button{font-size:.74rem;padding:5px 8px;border:1px solid #cabdae;border-radius:9px;background:#fff;cursor:pointer;}
.pm280-catalog-items button[hidden],.pm280-catalog-heading[hidden]{display:none!important;}
.pm280-progress{display:block;min-width:230px;max-width:330px;}
.pm280-progress strong{display:block;font-size:.74rem;}
.pm280-progress p{font-size:.63rem;margin:6px 0;}
.pm280-progress progress{width:100%;height:12px;accent-color:#a48265;}

/* 2.0.81 — catalogo compatto per i Planner */
.pm281-quick-wrap{border:1px solid rgba(145,120,91,.25);border-radius:12px;padding:9px;margin-bottom:8px;}
.pm281-quick-title{font-size:.75rem;font-weight:850;color:#876c54;margin-bottom:5px;}
.pm281-more-base{margin-top:8px;}
.pm281-more-base summary{cursor:pointer;padding:8px 6px;font-weight:650;font-size:.8rem;color:#66594d;}
.pm281-more-base .seating-room-object-palette{margin-top:7px;}
.pm281-catalog{border:1px solid rgba(145,120,91,.25);border-radius:12px;padding:10px;margin-top:8px;background:rgba(253,251,248,.9)}
.pm281-catalog-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.pm281-catalog-top .eyebrow{margin:0;font-size:.62rem;}
.pm281-catalog-top strong{font-size:.9rem;}
.pm281-total{font-size:.7rem;color:#877868;white-space:nowrap;}
.pm281-search{display:flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid #d7ccc0;border-radius:9px;margin:9px 0;}
.pm281-search input{width:100%;min-width:0;background:transparent;border:none;outline:none;font-size:.85rem;}
.pm281-tabs{display:flex;gap:5px;overflow-x:auto;scrollbar-width:thin;padding-bottom:5px;margin-bottom:6px;}
.pm281-tabs button{flex:none;cursor:pointer;background:#f2ede6;color:#6a5645;border:1px solid #d7c8b7;border-radius:18px;padding:6px 10px;font-size:.73rem;white-space:nowrap;}
.pm281-tabs button.is-active{background:#664c38;color:#fff;border-color:#664c38;}
.pm281-tabs small{opacity:.7;font-size:.67rem;}
.pm281-catalog-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:250px;overflow-y:auto;align-content:start;}
.pm281-catalog-items button{min-width:0;cursor:pointer;text-align:left;font-size:.74rem;padding:8px;border:1px solid #ded3c6;border-radius:9px;background:#fff;line-height:1.2;}
.pm281-catalog-items button[hidden],.pm281-catalog-empty[hidden]{display:none!important;}
.pm281-catalog-items button:hover{background:#f8f0e4;border-color:#bba586;}
.pm281-catalog-empty{font-size:.77rem;color:#8b7d70;margin:8px 0 0;}

/* PM 2.0.82 — Fullscreen 3D library, never cramped in the right sidebar. */
.pm282-library-launch{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 4px;padding:13px 15px;background:#624a3b;color:#fff;border:0;border-radius:12px;cursor:pointer;font:inherit;font-size:.86rem;font-weight:800;text-align:left}
.pm282-library-launch span{font-size:.7rem;font-weight:500;opacity:.85}
.pm282-open-button{white-space:nowrap}
.pm281-catalog.pm282-catalog-modal{position:fixed;inset:0;z-index:10020;display:flex;flex-direction:column;width:100vw;height:100dvh;max-width:none;max-height:none;padding:clamp(14px,2.2vw,30px);margin:0;border:0;border-radius:0;background:#f7f4ef;box-shadow:0 0 0 9999px rgba(24,20,18,.64);overflow:hidden;color:#3b322e}
.pm281-catalog.pm282-catalog-modal[hidden]{display:none!important}
.pm282-catalog-modal .pm281-catalog-top{flex:none;gap:18px;justify-content:flex-start;padding-bottom:12px;border-bottom:1px solid #ddd1c3}
.pm282-catalog-modal .pm281-catalog-top strong{font-size:clamp(1.25rem,2.3vw,2rem);line-height:1.25}
.pm282-catalog-modal .pm281-catalog-top .eyebrow{font-size:.8rem;margin-bottom:6px}
.pm282-catalog-modal .pm281-total{font-size:.84rem;margin-left:auto}
.pm282-catalog-close{background:#fff;color:#493c32;border:1px solid #c9bdb0;border-radius:12px;min-width:105px;padding:11px 15px;cursor:pointer;font-size:.86rem;font-weight:750}
.pm282-hint{font-size:.9rem;color:#77695e;margin:12px 0 0}
.pm282-catalog-modal .pm281-search{flex:none;width:100%;padding:13px 18px;margin:16px 0 10px;background:#fff;border:1px solid #d9cabc;border-radius:12px;font-size:1rem}
.pm282-catalog-modal .pm281-search input{font-size:1rem}
.pm282-catalog-modal .pm281-tabs{flex:none;flex-wrap:wrap;overflow:visible;gap:9px;padding:3px 0 14px;margin:0}
.pm282-catalog-modal .pm281-tabs button{font-size:.9rem;padding:11px 15px;border-radius:11px}
.pm282-catalog-modal .pm281-catalog-items{flex:1;min-height:0;max-height:none;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));align-content:start;gap:13px;padding:10px 5px 24px 0;overflow:auto}
.pm282-catalog-modal .pm281-catalog-items button{display:flex;align-items:center;gap:12px;min-height:86px;padding:16px 14px;border-radius:14px;box-shadow:0 2px 8px rgba(50,40,30,.03);font-size:1.28rem;background:white}
.pm282-catalog-modal .pm281-catalog-items button span{font-size:.91rem;font-weight:720;line-height:1.35}
.pm282-catalog-modal .pm281-catalog-items button:focus-visible,.pm282-catalog-close:focus-visible,.pm282-library-launch:focus-visible{outline:3px solid #ab785d;outline-offset:2px}
body.has-room-catalog-open{overflow:hidden}
@media(max-width:680px){.pm281-catalog.pm282-catalog-modal{padding:13px}.pm282-catalog-modal .pm281-catalog-top{flex-wrap:wrap}.pm282-catalog-modal .pm281-total{margin-left:0}.pm282-catalog-modal .pm281-catalog-top strong{font-size:1.15rem}.pm282-catalog-modal .pm281-tabs{flex-wrap:nowrap;overflow-x:auto}.pm282-catalog-modal .pm281-catalog-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pm282-catalog-modal .pm281-catalog-items button{padding:10px 9px;min-height:75px}.pm282-catalog-modal .pm281-catalog-items button span{font-size:.8rem}.pm282-hint{font-size:.8rem}}

/* 2.0.83: ONE catalog for all furnishing and decorating tools. */
.pm283-unified-hint{margin:8px 0 12px;padding:12px 14px;color:#655343;font-size:.81rem;background:#f7f1ea;border:1px solid #e7d9cc;border-radius:12px;line-height:1.5}
.pm282-catalog-modal .pm281-catalog-items button{flex-wrap:wrap;justify-content:flex-start;text-align:left;align-content:center;gap:7px 10px}
.pm282-catalog-modal .pm281-catalog-items button span{flex:1 1 calc(100% - 40px)}
.pm282-catalog-modal .pm281-catalog-items button small{flex:1 1 100%;margin-left:0;color:#866e5d;font-size:.68rem;font-weight:600}
.pm282-catalog-modal .pm281-catalog-items button[data-object-render="glb"] small{color:#356e5e}
.pm282-catalog-modal .pm281-tabs button small{margin-left:3px;opacity:.7}
@media(max-width:680px){.pm282-catalog-modal .pm281-catalog-items button span{font-size:.8rem}}

/* PM 2.0.83 — actual GLB snapshots generated offline. No live WebGL in the library. */
.pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview{min-height:188px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:7px;padding:9px;font-size:0;text-align:left}
.pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview img{display:block;width:100%;height:124px;object-fit:contain;background:#eeebe5;border-radius:9px}
.pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview span{flex:none;font-size:.83rem;line-height:1.25;margin:0 3px}
.pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview small{flex:none;font-size:.65rem;margin:0 3px}
@media(max-width:600px){.pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview img{height:100px}.pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview{min-height:162px}}
/* On narrow screens show a single readable row per object, not squeezed thumbnails. */
@media(max-width:680px){
  .pm282-catalog-modal .pm281-catalog-items{grid-template-columns:minmax(0,1fr);}
  .pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview{display:grid!important;grid-template-columns:115px minmax(0,1fr);grid-template-rows:auto auto;column-gap:11px;row-gap:6px;align-content:center;align-items:center;min-height:126px;padding:9px;font-size:0;}
  .pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview img{grid-area:1 / 1 / span 2 / 2;display:block;width:110px;max-width:110px;height:100px;object-fit:contain;}
  .pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview span{grid-area:1 / 2 / 2 / 3;margin:0;min-width:0;font-size:.92rem;}
  .pm282-catalog-modal .pm281-catalog-items button.pm283-has-preview small{grid-area:2 / 2 / 3 / 3;margin:0;min-width:0;font-size:.72rem;}
  .pm282-catalog-modal .pm281-catalog-items button:not(.pm283-has-preview){min-height:80px;}
}

/* PM 2.0.85 · illuminazione giorno/sera e controllo altezza arredi */
.pm285-light-switch{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;border:1px solid #cbbba6;border-radius:10px;padding:3px;background:#fffaf3;min-width:0}
.pm285-light-switch button{border:0;background:transparent;border-radius:7px;padding:6px 9px;cursor:pointer;font:inherit;font-size:.78rem;font-weight:750;color:#514436;white-space:nowrap}
.pm285-light-switch button.is-active{background:#6c513a;color:white}
.pm285-light-switch button:focus-visible,.pm285-height-controls button:focus-visible{outline:3px solid #4b8ccf;outline-offset:2px}
.pm285-height-editor{margin:12px 0;padding:11px;border:1px solid #e3d7c8;border-radius:12px;background:#fffdf9}
.pm285-height-editor>label{display:block;font-weight:800;font-size:.78rem;margin-bottom:7px}
.pm285-height-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pm285-height-controls button{background:#f0e8de;border:1px solid #dbcdbd;border-radius:8px;padding:7px 10px;color:#45382e;cursor:pointer;font-size:.74rem}
.pm285-height-controls input{width:77px;min-width:0;flex:0 0 77px;border:1px solid #cbbba6;border-radius:8px;padding:7px;font-size:.84rem}
.pm286-light-editor{margin:12px 0;padding:11px;border:1px solid #dfd3ef;border-radius:12px;background:#fdfaff;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pm286-light-editor[hidden]{display:none!important}.pm286-light-editor label{display:flex;flex-direction:column;gap:6px;font-weight:800;font-size:.74rem;color:#4c445d}.pm286-light-editor input[type=color],.pm286-light-editor input[type=number],.pm286-light-editor input[type=range]{width:100%}.pm286-light-editor input[type=number],.pm286-light-editor input[type=color]{border:1px solid #cdbfe0;border-radius:8px;padding:7px;background:#fff}.pm286-light-editor output{font-weight:900;color:#6b4ea0}.pm286-light-editor p{grid-column:1/-1;margin:0!important}
@media(max-width:760px){.pm285-light-switch{width:100%}.pm285-light-switch button{flex:1}.pm285-height-controls button{flex:1}.pm286-light-editor{grid-template-columns:1fr}}

/* PM 2.0.91 — Scelta accessibile degli arredi presenti (non modifica la scena). */
.pm291-object-picker{padding:13px!important;margin-top:12px;border:1px solid #d6c9b7!important;border-radius:14px;background:#fffdfa}
.pm291-picker-heading{display:flex;justify-content:space-between;align-items:center;gap:9px}
.pm291-picker-heading strong{font-size:.83rem;color:#302b33}
.pm291-picker-heading span{font-size:.7rem;color:#74665d;white-space:nowrap}
.pm291-picker-explainer{font-size:.7rem!important;line-height:1.45;margin:7px 0 10px!important;color:#5e6067!important}
.pm291-picker-search{display:block}.pm291-picker-search input{box-sizing:border-box;width:100%;min-height:39px;padding:9px 11px;border:1px solid #cfc7bb;border-radius:10px;background:#fff;font:inherit;font-size:.75rem}
.pm291-picker-filter{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:750;margin:10px 0;color:#473b35;cursor:pointer}
.pm291-picker-filter input{width:17px;height:17px;accent-color:#806452}
.pm291-picker-list{display:grid;gap:5px;max-height:235px;overflow:auto;padding-right:3px;scrollbar-width:thin}
.pm291-picker-entry{width:100%;display:flex;gap:9px;align-items:center;text-align:left;border:1px solid #e3dfd8;background:#fff;border-radius:10px;padding:8px 9px;min-height:46px;cursor:pointer;font:inherit;color:#47424b}
.pm291-picker-entry:hover,.pm291-picker-entry:focus-visible{border-color:#9b7c60;outline:2px solid transparent;background:#f5efe8}
.pm291-picker-entry.is-selected{border-color:#54a29e;background:#e9f6f4;box-shadow:inset 3px 0 0 #3e9892}
.pm291-picker-icon{font-size:1.2rem;min-width:26px;text-align:center}
.pm291-picker-copy{display:grid;min-width:0;gap:2px}.pm291-picker-copy strong{font-size:.74rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pm291-picker-copy small{font-size:.63rem;color:#777077}
.pm291-picker-empty{font-size:.72rem;color:#6b6660;margin:7px 0!important}
.pm291-focus-object{display:block;width:100%;padding:9px;margin:11px 0 8px;border:1px solid #87b9b3;border-radius:10px;background:#e9f6f4;color:#2f716e;font-size:.76rem;font-weight:800;cursor:pointer}
.pm291-focus-object:focus-visible{outline:3px solid #347b79;outline-offset:2px}

/* PM 2.0.92 – Clipboard oggetti già presenti, touch-friendly. */
.pm292-object-clipboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:9px 0 7px}
.pm292-object-clipboard button,.pm292-picker-clipboard button{min-height:40px;border:1px solid #b8cfc9;border-radius:9px;background:#ecf8f5;color:#215a54;font:inherit;font-size:.75rem;font-weight:800;cursor:pointer;padding:7px 6px}
.pm292-object-clipboard button:disabled,.pm292-picker-clipboard button:disabled{opacity:.45;cursor:not-allowed}
.pm292-object-clipboard button:focus-visible,.pm292-picker-clipboard button:focus-visible{outline:3px solid #398b83;outline-offset:2px}
.pm292-picker-clipboard{display:grid;gap:5px;margin-bottom:10px}
.pm292-picker-clipboard small{font-size:.68rem;color:#66716f;line-height:1.35}
@media(max-width:680px){.pm292-object-clipboard button{font-size:.69rem;min-height:43px}}
