@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700;750&display=swap');
:root{font-family:'DM Sans',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#212331;background:#f6f7f9;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b9b1ff;outline-offset:2px}[hidden]{display:none!important}.app{min-height:100vh;display:flex}.sidebar{width:238px;background:#fff;border-right:1px solid #eceef2;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0;padding:28px 14px 16px}.brand{display:flex;align-items:center;gap:11px;padding:0 9px;margin-bottom:53px}.brand-mark{width:39px;height:39px;display:grid;place-items:center;background:#6454e8;color:white;border-radius:12px;font-size:25px;letter-spacing:-2px;font-weight:750}.brand-mark span{color:#bcb5ff}.brand strong{font-size:16px;letter-spacing:-.5px}.brand small{display:block;color:#9ba0ac;font-size:10px;margin-top:3px}.sidebar-label{padding:0 17px;font-size:10px;letter-spacing:1.25px;color:#9aa0ad;font-weight:700;margin-bottom:13px}.tabs{display:grid;gap:5px}.tabs button{display:flex;gap:13px;align-items:center;border:0;background:transparent;text-align:left;width:100%;height:44px;border-radius:9px;color:#717786;padding:0 14px;font-size:13px;font-weight:600}.tabs button:hover{background:#f7f7fc}.tabs button.active{color:#6150dc;background:#f1efff}.nav-icon{font-size:19px;width:21px;text-align:center;font-weight:500}.sidebar-bottom{margin-top:auto}.support{background:#f6f5ff;border:1px solid #ebe8ff;border-radius:13px;padding:17px 14px;margin-bottom:23px}.support-icon{display:block;font-size:19px;color:#6656e9;margin-bottom:9px}.support strong{font-size:12px}.support p{font-size:11px;line-height:1.7;color:#8b8b9a;margin:7px 0 0}.user{display:flex;align-items:center;gap:9px;border-top:1px solid #f0f0f3;padding:17px 5px 0}.avatar,.top-avatar{background:#e8e5ff;color:#6953db;display:grid;place-items:center;border-radius:50%;font-size:10px;font-weight:700;width:32px;height:32px;flex-shrink:0}.user strong{font-size:11px;display:block}.user small{font-size:10px;color:#a1a4af}.more{margin-left:auto;color:#9da0a9}.workspace{min-width:0;flex:1}.topbar{height:78px;border-bottom:1px solid #ebedf1;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,3.2vw,56px);background:#fff}.breadcrumbs{font-size:12px;color:#9aa0ad}.breadcrumbs span{padding:0 11px;color:#c6c8cf}.breadcrumbs strong{color:#444956;font-weight:600}.top-actions{display:flex;align-items:center;gap:22px}.connection{font-size:11px;color:#8c8f9e;white-space:nowrap}.search-box{display:flex;align-items:center;gap:8px;background:#f7f8fa;border:1px solid #eff0f3;border-radius:10px;padding:0 13px;height:36px;color:#9296a1}.search-box input{border:0;background:transparent;outline:0;font-size:11px;width:185px;color:#353744}.top-avatar{width:31px;height:31px}main{padding:37px clamp(20px,3.2vw,56px) 24px;max-width:1740px;margin:auto}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:36px}.eyebrow{font-size:10px;letter-spacing:1.3px;color:#949ba8;font-weight:700;margin-bottom:12px}.eyebrow-dot{color:#6958e4;padding:0 5px}h1,h2,p{margin:0}h1{font-size:29px;font-weight:650;letter-spacing:-1.1px}.intro-desc{font-size:12px;color:#9a9eaa;margin-top:9px}.primary{height:38px;background:#6454e8;color:white;border:1px solid #6454e8;padding:0 17px;border-radius:9px;font-size:12px;font-weight:650;box-shadow:0 4px 10px #6252dd1a;white-space:nowrap}.primary:hover{background:#5240d1}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 17px}.section-heading h2,.card-heading h2,.table-top h2{font-size:15px;letter-spacing:-.3px;font-weight:700}.section-heading p,.card-heading p,.table-top p{font-size:11px;color:#9da1ac;margin-top:6px}.period{font-size:11px;color:#868b99;border:1px solid #e9eaf0;background:white;border-radius:7px;padding:8px 10px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.kpi,.chart-card,.table-card,.secondary-kpis article{background:#fff;border:1px solid #eaebf0;border-radius:13px;box-shadow:0 3px 15px #25254304}.kpi{padding:20px 20px 19px;min-height:143px}.kpi-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:#797f8d;gap:8px}.kpi-icon{border-radius:10px;width:31px;height:31px;display:grid;place-items:center;font-size:16px}.violet{color:#6d5bed;background:#f1efff}.blue{color:#409cd3;background:#eaf6fd}.amber{color:#d9a042;background:#fff6e8}.gray{color:#7b8395;background:#f1f2f5}.kpi strong{display:block;font-size:clamp(19px,1.8vw,27px);letter-spacing:-.9px;margin:14px 0 7px;font-weight:700;white-space:nowrap}.kpi small{font-size:10px;color:#a2a6b2}.positive{color:#4cab79}.charts{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);gap:16px;margin-top:20px}.chart-card{padding:22px 21px 15px;min-width:0}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.chart-tag{color:#777f8a;font-size:10px;white-space:nowrap}.chart-tag i{display:inline-block;width:8px;height:8px;background:#6959e8;border-radius:50%;margin-right:5px}.dots{font-weight:800;color:#a4a7af}.canvas-container{height:278px;margin-top:25px}.canvas-container canvas{width:100%!important;height:100%!important}.pie-wrap{height:280px;display:grid;place-items:center;max-width:100%;margin-top:14px}.pie-wrap canvas{max-height:258px}.secondary-kpis{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 32px}.secondary-kpis article{display:flex;align-items:center;gap:10px;padding:18px 20px;font-size:12px;color:#808593}.secondary-kpis strong{margin-left:auto;color:#282b39;font-size:16px;letter-spacing:-.3px}.small-indicator{width:9px;height:9px;border-radius:50%}.green-dot{background:#4fb793}.purple-dot{background:#a896ee}.table-card{overflow:hidden;margin-top:12px}.table-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:24px 23px 19px}.count{font-size:11px;background:#f5f5f8;color:#838694;padding:8px 12px;border-radius:7px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}thead{background:#fafafb}th{font-size:10px;font-weight:700;letter-spacing:.7px;color:#999daa;padding:14px 18px}td{padding:16px 18px;font-size:12px;color:#5c6270;border-top:1px solid #f0f1f4}td:first-child{font-weight:700;color:#888e9b}tbody tr:hover{background:#fcfcff}.pill{background:#ebf8f0;color:#378760;display:inline-flex;align-items:center;border-radius:6px;font-size:10px;padding:5px 9px;font-weight:650}.pill.waiting{background:#fff5e5;color:#c1943c}.pill.off{background:#fdebed;color:#c46c76}.actions{display:flex;gap:7px}.actions button{border:1px solid #e8e8ef;background:white;color:#6b60ce;border-radius:6px;padding:6px 9px;font-size:10px}.actions button.delete{color:#cc7780}.actions button:hover{background:#f7f6ff}.empty{text-align:center;color:#9196a3;padding:30px}.modal-backdrop{position:fixed;inset:0;background:#1f223b70;display:grid;place-items:center;z-index:50;padding:20px}.modal{width:min(530px,100%);max-height:90vh;overflow:auto;background:white;border-radius:16px;padding:26px;box-shadow:0 20px 65px #0002}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.modal-head h2{font-size:19px}.close{border:0;background:#f6f6f8;border-radius:8px;width:32px;height:32px;font-size:19px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#686b78;font-weight:650}.field input,.field select{height:39px;border:1px solid #e7e9ef;border-radius:8px;padding:0 11px;color:#343747;min-width:0}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.secondary{height:38px;border:1px solid #e4e5ed;background:white;border-radius:8px;padding:0 16px;font-size:12px}.toast{position:fixed;bottom:25px;right:25px;background:#272535;color:white;padding:12px 20px;border-radius:9px;box-shadow:0 10px 30px #0002;z-index:70;font-size:12px}footer{color:#b1b4be;font-size:10px;text-align:center;padding:29px 0}footer span{padding:0 8px}@media(max-width:1180px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.charts{grid-template-columns:1fr}.pie-wrap{height:250px}}@media(max-width:700px){.app{display:block}.sidebar{width:100%;height:auto;position:static;padding:12px 16px}.brand{margin:0 0 15px}.sidebar-label,.support,.user{display:none}.tabs{display:flex;overflow-x:auto;gap:4px}.tabs button{white-space:nowrap;width:auto;padding:0 11px;font-size:11px}.topbar{padding:0 16px;height:63px}.connection,.top-avatar{display:none}.top-actions{gap:6px}.search-box input{width:140px}main{padding:23px 16px}.page-intro{align-items:flex-start}.page-intro h1{font-size:23px}.intro-desc{max-width:230px;line-height:1.4}.kpis{gap:9px}.kpi{padding:15px;min-height:124px}.kpi strong{font-size:18px}.section-heading p{max-width:240px}.period{display:none}.secondary-kpis{grid-template-columns:1fr;gap:9px}.form-grid{grid-template-columns:1fr}}

/* Versione 3: utility e modalita scura */
.toolbar-button{height:35px;border:1px solid #e7e8ee;background:#fff;border-radius:9px;padding:0 12px;color:#656879;font-size:11px;font-weight:650;white-space:nowrap}
.toolbar-button:hover{background:#f3f1ff;color:#6252dc}tbody tr[data-row-id]{cursor:pointer}tbody tr[data-row-id]:hover{background:#f5f2ff}.import-help{line-height:1.65;font-size:12px;color:#7f8391;margin-bottom:18px}.import-preview{margin-top:15px;border:1px solid #e9ebf1;background:#f8f9fb;padding:14px;border-radius:10px;font-size:11px;line-height:1.6;white-space:pre-wrap;word-break:break-word;max-height:185px;overflow:auto}
:root[data-theme="dark"]{color-scheme:dark;color:#e7e8f0;background:#12141d}
:root[data-theme="dark"] body,:root[data-theme="dark"] .workspace{background:#12141d;color:#e7e8f0}
:root[data-theme="dark"] .sidebar,:root[data-theme="dark"] .topbar,:root[data-theme="dark"] .kpi,:root[data-theme="dark"] .chart-card,:root[data-theme="dark"] .table-card,:root[data-theme="dark"] .secondary-kpis article,:root[data-theme="dark"] .modal{background:#1d202d;border-color:#313544;color:#edf0fa}
:root[data-theme="dark"] .brand strong,:root[data-theme="dark"] .breadcrumbs strong,:root[data-theme="dark"] .secondary-kpis strong,:root[data-theme="dark"] h1,:root[data-theme="dark"] h2,:root[data-theme="dark"] .user strong{color:#edf0fa}
:root[data-theme="dark"] .tabs button{color:#afb5c7}:root[data-theme="dark"] .tabs button.active,:root[data-theme="dark"] .tabs button:hover{background:#322d52;color:#c4b9ff}
:root[data-theme="dark"] .search-box,:root[data-theme="dark"] .toolbar-button,:root[data-theme="dark"] .period,:root[data-theme="dark"] .secondary,:root[data-theme="dark"] .field input,:root[data-theme="dark"] .field select,:root[data-theme="dark"] .close,:root[data-theme="dark"] .count,:root[data-theme="dark"] .import-preview{background:#292d3a;border-color:#393d4a;color:#e6e7f1}
:root[data-theme="dark"] .search-box input{color:#e6e7f1}:root[data-theme="dark"] thead{background:#242735}:root[data-theme="dark"] td{border-color:#313544;color:#c5c9d6}:root[data-theme="dark"] tbody tr[data-row-id]:hover{background:#29273e}
:root[data-theme="dark"] .support{background:#2a2642;border-color:#403960}:root[data-theme="dark"] .kpi-top{color:#afb4c5}:root[data-theme="dark"] .pill{background:#213b32;color:#9be3bc}:root[data-theme="dark"] .pill.waiting{background:#493d2b;color:#f1cf88}:root[data-theme="dark"] .pill.off{background:#4a2d38;color:#ffa7bc}
@media(max-width:700px){.toolbar-button{padding:0 8px;font-size:10px}.top-actions{gap:5px}.search-box input{width:90px}}
.danger{color:#c95368;border-color:#edc7ce;margin-right:auto}:root[data-theme="dark"] .danger{color:#ff9daa}

/* Magazzino e notifiche fornitori */
.warning-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#eb3b53;box-shadow:0 0 0 0 rgba(235,59,83,.6);margin-right:8px;vertical-align:middle;animation:stockPulse 1.35s infinite}
@keyframes stockPulse{0%{box-shadow:0 0 0 0 rgba(235,59,83,.55)}70%{box-shadow:0 0 0 7px rgba(235,59,83,0)}100%{box-shadow:0 0 0 0 rgba(235,59,83,0)}}
@media(prefers-reduced-motion:reduce){.warning-dot{animation:none}}
.field.wide{grid-column:1/-1}.field textarea{min-height:95px;resize:vertical;border:1px solid #e7e9ef;border-radius:8px;padding:11px;color:#343747;font:inherit}.material-info{margin:16px 0 0;color:#77738e;font-size:12px;background:#f5f3ff;border-radius:8px;padding:12px}.field input[readonly]{background:#f2f3f7;cursor:not-allowed}
:root[data-theme="dark"] .material-info{background:#2b2941;color:#c0b9dd}:root[data-theme="dark"] .field textarea,:root[data-theme="dark"] .field input[readonly]{background:#242838;color:#f1f1ff;border-color:#3b4052}

/* Versione 5: importazione contestuale e dashboard specifiche */
.drop-zone{padding:32px 18px;border:2px dashed var(--border,#d9dce6);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;cursor:pointer;background:var(--card,#fff);transition:.2s;margin:16px 0;color:var(--text,#2a2d3c)}
.drop-zone:hover,.drop-zone.is-dragging{border-color:#7968e7;background:rgba(112,95,230,.08)}.drop-icon{font-size:32px;color:#7968e7}.drop-zone span{font-size:12px;opacity:.75}.drop-zone u{color:#7968e7}
.section-analytics{margin:0 0 22px}.analytics-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.analytics-tile,.analytics-chart{background:var(--card,var(--surface,#fff));border:1px solid var(--border,#e5e7ee);border-radius:16px;padding:22px;color:var(--text,inherit)}.analytics-tile span{display:block;font-size:13px;opacity:.7}.analytics-tile strong{display:block;font-size:26px;margin-top:12px;letter-spacing:-.8px}.analytics-charts{display:grid;grid-template-columns:1.5fr 1fr;gap:14px}.analytics-chart h3{margin:0 0 5px;font-size:15px}.analytics-chart p{font-size:12px;opacity:.6;margin:0 0 18px}.analytics-canvas{height:250px;position:relative}.analytics-canvas canvas{width:100%!important;height:100%!important}.type-note{font-size:12px;color:#a06a21;padding:6px 2px}.field select:disabled{opacity:.65}@media(max-width:760px){.analytics-summary{grid-template-columns:1fr}.analytics-charts{grid-template-columns:1fr}}
:root[data-theme="dark"] .drop-zone,:root[data-theme="dark"] .analytics-tile,:root[data-theme="dark"] .analytics-chart{background:#202331;border-color:#393e50;color:#eef0f7}

.site-map-panel{background:var(--card,var(--surface,#fff));border:1px solid var(--border,#e5e7ee);padding:20px;border-radius:16px;margin-bottom:22px}.site-map-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.site-map-header h2{font-size:16px;margin:0 0 5px}.site-map-header p,.map-info{font-size:12px;opacity:.7;margin:6px 0}.site-map{height:360px;border-radius:12px;z-index:0;background:#e8edf0}.site-map-panel[hidden]{display:none}.section-analytics:has(.analytics-chart:only-child) .analytics-charts{grid-template-columns:1fr}.section-analytics:has(.analytics-chart:only-child) .analytics-canvas{height:320px}:root[data-theme="dark"] .site-map-panel{background:#202331;border-color:#393e50;color:#eef0f7}@media(max-width:700px){.site-map-header{align-items:flex-start;flex-direction:column}.site-map{height:280px}}

/* Correzione stabilita mappa Cantieri: containment totale dei layer Leaflet. */
.site-map-panel{min-width:0;max-width:100%;overflow:hidden;isolation:isolate}
.site-map{display:block;position:relative;width:100%;max-width:100%;min-width:0;height:360px;overflow:hidden;clip-path:inset(0 round 12px);contain:layout paint;border-radius:12px;background:#e8edf0;touch-action:pan-x pan-y}
.site-map.leaflet-container{font:inherit;z-index:0}
.site-map .leaflet-map-pane,.site-map .leaflet-tile-pane,.site-map .leaflet-overlay-pane,.site-map .leaflet-marker-pane,.site-map .leaflet-shadow-pane,.site-map .leaflet-popup-pane{max-width:none}
.site-map .leaflet-tile,.site-map .leaflet-marker-icon,.site-map .leaflet-marker-shadow{max-width:none!important;max-height:none!important}
.site-map .leaflet-control-container{position:relative;z-index:1}
@media(max-width:700px){.site-map{height:280px}}

/* V6.2: contenitore stabile, senza cicli di resize o espansione dei tile */
.site-map-panel{min-width:0;overflow:hidden}
.site-map{width:100%;box-sizing:border-box;overflow:hidden;contain:paint}
.site-map .leaflet-container{max-width:100%}

/* V6.3: contenitore mappa non espandibile, elenco indirizzi consultabile. */
.site-map-layout{display:grid;grid-template-columns:minmax(210px,280px) minmax(0,1fr);gap:14px;min-width:0;max-width:100%}
.site-map-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto;min-width:0}
.site-address{border:1px solid var(--border,#dce0e9);background:var(--card,#fff);color:inherit;text-align:left;padding:12px;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere;font:inherit}
.site-address strong{font-size:13px}.site-address span{font-size:12px;opacity:.72;line-height:1.4}
.site-address.selected{border-color:#887bee;background:rgba(115,96,232,.09)}
.site-map{min-width:0;max-width:100%;width:100%;height:360px;overflow:hidden;border-radius:12px;contain:layout paint;clip-path:inset(0 round 12px);background:#e8edf0}
.site-map iframe{display:block;position:relative;width:100%;height:100%;border:0;max-width:100%;border-radius:12px}
.map-external-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}
@media(max-width:760px){.site-map-layout{grid-template-columns:minmax(0,1fr)}.site-map-list{max-height:150px}.site-map{height:290px}}


/* V6.5: responsive desktop / tablet / mobile */
html{min-width:320px}body{min-width:320px;overflow-x:hidden}.workspace,main,.chart-card,.analytics-chart,.site-map-panel,.table-card{min-width:0;max-width:100%}
.table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.table-scroll table{width:100%;min-width:850px}.table-scroll th,.table-scroll td{white-space:nowrap}
.sidebar-backdrop,.menu-btn,.close-menu{display:none}
.search-box{min-width:0}.search-box input{min-width:0}.analytics-tile{min-width:0}.analytics-tile strong{overflow-wrap:anywhere;font-size:clamp(19px,2vw,26px)}
.site-map-layout{min-width:0}.site-map iframe{max-width:100%}
:root[data-theme="dark"] .menu-btn,:root[data-theme="dark"] .close-menu{background:#292d3a;color:#f0f1ff;border-color:#393d4a}
@media (min-width:701px) and (max-width:1199px){
 .sidebar{width:202px;padding:22px 10px 14px}.brand{margin-bottom:30px;padding:0 6px}.tabs button{padding:0 10px;gap:9px}
 .topbar{padding-inline:22px}.top-actions{gap:10px}.search-box input{width:140px}main{padding:28px 22px}
 .analytics-charts{grid-template-columns:minmax(0,1fr)}.analytics-summary{gap:10px}.analytics-tile,.analytics-chart{padding:16px}
 .site-map-layout{grid-template-columns:minmax(175px,35%) minmax(0,1fr)}
}
@media(max-width:700px){
 .app{display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:101;width:min(290px,86vw);height:100dvh;overflow-y:auto;padding:24px 16px;transform:translateX(-105%);transition:transform .22s ease;box-shadow:16px 0 48px #0002}
 body.menu-open .sidebar{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#1012259c;z-index:100}
 .sidebar-backdrop[hidden]{display:none!important}.sidebar .brand{margin-bottom:35px}.sidebar-label{display:block}.tabs{display:grid;gap:5px;overflow:visible}.tabs button{width:100%;height:46px;font-size:13px;padding:0 14px}.sidebar-bottom{margin-top:34px}.sidebar .user{display:flex}.sidebar .support{display:block}
 .menu-btn,.close-menu{display:grid;place-items:center;border:1px solid #e7e8ee;background:#fff;color:#54566b;border-radius:9px;width:38px;height:38px;flex:0 0 38px;font-size:20px}
 .close-menu{position:absolute;right:12px;top:20px;width:34px;height:34px}.topbar{height:auto;min-height:68px;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px 12px;padding:12px 16px}
 .breadcrumbs{align-self:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;min-width:0;width:100%}
 .search-box{width:100%;min-width:0;height:40px}.search-box input{width:100%;font-size:12px}.toolbar-button{height:40px;padding:0 11px;font-size:11px}.connection,.top-avatar{display:none}
 main{padding:22px 14px 16px}.page-intro{flex-direction:column;align-items:stretch;gap:15px;margin-bottom:24px}.page-intro h1{font-size:25px}.page-intro .primary{width:100%;height:44px}.intro-desc{max-width:none}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi{min-width:0;padding:14px 12px;min-height:125px}.kpi strong{white-space:normal;overflow-wrap:anywhere;font-size:clamp(17px,4vw,23px)}.kpi-top{font-size:11px}.kpi-icon{flex-shrink:0}
 .charts,.analytics-charts{grid-template-columns:minmax(0,1fr);gap:12px}.chart-card,.analytics-chart{padding:16px 13px}.canvas-container{height:235px;margin-top:15px}.pie-wrap{height:230px}.analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.analytics-tile{padding:15px 12px}.analytics-tile strong{font-size:19px}.analytics-canvas{height:235px}
 .secondary-kpis{grid-template-columns:1fr}.secondary-kpis article{padding:14px}.secondary-kpis strong{font-size:14px}.table-top{padding:17px 15px;align-items:flex-start}.table-top h2{font-size:14px}.table-scroll table{min-width:780px}.table-scroll th,.table-scroll td{padding:12px 14px}
 .site-map-panel{padding:14px}.site-map-layout{grid-template-columns:minmax(0,1fr)}.site-map-list{max-height:170px}.site-map{height:270px}.map-external-link{max-width:100%}
 .modal-backdrop{padding:10px;align-items:center}.modal{width:100%;max-height:calc(100dvh - 20px);padding:18px;border-radius:13px}.form-grid{grid-template-columns:minmax(0,1fr)}.form-actions{flex-wrap:wrap}.form-actions button{flex:1 1 auto;min-height:42px}.form-actions .danger{flex-basis:100%}.drop-zone{padding:24px 12px}.toast{bottom:12px;left:12px;right:12px;text-align:center}
}
@media(max-width:380px){.topbar{padding-inline:10px}.top-actions{gap:5px}.toolbar-button{padding:0 7px;font-size:10px}main{padding-inline:10px}.kpis{grid-template-columns:minmax(0,1fr)}.analytics-summary{grid-template-columns:minmax(0,1fr)}.chart-tag{display:none}.table-top{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}

/* v7 distinta base e preventivi */
.bom-area{margin:14px 0;padding:16px;border:1px solid var(--border,#dde0ea);border-radius:12px;min-width:0;background:rgba(125,115,190,.035)}.bom-area[hidden]{display:none}.bom-area h3{font-size:14px;margin:0 0 8px}.bom-area p{font-size:12px;line-height:1.5}.bom-edit-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(90px,1fr) auto;gap:8px;margin:8px 0}.bom-edit-row input,.bom-edit-row select{width:100%;min-width:0;padding:10px;border:1px solid #d7d9e3;border-radius:8px;background:var(--card,#fff);color:inherit}.bom-edit-row button{padding:8px}.bom-line{display:flex;flex-wrap:wrap;gap:8px 15px;border-bottom:1px solid #ddd4;padding:8px 0;font-size:12px}.bom-line span:first-child{font-weight:700;flex:1 1 100%}.bom-warning{color:#d44e4e}.bom-ok{color:#1c9b64}.bom-total{font-weight:700}.modal{overflow-y:auto}@media(max-width:700px){.bom-edit-row{grid-template-columns:minmax(0,1fr) 95px}.bom-edit-row button{grid-column:1/-1}}

.bom-stock{grid-column:1/-1;font-size:12px;opacity:.85;padding:2px 0 8px}.bom-edit-row{border-bottom:1px solid #9993;padding-bottom:8px}

/* v8.3 scheda nuovo prodotto */
.product-modal{width:min(940px,calc(100vw - 30px));padding:28px 30px;position:relative}.product-modal .modal-head{margin-bottom:24px}.product-modal #record-form{display:block}.product-modal .product-photo-panel{float:left;width:27%;margin-right:2%;margin-bottom:12px}.product-upload{display:flex;cursor:pointer;align-items:center;justify-content:center;background:var(--surface-soft,#f3f4f8);border:1px dashed #cbd0db;border-radius:12px;aspect-ratio:1/1;overflow:hidden}.product-upload img{width:100%;height:100%;object-fit:cover}.product-upload strong{display:block;font-size:38px;font-weight:300;text-align:center}.product-upload small{font-size:11px}.product-photo-panel p{font-size:10px;opacity:.65;margin-top:8px}.product-modal .product-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px;min-height:250px}.product-modal .product-fields .field:nth-child(3){grid-column:1/-1}.product-modal .product-fields .field:nth-child(6){grid-column:1/-1;grid-row:2}.product-modal .product-fields .field:nth-child(7){grid-column:1/-1}.product-modal .product-fields textarea{height:104px;resize:vertical;border:1px solid #e7e9ef;border-radius:8px;padding:12px;font:inherit}.product-modal .product-materials{clear:both;border:0;background:transparent;padding:20px 0 0}.materials-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.materials-header h3{font-size:15px}.materials-header p{margin-top:6px}.material-row{display:grid;grid-template-columns:minmax(160px,2.2fr) minmax(75px,.75fr) minmax(72px,.7fr) minmax(85px,.8fr) 34px;gap:9px;align-items:end;margin:10px 0}.material-row label{font-size:11px;display:grid;gap:5px;color:var(--text-muted,#777b8c)}.material-row select,.material-row input{width:100%;min-width:0;height:42px;padding:8px;border:1px solid #d9dce6;border-radius:8px;background:var(--card,#fff);color:inherit}.material-remove{height:42px;border:0;background:none;color:#d15266;font-size:25px}.material-row .bom-stock{grid-column:1/-1;padding:0 0 8px}.materials-total{text-align:right;font-size:13px;font-weight:700;padding:10px 0}.product-modal .form-actions{clear:both}.product-modal .materials-empty{padding:14px;border:1px dashed #ccc;border-radius:8px}.product-modal .field{min-width:0}@media(max-width:650px){.product-modal{padding:18px;width:100%}.product-modal .product-photo-panel{float:none;width:100%;margin:0 0 15px}.product-modal .product-upload{max-width:170px;aspect-ratio:1/1}.product-modal .product-fields{display:grid;grid-template-columns:1fr 1fr;min-height:0}.material-row{grid-template-columns:1fr 1fr 34px}.material-row label:first-child{grid-column:1/-1}.material-row label:nth-child(4){grid-column:1/3}.material-row .material-remove{grid-column:3;grid-row:3}.materials-header{align-items:flex-start;flex-direction:column}}

.brand-logo{width:42px;height:42px;object-fit:contain;flex-shrink:0;border-radius:6px}.brand{min-width:0}

/* v9.4: logo brand più grande e proporzionato */
.sidebar .brand{gap:12px;padding:0 5px;margin-bottom:40px}
.sidebar .brand-logo{width:72px;height:72px;object-fit:contain;flex:0 0 72px;border-radius:10px}
.sidebar .brand>div{min-width:0}
.sidebar .brand strong{font-size:15px}
@media(max-width:1020px){.sidebar .brand-logo{width:62px;height:62px;flex-basis:62px}.sidebar .brand{gap:9px}}

/* v9.6 contatto fornitori */
.contact-supplier{border:1px solid #dbd8ff;background:#f2f0ff;color:#594ad5;border-radius:9px;padding:9px 14px;cursor:pointer;font-weight:700;white-space:nowrap}.contact-supplier:hover{background:#e8e4ff}.supplier-contact-dialog{width:min(700px,100%)}.contact-field{display:flex;flex-direction:column;gap:7px;margin:14px 0;font-size:12px;color:var(--text,#414657);font-weight:650}.contact-field input,.contact-field textarea{background:var(--surface,#fff);color:var(--text,#333);padding:12px;border:1px solid #dfe2ec;border-radius:9px;font:inherit;font-weight:400;width:100%;min-width:0}.contact-field textarea{line-height:1.6;resize:vertical}.contact-hint,.contact-feedback{font-size:12px;line-height:1.5;margin-top:10px}.contact-feedback{color:#3c8b69}:root[data-theme=dark] .contact-field input,:root[data-theme=dark] .contact-field textarea{background:#292d3a;border-color:#414757;color:#eee}:root[data-theme=dark] .contact-supplier{background:#343050;color:#ddd6ff;border-color:#554a83}

/* v11.1: importazione dedicata alla sezione corrente, accanto a Nuovo */
.section-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.section-import{white-space:nowrap;min-height:40px;padding:0 16px;border:1px solid #dadde5;border-radius:9px;background:#fff;color:inherit;font-weight:650}
.section-import:hover{border-color:#8d85e4;background:#f6f4ff}
.contact-unavailable{font-size:12px;color:#8b91a0}
@media(max-width:720px){.section-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.section-actions>button{width:100%;min-width:0;height:44px;font-size:12px}.page-intro .section-actions .primary{width:100%}}

/* v12.6: grafici stock ordinati e leggibili, senza sovrapposizioni */
.analytics-canvas.analytics-canvas-list{height:auto!important;min-height:210px;max-height:490px;overflow:hidden;display:flex;flex-direction:column}
.stock-bars-summary{font-size:11px;color:var(--muted,#7a8192);padding:3px 0 11px;flex-shrink:0}
.stock-bars-list{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;padding-right:8px;display:grid;gap:6px;align-content:start}
.stock-bar-row{display:grid;grid-template-columns:minmax(110px,40%) minmax(48px,1fr) 53px;align-items:center;gap:12px;padding:5px 2px;min-height:36px;border-bottom:1px solid var(--border,#e9eaf0)}
.stock-bar-name{font-size:11px;color:var(--text,#202633);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stock-bar-track{display:block;height:12px;min-width:0;border-radius:99px;background:rgba(128,113,232,.10);overflow:hidden}
.stock-bar-fill{height:100%;display:block;border-radius:99px;background:#8071e8;min-width:0}
.stock-bar-fill.is-negative{background:#d86874}.stock-bar-fill.is-zero{width:0!important}
.stock-bar-value{text-align:right;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text,#202633)}
.stock-bar-value.is-negative{color:#d86874}
.stock-chart-empty{padding:20px;color:var(--muted,#7a8192)}
@media(max-width:540px){.stock-bar-row{grid-template-columns:minmax(85px,43%) minmax(30px,1fr) 43px;gap:7px}.stock-bar-name{font-size:10px}.stock-bars-list{padding-right:4px}}

/* v12.7: grafici Magazzino / Prodotti compatti, elenco scorrevole */
.analytics-canvas.analytics-canvas-list{height:260px!important;min-height:0!important;max-height:260px!important;overflow:hidden;display:flex;flex-direction:column}
.analytics-canvas.analytics-canvas-list .stock-bars-summary{flex:0 0 auto}
.analytics-canvas.analytics-canvas-list .stock-bars-list{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start}
@media(max-width:700px){.analytics-canvas.analytics-canvas-list{height:230px!important;max-height:230px!important}}

/* V12.8: mappa cantieri Italia con marker OpenStreetMap e stato di ricerca. */
.site-map .leaflet-container{height:100%;width:100%}
.site-map{height:420px;contain:none;clip-path:none;isolation:isolate}
.site-map .leaflet-control-container{position:static}
.site-geocode-status{display:block;font-size:11px;color:#43896c;margin-top:2px}
.site-map-list{max-height:420px}
@media(max-width:760px){.site-map{height:320px}.site-map-list{max-height:170px}}

/* v12.9 - gli indirizzi nella tabella aprono direttamente la mappa */
.site-table-address{border:0;background:none;color:#6658d7;cursor:pointer;font:inherit;text-align:left;padding:4px 0;text-decoration:underline;text-underline-offset:3px}
.site-table-address:hover,.site-table-address:focus-visible{color:#4032a6}
.site-address:hover{border-color:#8c81e9;background:rgba(115,96,232,.05)}
.site-address.selected{box-shadow:inset 3px 0 #7565e8}

/* v13 - Dashboard separata dai clienti */
#records-table[hidden],#dashboard[hidden],#section-analytics[hidden],.section-actions button[hidden],.search-box[hidden]{display:none!important}
.overview-group{margin:0 0 26px}.overview-group-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 13px}.overview-group-title h2{font-size:18px;font-weight:700;margin:0}.overview-group-title p{font-size:12px;opacity:.65;margin-top:4px}.overview-open{border:1px solid #e3e5ed;background:var(--card,#fff);color:#6454e8;padding:10px 14px;border-radius:9px;cursor:pointer;white-space:nowrap}.overview-group .analytics-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-group .analytics-chart{min-width:0}.overview-group .analytics-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-group .analytics-canvas:not(.analytics-canvas-list){height:240px}.overview-group .analytics-canvas-list{height:260px!important;max-height:260px!important}.overview-group .analytics-canvas-list .stock-bars-list{overflow-y:auto}@media(max-width:850px){.overview-group .analytics-charts{grid-template-columns:1fr}}@media(max-width:620px){.overview-group .analytics-summary{grid-template-columns:1fr}.overview-group-title{align-items:flex-start;flex-direction:column}}

/* v13: messaggi chiari quando i dati non sono disponibili */
.data-unavailable{padding:18px;border:1px solid var(--border,#d9dee7);border-radius:12px;color:#a04e31;background:rgba(219,130,80,.06);line-height:1.5;max-width:100%}

/* V15: chart boxes retain stable dimensions; messages visible when checks fail. */
.pie-wrap, .canvas-container, .analytics-canvas:not(.analytics-canvas-list){min-height:220px;position:relative;overflow:hidden;}
.chart-error{display:flex;align-items:center;justify-content:center;text-align:center;height:100%;min-height:150px;padding:16px;color:#aa4a31;font-size:12px;line-height:1.5;}

/* v17 - Proporzioni Panoramica: tre KPI finanziari, grafici uniformi */
#dashboard .kpis {grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
#dashboard .kpi {min-width:0;min-height:132px;padding:19px;display:flex;flex-direction:column;justify-content:space-between}
#dashboard .kpi strong {font-size:clamp(19px,2vw,27px);white-space:normal;overflow-wrap:anywhere;line-height:1.2;margin:12px 0 8px}
#dashboard .kpi small{line-height:1.45}
.overview-group .analytics-charts,.section-analytics .analytics-charts{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px}
.overview-group .analytics-chart,.section-analytics .analytics-chart {min-width:0;height:100%;padding:18px;overflow:hidden}
.overview-group .analytics-chart h3,.section-analytics .analytics-chart h3{overflow-wrap:anywhere;line-height:1.3}
.overview-group .analytics-canvas:not(.analytics-canvas-list),.section-analytics .analytics-canvas:not(.analytics-canvas-list){height:245px;min-height:0;max-height:245px}
.overview-group .analytics-canvas-list,.section-analytics .analytics-canvas-list{height:260px!important;min-height:0;max-height:260px!important;overflow-y:auto}
.overview-group .analytics-summary {gap:12px;align-items:stretch}
.overview-group .analytics-tile {min-width:0;min-height:112px;padding:17px}
.overview-group .analytics-tile strong{font-size:clamp(19px,2vw,25px);overflow-wrap:anywhere}
@media(max-width:1050px){.overview-group .analytics-charts,.section-analytics .analytics-charts{grid-template-columns:minmax(0,1fr)} }
@media(max-width:760px){#dashboard .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#dashboard .kpi{min-height:120px;padding:15px}.overview-group .analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-group .analytics-chart,.section-analytics .analytics-chart{padding:15px}}
@media(max-width:490px){#dashboard .kpis,.overview-group .analytics-summary{grid-template-columns:minmax(0,1fr)}.overview-group .analytics-canvas:not(.analytics-canvas-list),.section-analytics .analytics-canvas:not(.analytics-canvas-list){height:220px;max-height:220px}}

/* V34: etichette dei grafici leggibili in modalita notte, senza cambiare layout. */
:root[data-theme="dark"] .stock-bar-name,
:root[data-theme="dark"] .stock-bar-value,
:root[data-theme="dark"] .analytics-chart h3{color:#e8ecfa}
:root[data-theme="dark"] .stock-bars-summary,
:root[data-theme="dark"] .analytics-chart > p,
:root[data-theme="dark"] .overview-group-title p{color:#c3cbdd;opacity:1}
:root[data-theme="dark"] .stock-bar-track{background:rgba(205,204,255,.20)}
:root[data-theme="dark"] .overview-open{background:#2b2c42;color:#d4cbff;border-color:#554e77}
:root[data-theme="dark"] .data-unavailable{color:#ffd2bd;background:rgba(219,130,80,.10);border-color:#604336}

/* v36: layout delle sole associazioni prodotto/fornitore; tema e resto del sito invariati. */
#supplier-product-section,#product-extra{min-width:0;max-width:100%;}
.supplier-modal{width:min(780px,calc(100vw - 30px));}
#supplier-product-section .matching-edit-row,#product-extra .matching-edit-row,
#product-extra .matching-composition-row{display:grid;min-width:0;max-width:100%;align-items:end;
 gap:10px;padding:12px 0 15px;margin:0 0 6px;border-bottom:1px solid var(--border,#dfe2eb);}
/* Fornitore, prodotto, prezzo IVA inclusa ed elimina: stessa riga. */
#supplier-product-section .supplier-matching-row{grid-template-columns:minmax(0,1.05fr) minmax(0,1.6fr) minmax(125px,.75fr) 40px;}
#product-extra .product-matching-row{grid-template-columns:minmax(0,1fr) minmax(150px,.7fr) 40px;}
#product-extra .matching-composition-row{grid-template-columns:minmax(0,2fr) minmax(115px,.6fr) minmax(100px,.5fr) 40px;}
#supplier-product-section .matching-field,#product-extra .matching-field{display:flex;flex-direction:column;gap:6px;
 min-width:0;max-width:100%;font-size:11px;line-height:1.35;color:var(--text-muted,#777b8c);overflow-wrap:anywhere;}
#supplier-product-section .matching-field input,#supplier-product-section .matching-field select,
#product-extra .matching-field input,#product-extra .matching-field select{box-sizing:border-box;
 width:100%;max-width:100%;height:40px;min-width:0;padding:0 10px;border:1px solid var(--border,#d9dce6);
 border-radius:8px;background:var(--card,#fff);color:inherit;font-size:12px;}
#supplier-product-section .matching-field input[readonly],#product-extra .matching-field input[readonly]{background:var(--surface-soft,#f5f6f9);}
#supplier-product-section .matching-price .matching-purchase,#product-extra .matching-price .matching-purchase{width:120px;max-width:100%;font-variant-numeric:tabular-nums;}
#supplier-product-section .supplier-type-filter{max-width:250px;margin:0 0 10px;}
#supplier-product-section .matching-remove,#product-extra .matching-remove{display:inline-flex;align-items:center;justify-content:center;
 width:40px;height:40px;min-width:40px;min-height:40px;padding:0;margin:0;border:1px solid #f2cdd4;
 border-radius:9px;background:rgba(206,66,93,.06);color:#c54861;cursor:pointer;justify-self:end;grid-column:auto;grid-row:auto;}
#supplier-product-section .matching-remove:hover,#product-extra .matching-remove:hover{background:rgba(206,66,93,.14);border-color:#dd8f9f;}
#supplier-product-section .matching-remove:focus-visible,#product-extra .matching-remove:focus-visible{outline:3px solid #b9b1ff;outline-offset:2px;}
#product-extra .matching-lookup-help{margin:0 0 12px;color:var(--text-muted,#777b8c);}
#product-extra .supplier-comparison-scroll{max-width:100%;overflow-x:auto;margin:12px 0;border:1px solid var(--border,#dfe2eb);border-radius:10px;}
#product-extra .supplier-comparison-table{width:100%;min-width:560px;border-collapse:collapse;font-size:12px;}
#product-extra .supplier-comparison-table th,#product-extra .supplier-comparison-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border,#dfe2eb);white-space:normal;}
#product-extra .supplier-comparison-table th{font-size:11px;color:var(--text-muted,#777b8c);}
#product-extra .supplier-comparison-table td:nth-child(2){font-variant-numeric:tabular-nums;}
#product-extra .supplier-comparison-table button{white-space:nowrap;min-height:36px;}
#product-extra .supplier-comparison-table button[aria-pressed="true"]{opacity:1;color:var(--text,#333);}
@media(max-width:700px){
 #supplier-product-section .supplier-matching-row,#product-extra .product-matching-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px;}
 #supplier-product-section .supplier-matching-row .matching-field:nth-child(1),#product-extra .product-matching-row .matching-field:nth-child(1){grid-column:1;grid-row:1;}
 #supplier-product-section .supplier-matching-row .matching-field:nth-child(2),#product-extra .product-matching-row .matching-field:nth-child(2){grid-column:2;grid-row:1;}
 #supplier-product-section .supplier-matching-row .matching-price,#product-extra .product-matching-row .matching-price{grid-column:1;grid-row:2;}
 #supplier-product-section .supplier-matching-row .matching-remove,#product-extra .product-matching-row .matching-remove{grid-column:3;grid-row:2;}
}
@media(max-width:520px){
 #supplier-product-section .supplier-matching-row,#product-extra .product-matching-row{grid-template-columns:minmax(0,1fr) 40px;gap:10px;}
 #supplier-product-section .supplier-matching-row .matching-field:nth-child(1),#product-extra .product-matching-row .matching-field:nth-child(1){grid-column:1;grid-row:1;}
 #supplier-product-section .supplier-matching-row .matching-field:nth-child(2),#product-extra .product-matching-row .matching-field:nth-child(2){grid-column:1;grid-row:2;}
 #supplier-product-section .supplier-matching-row .matching-price,#product-extra .product-matching-row .matching-price{grid-column:1;grid-row:3;}
 #supplier-product-section .supplier-matching-row .matching-remove,#product-extra .product-matching-row .matching-remove{grid-column:2;grid-row:3;}
 #product-extra .matching-composition-row{grid-template-columns:minmax(0,1fr) 40px;}
 #product-extra .matching-composition-row .matching-field{grid-column:1;}
 #product-extra .matching-composition-row .matching-remove{grid-column:2;grid-row:3;}
}

@media(min-width:521px) and (max-width:700px){
 #product-extra .product-matching-row .matching-price{grid-column:2;grid-row:1;}
 #product-extra .product-matching-row .matching-remove{grid-column:3;grid-row:1;}
}
@media(max-width:520px){
 #product-extra .product-matching-row .matching-price{grid-column:1;grid-row:2;}
 #product-extra .product-matching-row .matching-remove{grid-column:2;grid-row:2;}
}

/* v39: tabella naturalmente scorrevole, senza colonne sticky sovrapposte.
   Contatta e' presente su ogni riga Prodotti e occupa una propria cella,
   visibile raggiungendola con lo scorrimento orizzontale del catalogo. */
/* Listino fornitore e gestione delle offerte. */
#supplier-product-section{padding:22px;border:1px solid var(--border,#dfe2eb);border-radius:16px;background:var(--surface-soft,#f7f8fc);}
.supplier-section-eyebrow{display:block;margin-bottom:7px;font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--text-muted,#777b8c);}
#supplier-product-section .supplier-products-header{align-items:center;gap:16px;margin-bottom:20px;}
#supplier-product-section .supplier-products-header h3{display:flex;align-items:center;gap:9px;font-size:19px;margin:0 0 7px;}
.supplier-count{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;border-radius:8px;background:rgba(116,97,223,.12);color:var(--text,#48446a);font-size:12px;}
#supplier-product-section .supplier-product-card{padding:18px;margin-bottom:14px;border:1px solid var(--border,#e3e5ee);border-radius:13px;background:var(--card,#fff);box-shadow:0 3px 12px rgba(31,35,67,.03);}
.supplier-product-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;}
.supplier-product-number{font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--text-muted,#777b8c);}
.supplier-product-card-head h4{margin:5px 0 0;font-size:14px;font-weight:600;line-height:1.5;overflow-wrap:anywhere;}
#supplier-product-section .supplier-product-card .supplier-matching-row{grid-template-columns:minmax(135px,.8fr) minmax(0,1.5fr) minmax(145px,.8fr);margin:0;padding:0;border:0;gap:14px;}
#supplier-product-section .supplier-product-card .matching-field{grid-column:auto;grid-row:auto;font-size:11px;font-weight:600;gap:8px;}
#supplier-product-section .supplier-product-card .matching-field input,#supplier-product-section .supplier-product-card .matching-field select{height:44px;color:var(--text,#34384b);font-weight:400;}
#supplier-product-section .supplier-product-card .matching-purchase{width:100%;}
#supplier-product-section .supplier-product-card .matching-remove{width:34px;height:34px;min-width:34px;min-height:34px;border:0;flex-shrink:0;}
.supplier-save-hint{margin:14px 0 0;font-size:11px;color:var(--text-muted,#777b8c);}
.supplier-products-empty{text-align:center;padding:32px 16px;border:1px dashed var(--border,#d8dce9);border-radius:12px;}
.supplier-products-empty>span{display:block;font-size:28px;color:var(--text-muted,#777b8c);margin-bottom:10px;}
.supplier-products-empty h4{margin:0 0 8px;font-size:14px;}.supplier-products-empty p{font-size:12px;}
#product-extra .supplier-offer-picker{padding:16px;margin:16px 0;background:var(--surface-soft,#f7f8fc);border:1px solid var(--border,#dfe2eb);border-radius:12px;}
#product-extra .supplier-offer-picker p{margin:8px 0 0;color:var(--text-muted,#777b8c);font-size:11px;}
#product-extra .supplier-comparison-table{min-width:700px;}
#product-extra .supplier-comparison-table th{background:var(--surface-soft,#f7f8fc);padding:14px 12px;}
#product-extra .supplier-comparison-table td{vertical-align:middle;}
#product-extra .supplier-comparison-table .supplier-focused{box-shadow:inset 3px 0 #7863d8;background:rgba(120,99,216,.12);}
.supplier-offer-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;width:max-content;}
#product-extra .supplier-icon-action{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;padding:0;border-radius:9px;}
#product-extra .supplier-icon-action[aria-pressed="true"]{background:rgba(45,160,100,.14);color:#237a51;border-color:rgba(45,160,100,.25);}
:is(#product-extra,#supplier-product-section) .supplier-multi-picker{margin:16px 0;border:1px solid var(--border,#dedfeb);border-radius:12px;background:var(--card,#fff);overflow:hidden;}
.supplier-multi-picker summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;cursor:pointer;list-style:none;font-size:13px;font-weight:600;background:rgba(120,99,216,.05);}
.supplier-multi-picker summary::-webkit-details-marker{display:none;}
.supplier-multi-picker summary:after{content:'⌄';font-size:19px;}.supplier-multi-picker[open] summary:after{content:'⌃';}
.supplier-multi-picker summary [data-picker-count]{margin-left:auto;font-size:11px;padding:5px 8px;border-radius:7px;background:rgba(120,99,216,.12);white-space:nowrap;}
.supplier-multi-panel{border-top:1px solid var(--border,#dedfeb);}
.supplier-multi-toolbar{padding:16px;background:var(--surface-soft,#f7f8fc);}
.supplier-multi-toolbar p{font-size:11px;margin:9px 0 0;color:var(--text-muted,#777b8c);}
.supplier-multi-list{max-height:350px;overflow:auto;overscroll-behavior:contain;}
.supplier-multi-row{display:grid;grid-template-columns:minmax(0,1fr) 132px 132px;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid var(--border,#e5e7f0);}
.supplier-multi-row[hidden]{display:none;}
.supplier-multi-row:has(input[type="checkbox"]:checked){background:rgba(120,99,216,.06);}
.supplier-multi-name{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.35;color:var(--text,#34384b);overflow-wrap:anywhere;cursor:pointer;}
:is(#product-extra,#supplier-product-section) .supplier-multi-row .matching-field{width:132px;max-width:100%;gap:0;}
:is(#product-extra,#supplier-product-section) .supplier-multi-row .matching-field input{height:34px;padding:0 8px;font-size:11px;}
:is(#product-extra,#supplier-product-section) .supplier-multi-row .matching-field input::placeholder{color:var(--text-muted,#777b8c);opacity:1;}
:is(#product-extra,#supplier-product-section) .supplier-multi-name input[type="checkbox"]{width:17px;height:17px;flex:0 0 17px;accent-color:#7863d8;padding:0;}
.supplier-multi-name small{display:block;color:var(--text-muted,#777b8c);font-size:10px;margin-top:1px;}
.supplier-multi-row.is-associated{background:var(--surface-soft,#f7f8fc);}
:is(#product-extra,#supplier-product-section) .supplier-multi-row input:disabled{opacity:.65;}
.supplier-multi-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;background:var(--surface-soft,#f7f8fc);font-size:11px;}
.supplier-multi-footer [data-picker-feedback]{color:var(--text-muted,#777b8c);}
.supplier-multi-panel>[data-picker-empty]{margin:14px 16px;font-size:12px;}
@media(max-width:650px){.supplier-multi-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 10px;}.supplier-multi-name{grid-column:1 / -1;}.supplier-multi-footer{align-items:stretch;flex-direction:column;}.supplier-multi-picker summary{flex-wrap:wrap;}}
#product-extra .supplier-add-offer-card{padding:18px;margin:16px 0;border:1px solid rgba(120,99,216,.25);border-radius:12px;background:rgba(120,99,216,.04);}
#product-extra .supplier-add-offer-card h4{margin:0 0 6px;font-size:14px;}
#product-extra .supplier-add-offer-card p{margin:0 0 16px;font-size:11px;color:var(--text-muted,#777b8c);}
#product-extra .supplier-add-offer-fields{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(145px,1fr) auto;gap:12px;align-items:end;}
#product-extra .supplier-add-offer-fields button{min-height:40px;white-space:nowrap;}
@media(max-width:700px){#product-extra .supplier-add-offer-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}#product-extra .supplier-add-offer-fields button{grid-column:1 / -1;}}
@media(max-width:450px){#product-extra .supplier-add-offer-fields{grid-template-columns:minmax(0,1fr);}}
#product-extra .supplier-offer-actions button{padding:7px 10px;font-size:11px;min-height:34px;}
#product-extra .supplier-offer-actions .supplier-icon-action{flex:0 0 36px;margin:0;padding:0;}
#product-extra .supplier-comparison-table th:last-child,#product-extra .supplier-comparison-table td:last-child{min-width:138px;width:138px;white-space:nowrap;}
#product-extra .supplier-comparison-table input{min-width:125px;}

/* Tema notte: superfici e contrasti della composizione e del confronto. */
:root[data-theme="dark"] #product-extra{
 --card:#202a3b;--surface-soft:#1c2535;--text:#e8eefb;--text-muted:#b7c4da;--border:#3b4962;
 background:#182131;border-color:var(--border);color:var(--text);color-scheme:dark;
}
:root[data-theme="dark"] #product-extra h3{color:#f1f5ff;}
:root[data-theme="dark"] #product-extra>div>p,:root[data-theme="dark"] #product-extra .materials-header p{color:var(--text-muted);}
:root[data-theme="dark"] #product-extra .supplier-section-eyebrow{color:#c8bcff;}
:root[data-theme="dark"] #product-extra .matching-field{color:#c4cfe3;}
:root[data-theme="dark"] #product-extra .matching-field input,:root[data-theme="dark"] #product-extra .matching-field select{
 background:#202c40;color:#f1f5ff;border-color:#4b5a76;
}
:root[data-theme="dark"] #product-extra .matching-field input::placeholder{color:#a6b5ce;opacity:1;}
:root[data-theme="dark"] #product-extra input:focus-visible,:root[data-theme="dark"] #product-extra select:focus-visible,
:root[data-theme="dark"] #product-extra button:focus-visible,:root[data-theme="dark"] #product-extra summary:focus-visible{
 outline:2px solid #b5a4ff;outline-offset:2px;
}
:root[data-theme="dark"] :is(#product-extra,#supplier-product-section) .supplier-multi-picker{background:#202a3b;border-color:#47516e;}
:root[data-theme="dark"] :is(#product-extra,#supplier-product-section) .supplier-multi-picker summary{background:#302d4a;color:#f2efff;}
:root[data-theme="dark"] #product-extra [data-picker-count]{background:#49406b;color:#ece5ff;}
:root[data-theme="dark"] :is(#product-extra,#supplier-product-section) .supplier-multi-row{background:#202a3b;border-color:#3b4962;}
:root[data-theme="dark"] :is(#product-extra,#supplier-product-section) .supplier-multi-row:has(input[type="checkbox"]:checked){background:#342f50;box-shadow:inset 3px 0 #b29aff;}
:root[data-theme="dark"] :is(#product-extra,#supplier-product-section) .supplier-multi-row.is-associated{background:#192333;}
:root[data-theme="dark"] :is(#product-extra,#supplier-product-section) .supplier-multi-row input:disabled{background:#172131;color:#a7b6cf;border-color:#34435d;opacity:1;}
:root[data-theme="dark"] :is(#product-extra,#supplier-product-section) .supplier-multi-name input[type="checkbox"]{accent-color:#b5a0ff;}
:root[data-theme="dark"] :is(#product-extra,#supplier-product-section) .supplier-multi-footer{border-top:1px solid #3b4962;}
:root[data-theme="dark"] #product-extra .supplier-comparison-table th{background:#243047;color:#d6dff1;}
:root[data-theme="dark"] #product-extra .supplier-comparison-table td{color:#e3ebfa;border-color:#3b4962;}
:root[data-theme="dark"] #product-extra .supplier-icon-action{background:#2b374c;border-color:#50607c;color:#e5edff;}
:root[data-theme="dark"] #product-extra .supplier-icon-action:hover:not(:disabled){background:#3b4763;border-color:#b09af6;}
:root[data-theme="dark"] #product-extra .supplier-icon-action[aria-pressed="true"]{background:#2b5140;color:#b8f4d2;border-color:#608b72;opacity:1;}
:root[data-theme="dark"] #product-extra .supplier-icon-action.danger{background:#482c3a;border-color:#895368;color:#ffbdcd;}
:root[data-theme="dark"] #product-extra .supplier-icon-action.danger:hover{background:#603648;}
:root[data-theme="dark"] #product-extra .matching-remove{background:#482c3a;border-color:#895368;color:#ffbdcd;}
@media(max-width:700px){
 #supplier-product-section{padding:16px;}
 #supplier-product-section .supplier-product-card .supplier-matching-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
 #supplier-product-section .supplier-product-card .matching-field:nth-child(2){grid-column:1 / -1;grid-row:2;}
}
@media(max-width:450px){
 #supplier-product-section .supplier-products-header{align-items:flex-start;flex-direction:column;}
 #supplier-product-section .supplier-product-card{padding:14px;}
 #supplier-product-section .supplier-product-card .supplier-matching-row{grid-template-columns:minmax(0,1fr);}
 #supplier-product-section .supplier-product-card .matching-field{grid-column:1;grid-row:auto;}
}
#records-table .table-scroll table{width:max-content;min-width:100%;table-layout:auto}
#records-table.product-contacts-visible .table-scroll th:last-child,
#records-table.product-contacts-visible .table-scroll td.product-contact-cell{
 position:static;right:auto;z-index:auto;box-shadow:none;
 min-width:140px;white-space:nowrap;text-align:center;
}
#records-table.product-contacts-visible .product-contact-cell .contact-supplier{
 display:inline-flex;align-items:center;justify-content:center;min-width:100px;min-height:36px;
 max-width:100%;white-space:nowrap;
}
#thead th[data-column-sort]{padding:0;cursor:pointer}
.table-sort-button{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:14px 18px;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;white-space:nowrap;cursor:pointer}
.table-sort-button:hover{background:rgba(110,101,214,.08);color:#7565e8}
.table-sort-button:focus-visible{outline:2px solid #7c75d8;outline-offset:-3px}
.table-sort-arrow{opacity:.5}
#thead th[aria-sort] .table-sort-button{color:#7565e8}
#thead th[aria-sort] .table-sort-arrow{opacity:1}
.contact-modal{width:min(780px,100%)}
.contact-modal #form-fields{gap:24px}
.contact-form-section{grid-column:1/-1;min-width:0;margin:0;padding:16px 0 0;border:0;border-top:1px solid var(--border,#e7e9ef)}
.contact-form-section .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.contact-form-section legend{padding:0 10px 0 0;font-size:13px;font-weight:700;color:var(--text,inherit)}
.contact-form-section .field{min-width:0}
.contact-form-section .field input,.contact-form-section .field select{width:100%;min-width:0;height:42px}
.contact-form-section .phone-input-group{max-width:320px}
@media(max-width:700px){.contact-form-section .form-grid{grid-template-columns:minmax(0,1fr)}.contact-form-section .field input,.contact-form-section .field select{height:44px}}
.phone-input-group{display:flex;align-items:flex-start;gap:8px;min-width:0;width:100%;max-width:320px;--phone-control-height:42px}
.phone-input-group>input[type="tel"]{flex:1 1 0;width:0;min-width:0;max-width:220px;height:var(--phone-control-height);padding:0 11px;font-size:13px}
.phone-country-picker{position:relative;flex:0 0 92px;width:92px;min-width:0;color:var(--text,#343747);font-size:13px;font-weight:400}
.phone-country-picker summary{display:flex;align-items:center;justify-content:space-between;gap:4px;height:var(--phone-control-height);padding:0 6px;border:1px solid var(--border,#e7e9ef);border-radius:8px;cursor:pointer;list-style:none;background:var(--surface,#fff);line-height:1.2}
.phone-country-picker summary::-webkit-details-marker{display:none}
.phone-country-picker [data-phone-selected]{display:flex;align-items:center;gap:4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.phone-country-picker [data-phone-selected]>span,.phone-country-options button>span{font-weight:700}
.phone-country-picker img{width:20px;height:15px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #8883;flex-shrink:0}
.phone-country-panel{position:absolute;top:calc(100% + 5px);left:0;z-index:10;width:160px;max-width:calc(100vw - 64px);padding:7px;background:var(--surface,#fff);border:1px solid var(--border,#d9dee8);border-radius:8px;box-shadow:0 8px 24px #0002}
.phone-country-panel .phone-country-search{width:100%;height:36px;min-height:36px;min-width:0;padding:6px 8px;border:1px solid var(--border,#d9dee8);border-radius:6px;color:inherit;background:inherit;font:inherit}
.phone-country-options{max-height:min(200px,35vh);overflow-y:auto;margin-top:6px;overscroll-behavior:contain;scrollbar-width:thin}
.phone-country-options button{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;line-height:1.2;text-align:left;cursor:pointer}
.phone-country-options button:hover,.phone-country-options button[aria-pressed="true"]{background:rgba(110,101,214,.13)}
.phone-country-empty{margin:10px;font-size:12px}
.phone-input-group input:focus-visible,.phone-country-picker summary:focus-visible,.phone-country-options button:focus-visible{outline:2px solid #7c75d8;outline-offset:2px}
:root[data-theme="dark"] .phone-country-picker summary,:root[data-theme="dark"] .phone-country-panel{background:#292d3a;border-color:#393d4a;color:#e6e7f1}
#quote-builder .phone-input-group>input[type="tel"]{width:0;flex:1 1 0;height:var(--phone-control-height);min-height:var(--phone-control-height);padding:0 11px}
#quote-builder .phone-country-panel .phone-country-search{height:36px;min-height:36px;padding:6px 8px}
@media(max-width:680px){.phone-input-group{--phone-control-height:44px}.phone-input-group>input[type="tel"],.phone-country-panel .phone-country-search{font-size:16px}.phone-country-options button{min-height:44px}}
@media(max-width:380px){.phone-input-group{flex-wrap:wrap}.phone-input-group>input[type="tel"],#quote-builder .phone-input-group>input[type="tel"]{flex-basis:100%;width:100%}}

#supplier-product-section .supplier-multi-toolbar .supplier-type-filter{margin:12px 0 0}


#supplier-product-section .supplier-products-table-scroll{max-height:380px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--border,#e5e7ef);border-radius:10px;background:var(--card,#fff)}
#supplier-product-section .supplier-products-table{width:100%;min-width:640px;table-layout:fixed;white-space:normal}
#supplier-product-section .supplier-products-table th{position:sticky;top:0;z-index:1;background:var(--surface-soft,#f7f8fc);padding:10px 8px;font-size:10px;letter-spacing:0;line-height:1.4;color:var(--text-muted,#687082)}
#supplier-product-section .supplier-products-table td{padding:7px 8px;font-size:11px;vertical-align:middle;color:var(--text,inherit)}
#supplier-product-section .supplier-products-table td.empty{height:120px;padding:24px;text-align:center;line-height:1.6;color:var(--text-muted,#777b8c)}
#supplier-product-section .supplier-products-table th:first-child{width:32%}
#supplier-product-section .supplier-products-table th:nth-child(2){width:9%}
#supplier-product-section .supplier-products-table th:nth-child(3){width:7%}
#supplier-product-section .supplier-products-table th:nth-child(4),#supplier-product-section .supplier-products-table th:nth-child(5){width:21%}
#supplier-product-section .supplier-products-table th:last-child{width:10%}
#supplier-product-section .supplier-product-name strong{display:block;font-size:11px;font-weight:600;overflow-wrap:anywhere;line-height:1.4}
#supplier-product-section .supplier-product-name small{display:block;font-size:10px;color:var(--text-muted,#777b8c);margin-top:3px;overflow-wrap:anywhere}
#supplier-product-section .supplier-products-table .matching-field input{height:34px;padding:0 7px;font-size:12px;font-variant-numeric:tabular-nums}
#supplier-product-section .supplier-products-table .matching-remove{width:32px;height:32px;margin:0;padding:6px}
@media(max-width:650px){#supplier-product-section .supplier-products-table-scroll{max-height:55vh}#supplier-product-section .supplier-products-table .matching-field input{height:40px}}

#supplier-product-section .supplier-products-table th:first-child{width:30%}
#supplier-product-section .supplier-products-table th:nth-child(4),#supplier-product-section .supplier-products-table th:nth-child(5){width:19%}
#supplier-product-section .supplier-products-table th:last-child{width:16%;text-align:center}
#supplier-product-section .supplier-linked-amount{font-variant-numeric:tabular-nums;white-space:nowrap}
#supplier-product-section .supplier-linked-actions{display:flex;align-items:center;justify-content:center;gap:10px;padding:3px 0}
#supplier-product-section .supplier-linked-action{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;flex:0 0 34px}
#supplier-product-section [data-delete-linked]{color:#cf526c}
#supplier-product-section [data-save-linked]{color:#27845c}
#supplier-product-section .supplier-linked-action:disabled{opacity:.45;cursor:default}

#product-extra .supplier-best-price-summary{margin:0 0 18px}
#product-extra .supplier-best-price-intro{margin:0 0 12px;font-size:13px;line-height:1.6;color:var(--text,inherit)}
#product-extra .supplier-best-offer{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:20px;padding:18px 20px;border:1px solid rgba(45,160,100,.3);border-radius:12px;background:rgba(45,160,100,.07)}
#product-extra .supplier-best-offer>div{display:flex;flex-direction:column;gap:6px;min-width:0}
#product-extra .supplier-best-offer span{font-size:11px;color:var(--text-muted,#687082)}
#product-extra .supplier-best-offer strong{font-size:18px;font-weight:700;color:var(--text,inherit);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#product-extra .supplier-best-offer-name strong{font-size:14px;line-height:1.5}
#product-extra .supplier-best-offer small{font-size:11px;color:var(--text-muted,#687082)}
#product-extra .supplier-comparison-table{min-width:590px}
:root[data-theme="dark"] #product-extra .supplier-best-offer{background:#203d35;border-color:#43785b}
@media(max-width:600px){#product-extra .supplier-best-offer{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px}#product-extra .supplier-best-offer-name{grid-column:1/-1}#product-extra .supplier-best-offer strong{font-size:16px}}
