*{margin:0;padding:0;box-sizing:border-box}:root{--bg:#f0f2f5;--text:#1a1a2e;--header-bg:#ffffff;--header-text:#333;--viewer-bg:#1e1e32;--viewer-bg2:#252540;--drop-text:#8888aa;--drop-p:#aaa;--sidebar-bg:#fff;--sidebar-border:#e0e0e0;--panel-header-bg:#fafafa;--panel-header-text:#555;--row-border:#f5f5f5;--label-color:#777;--value-color:#333;--card-bg:#f8f9fb;--card-border:#eee;--card-name:#444;--card-cost:#666;--input-bg:#fff;--input-border:#ddd;--accent:#1a73e8;--viewer-info-bg:rgba(0,0,0,.5);--viewer-info-text:#99a;--grid-color1:0x3a3a5a;--grid-color2:0x2a2a44;--three-bg:0x1e1e32}body.light{--bg:#ffffff;--text:#222;--header-bg:#ffffff;--header-text:#333;--viewer-bg:#d8dce6;--viewer-bg2:#c8ccd8;--drop-text:#6668;--drop-p:#555;--sidebar-bg:#f8f8fa;--sidebar-border:#ddd;--panel-header-bg:#eef0f4;--panel-header-text:#444;--row-border:#e8e8ec;--label-color:#666;--value-color:#222;--card-bg:#fff;--card-border:#ddd;--card-name:#333;--card-cost:#555;--input-bg:#fff;--input-border:#ccc;--accent:#2563eb;--viewer-info-bg:rgba(255,255,255,.7);--viewer-info-text:#556}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);transition:background .3s,color .3s}.app{display:grid;grid-template-columns:1fr 380px;grid-template-rows:auto 1fr;height:100vh;gap:0}header{grid-column:1 / -1;background:var(--header-bg);color:var(--header-text);padding:5px 24px;display:flex;align-items:center;gap:16px;border-bottom:1px solid #e2e8f0}.header-logo{height:80px;width:auto}.header-titles{display:flex;flex-direction:column;flex:1}header h1{font-size:28px;font-weight:600;letter-spacing:-0.3px}.header-titles span{font-size:13px;color:#999}.header-nav{display:flex;gap:8px}.nav-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#f5f5f5;border:1px solid #ddd;border-radius:8px;color:#555;text-decoration:none;font-size:13px;font-weight:500;transition:all 0.15s;cursor:pointer}.nav-btn:hover{background:#eff6ff;border-color:#4a7ccc;color:#4a7ccc}.user-menu{position:relative;display:flex}.user-menu-toggle{display:flex;align-items:center;gap:6px;padding:6px 12px;background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.1);border-radius:6px;color:var(--header-text);font-size:13px;font-weight:500;cursor:pointer}.user-dropdown{display:none;position:absolute;top:100%;right:0;margin-top:6px;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,0.12);min-width:180px;z-index:200;padding:6px}.user-dropdown.open{display:block}.dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;color:#333;text-decoration:none;font-size:13px;border-radius:6px;transition:background 0.1s}.dropdown-item:hover{background:#f5f5f5}.dropdown-danger:hover{background:#fee2e2;color:#dc2626}.dropdown-divider{height:1px;background:#e5e5e5;margin:4px 0}#theme-btn{background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.1);color:var(--header-text);padding:5px 12px;border-radius:6px;font-size:16px;cursor:pointer;transition:background .15s;min-width:44px;min-height:44px}#theme-btn:hover{background:rgba(0,0,0,.1)}.viewer-area{position:relative;background:var(--viewer-bg);overflow:hidden}#drop-zone{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;background:linear-gradient(180deg,var(--viewer-bg) 0%,var(--viewer-bg2) 100%);color:var(--drop-text);cursor:pointer;transition:background .2s}#drop-zone.drag-over{filter:brightness(1.1)}#drop-zone.hidden{display:none}#drop-zone .icon{width:108px;height:auto;margin-bottom:20px;opacity:.85}#drop-zone p{font-size:16px;color:var(--drop-p)}#drop-zone small{font-size:12px;margin-top:8px;opacity:.45}.step-mode-selector{margin-top:20px;padding:10px 16px;background:rgba(255,255,255,0.1);border-radius:8px;display:flex;align-items:center;gap:10px;font-size:12px}.step-mode-selector label{color:var(--drop-p);white-space:nowrap}.step-mode-selector select{padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,0.2);background:rgba(0,0,0,0.3);color:#fff;font-size:12px;cursor:pointer}.light .step-mode-selector{background:rgba(0,0,0,0.05)}.light .step-mode-selector select{background:#fff;color:#333;border-color:#ccc}#file-input{display:none}#viewer-container{width:100%;height:100%}#viewer-container canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}#viewer-container canvas:active{cursor:grabbing}.viewer-info{position:absolute;bottom:12px;left:12px;background:var(--viewer-info-bg);color:var(--viewer-info-text);backdrop-filter:blur(4px);padding:6px 14px;border-radius:8px;font-size:11px;pointer-events:none;z-index:5}.viewer-badge{position:absolute;top:10px;right:10px;background:var(--viewer-info-bg);color:var(--viewer-info-text);padding:3px 10px;border-radius:6px;font-size:10px;pointer-events:none;z-index:5}.debug-legend{position:absolute;inset-block-end:var(--marca-space-2);inset-inline-start:var(--marca-space-2);background:var(--marca-surface-overlay);color:var(--marca-text-muted);border:var(--marca-border-width) solid var(--marca-border-control);border-radius:var(--marca-radius-control);padding:var(--marca-space-1);font-family:var(--marca-font-mono);font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh);z-index:10}.debug-legend-title{font-weight:var(--marca-weight-medium);text-transform:uppercase;letter-spacing:0.3px;margin-block-end:var(--marca-space-1);color:var(--marca-text)}.debug-legend label{display:flex;align-items:center;gap:var(--marca-space-1);padding-block:2px;cursor:pointer;color:inherit}.debug-legend label:hover{opacity:.8}.debug-legend input[type="checkbox"]{display:none}.debug-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;border:1px solid rgba(255,255,255,.2)}.debug-dot.green{background:#4caf50}.debug-dot.red{background:#f44336}.debug-dot.blue{background:#2196f3}.debug-dot.yellow{background:#ffeb3b}.debug-dot.gray{background:#9e9e9e}.debug-legend label input:not(:checked) ~ .debug-dot{opacity:.3}.debug-legend label input:not(:checked) ~ span:last-child{opacity:.4;text-decoration:line-through}.debug-legend-close{display:block;width:100%;margin-top:6px;padding:4px 8px;background:rgba(255,255,255,.1);color:inherit;border:1px solid rgba(255,255,255,.15);border-radius:4px;font-size:10px;cursor:pointer;transition:background .15s}.debug-legend-close:hover{background:rgba(255,255,255,.2)}.light .debug-dot{border-color:rgba(0,0,0,.15)}.light .debug-legend-close{background:rgba(0,0,0,.06);border-color:rgba(0,0,0,.12)}.light .debug-legend-close:hover{background:rgba(0,0,0,.1)}.sidebar{overflow-y:auto;background:var(--sidebar-bg);border-left:1px solid var(--sidebar-border);transition:background .3s}.panel{border-bottom:1px solid var(--card-border)}.panel-header{padding:13px 16px;font-weight:600;font-size:13px;background:var(--panel-header-bg);text-transform:uppercase;letter-spacing:0.5px;color:var(--panel-header-text);cursor:default;display:flex;justify-content:space-between;align-items:center;user-select:none}.panel-header.collapsible{cursor:pointer;transition:background 0.2s}.panel-header.collapsible:hover{background:var(--row-border)}.collapse-icon{font-size:10px;transition:transform 0.2s}.panel-header.collapsed .collapse-icon{transform:rotate(-90deg)}.panel-body{padding:10px 16px 14px;overflow:hidden;transition:max-height 0.3s ease,padding 0.3s ease,opacity 0.2s ease;max-height:2000px;opacity:1}.panel-body.collapsed{max-height:0;padding-top:0;padding-bottom:0;opacity:0}.prop-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;border-bottom:1px solid var(--row-border)}.prop-row:last-child{border-bottom:none}.prop-label{color:var(--label-color)}.prop-value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--value-color)}.quota-pill{position:absolute;inset-block-end:var(--marca-space-2);inset-inline-start:var(--marca-space-2);z-index:6;display:inline-flex;align-items:center;gap:var(--marca-space-2);min-block-size:var(--marca-control-height);padding:var(--marca-space-1) var(--marca-space-3);border:0;border-radius:var(--marca-radius-pill);background:var(--marca-depth);color:var(--marca-white);font-family:var(--marca-font-mono);cursor:pointer;transition:background-color var(--marca-motion-state) var(--marca-ease-state)}.quota-pill .quota-testo{display:inline-flex;flex-direction:column;align-items:flex-start}.quota-pill .bi{font-size:18px;line-height:1;opacity:.9}.quota-pill .quota-azione{font-size:var(--marca-type-mono-size);line-height:var(--marca-type-mono-lh);font-weight:var(--marca-weight-medium)}.quota-pill .quota-prezzo{font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh);opacity:.85}.quota-riga-prezzo{display:flex;align-items:baseline;gap:0}.quota-sottile{display:inline-flex;align-items:center;margin-inline-start:6px;font-size:12px;cursor:help}.quota-sottile:focus-visible{outline:var(--marca-focus-width) solid var(--marca-surface);outline-offset:2px;border-radius:2px}.quota-pill .quota-prezzo .bi-box{font-size:.9em;vertical-align:-1px}.quota-pill .quota-avviso{display:inline-flex;align-items:center;gap:4px;font-size:var(--marca-type-mono-xs-size);line-height:var(--marca-type-mono-xs-lh);opacity:.85}.quota-pill .quota-avviso .bi{font-size:12px}.quota-pill:hover{background:var(--marca-green-800)}.quota-pill:focus-visible{outline:var(--marca-focus-width) solid var(--marca-focus-ring);outline-offset:2px}.quota-pill.computing{opacity:.7;pointer-events:none}:root[data-theme='dark'] .quota-pill{background:var(--marca-identity);color:var(--marca-text-on-identity)}:root[data-theme='dark'] .quota-pill:hover{background:var(--marca-green-400)}.quota-attesa{position:absolute;inset-block-end:calc(var(--marca-space-2) + 64px);inset-inline-start:var(--marca-space-2);z-index:6;display:flex;align-items:center;gap:var(--marca-space-1);max-inline-size:min(420px,calc(100% - 2 * var(--marca-space-2)));padding:var(--marca-space-1) 12px;border:var(--marca-border-width) solid var(--marca-border);border-inline-start:2px solid var(--marca-border-strong);background:var(--marca-field);color:var(--marca-text);font-family:var(--marca-font-mono)}.quota-attesa-testi{display:flex;flex-direction:column;min-inline-size:0}.quota-attesa-titolo{font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh)}.quota-attesa-dettaglio{font-size:var(--marca-type-mono-xs-size);line-height:var(--marca-type-mono-xs-lh);color:var(--marca-text-subtle);font-variant-numeric:tabular-nums}.quota-attesa-azione{margin-inline-start:auto;flex:0 0 auto;padding:4px 8px;border:0;background:transparent;color:var(--marca-text-muted);font-family:var(--marca-font-mono);font-size:var(--marca-type-mono-xs-size);text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.quota-attesa-azione:hover{color:var(--marca-text)}.quota-attesa-azione:focus-visible{outline:var(--marca-focus-width) solid var(--marca-focus-ring);outline-offset:2px}.quota-attesa-girello{inline-size:14px;block-size:14px;flex:0 0 auto;border:2px solid var(--marca-border);border-block-start-color:var(--marca-text-subtle);border-radius:50%;animation:quota-gira .9s linear infinite}@keyframes quota-gira{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.quota-attesa-girello{animation-duration:2.4s}}.viewer-buttons{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;flex-direction:column;gap:var(--marca-space-1);align-items:flex-start}.viewer-buttons>.btn-row{width:100%;border-inline:0}.btn-row{display:inline-flex;align-items:stretch;background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-border-control);border-block-start:0;border-inline-start:0;border-radius:0 0 var(--marca-radius-control) 0;overflow:hidden}.viewer-btn{position:relative;display:inline-flex;align-items:center;gap:var(--marca-space-1);block-size:calc(var(--marca-control-height-s) - 2 * var(--marca-border-width));padding-inline:var(--marca-space-1);border:0;border-radius:0;background:transparent;color:var(--marca-text-muted);font-family:var(--marca-font-mono);font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh);white-space:nowrap;cursor:pointer;transition:background-color var(--marca-motion-state) var(--marca-ease-state),color var(--marca-motion-state) var(--marca-ease-state)}.viewer-btn + .viewer-btn{border-inline-start:var(--marca-border-width) solid var(--marca-border-control)}.tool-sep + .tool-sep,.btn-row>.tool-sep:first-child,.btn-row>.tool-sep:last-child{display:none}.tool-sep{inline-size:var(--marca-border-width);align-self:stretch;background:var(--marca-border-strong);flex:0 0 auto}.viewer-btn.icon-btn{display:inline-flex}.btn-icon{width:16px;height:16px;opacity:.8;filter:invert(.82)}.light .btn-icon{filter:invert(.28)}.viewer-btn:hover .btn-icon,.viewer-btn.active .btn-icon{opacity:1}.viewer-btn .bi{font-size:15px;line-height:1}.viewer-btn:hover:not(.active):not(.computing):not(.has-undercut):not(.no-undercut){background:var(--marca-field-alt);color:var(--marca-text)}.viewer-btn:focus-visible{outline:var(--marca-focus-width) solid var(--marca-focus-ring);outline-offset:calc(-1 * var(--marca-focus-width))}.viewer-btn.active,.viewer-btn.computing,.viewer-btn.has-undercut,.viewer-btn.no-undercut{color:var(--marca-text);font-weight:var(--marca-weight-medium)}.viewer-btn.active::after,.viewer-btn.computing::after,.viewer-btn.has-undercut::after,.viewer-btn.no-undercut::after{content:'';position:absolute;inset-inline:0;inset-block-end:0;block-size:var(--marca-active-bar)}.viewer-btn.active{background:var(--marca-identity-wash)}.viewer-btn.active::after{background:var(--marca-mark)}.viewer-btn.computing{background:var(--marca-info-wash)}.viewer-btn.computing::after{background:var(--marca-info)}.viewer-btn.has-undercut{background:var(--marca-error-wash)}.viewer-btn.has-undercut::after{background:var(--marca-error)}.viewer-btn.no-undercut{background:var(--marca-success-wash)}.viewer-btn.no-undercut::after{background:var(--marca-success)}#rotate-btns{display:contents}.rotate-btn{display:inline-flex;align-items:center;gap:var(--marca-space-1);block-size:calc(var(--marca-control-height-s) - 2 * var(--marca-border-width));padding-inline:var(--marca-space-1);border:0;border-radius:0;background:transparent;color:var(--marca-text-muted);font-family:var(--marca-font-mono);font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh);cursor:pointer;transition:background-color var(--marca-motion-state) var(--marca-ease-state),color var(--marca-motion-state) var(--marca-ease-state)}#rotate-btns>.rotate-btn:first-child,.viewer-btn + #rotate-btns>.rotate-btn:first-child{border-inline-start:var(--marca-border-width) solid var(--marca-border-control)}#rotate-btns + .viewer-btn{border-inline-start:var(--marca-border-width) solid var(--marca-border-control)}.rotate-btn + .rotate-btn{border-inline-start:var(--marca-border-width) solid var(--marca-border-control)}.rotate-btn.con-fattore{flex-direction:column;gap:0;block-size:auto;padding-block:3px}.scala-fattore{font-size:9px;line-height:1;font-weight:var(--marca-weight-medium,500)}.rot-ico{inline-size:20px;block-size:20px;flex:0 0 auto;overflow:visible;stroke-width:1.3}.tec-ico{inline-size:20px;block-size:20px;flex:0 0 auto}.quota-ico{inline-size:14px;block-size:14px;vertical-align:-2px}.rotate-btn:hover{background:var(--marca-field-alt);color:var(--marca-text)}.rotate-btn:focus-visible{outline:var(--marca-focus-width) solid var(--marca-focus-ring);outline-offset:calc(-1 * var(--marca-focus-width))}.no-file{padding:40px 16px;text-align:center;color:var(--label-color);font-size:14px}.progress-container{position:absolute;bottom:30%;left:50%;transform:translateX(-50%);inline-size:80%;max-inline-size:400px;z-index:15;background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-border-control);border-radius:var(--marca-radius-control);padding:calc(var(--marca-space-1) - var(--marca-border-width)) calc(var(--marca-space-2) - var(--marca-border-width)) calc(var(--marca-space-2) - var(--marca-border-width));overflow:hidden}.progress-riga{display:flex;align-items:baseline;justify-content:space-between;gap:var(--marca-space-2);margin-block-end:var(--marca-space-1)}.progress-label{color:var(--marca-text-muted);font-family:var(--marca-font-mono);font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-pct{color:var(--marca-text);font-family:var(--marca-font-mono);font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh);font-variant-numeric:tabular-nums;flex:none}.progress-bar{inline-size:100%;block-size:4px;background:var(--marca-border);overflow:hidden}.progress-fill{block-size:100%;inline-size:0;background:var(--marca-identity);transition:inline-size 160ms var(--marca-ease-enter)}.progress-fill.indeterminate{inline-size:30%;transition:none;animation:indeterminate 1200ms var(--marca-ease-linear) infinite}@keyframes indeterminate{from{transform:translateX(-100%)}to{transform:translateX(333%)}}@media (prefers-reduced-motion:reduce){.progress-fill{transition:none}.progress-fill.indeterminate{animation:none;inline-size:100%;opacity:0.5}}.analysis-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;border-bottom:1px solid var(--row-border)}.analysis-row:last-child{border-bottom:none}.analysis-row .value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--value-color)}.analysis-row .value.loading{color:var(--label-color);font-style:italic;font-weight:400}.analysis-row .value.loading::after{content:'';display:inline-block;width:12px;height:12px;margin-left:6px;border:2px solid var(--label-color);border-top-color:transparent;border-radius:50%;animation:spin 0.8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.analysis-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--row-border)}.analysis-section-title{font-size:11px;font-weight:600;margin-bottom:6px;opacity:0.7}.panel-comandi{display:inline-flex;align-items:center;gap:10px}.panel-spillo{font-size:12px;opacity:.6;cursor:pointer;padding:6px;margin:-6px}.panel-spillo:hover{opacity:1;color:var(--marca-identity)}#panel-leggenda .legenda-titolo{display:none}#panel-leggenda #thickness-legend,.pannello-fuori #thickness-legend{margin-top:0!important;padding-top:0!important;border-top:0!important}.pannello-fuori{padding:0;min-width:240px;max-width:92vw}.pannello-fuori .panel{border-bottom:0}.pannello-fuori .panel-header{cursor:grab;touch-action:none}.pannello-fuori.in-mano .panel-header{cursor:grabbing}.pannello-fuori .panel-body:not(.collapsed){max-height:60vh;overflow-y:auto}.pannello-fuori.ridotto .legenda-extra{display:none}html[data-tec="3d"] .sez-stampaggio{display:none}html:not([data-tec="3d"]) .solo-3d{display:none}.corpi-nota{font-size:11px;color:var(--muted,#64748b);padding:6px 0 8px;line-height:1.4}.corpo-riga{cursor:pointer;padding-inline:6px;align-items:center}.corpo-riga:hover{background:var(--hover-bg,#f1f5f9)}.corpo-riga .prop-label{color:#6f8fc4}.corpo-riga.corpo-principale .prop-label{color:inherit;font-weight:600}.corpo-riga.corpo-principale .value{font-weight:600}.corpo-occhio{border:0;background:none;padding:0 2px;margin:0 0 0 10px;cursor:pointer;color:inherit;font:inherit;line-height:1;flex:none}.corpo-riga .value{margin-inline-start:auto}.corpo-stampa{border:0;background:none;padding:0 2px;margin:0 0 0 10px;cursor:pointer;color:var(--marca-identity,#0b6b3a);line-height:1;flex:none;display:inline-flex}.corpo-stampa .tec-ico{inline-size:15px;block-size:15px}.corpo-stampa.spenta{color:inherit;opacity:.3}.corpo-riga.corpo-principale{background:var(--marca-identity-wash,#e8f5ee);box-shadow:inset 3px 0 0 var(--marca-identity,#0b6b3a)}.corpo-occhio:hover{color:var(--marca-identity,#0b6b3a)}.corpo-riga.corpo-spento .prop-label,.corpo-riga.corpo-spento .value{opacity:.45}.corpi-tutti{display:flex;align-items:center;justify-content:flex-end;gap:0;padding:0 6px 6px;font-size:12px;color:var(--muted,#64748b)}.ciclo-unita{color:var(--muted,#64748b);font-size:11px;margin-right:4px}.analysis-row.ciclo-fisso .prop-label{opacity:.55}.analysis-row.ciclo-fisso .step-input{opacity:.55;cursor:not-allowed;background:transparent}.step-input{width:70px;padding:3px 6px;border:1px solid var(--input-border);border-radius:5px;font-size:12px;text-align:right;background:var(--input-bg);color:var(--text)}select.step-input{width:auto;text-align:left;cursor:pointer}#step-reload-btn{margin-top:8px;padding:5px 14px;border-radius:6px;border:1px solid var(--input-border);background:var(--accent);color:#fff;font-size:12px;cursor:pointer;min-height:44px}#step-reload-btn:hover{opacity:0.9}.mobile-toggle-btn{display:none;position:fixed;z-index:100;background:rgba(0,0,0,.7);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:50%;width:48px;height:48px;font-size:20px;cursor:pointer;backdrop-filter:blur(4px);transition:background .2s,transform .2s;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.3)}.mobile-toggle-btn:hover,.mobile-toggle-btn:active{background:rgba(60,60,100,.9);transform:scale(1.05)}.light .mobile-toggle-btn{background:rgba(255,255,255,.9);color:#444;border-color:rgba(0,0,0,.2);box-shadow:0 2px 8px rgba(0,0,0,.15)}.light .mobile-toggle-btn:hover,.light .mobile-toggle-btn:active{background:#fff}#mobile-tools-toggle{bottom:calc(var(--viewer-gap-basso,16px) + 64px);right:var(--viewer-gap-basso,16px)}#mobile-panel-toggle{bottom:var(--viewer-gap-basso,16px);right:var(--viewer-gap-basso,16px)}#mobile-newfile-btn{display:none!important}#mobile-tools-toggle.hidden{display:none!important}.sidebar-toggle-handle{display:none;width:100%;padding:14px 16px;background:var(--panel-header-bg);border:none;border-bottom:1px solid var(--sidebar-border);cursor:pointer;font-size:13px;font-weight:600;color:var(--panel-header-text);text-transform:uppercase;letter-spacing:0.5px;text-align:left}.sidebar-toggle-handle::after{content:' ▼';float:right;font-size:10px}.sidebar.collapsed .sidebar-toggle-handle::after{content:' ▲'}@media (max-width:1100px){.app{grid-template-columns:1fr 320px}}@media (max-width:860px){.app{grid-template-columns:1fr 300px}header{padding:4px 16px}.header-logo{height:56px}header h1{font-size:20px}.header-titles span{font-size:11px}.nav-btn{padding:6px 10px;font-size:12px}.btn-row{flex-wrap:wrap}.viewer-btn{padding-inline:var(--marca-space-1)}}@media (max-height:650px){header{padding:2px 16px}.header-logo{height:48px}header h1{font-size:18px}.header-titles span{display:none}}@media (max-width:768px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}header{padding:10px 16px}.header-logo{height:50px}header h1{font-size:16px}header span{display:none}.viewer-area{grid-row:2;min-height:50vh}.mobile-toggle-btn{display:flex}.quota-pill{inset-block-end:calc(var(--viewer-gap-basso,16px) + 60px)}.quota-attesa{inset-block-end:calc(var(--viewer-gap-basso,16px) + 60px + 64px)}.sidebar{position:fixed;top:0;left:0;right:0;bottom:0;z-index:200;overflow-y:auto;background:var(--sidebar-bg);transition:transform .3s ease-out;transform:translateY(0)}.sidebar-toggle-handle{display:block;position:sticky;top:0;z-index:2}.sidebar.collapsed{transform:translateY(100%);pointer-events:none}.viewer-buttons{top:0;left:0;right:auto;bottom:auto;transition:opacity .2s,visibility .2s}.debug-legend{display:none}.viewer-buttons.mobile-hidden{opacity:0;visibility:hidden;pointer-events:none}.btn-row{flex-wrap:wrap}.viewer-btn{block-size:calc(var(--marca-control-height) - 2 * var(--marca-border-width));padding-inline:var(--marca-space-1)}.viewer-btn span[data-i18n],.rotate-btn span[data-i18n]{display:none}.viewer-btn,.rotate-btn{justify-content:center;min-inline-size:calc(var(--marca-control-height) - 2 * var(--marca-border-width))}.tool-sep{background:var(--marca-border-control)}.rotate-btn{inline-size:calc(var(--marca-control-height) - 2 * var(--marca-border-width));padding-inline:0}.rotate-btn{block-size:calc(var(--marca-control-height) - 2 * var(--marca-border-width));padding-inline:var(--marca-space-2)}.viewer-info{bottom:60px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap}.viewer-badge{top:8px;left:50%;right:auto;transform:translateX(-50%)}.panel-header{padding:12px;font-size:12px}.panel-body{padding:8px 12px 12px}.prop-row{font-size:12px;padding:4px 0}.step-input{min-height:44px;font-size:14px;padding:8px 10px}#step-reload-btn{width:100%;padding:12px;font-size:14px}}@media (max-width:480px){header{padding:8px 12px;gap:8px}.header-logo{height:40px}header h1{font-size:14px}#theme-btn{padding:4px 10px;font-size:14px}.viewer-area{min-height:55vh}.viewer-btn{padding-inline:var(--marca-space-1)}.prop-row{flex-direction:column;gap:2px}.prop-value{text-align:left}:root{--viewer-gap-basso:12px}.mobile-toggle-btn{width:42px;height:42px;font-size:16px}#mobile-panel-toggle{bottom:12px;right:12px}}@media (hover:none) and (pointer:coarse){.viewer-info{display:none}button{-webkit-tap-highlight-color:transparent}.viewer-buttons{opacity:0;visibility:hidden;pointer-events:none}.viewer-buttons.mobile-visible{opacity:1;visibility:visible;pointer-events:auto}}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(100px);padding:12px 24px;border-radius:8px;z-index:10000;opacity:0;transition:all 0.3s ease;font-size:14px;max-width:80vw;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.25)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media (max-width:768px){.toast{bottom:calc(var(--viewer-gap-basso,16px) + 130px)}}.toast-error{background:#d32f2f;color:#fff}.toast-warning{background:#f57c00;color:#fff}.toast-info{background:#1976d2;color:#fff}.scale-panel{position:fixed;z-index:20;display:flex;flex-direction:column;gap:var(--marca-space-1);padding:var(--marca-space-1);background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-border-control);border-radius:var(--marca-radius-control);font-family:var(--marca-font-mono);font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh);color:var(--marca-text)}.zip-panel{top:50%;left:50%;transform:translate(-50%,-50%);max-width:min(420px,90vw);max-height:70vh;overflow-y:auto}.zip-panel .zip-scelta{display:flex;align-items:center;justify-content:space-between;gap:var(--marca-space-2);padding:var(--marca-space-1);border:var(--marca-border-width) solid var(--marca-border-control);border-radius:var(--marca-radius-control);background:var(--marca-field);color:var(--marca-text);font:inherit;cursor:pointer;text-align:left}.zip-panel .zip-scelta:hover{background:var(--marca-field-alt)}.zip-panel .zip-nome{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zip-panel .zip-peso{color:var(--marca-text-muted);flex:0 0 auto}.tagli-panel{right:var(--marca-space-3);bottom:calc(var(--marca-space-3) + 176px);left:auto;top:auto;min-width:220px}.taglio{display:grid;grid-template-columns:1fr;gap:2px;font-size:12px;color:var(--marca-text-muted)}.taglio input[type="range"]{width:100%;accent-color:var(--marca-identity)}.tagli-nota{font-size:11px;color:var(--marca-text-muted)}.sez-minimo{color:var(--marca-text);white-space:nowrap}.sez-minimo.allarme{color:var(--marca-error);font-weight:var(--marca-weight-medium)}.sez-minimo.incerto{color:var(--marca-text-muted);font-style:italic}.fascia{position:relative;height:32px;margin:2px 0 4px}.fascia-pista,.fascia-piena{position:absolute;top:14px;height:4px}.fascia-pista{left:0;right:0;background:var(--marca-border-control)}.fascia-piena{background:var(--marca-identity)}.fascia-capo{position:absolute;left:0;top:0;width:100%;height:32px;margin:0;padding:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}.fascia-capo:focus{outline:none}.fascia-capo::-webkit-slider-runnable-track{height:32px;background:transparent;border:0}.fascia-capo::-moz-range-track{height:32px;background:transparent;border:0}.fascia-capo::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;inline-size:18px;block-size:18px;margin-top:7px;border-radius:50%;border:2px solid var(--marca-identity);background:var(--marca-surface);cursor:grab}.fascia-capo::-moz-range-thumb{pointer-events:auto;inline-size:18px;block-size:18px;border-radius:50%;border:2px solid var(--marca-identity);background:var(--marca-surface);cursor:grab}.fascia-capo:focus-visible::-webkit-slider-thumb{outline:2px solid var(--marca-identity);outline-offset:2px}.fascia-capo:focus-visible::-moz-range-thumb{outline:2px solid var(--marca-identity);outline-offset:2px}.sez-soglia-blocco{display:grid;gap:0}.sez-riga-fascia{display:flex;align-items:baseline;gap:4px;white-space:nowrap}.sez-scala{display:grid;gap:3px}.sez-riga{position:relative}.sez-tacca{position:absolute;top:-2px;bottom:-2px;inline-size:2px;transform:translateX(-1px);background:var(--marca-text)}.sez-barra{height:10px;border:var(--marca-border-width) solid var(--marca-border-control)}.sez-numeri{display:flex;justify-content:space-between;font-size:11px;color:var(--marca-text-muted);position:relative}.tagli-panel.in-mano{cursor:grabbing}@media (max-width:640px){.tagli-panel{left:var(--marca-space-1);right:var(--marca-space-1);bottom:calc(var(--marca-space-1) + 172px);min-width:0}#thickness-legend{max-height:38vh;overflow-y:auto;font-size:11px}.pannello-fuori #thk-filter-lbl{font-size:13px}.pannello-fuori #thk-filter-hint{font-size:10px}.pannello-fuori .legenda-titolo{display:none}}.scale-panel-title{font-weight:var(--marca-weight-medium);text-transform:uppercase;letter-spacing:0.3px;color:var(--marca-text-muted)}.scale-quick,.scale-row{display:flex;gap:0}.scale-panel button{background:transparent;border:var(--marca-border-width) solid var(--marca-border-control);border-radius:0;color:var(--marca-text-muted);font-family:inherit;font-size:inherit;block-size:calc(var(--marca-control-height-s) - 2 * var(--marca-border-width));padding-inline:var(--marca-space-1);cursor:pointer;transition:background-color var(--marca-motion-state) var(--marca-ease-state),color var(--marca-motion-state) var(--marca-ease-state)}.scale-panel button + button{border-inline-start:0}.scale-quick button:first-child{border-start-start-radius:var(--marca-radius-control);border-end-start-radius:var(--marca-radius-control)}.scale-quick button:last-child{border-start-end-radius:var(--marca-radius-control);border-end-end-radius:var(--marca-radius-control)}.scale-panel button:hover{background:var(--marca-field-alt);color:var(--marca-text)}.scale-panel input[type="number"]{inline-size:84px;block-size:calc(var(--marca-control-height-s) - 2 * var(--marca-border-width));padding-inline:var(--marca-space-1);border:var(--marca-border-width) solid var(--marca-border-control);border-radius:var(--marca-radius-control) 0 0 var(--marca-radius-control);background:var(--marca-field);color:var(--marca-text);font-family:inherit;font-size:inherit}.scale-panel #scale-apply{border-inline-start:0;border-radius:0 var(--marca-radius-control) var(--marca-radius-control) 0}.scale-reset{border-radius:var(--marca-radius-control)!important}.sez-neutro{display:flex;align-items:center;gap:var(--space-1);margin-top:var(--space-1);font-size:11px;line-height:16px;color:var(--marca-text-muted)}.sez-neutro i{width:10px;height:10px;flex:0 0 10px;background:rgb(158,148,184);border:1px solid rgba(0,0,0,.18)}html:not(.addit-only) .sidebar{padding-top:var(--barra-alta,0px)}.viewer-buttons>.btn-row{justify-content:space-between}.tool-gruppo{display:inline-flex;align-items:stretch}.viewer-buttons>.btn-row{justify-content:flex-start}.tool-gruppo + .tool-gruppo{margin-inline-start:var(--marca-space-1);padding-inline-start:var(--marca-space-1);border-inline-start:var(--marca-border-width) solid var(--marca-border-strong)}.tool-gruppo{min-width:0;flex:0 0 auto}.tool-gruppo.zona-lingua{margin-inline-start:auto}.viewer-buttons>.btn-row{flex-wrap:nowrap;overflow:hidden}.btn-row.solo-icone-analisi .tool-gruppo.zona-analisi .viewer-btn>span[data-i18n]{display:none}.btn-row.solo-icone .viewer-btn>span[data-i18n],.btn-row.solo-icone .rotate-btn>span[data-i18n]{display:none}.tool-gruppo>.viewer-btn + .viewer-btn,.tool-gruppo>.rotate-btn + .rotate-btn,.tool-gruppo>#rotate-btns>.rotate-btn:first-child,.tool-gruppo>#rotate-btns + .viewer-btn{border-inline-start:0}.strumenti-fuori{position:fixed;left:0;top:var(--barra-alta,32px);display:none;flex-direction:column;background:var(--marca-surface-overlay,#fff);border:var(--marca-border-width) solid var(--marca-border-control);z-index:55}.strumenti-fuori.aperto{display:inline-flex}#aiuti-panel.aperto ~ #modifica-panel{top:calc(var(--barra-alta,32px) + 260px)}.strumenti-manico{display:flex;align-items:center;justify-content:center;height:18px;cursor:grab;color:var(--marca-text-muted);border-bottom:var(--marca-border-width) solid var(--marca-border-control);touch-action:none}.strumenti-fuori .viewer-btn,.strumenti-fuori .rotate-btn{border:0;border-radius:0;border-block-start:var(--marca-border-width) solid var(--marca-border-control);inline-size:34px;padding-inline:0;justify-content:center}.strumenti-fuori>.viewer-btn:first-of-type{border-block-start:0}#rotate-btns.in-colonna{display:flex;flex-direction:column}.lingua-barra{display:inline-flex;align-items:center;gap:var(--marca-space-1);padding-inline:var(--marca-space-1)}.lingua-barra{position:relative}.lingua-barra .i18n-lang-select{position:absolute;inset:0;inline-size:100%;block-size:100%;appearance:none;-webkit-appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;padding:0;margin:0;opacity:0;color:var(--marca-text)}.lingua-barra .i18n-lang-select option{color:var(--marca-text);background:var(--marca-surface-overlay)}.log-panel{position:fixed;top:calc(var(--barra-alta,32px) + var(--marca-space-2));left:var(--marca-space-3);right:auto;bottom:auto;width:min(1180px,94vw);max-height:60vh;z-index:60;background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-border-control);border-radius:var(--marca-radius-control);overflow:hidden}.log-panel .panel-body{padding:0}.log-testo{margin:0;padding:var(--marca-space-2);max-height:46vh;overflow:auto;font-family:var(--marca-font-mono,monospace);font-size:11px;line-height:16px;white-space:pre;color:var(--marca-text,inherit);background:var(--marca-surface-overlay)}.log-livello{height:20px;padding:0 var(--marca-space-1);font-size:11px;line-height:16px}html.addit-caricamento #viewer-buttons [data-tec]:not(.tec-scelta),html.addit-caricamento #rotate-btns{pointer-events:none;opacity:.4}.tool-gruppo.zona-scarica{display:none}html.addit-scarica .tool-gruppo.zona-scarica{display:inline-flex;margin-inline-start:auto}html.addit-scarica .tool-gruppo.zona-scarica + .tool-gruppo.zona-lingua{margin-inline-start:var(--marca-space-1)}#scarica-app-btn{text-decoration:none;color:inherit}#recenti-btn{display:none}html.addit-desktop #recenti-btn{display:inline-flex}.marca-recenti{position:fixed;z-index:2147483000;min-width:280px;max-width:min(460px,calc(100vw - 16px));max-height:60vh;overflow:auto;padding:var(--marca-space-1) 0;background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-border-control);border-radius:var(--marca-radius-control);color:var(--marca-text);font-family:var(--marca-font-mono);font-size:var(--marca-type-mono-s-size);line-height:var(--marca-type-mono-s-lh)}.marca-recenti-titolo{padding:var(--marca-space-1) var(--marca-space-2);color:var(--marca-text-muted);font-size:var(--marca-type-mono-xs-size);text-transform:uppercase;letter-spacing:.04em}.marca-recenti-vuoto{padding:var(--marca-space-2);color:var(--marca-text-muted)}.marca-recenti button{display:flex;width:100%;align-items:baseline;justify-content:space-between;gap:var(--marca-space-3);padding:var(--marca-space-1) var(--marca-space-2);border:0;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer}.marca-recenti button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.marca-recenti button small{flex:none;color:var(--marca-text-muted);font-size:var(--marca-type-mono-xs-size)}.marca-recenti button:hover,.marca-recenti button:focus-visible{background:var(--marca-identity-wash);outline:none}#quote-btns.in-colonna{display:flex;flex-direction:column}html.addit-quotando #viewer-area canvas{cursor:crosshair}.quota-etichetta{position:fixed;left:0;top:0;z-index:50;display:inline-flex;align-items:center;gap:6px;padding:2px calc(var(--marca-space-1) - var(--marca-border-width));background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-identity);color:var(--marca-text);font-family:var(--marca-font-mono);font-size:12px;line-height:16px;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;border-style:dashed}.quota-etichetta.esatta{border-style:solid}.quota-valore{font-weight:var(--marca-weight-medium,500)}.quota-sotto{color:var(--marca-text-muted);font-size:11px}.quota-togli{display:inline-flex;pointer-events:auto;border:0;padding:0;margin:0;background:none;color:var(--marca-text-muted);cursor:pointer;line-height:1}#quota-suggerimento{position:fixed;left:50%;top:calc(var(--barra-alta,32px) + var(--marca-space-1));transform:translateX(-50%);z-index:56;padding:4px calc(var(--marca-space-1) - var(--marca-border-width));background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-border-control);color:var(--marca-text);font-family:var(--marca-font-mono);font-size:12px;white-space:nowrap;pointer-events:none}#quota-scheda{position:fixed;right:var(--marca-space-2,16px);top:calc(var(--barra-alta,32px) + var(--marca-space-1));z-index:56;min-inline-size:220px;max-inline-size:320px;background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-border-control);color:var(--marca-text);font-family:var(--marca-font-mono);font-size:12px;line-height:16px;font-variant-numeric:tabular-nums}.quota-scheda-testa{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:var(--marca-border-width) solid var(--marca-border-control);cursor:grab;touch-action:none;font-weight:var(--marca-weight-medium,500)}.quota-scheda-testa .quota-togli{color:var(--marca-text-muted)}.quota-scheda-blocco{padding:6px 8px;border-inline-start:4px dashed transparent}.quota-scheda-blocco.esatta{border-inline-start-style:solid}.quota-scheda-blocco + .quota-scheda-blocco{border-top:var(--marca-border-width) solid var(--marca-border-subtle)}.quota-scheda-blocco.sel-a{border-inline-start-color:var(--marca-identity)}.quota-scheda-blocco.sel-b{border-inline-start-color:var(--marca-accent)}.quota-scheda-blocco.sel-ab{border-inline-start-color:var(--marca-text-muted)}.quota-scheda-titolo{font-weight:var(--marca-weight-medium,500);margin-bottom:2px}.quota-scheda-riga{display:flex;justify-content:space-between;gap:12px}.quota-scheda-riga span{color:var(--marca-text-muted)}.quota-scheda-riga b{font-weight:var(--marca-weight-medium,500);white-space:nowrap}html.addit-nofile #quota-scheda{display:none!important}.colori-pezzo{position:fixed;z-index:60;display:flex;flex-direction:column;background:var(--marca-surface-overlay);border:var(--marca-border-width) solid var(--marca-border-control)}.colore-campione{display:flex;align-items:center;justify-content:center;inline-size:34px;block-size:30px;padding:0;border:0;background:none;cursor:pointer}.colore-campione + .colore-campione{border-block-start:var(--marca-border-width) solid var(--marca-border-control)}.colore-campione i{display:block;inline-size:18px;block-size:18px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--marca-border-strong)}.colore-campione.scelto i{box-shadow:0 0 0 2px var(--marca-surface-overlay),0 0 0 4px var(--marca-text)}.colore-campione:hover,.colore-campione:focus-visible{background:var(--marca-identity-wash);outline:none}