/* Form "Nuova fattura": righe a scheda, sezioni facoltative richiudibili, riepilogo IVA.
   Stesse variabili del design system (workspace.css / fp-design.css). */

.fp-optional-tag { display:inline-block; margin-left:6px; padding:1px 8px; border-radius:20px; background:#f1f4f9; color:#6b7a90; font-size:11px; font-weight:600; letter-spacing:.02em; vertical-align:middle; text-transform:none; }
.fp-form-subhead { font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.08em; color:#6b7a90; margin:6px 0 10px; }
.fp-wizard-nav button.done { color:#1f5e47; }
.fp-wizard-nav button.done span { background:#d6f3e6; color:#0b7a4f; font-size:12px; }

/* ── Righe ─────────────────────────────────────────────────────── */
.fp-fe-lines { display:flex; flex-direction:column; gap:10px; }
.fp-fe-line-head,
.fp-fe-line-main { display:grid; grid-template-columns:30px minmax(220px,1fr) 96px 84px 140px 132px 128px 118px; gap:10px; align-items:start; }
.fp-fe-line-head { padding:0 14px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#8090a6; }
.fp-fe-line { border:1px solid #e3e9f2; border-radius:12px; background:#fff; padding:12px 14px; transition:border-color .15s, box-shadow .15s; }
.fp-fe-line:hover { border-color:#c9d5e6; }
.fp-fe-line:focus-within { border-color:#8fd3b6; box-shadow:0 0 0 3px #05966914; }
.fp-fe-line.expanded { background:#fbfcfe; }
.fp-fe-num { display:grid; place-items:center; width:28px; height:28px; margin-top:6px; border-radius:50%; background:#eef2f8; color:#51627c; font-size:12px; font-weight:700; }
.fp-fe-mlabel { display:none; font-size:11px; font-weight:650; color:#6b7a90; margin-bottom:4px; }
.fp-fe-desc textarea { resize:vertical; min-height:40px; line-height:1.45; }
.fp-fe-money { position:relative; }
.fp-fe-money > span { position:absolute; left:11px; top:50%; transform:translateY(-50%); color:#8090a6; font-size:13px; pointer-events:none; }
.fp-fe-money > input { padding-left:26px; }
.fp-fe-line input[type=number] { font-variant-numeric:tabular-nums; }
.fp-fe-amount { text-align:right; padding-top:9px; }
.fp-fe-amount strong { display:block; font-size:15px; font-variant-numeric:tabular-nums; }
.fp-fe-amount small { display:block; color:#8090a6; font-size:11px; margin-top:2px; }
.fp-fe-actions { display:flex; justify-content:flex-end; gap:4px; padding-top:2px; }
.fp-fe-icon { position:relative; display:inline-grid; place-items:center; width:34px; height:34px; border:1px solid transparent; border-radius:8px; background:none; color:#5b6b82; }
.fp-fe-icon:hover:not(:disabled) { background:#eef3fa; color:#17243b; }
.fp-fe-icon.active { background:#ecfdf5; border-color:#a7e3c9; color:#047857; }
.fp-fe-icon.danger:hover:not(:disabled) { background:#fff0ee; color:#b2362d; }
.fp-fe-icon:disabled { opacity:.35; cursor:not-allowed; }
.fp-fe-dot { position:absolute; top:-5px; right:-5px; min-width:17px; height:17px; padding:0 4px; border-radius:9px; background:var(--fp-blue); color:#fff; font-size:10px; font-weight:700; line-height:17px; }
.fp-fe-line-extra { margin:10px 0 0 40px; max-width:620px; }
.fp-fe-line-extra .form-label { margin-bottom:4px; }
.fp-fe-details { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:14px 22px; margin:14px 0 2px 40px; padding-top:14px; border-top:1px dashed #dde4ee; }
.fp-fe-detail-group h4 { font-size:11px; font-weight:750; letter-spacing:.07em; text-transform:uppercase; color:#6b7a90; margin:0 0 8px; }
.fp-fe-detail-wide { grid-column:1 / -1; }
.fp-fe-inline { display:flex; gap:6px; align-items:center; margin-bottom:6px; }
.fp-fe-inline > label { display:flex; flex-direction:column; gap:3px; flex:1; font-size:11px; font-weight:650; color:#6b7a90; }
.fp-fe-inline-wrap { flex-wrap:wrap; }
.fp-fe-inline-wrap > .form-control:not(.fp-fe-w-sm):not(.fp-fe-w-md) { flex:1 1 180px; }
.fp-fe-w-sm { flex:0 0 120px; width:120px; }
.fp-fe-w-md { flex:0 0 160px; width:160px; }
.fp-fe-stack { display:flex; flex-direction:column; gap:3px; font-size:11px; font-weight:650; color:#6b7a90; margin-bottom:8px; }
.fp-fe-check { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--fp-text); cursor:pointer; margin:4px 0; }
.fp-fe-check .form-check-input { margin:0; flex:0 0 auto; }
.fp-fe-hint { display:flex; gap:7px; align-items:flex-start; font-size:12px; color:#56657b; background:#f5f8fc; border-radius:8px; padding:8px 10px; margin:6px 0 0; }
.fp-fe-hint i { color:#2f6fca; margin-top:1px; }
.fp-fe-add { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:12px; border:1.5px dashed #c9d6e8; border-radius:12px; background:#fafcff; color:#2d5d9f; font-weight:650; font-size:13px; }
.fp-fe-add:hover:not(:disabled) { border-color:var(--fp-blue); color:#047857; background:#f2fbf7; }

/* ── Riepilogo IVA e totali ──────────────────────────────────── */
.fp-fe-summary { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr); gap:22px; margin-top:20px; padding-top:18px; border-top:1px solid #edf0f5; align-items:start; }
.fp-fe-summary h3 { font-size:12px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; color:#6b7a90; margin:0 0 8px; }
.fp-fe-summary-vat table { width:100%; border-collapse:collapse; font-size:13px; }
.fp-fe-summary-vat th { font-size:11px; font-weight:650; color:#8090a6; padding:6px 8px; border-bottom:1px solid #e6ebf2; }
.fp-fe-summary-vat td { padding:8px; border-bottom:1px solid #f0f3f8; font-variant-numeric:tabular-nums; }
.fp-fe-norm td { padding-top:0; border-bottom-color:#e6ebf2; }
.fp-fe-norm label { display:block; font-size:11px; font-weight:650; color:#6b7a90; margin-bottom:3px; }
.fp-fe-norm .form-control { min-height:34px; font-size:13px; }
.fp-fe-totals { display:grid; grid-template-columns:1fr auto; margin:0; background:#f7f9fc; border:1px solid #e6ebf2; border-radius:12px; padding:14px 16px; font-size:13px; }
.fp-fe-totals dt { font-weight:500; color:#56657b; padding:4px 0; }
.fp-fe-totals dd { margin:0; padding:4px 0; text-align:right; font-variant-numeric:tabular-nums; }
.fp-fe-totals .fp-fe-grand { font-size:17px; font-weight:750; color:var(--fp-text); border-top:1px solid #dfe5ee; margin-top:6px; padding-top:10px; }
.fp-fe-totals .fp-fe-net, .fp-fe-net { color:#047857; font-weight:750; }

/* ── Sezioni richiudibili ────────────────────────────────────── */
.fp-fe-section { background:#fff; border:1px solid var(--fp-border); border-radius:14px; box-shadow:var(--fp-shadow); margin-bottom:16px; overflow:hidden; }
.fp-fe-section-head { display:flex; align-items:center; gap:14px; width:100%; padding:16px 22px; border:0; background:none; text-align:left; color:var(--fp-text); }
.fp-fe-section-head:hover { background:#fafcfe; }
.fp-fe-section-icon { display:grid; place-items:center; flex:0 0 38px; height:38px; border-radius:10px; background:#ecfdf5; color:#059669; font-size:17px; }
.fp-fe-section-title { flex:1; min-width:0; }
.fp-fe-section-title strong { display:block; font-size:15px; }
.fp-fe-section-title small { display:block; color:var(--fp-sub); font-size:12px; margin-top:2px; }
.fp-fe-badge { min-width:24px; height:24px; padding:0 8px; border-radius:12px; background:var(--fp-blue); color:#fff; font-size:12px; font-weight:700; line-height:24px; text-align:center; }
.fp-fe-chevron { color:#8090a6; transition:transform .15s; }
.fp-fe-section.open .fp-fe-chevron { transform:rotate(180deg); }
.fp-fe-section-body { padding:4px 22px 20px 74px; }
.fp-fe-block { padding:14px 0; border-top:1px solid #f0f3f8; }
.fp-fe-block:first-child { border-top:0; padding-top:4px; }
.fp-fe-block h4 { font-size:13px; font-weight:700; margin:0 0 8px; }
.fp-fe-card { border:1px solid #e6ebf2; border-radius:10px; padding:12px; margin-bottom:10px; background:#fbfcfe; }

/* ── Pagamento ───────────────────────────────────────────────── */
.fp-fe-rate { margin-top:14px; border:1px solid #e6ebf2; border-radius:10px; overflow:hidden; }
.fp-fe-rate table { width:100%; border-collapse:collapse; font-size:13px; }
.fp-fe-rate th { background:#f7f9fc; font-size:11px; font-weight:650; color:#6b7a90; padding:8px 12px; }
.fp-fe-rate td { padding:6px 12px; border-top:1px solid #f0f3f8; vertical-align:middle; }
.fp-fe-rate td:first-child { width:60px; font-weight:700; color:#51627c; }
.fp-fe-rate td:last-child { width:56px; }
.fp-fe-rate-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:10px 12px; background:#fafcfe; border-top:1px solid #e6ebf2; font-size:13px; }
.fp-fe-more { margin-top:16px; border-top:1px solid #edf0f5; padding-top:12px; }
.fp-fe-more > summary { cursor:pointer; font-size:13px; font-weight:650; color:#2d5d9f; list-style:none; margin-bottom:10px; }
.fp-fe-more > summary::before { content:"\F282"; font-family:"bootstrap-icons"; display:inline-block; margin-right:6px; transition:transform .15s; }
.fp-fe-more[open] > summary::before { transform:rotate(90deg); }
.fp-fe-more > summary small { display:block; margin-left:20px; color:var(--fp-sub); font-weight:400; font-size:12px; }

/* ── Allegati ────────────────────────────────────────────────── */
.fp-fe-attachment { display:flex; align-items:flex-start; gap:12px; padding:10px 12px; border:1px solid #e6ebf2; border-radius:10px; margin-bottom:8px; }
.fp-fe-attachment > i { font-size:22px; color:#b2362d; margin-top:2px; }
.fp-fe-attachment strong { display:block; font-size:13px; overflow-wrap:anywhere; }
.fp-fe-attachment small { display:block; color:var(--fp-sub); font-size:12px; }
.fp-fe-drop { display:flex; align-items:center; gap:12px; padding:14px 16px; border:1.5px dashed #c9d6e8; border-radius:12px; background:#fafcff; cursor:pointer; }
.fp-fe-drop:hover { border-color:var(--fp-blue); background:#f2fbf7; }
.fp-fe-drop > i { font-size:20px; color:#2d5d9f; }
.fp-fe-drop strong { display:block; font-size:13px; }
.fp-fe-drop small { display:block; color:var(--fp-sub); font-size:12px; }

/* ── Anagrafiche e varie ─────────────────────────────────────── */
.fp-fe-toggle { display:inline-flex; padding:3px; border-radius:10px; background:#f1f4f9; }
.fp-fe-toggle button { border:0; background:none; padding:6px 12px; border-radius:8px; font-size:13px; font-weight:600; color:#5b6b82; }
.fp-fe-toggle button.active { background:#fff; color:#047857; box-shadow:0 1px 3px #17243b1f; }
.fp-fe-callout { border-left:3px solid var(--fp-blue); background:#f3fbf7; border-radius:0 10px 10px 0; padding:12px 14px; }
.fp-fe-callout strong { font-size:13px; }
.fp-fe-mittente { font-size:12px; color:#51627c; margin-top:4px; }
.fp-fe-preview { background:#eef2f7; padding:24px 0 4px; }
.fp-fe-sticky-totals { display:flex; gap:28px; }
.fp-fe-sticky-error { flex:1 1 280px; margin:0; font-size:13px; color:#90372e; }

@media (max-width: 1280px) {
  .fp-fe-line-head { display:none; }
  .fp-fe-mlabel { display:block; }
  .fp-fe-line-main { grid-template-columns:30px repeat(4,minmax(0,1fr)) minmax(110px,auto);
    grid-template-areas:"num desc desc desc desc actions" ". qty um price vat amount"; }
  .fp-fe-num { grid-area:num; } .fp-fe-desc { grid-area:desc; } .fp-fe-qty { grid-area:qty; } .fp-fe-um { grid-area:um; }
  .fp-fe-price { grid-area:price; } .fp-fe-vat { grid-area:vat; } .fp-fe-amount { grid-area:amount; padding-top:22px; } .fp-fe-actions { grid-area:actions; }
  .fp-fe-summary { grid-template-columns:1fr; }
}
@media (max-width: 700px) {
  .fp-fe-line { padding:12px; }
  .fp-fe-line-main { grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:"num actions" "desc desc" "qty um" "price vat" "amount amount"; }
  .fp-fe-amount { text-align:left; padding-top:0; display:flex; justify-content:space-between; align-items:baseline; }
  .fp-fe-amount .fp-fe-mlabel { margin:0; }
  .fp-fe-line-extra, .fp-fe-details { margin-left:0; }
  .fp-fe-section-head { padding:14px 16px; }
  .fp-fe-section-body { padding:4px 16px 18px; }
  .fp-fe-sticky-totals { gap:16px; }
}
