.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.cg-sec { font-size: 21px !important; line-height: 1.3; }
.cg-sub { font-size: 14px; color: #6c757d; margin-bottom: 22px; line-height: 1.5; }
.cg-hr { border: 0; border-top: 1px solid #dfe1e5; margin: 34px 0 30px; }

/* line-height esplicito: il tema applica 30px alle label, quindi una label su
   due righe diventerebbe alta 62px e sfalserebbe le celle accanto */
.cg-lab { display:block; font-size:10px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
    color:#4a4a4a; margin-bottom:5px; line-height:1.3; }
.cg-lab-note { display:block; margin-top:2px; color:#7a7f86; font-size:10px; font-weight:500;
    letter-spacing:.02em; text-transform:none; white-space:nowrap; line-height:1.3; }
.cg-md-grid .cg-lab { min-height:28px; }

.cg-in { width:100%; background:#fff; border:1px solid #d6d9dd; border-radius:6px; padding:9px 11px;
    font-size:15px; color:#232323; line-height:1.3; height:auto; }
.cg-in:focus { outline:none; border-color:#111; box-shadow:0 0 0 2px rgba(0,0,0,.06); }
.cg-hint { font-size:12px; color:#8a8f96; margin-top:4px; line-height:1.4; }
.cg-counter.is-max { color:#c0392b; font-weight:600; }

.cg-md-grid { display:grid; grid-template-columns:220px minmax(0,1fr); gap:16px;
    align-items:end; margin:6px 0 30px; }
.cg-md-note { font-size:13px; color:#6c757d; line-height:1.5; padding-bottom:8px; }
.cg-md-note strong { color:#333; }
@media (max-width:575px){ .cg-md-grid { grid-template-columns:1fr; } .cg-md-note { padding-bottom:0; } }

/* --- tabella righe preventivo --------------------------------------------- */
.cg-tab-wrap { background:#fff; border:1px solid #dcdfe3; border-radius:10px; overflow:hidden; }
@media (max-width:900px){ .cg-tab-wrap { overflow-x:auto; } }
.cg-tab { width:100%; min-width:760px; border-collapse:collapse; margin:0; }
.cg-tab th { text-align:left; vertical-align:bottom; background:#f5f6f7; color:#4a4a4a;
    font-size:10px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
    line-height:1.3; white-space:nowrap; padding:12px 12px 10px;
    border-bottom:1px solid #dcdfe3; }
.cg-th-note { display:block; margin-top:2px; font-size:10px; font-weight:500; color:#8a8f96;
    text-transform:none; letter-spacing:.02em; }
.cg-tab th.num, .cg-tab td.num { text-align:right; }
.cg-tab th:nth-child(1){ width:25%; } .cg-tab th:nth-child(2){ width:18%; }
.cg-tab th:nth-child(3){ width:10%; } .cg-tab th:nth-child(4){ width:16%; }
.cg-tab th:nth-child(5){ width:10%; } .cg-tab th:nth-child(6){ width:15%; }
.cg-tab th.act { width:46px; }
.cg-tab td { padding:0; border-bottom:1px solid #edeff1; vertical-align:middle; }
.cg-tab tbody tr:last-child td { border-bottom:0; }
.cg-tab tbody tr:hover { background:#fafbfc; }

/* le celle editabili non devono sembrare input: nessun bordo, nessuno sfondo,
   il riquadro compare solo al focus */
.cg-cell { width:100%; border:0; background:transparent; border-radius:0; box-shadow:none;
    padding:12px; font-size:15px; color:#232323; line-height:1.3; height:auto; }
.cg-cell.num { text-align:right; font-variant-numeric:tabular-nums; }
.cg-cell::placeholder { color:#c6cace; }
.cg-cell:focus { outline:none; background:#eef4fb; box-shadow:inset 0 0 0 1px #9dbfe4; }
.cg-tot { display:block; padding:12px; font-variant-numeric:tabular-nums; font-weight:600; color:#111;
    font-size:15px; }
.cg-tot.is-empty { color:#c6cace; font-weight:400; }
.cg-tab td.act { text-align:center; }
.cg-del { width:26px; height:26px; border-radius:5px; border:0; background:transparent; color:#a9aeb4;
    font-size:19px; line-height:1; cursor:pointer; padding:0; }
.cg-del:hover:not(:disabled) { background:#fbeaea; color:#b93a3a; }
.cg-del:disabled { opacity:.25; cursor:default; }

.cg-add { margin-top:14px; background:#fff; border:1px dashed #9aa0a6; border-radius:8px; padding:10px 20px;
    font-size:14px; font-weight:600; color:#222; cursor:pointer; }
.cg-add:hover { border-color:#111; background:#f2f2f2; }
.cg-add span { font-size:17px; margin-right:4px; }

.cg-riepilogo { margin-top:26px; background:#fff; border:1px solid #e3e5e8; border-radius:10px; padding:8px 18px; }
.cg-riepilogo > div { display:flex; justify-content:space-between; align-items:baseline; gap:20px;
    padding:9px 0; border-bottom:1px solid #f0f1f3; font-size:15px; }
.cg-riepilogo > div:last-child { border-bottom:0; }
.cg-riepilogo span { color:#5a5f66; }
.cg-riepilogo em { font-style:normal; color:#8a8f96; font-size:13px; }
.cg-riepilogo b { font-variant-numeric:tabular-nums; color:#111; }
.cg-rp-strong span, .cg-rp-strong b { font-weight:700; color:#111; font-size:16px; }