:root{
  --navy:#223A5E;
  --navy-dark:#1A2F4D;
  --blue:#0891B2;
  --blue-soft:#EAF7FA;
  --green:#47C27A;
  --green-soft:#EAF8F0;
  --orange:#F59E0B;
  --orange-soft:#FFF5DF;
  --bg:#F5F7FA;
  --card:#FFFFFF;
  --text:#172033;
  --muted:#6B7280;
  --line:#E5EAF0;
  --shadow:0 10px 30px rgba(26,47,77,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:Montserrat,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select{font:inherit}.topbar{height:72px;background:var(--navy-dark);color:white;position:sticky;top:0;z-index:20}.topbar-inner{width:min(1440px,calc(100% - 40px));height:72px;margin:0 auto;display:flex;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:12px;min-width:220px}.brand-mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--green));display:grid;place-items:center;font-weight:800}.brand div{display:flex;flex-direction:column}.brand strong{text-transform:uppercase;letter-spacing:.03em}.brand small{opacity:.7}.topnav{display:flex;gap:6px;flex:1}.nav-btn{border:0;background:transparent;color:#DCE5EF;padding:10px 14px;border-radius:9px;cursor:pointer}.nav-btn.active,.nav-btn:hover{background:rgba(255,255,255,.1);color:#fff}.access-badge{padding:7px 12px;border-radius:999px;font-weight:800;font-size:12px;letter-spacing:.06em}.access-badge.free{background:var(--green);color:#123322}.app-shell{width:min(1440px,calc(100% - 40px));max-width:1440px;margin:0 auto;padding:34px 0 56px}.hero{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px}.eyebrow{font-size:12px;font-weight:800;color:var(--blue);letter-spacing:.12em}.hero h1{margin:7px 0 8px;font-size:38px;color:var(--navy-dark)}.hero p{margin:0;max-width:720px;color:var(--muted);line-height:1.65}.primary-btn,.secondary-btn{border:0;border-radius:10px;cursor:pointer;font-weight:700}.primary-btn{background:var(--orange);color:#1f2937;padding:13px 18px}.secondary-btn{background:var(--navy);color:#fff;padding:12px 18px;align-self:end}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.toolbar{display:flex;gap:14px;padding:18px;margin-bottom:18px;align-items:end}.field{display:flex;flex-direction:column;gap:7px;min-width:140px}.field.grow{flex:1}.field.grow-2{flex:2}.field label{font-size:12px;font-weight:700;color:var(--muted)}select,input{height:44px;border:1px solid var(--line);border-radius:9px;padding:0 12px;background:white;color:var(--text);outline:none}select:focus,input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,145,178,.12)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.stat{padding:18px;display:flex;align-items:center;gap:14px}.stat-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:800}.stat-icon.orange{background:var(--orange-soft);color:#B76C00}.stat-icon.blue{background:var(--blue-soft);color:var(--blue)}.stat-icon.green{background:var(--green-soft);color:#268C52}.stat div{display:flex;flex-direction:column;gap:4px}.stat small{color:var(--muted)}.stat strong{color:var(--navy-dark)}.content-grid{display:grid;grid-template-columns:280px 1fr;gap:18px}.sidebar,.results{padding:20px}.sidebar h2,.results h2{font-size:18px;margin:0 0 14px;color:var(--navy-dark)}.chapter-list{display:flex;flex-direction:column;gap:7px}.chapter{border:0;text-align:left;background:#F7F9FC;padding:11px 12px;border-radius:9px;color:var(--text);cursor:pointer}.chapter.active{background:var(--blue-soft);color:var(--blue);font-weight:700}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:14px}.section-head h2{margin-bottom:5px}.section-head p{margin:0;color:var(--muted);font-size:13px}.pill{background:var(--green-soft);color:#25824E;font-size:11px;font-weight:800;padding:7px 10px;border-radius:999px;white-space:nowrap}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:11px 10px;border-bottom:1px solid var(--line)}td{padding:13px 10px;border-bottom:1px solid var(--line);vertical-align:top}.empty td{text-align:center;color:var(--muted);padding:44px 12px}@media(max-width:900px){.topbar-inner{width:calc(100% - 28px);gap:14px}.brand{min-width:auto}.topnav{display:none}.app-shell{width:calc(100% - 28px);padding:22px 0 40px}.hero{align-items:start;flex-direction:column}.hero h1{font-size:30px}.toolbar{display:grid;grid-template-columns:1fr 1fr}.field.grow,.field.grow-2{grid-column:span 2}.secondary-btn{grid-column:span 2}.stats-grid{grid-template-columns:1fr}.content-grid{grid-template-columns:1fr}.sidebar{display:none}}

/* Guida rapida al computo */
.howto{padding:26px;margin-bottom:18px;overflow:hidden;position:relative}
.howto:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:linear-gradient(135deg,rgba(8,145,178,.08),rgba(71,194,122,.08));right:-90px;top:-110px;pointer-events:none}
.howto-intro{max-width:760px;position:relative;z-index:1}
.howto-intro h2{margin:7px 0 8px;font-size:24px;color:var(--navy-dark)}
.howto-intro p{margin:0;color:var(--muted);line-height:1.65;font-size:14px}
.howto-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px;position:relative;z-index:1}
.howto-step{display:flex;gap:12px;align-items:flex-start;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff}
.step-number{min-width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:800}
.step-number.blue{background:var(--blue-soft);color:var(--blue)}
.step-number.orange{background:var(--orange-soft);color:#B76C00}
.step-number.green{background:var(--green-soft);color:#268C52}
.step-number.navy{background:#EEF2F7;color:var(--navy)}
.howto-step h3{margin:1px 0 5px;font-size:14px;color:var(--navy-dark)}
.howto-step p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.howto-note{margin-top:14px;padding:14px 16px;border-radius:12px;background:linear-gradient(90deg,#F8FAFC,#F2F8F9);display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:1}
.howto-note p{margin:0;color:var(--muted);font-size:12px;line-height:1.55;max-width:670px}
.formula{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:12px;color:var(--navy-dark)}
.formula span{color:var(--orange);font-weight:800}
@media(max-width:1100px){.howto-steps{grid-template-columns:repeat(2,1fr)}.howto-note{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.howto{padding:20px}.howto-steps{grid-template-columns:1fr}.howto-intro h2{font-size:21px}.formula{white-space:normal;flex-wrap:wrap}}

/* v0.2 — consultazione reale del prezzario */
.draft-chip{display:flex;gap:8px;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);padding:7px 10px;border-radius:999px;font-size:11px;color:#dfe8f2}.draft-chip strong{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:var(--orange);color:#252525}.type-filters{padding:12px;display:flex;gap:8px;overflow:auto;margin-bottom:18px}.type-pill{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:999px;padding:9px 12px;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer}.type-pill span{margin-left:6px;color:var(--muted);font-size:10px}.type-pill.active{background:var(--navy);border-color:var(--navy);color:#fff}.type-pill.active span{color:#dbe6f3}.sidebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sidebar-head h2{margin:0}.link-btn{border:0;background:transparent;color:var(--blue);font-size:11px;font-weight:700;cursor:pointer}.chapter{display:flex;justify-content:space-between;gap:10px;align-items:center}.chapter span{overflow:hidden;text-overflow:ellipsis}.chapter small{color:var(--muted);font-size:9px}.chapter.active small{color:inherit}.row-type,.row-path{display:block;color:var(--muted);font-size:9px;margin-top:5px}.row-title{font-size:12px;font-weight:600;line-height:1.5;display:block;max-width:680px}.code-link{border:0;background:transparent;padding:0;color:var(--blue);font-size:11px;font-weight:800;cursor:pointer;text-align:left}.um{display:inline-block;background:#f1f5f9;border-radius:7px;padding:5px 7px;font-weight:700;white-space:nowrap}.price{font-weight:800;color:var(--navy-dark);white-space:nowrap}.actions{white-space:nowrap;text-align:right}.icon-btn,.add-btn,.ghost-btn{border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-weight:700}.icon-btn{width:34px;height:34px;color:var(--blue);margin-right:5px}.add-btn{height:34px;padding:0 10px;background:var(--green-soft);color:#267a4a;border-color:#d7efdf;font-size:11px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:16px;font-size:11px;color:var(--muted)}.ghost-btn{padding:8px 10px;color:var(--navy)}.ghost-btn:disabled{opacity:.35;cursor:not-allowed}.loader{display:inline-block;width:15px;height:15px;border:2px solid #dfe6ee;border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px;margin-right:5px}@keyframes spin{to{transform:rotate(360deg)}}
.modal[hidden],.toast[hidden]{display:none}.modal{position:fixed;inset:0;z-index:100}.modal-backdrop{position:absolute;inset:0;background:rgba(15,27,45,.48);backdrop-filter:blur(3px)}.modal-panel{position:absolute;right:0;top:0;height:100%;width:min(780px,94vw);background:#fff;box-shadow:-20px 0 50px rgba(15,27,45,.16);padding:30px;overflow:auto}.modal-close{position:absolute;right:18px;top:16px;border:0;background:#f1f5f9;width:36px;height:36px;border-radius:10px;font-size:22px;color:var(--navy);cursor:pointer}.modal-open{overflow:hidden}.modal-loading{padding:80px 0;text-align:center;color:var(--muted)}#detailTitle{margin:7px 44px 8px 0;color:var(--navy-dark);font-size:22px}.detail-desc{font-size:14px;line-height:1.7;color:#384559}.detail-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:20px 0}.detail-facts div{border:1px solid var(--line);border-radius:12px;padding:12px}.detail-facts small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:700;margin-bottom:5px}.detail-facts strong{font-size:12px;color:var(--navy-dark)}.detail-path{padding:12px 14px;background:#f7f9fc;border-radius:10px;color:var(--muted);font-size:11px;line-height:1.6}.modal-actions{margin:16px 0 26px}.analysis-head{display:flex;justify-content:space-between;align-items:end;border-top:1px solid var(--line);padding-top:22px;margin-bottom:12px}.analysis-head h3{margin:5px 0 0;color:var(--navy-dark)}.analysis-badge{background:var(--blue-soft);color:var(--blue);border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800}.analysis-table{overflow:auto}.analysis-table table{min-width:680px}.analysis-table td:first-child{max-width:430px}.analysis-table td:first-child small,.analysis-table td:first-child strong{display:block}.analysis-table td:first-child small{font-size:9px;color:var(--blue);margin-bottom:4px}.analysis-table td:first-child strong{font-size:11px;line-height:1.45}.analysis-total td{font-weight:700;background:#fafbfd}.muted{color:var(--muted);font-size:13px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:150;background:var(--navy-dark);color:white;padding:11px 16px;border-radius:10px;box-shadow:var(--shadow);font-size:12px;font-weight:600}
@media(max-width:900px){.draft-chip{margin-left:auto}.access-badge{display:none}.table-wrap table{min-width:760px}.modal-panel{padding:24px 18px}.detail-facts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.brand small{display:none}.draft-chip{font-size:0}.draft-chip:before{content:'Computo';font-size:10px}.detail-facts{grid-template-columns:1fr 1fr}.pager{justify-content:space-between}.pager span{display:none}}

/* v0.3 — computo metrico */
.draft-chip{font-family:inherit;cursor:pointer}.estimate-shell[hidden],#pricesView[hidden]{display:none}.estimate-shell{padding-top:34px}.estimate-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px}.estimate-hero h1{font-size:34px;line-height:1.1;margin:8px 0;color:var(--navy-dark)}.estimate-hero p{margin:0;color:var(--muted);font-size:14px}.estimate-actions{display:flex;gap:9px}.back-link{display:block;border:0;background:transparent;color:var(--blue);font-family:inherit;font-size:11px;font-weight:700;padding:0;margin-bottom:20px;cursor:pointer}.project-card{padding:18px;margin-bottom:16px}.project-grid{display:grid;grid-template-columns:2fr 1.25fr .8fr .85fr;gap:13px;align-items:end}.readonly-field{height:44px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#f7f9fc;color:var(--navy-dark);font-size:12px;font-weight:700}.estimate-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.summary-card{border-radius:14px;padding:16px 18px;background:#fff;border:1px solid var(--line);position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.summary-card.navy:before{background:var(--navy)}.summary-card.blue:before{background:var(--blue)}.summary-card.green:before{background:var(--green)}.summary-card.orange:before{background:var(--orange)}.summary-card small{display:block;color:var(--muted);font-size:10px;font-weight:700;margin-bottom:7px}.summary-card strong{font-size:19px;color:var(--navy-dark)}.estimate-board{padding:20px;margin-bottom:16px}.estimate-board-head{align-items:center}.estimate-rows{display:flex;flex-direction:column;gap:12px}.estimate-item{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.estimate-item-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto 32px;gap:12px;align-items:center;padding:15px 16px;background:linear-gradient(90deg,#fff,#fbfcfe)}.item-index{width:32px;height:32px;border-radius:9px;background:#eef3f8;color:var(--navy);display:grid;place-items:center;font-size:11px;font-weight:800}.item-main{min-width:0}.item-main h3{margin:4px 0 4px;color:var(--navy-dark);font-size:12px;line-height:1.45;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-main small{color:var(--muted);font-size:10px}.item-calc{display:flex;gap:24px}.item-calc span{display:flex;flex-direction:column;align-items:flex-end;gap:3px;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:700}.item-calc strong{font-size:14px;color:var(--navy-dark);text-transform:none}.more-btn,.measure-remove{border:0;background:#f6f8fb;color:#8b98a9;border-radius:8px;cursor:pointer;font-size:18px}.more-btn{width:30px;height:30px}.measure-table-wrap{overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.measure-table{min-width:900px}.measure-table th{background:#f8fafc;padding:8px 9px;font-size:9px}.measure-table td{padding:7px 6px}.measure-table input{height:34px;padding:0 8px;border-radius:7px;font-size:11px;min-width:68px}.measure-table .measure-desc{min-width:220px;width:100%}.measure-total{font-weight:800;color:var(--navy-dark);text-align:right;white-space:nowrap}.measure-remove{width:28px;height:28px;font-size:16px}.item-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;background:#fcfdfe;color:var(--muted);font-size:10px}.item-footer strong{color:var(--navy-dark);font-size:12px}.measure-add{border:0;background:var(--blue-soft);color:var(--blue);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:10px;font-weight:800;cursor:pointer}.estimate-empty{text-align:center;padding:54px 18px;color:var(--muted)}.estimate-empty[hidden],.estimate-rows[hidden]{display:none}.estimate-empty>span{width:52px;height:52px;margin:auto auto 12px;border-radius:15px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:24px}.estimate-empty h3{margin:0 0 7px;color:var(--navy-dark)}.estimate-empty p{font-size:12px;margin:0 0 16px}.estimate-help{display:flex;justify-content:space-between;gap:32px;align-items:center;padding:18px 20px}.estimate-help h2{font-size:17px;margin:4px 0 0;color:var(--navy-dark)}.estimate-help p{max-width:680px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}
@media(max-width:1050px){.project-grid{grid-template-columns:1fr 1fr}.estimate-summary{grid-template-columns:1fr 1fr}.item-calc{gap:12px}.estimate-help{align-items:flex-start;flex-direction:column}}
@media(max-width:720px){.estimate-shell{padding-top:20px}.estimate-hero{align-items:flex-start;flex-direction:column}.estimate-hero h1{font-size:28px}.project-grid{grid-template-columns:1fr}.estimate-summary{grid-template-columns:1fr 1fr}.estimate-item-head{grid-template-columns:32px minmax(0,1fr) 28px}.item-calc{grid-column:2/4;justify-content:flex-start}.item-calc span{align-items:flex-start}.item-footer{align-items:flex-start;flex-direction:column}.estimate-help{padding:16px}.estimate-board{padding:14px}.estimate-board-head{align-items:flex-start;flex-direction:column}}

/* v0.4 — import/export */
.file-modal[hidden]{display:none}.file-modal{position:fixed;inset:0;z-index:110}.file-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,92vw);padding:26px;z-index:2}.file-panel h2{margin:7px 0;color:var(--navy-dark)}.file-panel>p{margin:0 0 18px;color:var(--muted);font-size:12px}.file-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.file-action{border:1px solid var(--line);background:#fff;border-radius:13px;padding:15px;text-align:left;cursor:pointer;font-family:inherit;transition:.18s}.file-action:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(23,45,72,.08);border-color:#c9d7e6}.file-action strong{display:block;color:var(--navy-dark);font-size:13px;margin-bottom:5px}.file-action span{display:block;color:var(--muted);font-size:10px;line-height:1.45}.file-action.blue{background:var(--blue-soft)}.file-action.green{background:var(--green-soft)}.file-action.orange{background:var(--orange-soft)}.file-note{display:flex;gap:12px;align-items:flex-start;margin-top:16px;padding:12px 14px;border-radius:10px;background:#f7f9fc;color:var(--muted);font-size:10px;line-height:1.5}.file-note strong{color:var(--orange);font-size:11px}.estimate-actions{flex-wrap:wrap}@media(max-width:600px){.file-grid{grid-template-columns:1fr}}

/* v0.5 — nuovi prezzi / analisi */
.board-actions{display:flex;gap:8px;flex-wrap:wrap}.np-modal[hidden]{display:none}.np-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(980px,94vw);max-height:90vh;overflow:auto;padding:28px;z-index:2}.np-panel h2{margin:7px 44px 6px 0;color:var(--navy-dark);font-size:22px}.np-lead{color:var(--muted);font-size:12px;margin:0 0 20px;line-height:1.6}.np-grid{display:grid;grid-template-columns:150px minmax(0,1fr) 120px;gap:12px}.np-components-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:24px 0 10px}.np-components-head h3{margin:0 0 4px;color:var(--navy-dark);font-size:15px}.np-components-head p{margin:0;color:var(--muted);font-size:10px}.np-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.np-table{min-width:820px}.np-table th{background:#f8fafc;font-size:9px;padding:9px}.np-table td{padding:6px}.np-table input,.np-table select{height:36px;padding:0 8px;border:1px solid var(--line);border-radius:7px;font-family:inherit;font-size:10px;width:100%;background:#fff}.np-table .np-desc{min-width:260px}.np-row-total{text-align:right;font-weight:800;color:var(--navy-dark);white-space:nowrap}.np-delete{width:30px;height:30px;border:0;border-radius:7px;background:#f6f8fb;color:#8b98a9;cursor:pointer}.np-summary{margin-top:16px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.np-summary>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.np-summary label{display:block;color:var(--muted);font-size:9px;font-weight:700;text-transform:uppercase;margin-bottom:7px}.np-summary strong{display:block;color:var(--navy-dark);font-size:15px}.np-rate{display:grid!important;grid-template-columns:1fr 70px;gap:4px 10px;align-items:center}.np-rate label{grid-column:1/3}.np-rate input{height:34px;border:1px solid var(--line);border-radius:7px;padding:0 8px;font-family:inherit}.np-rate strong{text-align:right;font-size:12px}.np-total{background:var(--green-soft)!important;border-color:#d7efdf!important}.np-total strong{color:#267a4a!important;font-size:19px!important}.np-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.np-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;background:var(--orange-soft);color:var(--orange);font-size:8px;font-weight:800;margin-left:6px}@media(max-width:760px){.np-panel{padding:22px 14px}.np-grid{grid-template-columns:1fr}.np-summary{grid-template-columns:1fr 1fr}.np-components-head{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.np-summary{grid-template-columns:1fr}}

/* v0.6 — progetti e stampa/PDF */
.projects-modal[hidden]{display:none}.projects-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(820px,94vw);max-height:88vh;overflow:auto;padding:28px;z-index:2}.projects-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:6px 0 18px}.projects-head h2{margin:0 0 5px;color:var(--navy-dark);font-size:24px}.projects-head p{margin:0;color:var(--muted);font-size:11px}.projects-list{display:flex;flex-direction:column;gap:10px}.project-row{border:1px solid var(--line);border-radius:13px;padding:14px 15px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff}.project-row.active{border-color:#b9dfe8;background:#f8fcfd}.project-row h3{margin:0 0 5px;color:var(--navy-dark);font-size:13px}.project-row p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.project-row-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.project-row-meta span{padding:4px 7px;border-radius:999px;background:#f3f6f9;color:var(--muted);font-size:9px;font-weight:700}.project-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.project-row-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:9px;font-weight:800;color:var(--navy);cursor:pointer}.project-row-actions .open{background:var(--navy);color:#fff;border-color:var(--navy)}.project-row-actions .delete{color:#b54747}.projects-empty{text-align:center;padding:42px 16px;border:1px dashed #ced7e2;border-radius:14px;color:var(--muted);font-size:11px}.print-brand{display:none}
@media(max-width:680px){.projects-head{align-items:flex-start;flex-direction:column}.project-row{grid-template-columns:1fr}.project-row-actions{justify-content:flex-start}.estimate-actions{width:100%}.estimate-actions .secondary-btn,.estimate-actions .primary-btn{flex:1 1 auto}}

@media print{
  @page{size:A4 portrait;margin:14mm 12mm 16mm}
  body{background:#fff;color:#111;font-size:10pt}.topbar,#pricesView,.estimate-actions,.back-link,.estimate-help,.board-actions,.measure-add,.more-btn,.measure-remove,.toast,.modal{display:none!important}.app-shell{max-width:none!important;margin:0!important;padding:0!important}.estimate-shell{display:block!important;padding:0!important}.estimate-hero{display:block;margin:0 0 10mm}.estimate-hero .eyebrow{color:#223A5E}.estimate-hero h1{font-size:22pt;margin:2mm 0}.estimate-hero p{font-size:9pt}.project-card,.estimate-board,.summary-card{box-shadow:none!important;border:1px solid #d9dee5!important}.project-card{padding:4mm;margin-bottom:4mm}.project-grid{grid-template-columns:2fr 1.3fr 1fr 1fr;gap:3mm}.project-grid input,.project-grid select,.readonly-field{border:0!important;padding:0!important;height:auto!important;background:transparent!important;font-size:9pt}.project-grid label{font-size:7pt}.estimate-summary{grid-template-columns:repeat(4,1fr);gap:3mm;margin-bottom:4mm}.summary-card{padding:3mm}.summary-card:before{display:none}.summary-card small{font-size:7pt}.summary-card strong{font-size:11pt}.estimate-board{padding:0;border:0!important}.estimate-board>.section-head{margin:0 0 4mm}.estimate-board>.section-head h2{font-size:14pt}.estimate-item{break-inside:avoid;border:1px solid #dfe3e8!important;border-radius:0;margin-bottom:4mm}.estimate-item-head{grid-template-columns:8mm 1fr auto!important;padding:3mm;background:#f7f8fa!important}.item-index{width:7mm;height:7mm;border-radius:0}.item-main h3{white-space:normal;font-size:8.5pt}.item-calc{grid-column:auto!important;gap:5mm}.item-calc span{font-size:6pt}.item-calc strong{font-size:9pt}.measure-table-wrap{overflow:visible}.measure-table{min-width:0!important;font-size:7pt}.measure-table th{font-size:6pt;padding:1.5mm}.measure-table td{padding:1.3mm}.measure-table input{border:0!important;height:auto!important;padding:0!important;font-size:7pt;min-width:0;background:transparent!important}.item-footer{padding:2mm 3mm;font-size:7pt}.item-footer strong{font-size:8pt}.estimate-empty{display:none!important}
}

/* v0.7 - classificazione e quadro riepilogativo */
.item-classification{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 14px;background:#f8fafc;border-top:1px solid var(--line)}
.item-classification label{font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.item-classification input{display:block;width:100%;height:34px;margin-top:5px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 9px;font:500 10px Montserrat,sans-serif;color:var(--navy-dark)}
.estimate-recap{padding:20px;margin-bottom:16px}.estimate-recap .section-head{align-items:flex-end}.estimate-recap h2{margin:4px 0 3px;color:var(--navy-dark);font-size:19px}.estimate-recap p{margin:0;color:var(--muted);font-size:11px}.recap-total{font-size:22px;color:var(--navy-dark)}
.recap-table th:nth-last-child(-n+3),.recap-table td:nth-last-child(-n+3){text-align:right}.recap-table td{font-size:11px}.recap-table strong{color:var(--navy-dark)}
@media(max-width:720px){.item-classification{grid-template-columns:1fr}.estimate-recap{padding:14px}.estimate-recap .section-head{align-items:flex-start;flex-direction:column;gap:8px}}
@media print{.item-classification{grid-template-columns:1fr 1fr;padding:2mm 3mm}.item-classification input{border:0!important;height:auto!important;padding:0!important;background:transparent!important;font-size:7pt}.estimate-recap{padding:0;border:0!important;box-shadow:none!important;break-inside:avoid}.estimate-recap .section-head{margin-top:5mm}.recap-table{font-size:7pt}.recap-table th,.recap-table td{padding:1.5mm}}

/* v0.8 — accessi FREE / PREMIUM */
.access-badge{border:0;cursor:pointer;font-family:inherit}.access-badge.premium{background:var(--orange);color:#3b2a08}.access-badge.dev{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18)}
.premium-mark{font-size:8px;margin-left:3px;opacity:.9}.premium-feature.locked{opacity:.58;filter:saturate(.75)}
.access-modal[hidden]{display:none}.access-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,94vw);padding:28px;z-index:2}.access-panel h2{margin:7px 38px 7px 0;color:var(--navy-dark);font-size:24px}.access-lead{margin:0 0 20px;color:var(--muted);font-size:11px;line-height:1.65}.access-plans{display:grid;grid-template-columns:1fr 1fr;gap:14px}.access-plan{border:1px solid var(--line);border-radius:15px;padding:20px;background:#fff}.access-plan.free-plan{background:linear-gradient(180deg,#fff,var(--green-soft))}.access-plan.premium-plan{background:linear-gradient(180deg,#fff,var(--orange-soft));border-color:#f1dfb5}.access-plan-label{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.06em;background:#fff}.free-plan .access-plan-label{color:#267a4a}.premium-plan .access-plan-label{color:#a46100}.access-plan h3{margin:10px 0 6px;color:var(--navy-dark);font-size:17px}.access-plan p{margin:0;color:var(--muted);font-size:10px;line-height:1.6}.access-plan ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:7px}.access-plan li{font-size:10px;color:var(--text);font-weight:600}.access-plan li:before{content:'✓';color:var(--green);font-weight:900;margin-right:7px}.access-dev-note{margin-top:14px;padding:11px 13px;border-radius:10px;background:var(--blue-soft);color:var(--blue);font-size:10px;font-weight:700}.access-dev-note[hidden]{display:none}
@media(max-width:640px){.access-plans{grid-template-columns:1fr}.access-panel{padding:22px 15px}.topbar{gap:12px}.access-badge{padding:6px 8px}}

.source-stat a,.estimate-source a{color:var(--blue);text-decoration:none}.source-stat a:hover,.estimate-source a:hover{text-decoration:underline}.source-stat #sourceLicenseLine{font-size:10px;line-height:1.35}.estimate-source{display:flex;justify-content:space-between;gap:32px;align-items:center;padding:18px 20px;margin-bottom:16px}.estimate-source h2{font-size:16px;margin:4px 0 0;color:var(--navy-dark)}.estimate-source p{max-width:760px;margin:0;color:var(--muted);font-size:11px;line-height:1.6}@media(max-width:720px){.estimate-source{align-items:flex-start;flex-direction:column}}@media print{.estimate-source{display:flex!important;box-shadow:none!important;border:1px solid #d9dee5!important;padding:3mm 4mm;margin:4mm 0}.estimate-source h2{font-size:9pt}.estimate-source p{font-size:7pt}}

/* ComputoPro 2.1.0 — motore computo metrico */
.item-accounting{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:14px 16px;background:#f7f9fc;border-top:1px solid #e7ebf0}
.item-accounting label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#26374a}
.item-accounting select,.item-accounting input{min-height:40px;border:1px solid #cfd7e2;border-radius:9px;padding:8px 10px;background:#fff;font:inherit}
.item-accounting small{color:#6d7784;max-width:520px;padding-bottom:10px}
.lump-sum-field.is-hidden{display:none}
.measure-actions{display:flex;gap:8px;flex-wrap:wrap}
.measure-add.deduction{background:#fff4ed;color:#a94812;border-color:#efc5aa}
.measure-sign{min-width:118px;border:1px solid #d8dee8;border-radius:7px;padding:7px;background:#fff;font:inherit;font-size:12px;font-weight:700}
.measure-deduction{background:#fff8f4}
.measure-deduction .measure-total{color:#b44b19;font-weight:800}
.measure-table{min-width:1040px}
@media(max-width:760px){.item-accounting{align-items:stretch}.item-accounting label{width:100%}.measure-actions{width:100%}.measure-actions button{flex:1}}


/* === MOBILE OVERFLOW FIX === */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body,
.app-shell,
main,
.view,
.content,
.container,
.estimate-shell,
.estimate-main,
.estimate-item,
.item-body,
.item-accounting,
.item-classification,
.item-footer,
.toolbar,
.filters,
.search-row {
  min-width: 0;
  max-width: 100%;
}

img, svg, canvas, iframe, embed {
  max-width: 100%;
}

.measure-table-wrap,
.table-wrap,
.price-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
}

@media (max-width: 760px) {
  body {
    position: relative;
    overflow-x: clip;
  }

  .app-shell,
  main,
  .view,
  .content,
  .estimate-shell {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .item-footer,
  .item-accounting,
  .item-classification,
  .toolbar,
  .filters,
  .search-row {
    flex-wrap: wrap;
  }

  input,
  select,
  textarea,
  button {
    max-width: 100%;
  }

  .measure-table-wrap,
  .table-wrap,
  .price-table-wrap {
    overflow-x: auto;
  }
}

/* === MOBILE HARD LOCK 2.1.4 ===
   Blocca lo spostamento orizzontale dell'intera app su Safari/iPhone.
   Le sole tabelle restano scorribili nel loro contenitore. */
html {
  width: 100%;
  max-width: 100%;
  overflow-x: clip !important;
  overscroll-behavior-x: none;
}
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip !important;
  overscroll-behavior-x: none;
  touch-action: pan-y pinch-zoom;
}
.topbar,
.app-shell,
#pricesView,
#estimateView,
#readerView,
.estimate-shell,
.content-grid,
.results,
.sidebar,
.card,
.estimate-board,
.estimate-item,
.modal,
.modal-backdrop {
  max-width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 900px) {
  .topbar {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
  .app-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow-x: clip !important;
  }
  #pricesView,
  #estimateView,
  #readerView,
  .content-grid,
  .results,
  .estimate-shell,
  .estimate-board,
  .estimate-item {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: clip !important;
  }

  /* Il dettaglio su mobile è una pagina piena, non un drawer al 94%. */
  .modal-panel {
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    transform: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  /* Modali centrali: mai oltre lo schermo. */
  .projects-panel,
  .access-panel,
  .file-panel,
  .np-panel {
    width: calc(100% - 24px) !important;
    max-width: calc(100% - 24px) !important;
    left: 12px !important;
    right: 12px !important;
    transform: translateY(-50%) !important;
  }

  /* Solo queste aree possono scorrere orizzontalmente. */
  .table-wrap,
  .measure-table-wrap,
  .analysis-table,
  .np-table-wrap,
  .recap-table-wrap {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
  }
}


/* =========================================================
   COMPUTO PRO 3.0.0 · COMPUTO GUIDATO
   ========================================================= */
.guided-btn{display:inline-flex;align-items:center;gap:9px;border:1px solid #8bd5cb;background:#e8f8f5;color:#174d55;border-radius:11px;padding:10px 14px;font-family:inherit;font-weight:800;cursor:pointer;min-height:42px}
.guided-btn-num{display:inline-grid;place-items:center;background:#18a99a;color:#fff;border-radius:7px;padding:4px 6px;font-size:10px;letter-spacing:.02em}
.empty-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.guided-modal{
  z-index:130;
  display:grid;
  place-items:center;
  padding:24px;
  overflow:hidden;
  overscroll-behavior:none;
}
.guided-panel{
  position:relative;
  left:auto;
  top:auto;
  transform:none;
  width:min(940px,100%);
  max-width:940px;
  min-width:0;
  max-height:calc(100dvh - 48px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  padding:28px;
  z-index:2;
}
.guided-top{display:flex;justify-content:space-between;gap:22px;padding-right:42px}
.guided-top h2{margin:6px 0 7px;color:var(--navy-dark);font-size:24px}
.guided-top p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.guided-step-badge{flex:0 0 auto;background:var(--navy);color:#fff;border-radius:999px;padding:8px 12px;height:max-content;font-size:11px;font-weight:800}
.guided-steps{display:grid;grid-template-columns:repeat(5,1fr);margin:22px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#f8fafc}
.guided-step{border:0;border-right:1px solid var(--line);background:transparent;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 8px;color:#8490a0;font:inherit;font-size:11px;pointer-events:none}
.guided-step:last-child{border-right:0}.guided-step b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e7ebf0;color:#687587}
.guided-step.active{background:#eef8fb;color:var(--navy);font-weight:800}.guided-step.active b{background:var(--blue);color:#fff}.guided-step.done b{background:var(--green);color:#fff}
.guided-body{min-height:390px}
.guide-question{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.guide-number{display:grid;place-items:center;min-width:42px;height:42px;border-radius:12px;background:var(--orange);color:var(--navy-dark);font-weight:900;font-size:18px}.guide-question h3{margin:1px 0 5px;color:var(--navy-dark);font-size:20px}.guide-question p{margin:0;color:var(--muted);font-size:12px}
.guide-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.guide-choice,.guide-work{border:1px solid var(--line);background:#fff;border-radius:13px;padding:15px;text-align:left;cursor:pointer;font-family:inherit;color:var(--navy-dark)}.guide-choice strong,.guide-choice span{display:block}.guide-choice span{font-size:10px;color:var(--muted);margin-top:4px}.guide-choice.selected,.guide-work.selected{border-color:#53bfb4;background:#eaf9f6;box-shadow:0 0 0 2px rgba(24,169,154,.08)}
.guide-work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.guide-work{text-align:center;display:grid;gap:7px;place-items:center}.guide-work>span{font-size:25px}.guide-work strong{font-size:12px}.guide-work small{font-size:10px;color:var(--blue);font-weight:800}
.guide-why{display:flex;gap:12px;margin-top:18px;padding:13px 15px;background:#f6f8fb;border:1px solid var(--line);border-radius:12px}.guide-why>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#dfeaf7;color:var(--navy);font-weight:900}.guide-why strong{font-size:11px;color:var(--navy-dark)}.guide-why p{margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.5}
.guide-mode{display:inline-flex;background:#f1f4f8;padding:4px;border-radius:11px;margin-bottom:14px}.guide-mode button{border:0;background:transparent;border-radius:8px;padding:9px 12px;font:inherit;font-size:10px;font-weight:800;color:var(--muted);cursor:pointer}.guide-mode button.active{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(20,40,65,.08)}
.guide-measure-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.guide-measure-grid.one{grid-template-columns:minmax(220px,380px)}.guide-measure-grid label{font-size:10px;font-weight:800;color:#5e6a7b}.guide-measure-grid label span{float:right;color:var(--blue)}.guide-measure-grid input{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;font-size:14px;color:var(--navy-dark)}
.guide-openings{margin-top:15px;border:1px solid var(--line);border-radius:12px;padding:13px}.guide-openings-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.guide-openings-head strong,.guide-openings-head small{display:block}.guide-openings-head small{font-size:9px;color:var(--muted);margin-top:2px}.guide-opening{display:grid;grid-template-columns:1.6fr .5fr 1fr auto 1fr auto;gap:7px;align-items:center;margin-top:9px}.guide-opening input{min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px;font:inherit;font-size:11px}.guide-opening button{border:0;background:#fff0ea;color:#a84a20;width:31px;height:31px;border-radius:8px;font-size:18px;cursor:pointer}.guide-no-openings{margin:12px 0 0;color:var(--muted);font-size:10px}
.guide-live-result{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:16px;padding:14px 16px;background:var(--navy-dark);color:#fff;border-radius:12px}.guide-live-result span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.guide-live-result strong{font-size:22px}.guide-live-result small{margin-left:auto;opacity:.75}
.guide-search{display:flex;gap:9px}.guide-search input{flex:1;min-width:0;border:1px solid var(--line);border-radius:11px;padding:12px 14px;font:inherit;font-size:14px}.guide-search-note{font-size:10px;color:var(--muted);margin:8px 2px 12px}
.guide-price-results{display:grid;gap:7px;max-height:270px;overflow:auto;padding-right:3px}.guide-price{display:grid;grid-template-columns:180px 1fr auto;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 12px;font-family:inherit;cursor:pointer}.guide-price span b,.guide-price span small{display:block}.guide-price span b{font-size:10px;color:var(--blue)}.guide-price span small{font-size:9px;color:var(--muted);margin-top:3px}.guide-price>strong{font-size:10px;line-height:1.45;color:var(--navy-dark)}.guide-price em{font-style:normal;font-size:8px;background:#e7f7ef;color:#278454;padding:5px 7px;border-radius:999px;font-weight:800}.guide-price.mismatch{opacity:.62}.guide-price.mismatch em{background:#fff1e8;color:#a65420}.guide-price.selected{border-color:#23aa9c;background:#effaf8;box-shadow:0 0 0 2px rgba(35,170,156,.08)}
.guide-loading,.guide-empty-search{padding:30px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;font-size:11px}.guide-warning{margin-top:10px;padding:11px 13px;border-radius:10px;background:#fff2e8;color:#934a1e;font-size:10px;line-height:1.45}
.guide-confirm{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line);border-radius:13px;overflow:hidden}.guide-confirm>div{padding:14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.guide-confirm>div:nth-child(2n){border-right:0}.guide-confirm small,.guide-confirm strong,.guide-confirm span{display:block}.guide-confirm small{font-size:9px;color:var(--muted);text-transform:uppercase;font-weight:800;margin-bottom:5px}.guide-confirm strong{color:var(--navy-dark);font-size:14px}.guide-confirm span{font-size:9px;color:var(--muted);line-height:1.4;margin-top:4px}.guide-confirm .guide-confirm-total{grid-column:1/-1;background:#f0faf7;border-bottom:0;border-right:0}.guide-confirm-total strong{font-size:23px;color:#16856f}
.guided-footer{position:sticky;bottom:-28px;margin:22px -28px -28px;padding:14px 28px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.guided-footer-right{display:flex;align-items:center;gap:12px}.guided-footer-right>span{font-size:10px;color:var(--muted)}
@media(max-width:760px){
  .guided-panel{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;padding:18px;left:0;top:0;transform:none}
  .guided-top{padding-right:36px}.guided-top h2{font-size:19px}.guided-step span{display:none}.guided-steps{margin:16px 0}.guided-step{padding:8px}.guided-body{min-height:0}
  .guide-choice-grid{grid-template-columns:1fr}.guide-work-grid{grid-template-columns:repeat(2,1fr)}
  .guide-measure-grid{grid-template-columns:repeat(2,1fr)}.guide-opening{grid-template-columns:1fr 54px 1fr}.guide-opening>span{display:none}.guide-opening input[data-go="height"]{grid-column:2/4}.guide-opening button{grid-column:4}
  .guide-price{grid-template-columns:1fr}.guide-price em{justify-self:start}.guide-confirm{grid-template-columns:1fr}.guide-confirm>div{border-right:0}.guide-confirm .guide-confirm-total{grid-column:1}
  .guided-footer{bottom:-18px;margin:18px -18px -18px;padding:12px 18px}.guided-footer-right>span{display:none}.guided-footer .primary-btn{min-height:44px}
}


/* Computo Pro 3.0.1 — chiusura modalità guidata stile macOS */
.guided-mac-close{
  position:absolute;
  top:16px;
  right:18px;
  width:18px;
  height:18px;
  border:0;
  border-radius:50%;
  background:#ff5f57;
  padding:0;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.10);
  z-index:5;
}
.guided-mac-close span{
  opacity:0;
  font-size:11px;
  line-height:1;
  color:#6e1b17;
  font-weight:900;
  transform:translateY(-.5px);
}
.guided-mac-close:hover span,
.guided-mac-close:focus-visible span{opacity:1}
.guided-mac-close:focus-visible{outline:3px solid rgba(255,95,87,.22);outline-offset:3px}
@media(max-width:760px){
  .guided-mac-close{top:14px;right:14px;width:20px;height:20px}
}

/* Computo Pro 3.0.2 */
.guide-field-help{display:block;float:none!important;margin-top:6px;font-size:9px;line-height:1.4;font-weight:500;color:var(--muted)!important}
.guided-progress-summary{min-width:190px;text-align:center}
.guided-progress-summary strong,.guided-progress-summary span{display:block}
.guided-progress-summary strong{color:var(--navy-dark);font-size:11px}
.guided-progress-summary span{color:var(--muted);font-size:8px;margin-top:2px}
.guided-finish-btn{border-color:#7bc7a7;background:#eef9f4;color:#176b52;font-weight:800}
.guided-finish-btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){
 .guided-footer{display:grid;grid-template-columns:auto 1fr}
 .guided-progress-summary{grid-column:1/-1;grid-row:1;text-align:left;min-width:0}
 .guided-footer>#guidedBack{grid-column:1;grid-row:2}
 .guided-footer-right{grid-column:2;grid-row:2;justify-content:flex-end;flex-wrap:wrap}
 .guided-finish-btn{min-height:44px}
}

.guide-np-entry{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:14px;padding:14px;border:1px dashed #7eb8cc;border-radius:12px;background:#f3f9fc}.guide-np-entry strong,.guide-np-entry span{display:block}.guide-np-entry strong{font-size:11px}.guide-np-entry span{font-size:9px;color:var(--muted);margin-top:3px}
.analysis-assist-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(920px,94vw);max-height:92%;overflow:auto;padding:28px;z-index:2}.analysis-assist-head h2{margin:6px 0}.analysis-assist-head p{color:var(--muted);font-size:11px}.analysis-assist-steps{display:grid;grid-template-columns:repeat(4,1fr);margin:18px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.analysis-assist-steps span{padding:10px;text-align:center;font-size:9px;background:#f8fafc}.analysis-assist-steps span.active{background:#eaf7fb;font-weight:800}.analysis-assist-body{min-height:350px}.analysis-assist-footer{position:sticky;bottom:-28px;margin:20px -28px -28px;padding:14px 28px;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-between}.analysis-assist-footer-right{display:flex;gap:10px;align-items:center}.analysis-assist-footer-right span{font-size:9px;color:var(--muted)}
.aa-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.aa-form-grid .wide,.aa-component .wide{grid-column:1/-1}.aa-form-grid label,.aa-component label{font-size:9px;font-weight:800}.aa-form-grid input,.aa-form-grid textarea,.aa-component input{width:100%;margin-top:5px;padding:9px;border:1px solid var(--line);border-radius:8px;font:inherit}.aa-component-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.aa-component-actions button{padding:8px;border:1px solid var(--line);background:#fff;border-radius:8px;font:inherit;font-size:9px;font-weight:800}.aa-components{display:grid;gap:9px}.aa-component{position:relative;display:grid;grid-template-columns:2fr .7fr 1fr 1fr;gap:7px;padding:11px;border:1px solid var(--line);border-radius:10px}.aa-component-title{grid-column:1/-1;display:flex;justify-content:space-between}.aa-component-title button{border:0;background:#fff0ea;border-radius:7px}.aa-row-total{position:absolute;right:12px;bottom:10px;font-weight:900;color:#16856f}.aa-direct-total{display:flex;justify-content:space-between;margin-top:10px;padding:12px;background:var(--navy-dark);color:#fff;border-radius:10px}.aa-summary-table{border:1px solid var(--line);border-radius:11px;overflow:hidden}.aa-summary-table>div{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid var(--line)}.aa-summary-table .total{background:#effaf7}.aa-summary-table input{width:70px;margin-left:8px}
@media(max-width:760px){.guided-footer{display:grid;grid-template-columns:auto 1fr;gap:7px 9px;padding-top:8px;padding-bottom:8px}.guided-progress-summary{grid-column:1/-1;grid-row:1;text-align:center;line-height:1.1}.guided-progress-summary strong,.guided-progress-summary span{display:inline;font-size:8px}.guided-progress-summary strong+span::before{content:" · "}.guided-footer>#guidedBack{grid-column:1;grid-row:2}.guided-footer-right{grid-column:2;grid-row:2;flex-wrap:nowrap}.guide-np-entry{flex-direction:column;align-items:stretch}.analysis-assist-panel{width:100%;height:100%;max-height:100%;left:0;top:0;transform:none;border-radius:0;padding:18px}.aa-form-grid{grid-template-columns:1fr}.aa-form-grid .wide{grid-column:1}.aa-component{grid-template-columns:1fr 1fr}.aa-component-title,.aa-component .wide{grid-column:1/-1}.aa-row-total{position:static;grid-column:1/-1;text-align:right}.analysis-assist-footer{bottom:-18px;margin:18px -18px -18px;padding:11px 18px}.analysis-assist-footer-right span{display:none}}

/* Computo Pro 3.1.1 — nota NP nel passaggio prezzo */
.guide-np-note{
  display:block;
  width:100%;
  max-width:100%;
  margin-top:7px;
  color:#e87524;
  font-size:10px;
  line-height:1.45;
  font-weight:650;
  overflow-wrap:anywhere;
}
.guide-np-note strong{font-weight:900}
.guide-np-note small{
  display:block;
  margin-top:2px;
  font-size:8px;
  line-height:1.3;
  font-weight:650;
  opacity:.88;
}
@media(max-width:760px){
  .guide-np-note{
    margin-top:6px;
    font-size:9px;
    line-height:1.4;
  }
  .guide-np-note small{font-size:7.5px}
}

/* Computo Pro 3.1.2 — ricerca rapida per categoria */
.toolbar #categorySelect{min-width:190px}
.guide-search-with-category{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(170px,.9fr) auto;
  gap:8px;
  align-items:center;
}
.guide-search-with-category select{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:9px;
  padding:10px 11px;
  background:#fff;
  color:var(--navy-dark);
  font:inherit;
}
@media(max-width:760px){
  .toolbar #categorySelect{min-width:0}
  .guide-search-with-category{
    grid-template-columns:minmax(0,1fr) auto;
  }
  .guide-search-with-category input{grid-column:1/-1}
  .guide-search-with-category select{grid-column:1}
  .guide-search-with-category #gSearchBtn{grid-column:2}
}

/* Computo Pro 3.1.2 — controlli finestra stile macOS */
.guided-window-controls{
  position:absolute;
  top:16px;
  right:18px;
  z-index:7;
  display:flex;
  align-items:center;
  gap:7px;
}
.guided-window-dot{
  width:14px;
  height:14px;
  min-width:14px;
  padding:0;
  border:0;
  border-radius:50%;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);
}
.guided-window-dot span{
  font-size:9px;
  line-height:1;
  font-weight:900;
  color:rgba(20,28,38,.72);
  opacity:0;
  transform:translateY(-.2px);
}
.guided-window-controls:hover .guided-window-dot span,
.guided-window-dot:focus-visible span{opacity:1}
.guided-window-close{background:#ff5f57}
.guided-window-minimize{background:#febc2e}
.guided-window-finish{background:#28c840}
.guided-window-finish:disabled{
  opacity:.34;
  cursor:not-allowed;
  filter:saturate(.45);
}
.guided-window-finish:disabled span{opacity:0}
.guided-top{padding-right:72px}
@media(max-width:760px){
  .guided-window-controls{top:12px;right:13px;gap:6px}
  .guided-window-dot{width:13px;height:13px;min-width:13px}
  .guided-top{padding-right:60px}
  .guided-progress-summary span{font-size:7.5px}
}


/* =========================================================
   Computo Pro 3.2.0 — Revisione finale e PDF professionale
   ========================================================= */
.final-review-panel{
  position:relative;
  width:min(1180px,calc(100vw - 32px));
  max-height:calc(100vh - 32px);
  overflow:auto;
  padding:24px;
}
.final-review-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-right:36px}
.final-review-head h2{margin:4px 0 7px;color:var(--navy-dark);font-size:24px}
.final-review-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.final-review-state{flex:0 0 auto;padding:7px 10px;border-radius:999px;font-size:9px;font-weight:900;background:#eef4f7;color:var(--navy)}
.final-review-state.ok{background:#eaf8ef;color:#287a49}
.final-review-state.warning{background:#fff4e6;color:#a65b11}
.final-review-state.danger{background:#ffeded;color:#a33a3a}
.final-review-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
.final-review-summary article{border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#fff}
.final-review-summary small{display:block;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.final-review-summary strong{display:block;margin-top:5px;color:var(--navy-dark);font-size:18px}
.final-review-summary .total{background:var(--navy);border-color:var(--navy)}
.final-review-summary .total small,.final-review-summary .total strong{color:#fff}
.final-review-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.final-review-checks article{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.final-review-checks article>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-weight:900;flex:0 0 auto}
.final-review-checks strong{display:block;font-size:10px;color:var(--navy-dark)}
.final-review-checks p{margin:3px 0 0;color:var(--muted);font-size:9px;line-height:1.45}
.final-review-checks .ok>span{background:#eaf8ef;color:#287a49}
.final-review-checks .warning>span{background:#fff4e6;color:#a65b11}
.final-review-checks .danger>span{background:#ffeded;color:#a33a3a}
.final-review-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}
.final-review-table{width:100%;border-collapse:collapse;min-width:900px;font-size:9px}
.final-review-table th{padding:9px 10px;text-align:left;background:#f4f7fa;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line)}
.final-review-table td{padding:10px;border-bottom:1px solid #edf0f3;vertical-align:top;color:#334155}
.final-review-table tr:last-child td{border-bottom:0}
.final-review-table td:nth-child(5),.final-review-table td:nth-child(6),.final-review-table td:nth-child(7){white-space:nowrap;text-align:right}
.final-review-table td small{display:block;margin-top:3px;color:#d46c16;font-size:7px;font-weight:900}
.review-status{display:inline-block;max-width:180px;padding:4px 6px;border-radius:7px;font-size:7px;font-weight:900;line-height:1.3}
.review-status.ok{background:#eaf8ef;color:#287a49}
.review-status.warning{background:#fff4e6;color:#a65b11}
.review-status.danger{background:#ffeded;color:#a33a3a}
.final-review-empty{text-align:center!important;padding:30px!important;color:var(--muted)!important}
.final-review-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:18px}
.final-review-actions>div{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.final-review-pdf{min-width:130px}
.final-print-area{display:none}

@media(max-width:760px){
  .final-review-panel{width:100vw;max-height:100dvh;height:100dvh;border-radius:0!important;padding:18px 13px}
  .final-review-head{display:block;padding-right:32px}
  .final-review-head h2{font-size:20px}
  .final-review-state{display:inline-block;margin-top:10px}
  .final-review-summary{grid-template-columns:1fr 1fr}
  .final-review-checks{grid-template-columns:1fr}
  .final-review-actions{align-items:stretch;flex-direction:column}
  .final-review-actions>button,.final-review-actions>div{width:100%}
  .final-review-actions>div{display:grid;grid-template-columns:1fr 1fr}
  .final-review-actions .final-review-pdf{grid-column:1/-1}
}

/* Stampa dedicata: il browser può salvarla direttamente come PDF */
@media print{
  body.print-final-review > *:not(#finalPrintArea){display:none!important}
  body.print-final-review #finalPrintArea{display:block!important}
  body.print-final-review{background:#fff!important;color:#172033!important;font-family:Montserrat,Arial,sans-serif!important}
  @page{size:A4 portrait;margin:12mm 10mm 14mm}
  .final-print-area{width:100%;font-size:8pt;line-height:1.35}
  .print-doc-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2.5px solid #162B50;padding-bottom:5mm;margin-bottom:5mm}
  .print-brand-block span{display:block;color:#e87524;font-size:8pt;font-weight:900;letter-spacing:.12em}
  .print-brand-block strong{display:block;color:#162B50;font-size:18pt;line-height:1.05;margin:1mm 0}
  .print-brand-block small{color:#65758a;font-size:7pt}
  .print-doc-meta{text-align:right}
  .print-doc-meta span{display:block;color:#65758a;font-size:6.5pt;text-transform:uppercase}
  .print-doc-meta strong{display:block;color:#162B50;font-size:9pt;margin-top:1mm}
  .print-project-head{margin-bottom:4mm}
  .print-project-head>div:first-child small{color:#65758a;font-size:6.5pt;font-weight:800;letter-spacing:.08em}
  .print-project-head h1{margin:1mm 0 3mm;color:#162B50;font-size:15pt;line-height:1.2}
  .print-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:2mm 7mm;padding:3mm;background:#f5f7fa;border-radius:2mm}
  .print-project-grid p{margin:0}
  .print-project-grid span{display:block;color:#65758a;font-size:6pt;text-transform:uppercase;font-weight:800}
  .print-project-grid strong{display:block;color:#1e293b;font-size:7.5pt;margin-top:.5mm}
  .print-summary-strip{display:grid;grid-template-columns:.7fr .8fr .6fr 1.6fr;border:1px solid #dce2e8;margin-bottom:5mm}
  .print-summary-strip div{padding:2.5mm 3mm;border-right:1px solid #dce2e8}
  .print-summary-strip div:last-child{border-right:0}
  .print-summary-strip span{display:block;color:#65758a;font-size:6pt;text-transform:uppercase;font-weight:800}
  .print-summary-strip strong{display:block;color:#162B50;font-size:10pt;margin-top:.6mm}
  .print-summary-strip .grand{background:#162B50}
  .print-summary-strip .grand span,.print-summary-strip .grand strong{color:#fff}
  .print-computo-table{width:100%;border-collapse:collapse;table-layout:fixed}
  .print-computo-table thead{display:table-header-group}
  .print-computo-table tfoot{display:table-footer-group}
  .print-computo-table tr{break-inside:avoid;page-break-inside:avoid}
  .print-computo-table th{background:#162B50!important;color:#fff!important;padding:2mm 1.4mm;font-size:6.1pt;text-align:left;border:1px solid #162B50}
  .print-computo-table th:nth-child(1){width:5%}
  .print-computo-table th:nth-child(2){width:13%}
  .print-computo-table th:nth-child(3){width:40%}
  .print-computo-table th:nth-child(4){width:7%}
  .print-computo-table th:nth-child(5){width:10%}
  .print-computo-table th:nth-child(6){width:12%}
  .print-computo-table th:nth-child(7){width:13%}
  .print-computo-table td{padding:2mm 1.4mm;border:1px solid #dce2e8;vertical-align:top;font-size:6.8pt;color:#26354a}
  .print-computo-table td.num{text-align:right;white-space:nowrap}
  .print-computo-table td.amount{font-weight:900;color:#162B50}
  .print-computo-table td small{display:block;color:#e87524;font-size:5.5pt;font-weight:900;margin-top:.6mm}
  .print-desc{font-weight:700;color:#1e293b}
  .print-measures{margin-top:1.2mm;padding-top:1mm;border-top:1px dotted #ccd4dd}
  .print-measures span{display:block;color:#65758a;font-size:5.7pt;margin:.5mm 0}
  .print-measures b{color:#162B50}
  .print-computo-table tfoot td{padding:3mm 1.5mm;background:#f1f4f7!important;font-size:8pt;font-weight:900;color:#162B50;border-top:2px solid #162B50}
  .print-computo-table tfoot td:last-child{text-align:right;font-size:10pt}
  .print-np-note{margin-top:4mm;padding:3mm;border-left:2mm solid #e87524;background:#fff8f1}
  .print-np-note strong{color:#b45712;font-size:7pt}
  .print-np-note p{margin:1mm 0 0;color:#5f6772;font-size:6.2pt}
  .print-signatures{display:grid;grid-template-columns:1fr 1fr;gap:20mm;margin-top:15mm;break-inside:avoid}
  .print-signatures div{color:#65758a;font-size:6.5pt}
  .print-signatures i{display:block;border-bottom:1px solid #8b97a6;height:14mm}
}


/* v3.2.0 — stabilità finestra Computo assistito su iPad/tablet */
.guided-panel *,
.guided-panel *::before,
.guided-panel *::after{box-sizing:border-box}
.guided-panel > *,
.guided-body,
.guided-top,
.guided-steps,
.guided-footer,
.guide-question,
.guide-choice-grid,
.guide-work-grid,
.guide-measure-grid,
.guide-search,
.guide-price-results{
  min-width:0;
  max-width:100%;
}
.guided-body{overflow-x:hidden}
.guided-panel input,
.guided-panel select,
.guided-panel textarea,
.guided-panel button{max-width:100%}

/* Safari iPad: niente translate sul viewport dinamico e nessun trascinamento laterale */
@media (min-width:761px) and (max-width:1366px){
  .guided-modal{
    padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right))
            max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
  }
  .guided-panel{
    width:min(940px,calc(100vw - 36px));
    max-height:calc(100dvh - 36px);
    margin:0;
  }
  .guided-footer{
    max-width:100%;
    overflow:hidden;
  }
}

/* telefoni: mantiene la finestra ferma e sfrutta tutto lo spazio utile */
@media(max-width:760px){
  .guided-modal{padding:0;place-items:stretch}
  .guided-panel{
    width:100%;
    max-width:none;
    height:100dvh;
    max-height:100dvh;
    border-radius:0!important;
    margin:0;
  }
}


/* v3.2.0 — Analisi prezzi assistita sopra il Computo guidato */
#analysisAssistModal{
  z-index:160;
  display:grid;
  place-items:center;
  padding:24px;
  overflow:hidden;
  overscroll-behavior:none;
}
#analysisAssistModal[hidden]{display:none!important}

#analysisAssistModal .modal-backdrop{
  z-index:0;
  background:rgba(10,22,38,.62);
}

#analysisAssistModal .analysis-assist-panel{
  position:relative;
  left:auto;
  top:auto;
  transform:none;
  z-index:2;
  width:min(920px,100%);
  max-width:920px;
  min-width:0;
  max-height:calc(100dvh - 48px);
  margin:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
}

#analysisAssistModal .analysis-assist-panel *,
#analysisAssistModal .analysis-assist-panel *::before,
#analysisAssistModal .analysis-assist-panel *::after{
  box-sizing:border-box;
}

#analysisAssistModal .analysis-assist-body,
#analysisAssistModal .analysis-assist-head,
#analysisAssistModal .analysis-assist-steps,
#analysisAssistModal .analysis-assist-footer,
#analysisAssistModal .aa-form-grid,
#analysisAssistModal .aa-components,
#analysisAssistModal .aa-component{
  min-width:0;
  max-width:100%;
}

@media (min-width:761px) and (max-width:1366px){
  #analysisAssistModal{
    padding:max(18px,env(safe-area-inset-top))
            max(18px,env(safe-area-inset-right))
            max(18px,env(safe-area-inset-bottom))
            max(18px,env(safe-area-inset-left));
  }
  #analysisAssistModal .analysis-assist-panel{
    width:min(920px,calc(100vw - 36px));
    max-height:calc(100dvh - 36px);
  }
}

@media(max-width:760px){
  #analysisAssistModal{
    padding:0;
    place-items:stretch;
  }
  #analysisAssistModal .analysis-assist-panel{
    width:100%;
    max-width:none;
    height:100dvh;
    max-height:100dvh;
    border-radius:0!important;
  }
}

/* v3.3.0 — sezione Progetto Revit */
.topnav [data-view="reader"] .premium-mark{margin-left:3px}


/* ── 3.3.0 UI refinement ─────────────────────────────────── */
.topnav .nav-btn{
  font-weight:800!important;
  text-transform:uppercase;
  letter-spacing:.055em;
  font-size:10px;
}
.hero{
  position:relative;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute;
  right:-85px;
  top:-115px;
  width:260px;
  height:260px;
  border-radius:50%;
  background:rgba(42,157,188,.055);
  pointer-events:none;
}
.hero>div:first-child{position:relative;z-index:1}
.hero-actions{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
.hero-actions>button{white-space:nowrap}
.guided-hero-btn{
  min-height:42px;
  border:0;
  border-radius:10px;
  padding:0 15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  background:#2f9e61;
  color:#fff;
  box-shadow:0 7px 18px rgba(47,158,97,.18);
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.guided-hero-btn:hover{
  background:#278753;
  transform:translateY(-1px);
  box-shadow:0 9px 22px rgba(47,158,97,.24);
}
.guided-hero-icon{
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  border-radius:50%;
  background:rgba(255,255,255,.18);
  font-size:10px;
  font-weight:900;
}
.toolbar.card{
  border-top:3px solid rgba(28,72,104,.08);
}
.toolbar .field label{
  font-weight:800;
  letter-spacing:.025em;
}
.stats-grid .stat{
  transition:transform .16s ease,box-shadow .16s ease;
}
.stats-grid .stat:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 25px rgba(24,52,74,.07);
}
.section-head h2,
.howto h2{
  letter-spacing:-.018em;
}
.card{
  box-shadow:0 5px 18px rgba(24,52,74,.045);
}
@media(max-width:820px){
  .hero-actions{
    width:100%;
    justify-content:flex-start;
    margin-top:14px;
  }
}
@media(max-width:560px){
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .hero-actions>button{width:100%}
  .topnav .nav-btn{
    font-size:9px;
    letter-spacing:.035em;
  }
}


/* ── 3.3.0 UI2 · selettore Nuovo Computo ───────────────── */
.new-computo-box{
  position:relative;
  z-index:2;
  flex:0 0 auto;
  min-width:390px;
  padding:10px;
  border:1px solid #e2e8ee;
  border-radius:15px;
  background:rgba(255,255,255,.94);
  box-shadow:0 9px 25px rgba(24,52,74,.075);
}
.new-computo-title{
  display:block;
  margin:0 2px 8px;
  color:var(--navy-dark);
  font-size:9px;
  line-height:1;
  font-weight:900;
  letter-spacing:.12em;
}
.new-computo-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.new-computo-choice{
  width:100%;
  height:44px;
  min-height:44px;
  border:0;
  border-radius:10px;
  padding:0 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font:inherit;
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.035em;
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.new-computo-choice.traditional{
  background:#f4b83f;
  color:#3d3217;
  box-shadow:0 6px 15px rgba(244,184,63,.18);
}
.new-computo-choice.assisted{
  background:#2f9e61;
  color:#fff;
  box-shadow:0 6px 15px rgba(47,158,97,.18);
}
.new-computo-choice:hover{
  transform:translateY(-1px);
  filter:saturate(1.05) brightness(.98);
}
.new-computo-choice-icon{
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  flex:0 0 19px;
  border-radius:50%;
  background:rgba(255,255,255,.25);
  font-size:11px;
  font-weight:900;
}
.new-computo-choice.traditional .new-computo-choice-icon{
  background:rgba(255,255,255,.38);
}
@media(max-width:900px){
  .new-computo-box{
    width:100%;
    min-width:0;
  }
}
@media(max-width:480px){
  .new-computo-options{grid-template-columns:1fr 1fr}
  .new-computo-choice{
    height:46px;
    padding:0 8px;
    font-size:9px;
    gap:5px;
  }
}


/* ── 3.3.0 UI3 · brand + footer ─────────────────────────── */
.brand>div{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.brand strong{
  font-weight:900;
  letter-spacing:.035em;
}
.brand small{
  margin-top:1px;
  font-size:8px;
  font-weight:600;
  letter-spacing:.02em;
  opacity:.72;
}
.app-footer{
  width:100%;
  margin-top:34px;
  border-top:1px solid #dfe6eb;
  background:#f7f9fa;
  color:#667483;
}
.app-footer-inner{
  width:min(1440px,calc(100% - 40px));
  margin:0 auto;
  min-height:64px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:24px;
  align-items:center;
  padding:13px 0;
  font-size:8px;
}
.app-footer-brand{
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
}
.app-footer-brand strong{
  color:var(--navy-dark);
  font-size:9px;
  font-weight:900;
  letter-spacing:.06em;
}
.app-footer-brand span{
  padding-left:9px;
  border-left:1px solid #ccd5dc;
}
.app-footer-credits{
  text-align:center;
  line-height:1.5;
}
.app-footer-contact{
  text-align:right;
  white-space:nowrap;
}
.app-footer a{
  color:var(--blue);
  font-weight:800;
  text-decoration:none;
}
.app-footer a:hover{text-decoration:underline}
@media(max-width:850px){
  .app-footer-inner{
    grid-template-columns:1fr;
    gap:5px;
    padding:15px 0;
    text-align:center;
  }
  .app-footer-brand{justify-content:center}
  .app-footer-credits,.app-footer-contact{text-align:center}
}
@media(max-width:520px){
  .app-footer-inner{
    width:calc(100% - 28px);
    font-size:7.5px;
  }
  .app-footer-brand{
    flex-wrap:wrap;
    white-space:normal;
  }
  .app-footer-contact{white-space:normal}
}

.draft-chip{font-size:10px!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.055em}


/* ── 3.3.0 UI5 · stampa computo classica ────────────────── */
.file-action.primus{border-color:#2f9e61;background:#f3fbf6}
.file-action.primus strong{color:#257c4d}

@media print{
  body.print-final-review{margin:0!important;padding:0!important;background:#fff!important}
  body.print-final-review #finalPrintArea{display:block!important}
  @page{
    size:A4 portrait;
    margin:10mm 8mm 12mm 8mm;
    @top-right{
      content:"pag. " counter(page);
      font-family:Arial,sans-serif;
      font-size:8pt;
      color:#111;
    }
  }
  .classic-print{width:100%;font-family:Arial,Helvetica,sans-serif;color:#111}
  .print-page-number{display:none}
  .classic-computo-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
    border:1.2pt solid #14912c;
    font-size:6.9pt;
    line-height:1.25;
  }
  .classic-computo-table thead{display:table-header-group}
  .classic-computo-table tfoot{display:table-footer-group}
  .classic-computo-table th,
  .classic-computo-table td{
    border-left:.65pt solid #14912c;
    border-right:.65pt solid #14912c;
    vertical-align:top;
  }
  .classic-computo-table th{
    color:#07851f!important;
    background:#fff!important;
    border-top:1pt solid #14912c;
    border-bottom:1pt solid #14912c;
    text-align:center;
    font-weight:700;
    padding:2.2mm .7mm;
    font-size:6.8pt;
  }
  .classic-computo-table thead tr:first-child th{
    font-size:7.2pt;
    letter-spacing:.02em;
  }
  .classic-computo-table .c-ord{width:8.5%}
  .classic-computo-table .c-desc{width:31%}
  .classic-computo-table .c-dim{width:28%}
  .classic-computo-table .c-qta{width:8.5%}
  .classic-computo-table .c-imp{width:15%}
  .classic-computo-table thead tr:nth-child(2) th:nth-child(1),
  .classic-computo-table thead tr:nth-child(2) th:nth-child(2),
  .classic-computo-table thead tr:nth-child(2) th:nth-child(3),
  .classic-computo-table thead tr:nth-child(2) th:nth-child(4){width:7%}
  .classic-computo-table thead tr:nth-child(2) th:nth-child(5),
  .classic-computo-table thead tr:nth-child(2) th:nth-child(6){width:7.5%}
  .classic-computo-table td{padding:1.2mm .7mm}
  .classic-computo-table td.num{text-align:right;white-space:nowrap}
  .classic-computo-table .ord strong{display:block;font-size:7pt}
  .classic-computo-table .ord span{display:block;font-weight:700;margin-top:.8mm}
  .classic-computo-table .designation{overflow-wrap:anywhere}
  .classic-computo-table .classic-item td{padding-top:3.1mm}
  .classic-computo-table .classic-item .designation strong{font-size:7.2pt;line-height:1.3}
  .classic-computo-table .classic-measure td{padding-top:.7mm;padding-bottom:.7mm}
  .classic-computo-table .classic-sum td{
    padding-top:1.5mm;
    padding-bottom:2.5mm;
    border-bottom:.8pt solid #14912c;
  }
  .classic-computo-table .sum-label{text-align:right;font-weight:700;letter-spacing:.02em}
  .classic-computo-table .total-line{border-top:.7pt solid #111}
  .classic-computo-table .strong{font-weight:700}
  .classic-computo-table tr{break-inside:avoid;page-break-inside:avoid}
  .classic-computo-table .classic-measure{break-inside:avoid}
  .classic-grand-total td{
    border-top:1.2pt solid #14912c;
    padding-top:2.5mm;
    padding-bottom:2.5mm;
    font-weight:700;
  }
  /* Nasconde definitivamente la vecchia intestazione grafica */
  .print-doc-head,.print-project-head,.print-summary-strip,.print-np-note,.print-signatures{display:none!important}
}


/* v3.3.0 ui7 — desktop app width */
@media (min-width:1441px){
  .topbar-inner,
  .app-shell{
    max-width:1440px;
  }
}


/* v3.3.0 ui8 — HOME / ESCI in stile header sito */
.cp-account-box{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
}

.cp-app-header-link,
.cp-app-exit-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 12px;
  border-radius:8px;
  text-decoration:none;
  font-family:Montserrat,Arial,sans-serif;
  font-size:10px;
  font-weight:800;
  letter-spacing:.02em;
  white-space:nowrap;
  transition:.18s ease;
}

.cp-app-home-link{
  color:#fff;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(255,255,255,.06);
}

.cp-app-home-link:hover{
  color:#F6C445;
  border-color:rgba(246,196,69,.58);
  background:rgba(246,196,69,.08);
}

.cp-app-exit-link{
  color:#223A5E;
  background:#F6C445;
  border:1px solid #F6C445;
}

.cp-app-exit-link:hover{
  color:#1A2F4D;
  background:#ffd45f;
  border-color:#ffd45f;
}

@media(max-width:700px){
  .cp-account-box{gap:5px}
  .cp-app-header-link,
  .cp-app-exit-link{
    min-height:32px;
    padding:0 9px;
    font-size:9px;
  }
}

/* v3.3.0 ui9 — ricerca prezzario più chiara + guida nel menu */
.price-results-head{align-items:flex-start}
.result-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.clear-search-btn{border:1px solid #f1d8aa;background:#fff8e8;color:#9a6100;border-radius:999px;padding:7px 11px;font:inherit;font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap}
.clear-search-btn:hover{background:var(--orange-soft);border-color:#e9c97d}
.clear-search-btn[hidden]{display:none!important}
#resultTitle{margin-top:4px}
#resultEyebrow{font-size:10px}

.howto-modal-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1080px,94vw);max-height:90vh;overflow:auto;padding:0;z-index:2}
.howto-modal-panel .howto{margin:0;border:0;box-shadow:none;border-radius:16px;padding:32px}
.howto-in-modal:after{right:-70px;top:-95px}
.howto-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:20px;position:relative;z-index:1}
.howto-modal-actions .secondary-btn,.howto-modal-actions .primary-btn{align-self:auto}

@media(max-width:900px){
  .price-results-head{gap:12px}
  .result-head-actions{justify-content:flex-start}
  .howto-modal-panel{width:min(94vw,760px)}
}
@media(max-width:620px){
  .price-results-head{flex-direction:column}
  .result-head-actions{width:100%;justify-content:space-between}
  .howto-modal-panel{width:94vw;max-height:92vh}
  .howto-modal-panel .howto{padding:24px 18px}
  .howto-modal-actions{flex-direction:column}
  .howto-modal-actions button{width:100%}
}

/* Computo Pro — fix chiusura popup guida */
.howto-modal-panel .howto-close{
  z-index:20;
  pointer-events:auto;
}


/* Toscana — selettore ambito territoriale */
#tuscanyAreaField[hidden]{display:none!important}
#tuscanyAreaField select{min-width:150px}
@media(max-width:760px){#tuscanyAreaField{min-width:100%}#tuscanyAreaField select{width:100%}}

/* =========================================================
   COMPUTO PRO 3.4.0 — filtri, computi recenti, split prezzario
   ========================================================= */
.estimate-class-filters{margin:0 0 18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#f7fbfd,#f7fbf8)}
.class-filter-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.class-filter-head>div{display:flex;align-items:center;gap:10px}.class-filter-head strong{color:var(--navy-dark);font-size:12px}.class-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.class-filter-grid label{font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.class-filter-grid select{display:block;width:100%;margin-top:5px;min-height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px 9px;font:600 10px inherit;color:var(--navy-dark)}
.item-classification{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}.item-classification input{width:100%}
.project-status{display:inline-flex;margin-left:7px;padding:3px 7px;border-radius:999px;background:#e6f7ed;color:#23794a;font-size:8px;font-weight:900;vertical-align:middle}.closed-projects{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.closed-projects summary{cursor:pointer;color:var(--navy);font-size:11px;font-weight:800;margin-bottom:12px}.closed-projects summary strong{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;margin-left:6px;border-radius:999px;background:#edf2f7}
/* Revisione più grande su desktop */
@media(min-width:1100px){#finalReviewModal .final-review-panel{width:min(1540px,96vw)!important;max-width:1540px!important}#finalReviewModal .final-review-table{font-size:11px}#finalReviewModal .final-review-head h2{font-size:27px}}
/* Split desktop: usa le due viste reali, nessuna copia del prezzario */
@media(min-width:901px){body.cp-split-pricelist .app-shell#pricesView,body.cp-split-pricelist .app-shell#estimateView{display:block!important;margin:0!important;max-width:none!important;min-width:0}body.cp-split-pricelist{display:grid;grid-template-columns:minmax(420px,42%) minmax(620px,58%);grid-template-areas:"top top" "price estimate" "foot foot";column-gap:0}body.cp-split-pricelist .topbar{grid-area:top}body.cp-split-pricelist #pricesView{grid-area:price;border-right:4px solid #d9e5ed;height:calc(100vh - 68px);overflow:auto;position:sticky;top:68px;padding:18px!important;background:#f7f9fb;z-index:3}body.cp-split-pricelist #estimateView{grid-area:estimate;padding:18px 22px!important}body.cp-split-pricelist .app-footer{grid-area:foot}body.cp-split-pricelist #pricesView .hero{display:none}body.cp-split-pricelist #pricesView .workspace{grid-template-columns:1fr!important}body.cp-split-pricelist #pricesView .sidebar{position:static!important;max-height:none!important}body.cp-split-pricelist #estimateView .estimate-hero{gap:12px}body.cp-split-pricelist #estimateView .estimate-actions{max-width:100%}.split-price-btn{border-color:#9dd6e3!important;background:#eef9fb!important;color:#17677a!important}}
@media(max-width:900px){.class-filter-grid{grid-template-columns:1fr 1fr}.item-classification{grid-template-columns:1fr 1fr!important}.split-price-btn{display:none!important}}
@media(max-width:560px){.class-filter-grid,.item-classification{grid-template-columns:1fr!important}.class-filter-head{align-items:flex-start;flex-direction:column}}
/* COMPUTO PRO 3.5.0 — quadro economico e revisioni */
.economic-framework{margin-top:18px}.qe-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.qe-main{border:1px solid #dbe3ec;border-radius:16px;padding:18px;background:#fff}.qe-main h3{margin:0 0 14px;color:#223A5E}.qe-line,.qe-input{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #edf1f5}.qe-input input{width:130px;text-align:right;border:1px solid #cbd5e1;border-radius:9px;padding:9px}.qe-input em{font-style:normal;color:#64748b}.qe-total{margin-top:16px;padding:18px 20px;border-radius:14px;background:#223A5E;color:white;display:flex;justify-content:space-between;align-items:center}.qe-total strong{font-size:1.5rem}.revision-panel{width:min(980px,calc(100vw - 32px));max-height:84vh;overflow:auto}.revision-list{display:grid;gap:10px;margin-top:18px}.revision-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid #dbe3ec;border-radius:14px;padding:14px}.revision-row.current{border-color:#0891B2;background:#f0fbfd}.revision-meta{display:flex;gap:12px;flex-wrap:wrap;color:#64748b;font-size:.88rem}.revision-actions{display:flex;gap:8px}.revision-actions button{border:1px solid #cbd5e1;background:white;border-radius:9px;padding:8px 11px;cursor:pointer}.revision-actions .restore{background:#223A5E;color:white;border-color:#223A5E}@media(max-width:760px){.qe-grid{grid-template-columns:1fr}.revision-row{grid-template-columns:1fr}.revision-actions{flex-wrap:wrap}}


/* COMPUTO PRO 3.5.0 — split prezzario definitivo */
.split-price-btn-top{border:1px solid #0891B2!important;background:#eef9fb!important;color:#17677a!important;font-weight:800!important}
@media(min-width:901px){
  body.cp-split-pricelist{--cp-split-price:42%;grid-template-columns:minmax(380px,var(--cp-split-price)) 8px minmax(520px,1fr)!important;grid-template-areas:"top top top" "price divider estimate" "foot foot foot"!important}
  body.cp-split-pricelist #pricesView{grid-area:price!important;border-right:0!important}
  body.cp-split-pricelist #estimateView{grid-area:estimate!important}
  body.cp-split-pricelist #splitDivider{display:block!important;grid-area:divider!important;width:8px;height:calc(100vh - 68px);position:sticky;top:68px;cursor:col-resize;background:linear-gradient(90deg,#d8e4eb 0,#0891B2 45%,#0891B2 55%,#d8e4eb 100%);z-index:20}
  body.cp-split-pricelist #splitDivider:hover{background:#0891B2}
  body.cp-split-dragging{user-select:none;cursor:col-resize}
}
@media(max-width:900px){.split-price-btn-top{display:inline-flex!important}.cp-split-divider{display:none!important}}


/* COMPUTO PRO 3.5.0 — split orizzontale: Computo sopra / Prezzario sotto */
@media(min-width:901px){
  body.cp-split-pricelist{
    --cp-split-estimate:55%;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto minmax(260px,var(--cp-split-estimate)) 9px minmax(240px,1fr) auto!important;
    grid-template-areas:"top" "estimate" "divider" "price" "foot"!important;
    height:100vh!important;
    overflow:hidden!important;
  }
  body.cp-split-pricelist .topbar{grid-area:top!important}
  body.cp-split-pricelist #estimateView{
    grid-area:estimate!important;
    width:100%!important;max-width:none!important;min-width:0!important;
    height:auto!important;overflow:auto!important;position:relative!important;top:auto!important;
    padding:16px 22px!important;background:#fff!important;
  }
  body.cp-split-pricelist #pricesView{
    grid-area:price!important;
    width:100%!important;max-width:none!important;min-width:0!important;
    height:auto!important;overflow:auto!important;position:relative!important;top:auto!important;
    padding:16px 22px!important;background:#f7f9fb!important;
    border-right:0!important;border-top:0!important;z-index:3!important;
  }
  body.cp-split-pricelist #splitDivider{
    display:block!important;grid-area:divider!important;
    width:100%!important;height:9px!important;position:relative!important;top:auto!important;
    cursor:row-resize!important;z-index:20!important;
    background:linear-gradient(180deg,#d8e4eb 0,#0891B2 42%,#0891B2 58%,#d8e4eb 100%)!important;
  }
  body.cp-split-pricelist #splitDivider:hover{background:#0891B2!important}
  body.cp-split-pricelist .app-footer{grid-area:foot!important}
  body.cp-split-pricelist #pricesView .hero{display:none!important}
  body.cp-split-pricelist #pricesView .workspace{grid-template-columns:minmax(240px,320px) 1fr!important}
  body.cp-split-pricelist #pricesView .sidebar{position:static!important;max-height:none!important}
  body.cp-split-dragging{user-select:none!important;cursor:row-resize!important}
}

/* COMPUTO PRO 3.8.0 — motore misure professionale */
.measure-table{min-width:1180px}
.measure-table .measure-formula{min-width:130px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#fffdf4}
.item-classification{grid-template-columns:repeat(4,minmax(140px,1fr))}
.revision-compare{margin:12px 0 18px;padding:14px 16px;border:1px solid #b8dce5;border-radius:12px;background:#f2fbfd;color:#1a2f4d}
.revision-compare>strong{display:block;margin-bottom:8px}.revision-compare>div{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.revision-compare b{margin-left:auto;color:#0891b2}
@media(max-width:900px){.item-classification{grid-template-columns:1fr 1fr}}

/* ═══ COMPUTO PRO 3.9 → 4.1 ═══ */
.project-pricelists{margin-top:18px;padding:22px}.linked-pricelists{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.linked-pricelist{display:flex;align-items:center;gap:8px;border:1px solid #dbe4ee;border-radius:999px;padding:8px 10px 8px 14px;background:#f8fbfd;font-size:12px;font-weight:700;color:#223A5E}.linked-pricelist.active{border-color:#0891B2;background:#ecfeff}.linked-pricelist button{border:0;background:#fff;border-radius:999px;padding:5px 8px;cursor:pointer;font:inherit;color:#223A5E}.linked-pricelist .remove{color:#b42318}.autosave-status{font-size:11px;font-weight:700;color:#16865b;align-self:center;white-space:nowrap}.autosave-status.saving{color:#b36b00}.revision-diff-detail{margin:14px 0;max-height:340px;overflow:auto;border:1px solid #dbe4ee;border-radius:12px}.revision-diff-detail table{width:100%;border-collapse:collapse;font-size:12px}.revision-diff-detail th,.revision-diff-detail td{padding:9px 10px;border-bottom:1px solid #edf1f5;text-align:left}.revision-diff-detail th{position:sticky;top:0;background:#223A5E;color:#fff;z-index:1}.revision-diff-detail tr.added td:first-child{color:#16865b;font-weight:800}.revision-diff-detail tr.removed td:first-child{color:#b42318;font-weight:800}.revision-diff-detail tr.changed td:first-child{color:#b36b00;font-weight:800}.revision-compare .diff-export{margin-left:auto;border:0;border-radius:8px;padding:7px 10px;background:#0891B2;color:#fff;font-weight:800;cursor:pointer}@media(max-width:800px){.project-pricelists .section-head{display:block}.project-pricelists .section-head button{margin-top:12px}.autosave-status{width:100%;text-align:right}}

/* ══════════════════════════════════════════════════════════════
   COMPUTO PRO 4.4.0 — UI professionale + gerarchie corrette
══════════════════════════════════════════════════════════════ */
:root{--cp-control-h:40px;--cp-control-r:10px}
.estimate-actions,.board-actions,.howto-modal-actions,.empty-actions,.measure-actions{display:flex;align-items:center;gap:8px}
.estimate-actions{display:grid!important;grid-template-columns:repeat(4,minmax(150px,1fr));width:min(860px,100%);align-content:start}
.estimate-actions button{width:100%;min-height:var(--cp-control-h);justify-content:center;white-space:nowrap}
.estimate-actions .autosave-status{grid-column:1/-1;text-align:right;margin-top:1px}
.board-actions{display:grid!important;grid-template-columns:repeat(3,minmax(170px,1fr));min-width:min(100%,560px)}
.board-actions button{width:100%;min-height:var(--cp-control-h);justify-content:center}
.primary-btn,.secondary-btn,.ghost-btn,.guided-btn,.measure-add{border-radius:var(--cp-control-r)!important;min-height:var(--cp-control-h);display:inline-flex;align-items:center;justify-content:center}
.estimate-board-head{align-items:end!important}.estimate-board-head>div:first-child{max-width:720px}
.class-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.class-filter-grid select{min-height:40px!important}
.cp-info{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:3px;border-radius:50%;background:#e8f4f7;color:#08748c;font-size:10px;font-weight:900;cursor:help;vertical-align:middle;text-transform:none;letter-spacing:0}
.item-classification{grid-template-columns:repeat(4,minmax(150px,1fr))!important;align-items:end}
.item-source-class{grid-column:span 2}.item-source-class>span{display:flex;align-items:center;min-height:34px;margin-top:5px;padding:7px 10px;border:1px dashed #cbd9e4;border-radius:8px;background:#f3f7fa;color:#53697c;font-size:10px;font-weight:600;text-transform:none;letter-spacing:0}
.howto-hierarchy{margin:18px 0;padding:18px;border:1px solid #d9e5ed;border-radius:14px;background:linear-gradient(135deg,#f7fbfd,#f7fbf8)}.howto-hierarchy h3{margin:5px 0 14px;color:var(--navy-dark);font-size:16px}.howto-hierarchy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.howto-hierarchy-grid article{padding:13px;border:1px solid var(--line);border-radius:11px;background:#fff}.howto-hierarchy-grid article>strong{color:var(--navy-dark);font-size:10px;letter-spacing:.06em}.howto-hierarchy-grid p{margin:7px 0 0;font-size:10px;line-height:1.55;color:var(--muted)}.hierarchy-summary{margin:12px 0 0!important;padding-top:12px;border-top:1px solid #dbe5eb;color:var(--navy-dark)!important}
@media(max-width:1100px){.estimate-actions{grid-template-columns:repeat(3,minmax(145px,1fr))}.board-actions{grid-template-columns:1fr 1fr}.class-filter-grid{grid-template-columns:1fr 1fr!important}.item-classification{grid-template-columns:1fr 1fr!important}}
@media(max-width:700px){.estimate-actions{grid-template-columns:1fr 1fr;width:100%}.board-actions{grid-template-columns:1fr;width:100%;min-width:0}.howto-hierarchy-grid{grid-template-columns:1fr}.item-source-class{grid-column:span 1}}

/* ═══ COMPUTO PRO 4.5.0 — toolbar professionale ═══ */
.estimate-hero{align-items:flex-start!important}
.estimate-actions{width:min(720px,52vw)!important;grid-template-columns:repeat(4,minmax(138px,1fr))!important;gap:8px!important}
.estimate-actions button{min-width:0!important;height:42px!important;min-height:42px!important;padding:0 12px!important;font-size:13px!important;line-height:1.15!important;white-space:normal!important;text-align:center!important;overflow:hidden}
.estimate-actions .guided-btn{padding:0 10px!important}
.estimate-actions .guided-btn-num{flex:0 0 auto}
.estimate-actions #saveEstimate{grid-column:3/5}
.estimate-actions #clearEstimate{grid-column:1/3}
.estimate-actions .autosave-status{grid-column:1/5!important;min-height:18px;display:flex;justify-content:flex-end;align-items:center}
@media(max-width:1180px){.estimate-hero{display:block!important}.estimate-actions{width:100%!important;max-width:none!important;margin-top:18px}}
@media(max-width:760px){.estimate-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}.estimate-actions #saveEstimate,.estimate-actions #clearEstimate{grid-column:auto}.estimate-actions .autosave-status{grid-column:1/3!important}.estimate-actions button{font-size:12px!important}}

/* ═══ COMPUTO PRO 4.6.0 — allineamenti azioni e quadro economico ═══ */
/* Toolbar locale Voci e misurazioni: tre comandi realmente simmetrici */
.estimate-board-head{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(540px,660px);gap:24px;align-items:center!important}
.estimate-board-head .board-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%!important;min-width:0!important;gap:10px!important;align-items:stretch!important}
.estimate-board-head .board-actions button{width:100%!important;min-width:0!important;height:44px!important;min-height:44px!important;padding:0 14px!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;line-height:1.15!important;white-space:normal!important}
.estimate-board-head .board-actions #addNewPrice,.estimate-board-head .board-actions #addFromPricelist{background:#223A5E!important;color:#fff!important;border-color:#223A5E!important}
.estimate-board-head .board-actions #splitPricelist{background:#eef9fb!important;color:#17677a!important;border-color:#ccecf2!important}

/* Quadro economico: etichetta | campo numerico | unità, sempre sulla stessa griglia */
.qe-main{min-width:0!important}
.qe-input{display:grid!important;grid-template-columns:minmax(150px,1fr) 132px 26px!important;gap:10px!important;align-items:center!important;min-height:48px!important;padding:6px 0!important}
.qe-input>span{min-width:0!important}
.qe-input input{box-sizing:border-box!important;width:132px!important;height:36px!important;min-height:36px!important;margin:0!important;padding:0 10px!important;text-align:right!important;font-variant-numeric:tabular-nums!important}
.qe-input em{width:26px!important;text-align:center!important;justify-self:end!important;font-style:normal!important}
.qe-line{min-height:48px!important;padding:6px 0!important}
.qe-line strong,.qe-total strong,.recap-total{font-variant-numeric:tabular-nums!important}

@media(max-width:1050px){
  .estimate-board-head{grid-template-columns:1fr!important}
  .estimate-board-head .board-actions{max-width:none!important}
}
@media(max-width:760px){
  .estimate-board-head .board-actions{grid-template-columns:1fr!important}
  .qe-input{grid-template-columns:minmax(0,1fr) 112px 24px!important}
  .qe-input input{width:112px!important}
}
