.scp-tfr-page {
      font-family: Arial, Helvetica, sans-serif;
      background: #f4f6f8;
      padding: 12px;
      color: #1f2937;
      overflow-x: hidden;
    }
    .scp-tfr {
      width: 100%;
      max-width: 1180px;
      margin: 0 auto;
      background: #ffffff;
      border-radius: 14px;
      box-shadow: 0 8px 22px rgba(15, 23, 42, 0.10);
      overflow: hidden;
      border: 1px solid #e5e7eb;
    }
    .scp-tfr * { box-sizing: border-box; }
    .scp-tfr-header {
      background: linear-gradient(135deg, #1f3a5f, #2f5f8f);
      color: #ffffff;
      padding: 18px 22px;
    }
    .scp-tfr-header h1 {
      margin: 0 0 6px 0;
      font-size: 22px;
      letter-spacing: 0.2px;
    }
    .scp-tfr-header .subtitle {
      margin: 0;
      opacity: 0.92;
      font-size: 14px;
    }
    .scp-tfr-content { padding: 16px 18px 20px; }
    .scp-tfr-section {
      border: 1px solid #d9e2ec;
      border-radius: 12px;
      padding: 12px;
      margin-bottom: 12px;
      background: #fbfdff;
    }
    .scp-tfr-section h2 {
      margin: 0 0 10px 0;
      font-size: 16px;
      color: #1f3a5f;
      border-bottom: 1px solid #e5edf5;
      padding-bottom: 8px;
    }
    .scp-tfr-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(130px, 1fr));
      gap: 8px;
    }
    .scp-tfr-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .scp-tfr-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .scp-tfr-field label {
      display: block;
      font-weight: 700;
      font-size: 12px;
      margin-bottom: 5px;
      color: #334155;
    }
    .scp-tfr-field input,
    .scp-tfr-field select,
    .scp-tfr-field textarea {
      width: 100%;
      border: 1px solid #cbd5e1;
      border-radius: 9px;
      padding: 7px 8px;
      font-size: 13px;
      background: #ffffff;
      color: #111827;
    }
    .scp-tfr-field textarea { min-height: 76px; resize: vertical; }
    .scp-tfr-field input:focus,
    .scp-tfr-field select:focus,
    .scp-tfr-field textarea:focus {
      outline: 2px solid rgba(47, 95, 143, 0.18);
      border-color: #2f5f8f;
    }
    .scp-tfr-field.small-note {
      font-size: 12px;
      color: #64748b;
      line-height: 1.45;
    }
    .scp-tfr-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 14px 0 4px;
    }
    .scp-tfr button,
    .scp-tfr .file-btn {
      border: none;
      border-radius: 10px;
      padding: 8px 11px;
      font-size: 12px;
      font-weight: 700;
      cursor: pointer;
      color: #ffffff;
      background: #2f5f8f;
      transition: transform 0.08s ease, box-shadow 0.08s ease, background 0.08s ease;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
    }
    .scp-tfr button:hover,
    .scp-tfr .file-btn:hover { background: #244d76; box-shadow: 0 4px 12px rgba(36, 77, 118, 0.22); }
    .scp-tfr button:active { transform: translateY(1px); }
    .scp-tfr button.secondary { background: #475569; }
    .scp-tfr button.secondary:hover { background: #334155; }
    .scp-tfr button.success { background: #24745a; }
    .scp-tfr button.success:hover { background: #1d5d49; }
    .scp-tfr button.warning { background: #b45309; }
    .scp-tfr button.warning:hover { background: #92400e; }
    .scp-tfr button.danger { background: #b91c1c; }
    .scp-tfr button.danger:hover { background: #991b1b; }
    .scp-tfr .notice {
      border-left: 5px solid #2f5f8f;
      background: #eff6ff;
      color: #1e3a5f;
      padding: 8px 10px;
      border-radius: 8px;
      margin: 8px 0;
      font-size: 12px;
      line-height: 1.45;
    }
    .scp-tfr .notice.warn {
      border-left-color: #b45309;
      background: #fff7ed;
      color: #7c2d12;
    }
    .scp-tfr .notice.ok {
      border-left-color: #24745a;
      background: #ecfdf5;
      color: #064e3b;
    }
    .scp-tfr-table-wrap {
      width: 100%;
      overflow-x: visible;
      border: 1px solid #e5e7eb;
      border-radius: 12px;
      background: #ffffff;
    }
    .scp-tfr table {
      width: 100%;
      border-collapse: collapse;
      min-width: 0;
      table-layout: fixed;
    }
    .scp-tfr th,
    .scp-tfr td {
      border-bottom: 1px solid #e5e7eb;
      padding: 5px 5px;
      font-size: 11px;
      vertical-align: middle;
      text-align: left;
    }
    .scp-tfr th {
      background: #eef4fb;
      color: #1f3a5f;
      font-weight: 800;
      position: sticky;
      top: 0;
      z-index: 1;
    }
    .scp-tfr td.num,
    .scp-tfr th.num { text-align: right; }
    .scp-tfr td.center,
    .scp-tfr th.center { text-align: center; }
    .scp-tfr td input,
    .scp-tfr td select {
      width: 100%;
      border: 1px solid #dbe3ee;
      border-radius: 6px;
      padding: 4px 5px;
      font-size: 11px;
      background: #ffffff;
    }
    .scp-tfr td input.num { text-align: right; }
    .scp-tfr .summary-grid {
      display: grid;
      grid-template-columns: repeat(5, minmax(120px, 1fr));
      gap: 8px;
      margin-top: 8px;
    }
    .scp-tfr .summary-card {
      background: #ffffff;
      border: 1px solid #d9e2ec;
      border-radius: 10px;
      padding: 10px;
      min-height: 68px;
    }
    .scp-tfr .summary-card .label {
      font-size: 12px;
      color: #64748b;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.3px;
    }
    .scp-tfr .summary-card .value {
      margin-top: 6px;
      font-size: 17px;
      font-weight: 800;
      color: #1f3a5f;
      word-break: break-word;
    }
    .scp-tfr .summary-card.main {
      background: #1f3a5f;
      color: #ffffff;
      border-color: #1f3a5f;
    }
    .scp-tfr .summary-card.main .label,
    .scp-tfr .summary-card.main .value { color: #ffffff; }

    .scp-tfr .liquidazione-finale {
      margin-top: 12px;
      border: 1px solid #cbd5e1;
      border-radius: 12px;
      background: #f8fafc;
      padding: 10px;
    }
    .scp-tfr .liquidazione-title {
      font-size: 15px;
      font-weight: 800;
      color: #1f3a5f;
      margin-bottom: 4px;
      text-transform: uppercase;
      letter-spacing: 0.2px;
    }
    .scp-tfr .finale-wrap { margin-top: 8px; }
    .scp-tfr .finale-table {
      width: 100%;
      table-layout: fixed;
      border-collapse: collapse;
      background: #ffffff;
    }
    .scp-tfr .finale-table td {
      border: 1px solid #d9e2ec;
      padding: 7px 8px;
      font-size: 12px;
      vertical-align: middle;
    }
    .scp-tfr .finale-table .finale-check {
      width: 42px;
      text-align: center;
      padding: 4px;
    }
    .scp-tfr .finale-table .finale-check input {
      width: 16px;
      height: 16px;
      margin: 0;
      cursor: pointer;
    }
    .scp-tfr .finale-table .finale-desc { width: auto; }
    .scp-tfr .finale-table .finale-amount {
      width: 24%;
      text-align: right;
      font-weight: 800;
      white-space: nowrap;
    }
    .scp-tfr .finale-table .finale-row-esclusa .finale-desc,
    .scp-tfr .finale-table .finale-row-esclusa .finale-amount {
      opacity: 0.45;
      text-decoration: line-through;
    }
    .scp-tfr .finale-table .sub {
      display: block;
      margin-top: 2px;
      font-size: 11px;
      color: #64748b;
      font-weight: 400;
    }
    .scp-tfr .finale-table .subtotal td {
      background: #eef4fb;
      font-weight: 800;
    }
    .scp-tfr .finale-table .totale-finale td {
      background: #1f3a5f;
      color: #ffffff;
      font-size: 14px;
      border-color: #1f3a5f;
    }
    .scp-tfr .finale-table .totale-finale .sub { color: #dbeafe; }

    .scp-tfr .muted { color: #64748b; font-size: 12px; line-height: 1.45; }
    .scp-tfr .hidden { display: none !important; }
    .scp-tfr .right { text-align: right; }
    .scp-tfr .print-title { display: none; }
    .scp-tfr .badge {
      display: inline-block;
      padding: 4px 8px;
      border-radius: 999px;
      background: #e0f2fe;
      color: #075985;
      font-size: 11px;
      font-weight: 800;
      margin-left: 6px;
    }
    .scp-tfr .compact-line {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      align-items: center;
      margin-top: 10px;
    }
    .scp-tfr .checkbox-line {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      color: #334155;
      font-weight: 700;
      min-height: 30px;
    }
    .scp-tfr .checkbox-line input { width: auto; }
    .scp-tfr .source-box {
      font-size: 11px;
      color: #475569;
      line-height: 1.45;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      padding: 10px;
    }

    /* Tabelle compatte: evitano lo sforamento laterale nelle pagine WordPress */
    .scp-tfr #tabMesi th:nth-child(1), .scp-tfr #tabMesi td:nth-child(1) { width: 4%; }
    .scp-tfr #tabMesi th:nth-child(2), .scp-tfr #tabMesi td:nth-child(2) { width: 10%; }
    .scp-tfr #tabMesi th:nth-child(3), .scp-tfr #tabMesi td:nth-child(3) { width: 7%; }
    .scp-tfr #tabMesi th:nth-child(4), .scp-tfr #tabMesi td:nth-child(4) { width: 11%; }
    .scp-tfr #tabMesi th:nth-child(5), .scp-tfr #tabMesi td:nth-child(5),
    .scp-tfr #tabMesi th:nth-child(6), .scp-tfr #tabMesi td:nth-child(6) { width: 8%; }
    .scp-tfr #tabMesi th:nth-child(7), .scp-tfr #tabMesi td:nth-child(7),
    .scp-tfr #tabMesi th:nth-child(8), .scp-tfr #tabMesi td:nth-child(8),
    .scp-tfr #tabMesi th:nth-child(9), .scp-tfr #tabMesi td:nth-child(9) { width: 8%; }
    .scp-tfr #tabMesi th:nth-child(10), .scp-tfr #tabMesi td:nth-child(10) { width: 11%; }
    .scp-tfr #tabMesi th:nth-child(11), .scp-tfr #tabMesi td:nth-child(11) { width: 17%; }
    .scp-tfr #tabMesi td:nth-child(11) input { min-width: 0; }
    .scp-tfr #tabAnniInput th:nth-child(1), .scp-tfr #tabAnniInput td:nth-child(1) { width: 9%; }
    .scp-tfr #tabAnniInput th:nth-child(2), .scp-tfr #tabAnniInput td:nth-child(2),
    .scp-tfr #tabAnniInput th:nth-child(3), .scp-tfr #tabAnniInput td:nth-child(3),
    .scp-tfr #tabAnniInput th:nth-child(4), .scp-tfr #tabAnniInput td:nth-child(4) { width: 18%; }
    .scp-tfr #tabAnniInput th:nth-child(5), .scp-tfr #tabAnniInput td:nth-child(5) { width: 37%; }
    .scp-tfr #tabRatei, .scp-tfr #tabRisultati { table-layout: fixed; }
    .scp-tfr #tabRatei th, .scp-tfr #tabRatei td,
    .scp-tfr #tabRisultati th, .scp-tfr #tabRisultati td { white-space: normal; }
    .scp-tfr td input[type="checkbox"] { width: 16px; height: 16px; padding: 0; }
    @media (max-width: 980px) {
      .scp-tfr-page { padding: 8px; }
      .scp-tfr-content { padding: 16px; }
      .scp-tfr-header { padding: 20px 16px; }
      .scp-tfr-grid,
      .scp-tfr-grid.three,
      .scp-tfr-grid.two,
      .scp-tfr .summary-grid { grid-template-columns: 1fr; }
      .scp-tfr-actions { flex-direction: column; }
      .scp-tfr button,
      .scp-tfr .file-btn { width: 100%; }
      .scp-tfr-table-wrap { overflow-x: auto; }
      .scp-tfr table { min-width: 860px; }
    }
    @media print {
      @page { size: A4 portrait; margin: 16mm 14mm 16mm 14mm; }
      .scp-tfr-page { background: #ffffff; padding: 0; }
      .scp-tfr { box-shadow: none; border: none; border-radius: 0; }
      .scp-tfr-header { display: none; }
      .scp-tfr-content { padding: 0; }
      .scp-tfr-actions,
      .no-print { display: none !important; }
      .scp-tfr-section { break-inside: avoid; border-color: #cbd5e1; background: #ffffff; }
      .scp-tfr .print-title { display: block; margin-bottom: 16px; text-align: center; }
      .scp-tfr .print-title h1 { margin: 0 0 4px; font-size: 20px; }
      .scp-tfr .print-title p { margin: 0; font-size: 12px; }
      .scp-tfr-table-wrap { overflow: visible; border: 1px solid #cbd5e1; }
      .scp-tfr table { min-width: 0; font-size: 10px; }
      .scp-tfr th, .scp-tfr td { padding: 5px; font-size: 10px; }
      .scp-tfr .finale-check,
      .scp-tfr .finale-row-esclusa { display: none !important; }
      .scp-tfr .summary-grid { grid-template-columns: repeat(2, 1fr); }
    }
