:root{
  --wpb-blue:#103B66;
  --wpb-blue-600:#2563eb;
  --wpb-green:#16a34a;
  --wpb-amber:#f59e0b;
  --wpb-muted:#64748b;
  --wpb-bg:#ffffff;
  --wpb-surface:#fbfdff;
  --wpb-tooltip-bg:rgba(17,24,39,0.96);
}

.wpb-input-container{ max-width:1240px; margin:20px auto; background:var(--wpb-bg); padding:28px; border-radius:14px; box-shadow:0 8px 30px rgba(2,6,23,0.04); font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif; position:relative; }
.wpb-input-container h3{ margin:0 0 18px 0; font-weight:700; color:#0f172a; text-align:center; }

.wpb-company-info{ display:flex; flex-wrap:wrap; gap:18px; margin-bottom:22px; align-items:end; }
.wpb-company-info .info-block{ flex:1; min-width:220px; }
.wpb-company-info label{ display:block; font-weight:600; margin-bottom:6px; color:#0f172a; font-size:0.95rem; }
.wpb-company-info input[type="text"], .wpb-company-info select, .wpb-company-info input[type="file"]{ width:100%; padding:9px 11px; border-radius:8px; border:1px solid #e2e8f0; background:#f8fafc; font-size:0.95rem; }
.wpb-company-info input:focus, .wpb-company-info select:focus { outline:none; box-shadow:0 6px 18px rgba(37,99,235,0.08); border-color:var(--wpb-blue-600); }

/* Collapsible accordion system */
.wpb-collapsible {
  display: none;
}

.wpb-toggle-trigger {
  cursor: pointer;
  user-select: none;
  transition: background-color 0.2s ease;
}

.wpb-toggle-trigger:hover {
  background: #eef2f7 !important;
}

.wpb-toggle-trigger:focus {
  outline: 2px solid var(--wpb-blue-600);
  outline-offset: -2px;
}

.wpb-caret {
  display: inline-block;
  margin-right: 8px;
  font-size: 10px;
  color: var(--wpb-blue-600);
  transition: transform 0.2s ease;
  transform-origin: center;
}

.wpb-toggle-trigger.is-expanded .wpb-caret {
  transform: rotate(90deg);
}

/* Subitem indentation and total row styling */
.wpb-subitem td:first-child {
  padding-left: 32px;
  font-size: 13.5px;
  color: #334155;
}

.wpb-total-row {
  border-top: 2px solid #cbd5e1;
  background: #f8fafc !important;
}

.wpb-total-row td {
  padding-top: 14px;
  padding-bottom: 14px;
  font-weight: 700;
}

/* Table Styles */
.wpb-table-modern{ width:100%; border-collapse:collapse; margin-top:10px; border-radius:10px; overflow:hidden; }
.wpb-table-modern thead th{ background:var(--wpb-blue); color:#fff !important; text-transform:uppercase; font-size:13px; padding:12px; font-weight:700; letter-spacing:0.6px; text-align:center; border-bottom:2px solid rgba(0,0,0,0.06); }
.wpb-table-modern td{ padding:12px 14px; font-size:14px; color:#0f172a; vertical-align:middle; border-bottom:1px solid #eef2f7; }
.wpb-table-modern input[type="number"], .wpb-table-modern input[type="text"]{ width:100%; max-width:170px; padding:7px 9px; border-radius:8px; border:1px solid #e6edf6; background:var(--wpb-surface); text-align:right; font-size:0.95rem; }
.wpb-table-modern input[readonly] { background:#f1f5f9; font-weight:800; cursor:not-allowed; }
.wpb-table-modern tbody tr:nth-child(odd) td { background:#fff; }
.wpb-table-modern tbody tr:nth-child(even) td { background:#fbfdff; }

.section-header td{ font-weight:800; text-transform:uppercase; padding:14px; font-size:14px; letter-spacing:0.35px; }
.section-cap td{ background:#f3f6fb; border-left:6px solid var(--wpb-muted); }
.section-imm td{ background:#eef8ff; border-left:6px solid #3b82f6; }
.section-par td{ background:#fff7ed; border-left:6px solid var(--wpb-amber); }
.section-attivo td{ background:#f0fdf4; border-left:6px solid var(--wpb-green); }
.section-passivo td{ background:#fff7ed; border-left:6px solid var(--wpb-amber); }
.section-conto td{ background:#f8fafc; border-left:6px solid var(--wpb-muted); }
.wpb-section-gap{ height:14px; display:block; }

.wpb-tooltip-wrap{ display:inline-block; position:relative; margin-left:8px; vertical-align:middle; }
.wpb-tooltip-btn{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:rgba(37,99,235,0.08); color:var(--wpb-blue-600); border:1px solid rgba(37,99,235,0.12); cursor:pointer; font-weight:700; font-size:12px; transition:transform .12s ease; }
.wpb-tooltip-btn:hover{ transform:translateY(-2px); box-shadow:0 6px 14px rgba(37,99,235,0.12); }
.wpb-tooltip-panel{ position:absolute; left:0; top:34px; min-width:260px; max-width:420px; background:var(--wpb-tooltip-bg); color:#fff; padding:10px 12px; border-radius:10px; box-shadow:0 12px 36px rgba(2,6,23,0.45); z-index:9999; font-size:13px; line-height:1.45; display:none; }
.wpb-tooltip-panel .tp-title{ font-weight:700; margin-bottom:6px; color:#fff; font-size:13px; }
.wpb-tooltip-panel .tp-line{ opacity:0.9; font-size:12.5px; }
.wpb-tooltip-wrap:hover .wpb-tooltip-panel, .wpb-tooltip-wrap.active .wpb-tooltip-panel{ display:block; }

.wpb-badge { display:inline-block; margin-left:8px; font-size:11px; font-weight:800; padding:4px 8px; border-radius:999px; color:#fff; vertical-align:middle; }
.wpb-badge.up { background:#16a34a; }
.wpb-badge.down { background:#ef4444; }
.wpb-badge.neutral { background:#64748b; }

.wpb-flash { animation: wpbFlash 0.9s ease; }
@keyframes wpbFlash { 0% { background: #d1fae5; } 40% { background: #d1fae5; } 100% { background: #f1f5f9; } }

.wpb-buttons{ text-align:center; margin-top:20px; }
.wpb-btn { display:inline-block; padding:10px 18px; border-radius:8px; border:0; font-weight:700; cursor:pointer; margin:6px; transition: all 0.2s ease; }
.wpb-btn.save{ background:linear-gradient(90deg,var(--wpb-blue-600),#1d4ed8); color:#fff; box-shadow:0 8px 24px rgba(37,99,235,0.14); }
.wpb-btn.save:hover{ transform: translateY(-2px); box-shadow:0 12px 32px rgba(37,99,235,0.2); }
.wpb-btn.reset{ background:#f1f5f9; color:#0f172a; border:1px solid #e2e8f0; }
.wpb-btn.reset:hover{ background:#e2e8f0; }

.wpb-debug { margin-top:18px; padding:12px; border-radius:10px; background:#0f172a; color:#fff; display:none; font-family:monospace; font-size:13px; }
.wpb-debug pre{ white-space:pre-wrap; word-wrap:break-word; color:#d1fae5; margin:0; font-size:13px; }

.wpb-toast { position:fixed; right:20px; top:20px; background:var(--wpb-green); color:#fff; padding:10px 14px; border-radius:8px; box-shadow:0 12px 36px rgba(2,6,23,0.18); display:none; z-index:99999; font-weight:800; }

@media (max-width:900px){ 
  .wpb-company-info{ flex-direction:column; } 
  .wpb-tooltip-panel{ left:0; top:38px; min-width:200px; max-width:320px; } 
  .wpb-table-modern thead th, .wpb-table-modern td { font-size:13px; padding:10px; }
}
