/* COSTI AZIENDALI (#94): abbonamenti, stipendi, costi societari, una tantum, commissioni, Analisi costi e Calendario */
.bc { display:grid; gap:16px; max-width:1400px; --bc-tool:#1f6b4f; --bc-dominio:#2f4f7f; --bc-interni:#c47818; --bc-esterni:#8a4f9e; --bc-sales:#b6463c; --bc-societari:#5d6b65; --bc-una_tantum:#d8bd78; }
.bc-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:22px; }
.bc-head h2 { margin:2px 0 6px; font-size:24px; }
.bc-head p { margin:0; max-width:820px; color:var(--muted); font-size:13px; line-height:1.5; }
.bc-head-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; flex:0 0 auto; }
.bc-cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:12px; }
.bc-card { display:grid; gap:4px; padding:14px 16px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.bc-card span { color:var(--muted); font-size:11px; font-weight:700; }
.bc-card b { font:800 20px Manrope, sans-serif; color:var(--ink); }
.bc-card small { color:var(--muted); font-size:11px; line-height:1.4; }
.bc-card-warning { border-color:#f0d29d; background:var(--amber2); }
.bc-card-danger { border-color:#efd1ce; background:var(--red2); }
.bc-card-danger b { color:var(--red); }
.bc-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:end; padding:14px 18px; }
.bc-filters label { display:grid; gap:4px; color:var(--muted); font-size:11px; font-weight:700; }
.bc-filters input, .bc-filters select { border:1px solid var(--line); border-radius:9px; padding:9px 11px; background:#fff; color:var(--ink); font:12px 'DM Sans', sans-serif; }
.bc-filters input[type="search"] { min-width:240px; }
.bc-count { margin-left:auto; color:var(--muted); font-size:12px; font-weight:700; }
/* Tabelle: su schermi stretti scorrono in orizzontale invece di stringere le colonne. */
.bc-table table { min-width:1100px; }
.bc-table.bc-narrow table { min-width:520px; }
.bc-table th { white-space:nowrap; }
.bc-table td { vertical-align:top; padding:11px 14px; }
.bc-table td small { display:block; margin-top:3px; color:var(--muted); font-size:11px; line-height:1.35; }
.bc-table tfoot td { background:#fafbfa; border-top:1px solid var(--line); }
.bc-num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.bc-note { max-width:260px; }
.bc-note-mark { cursor:help; color:var(--muted); font-size:14px; }
.bc-actions { white-space:nowrap; }
.bc-actions .btn + .btn { margin-left:4px; }
.bc-muted { color:var(--muted); }
.bc-overdue, small.bc-overdue { color:var(--red); font-weight:700; }
.bc-soon { color:var(--amber); }
.bc-estimated, td.bc-estimated, small.bc-estimated { color:#8a948f; font-style:italic; }
.bc-badge { display:inline-block; padding:2px 9px; border-radius:999px; background:#efe9e9; color:#5d4d50; font-size:11px; font-weight:800; white-space:nowrap; }
.bc-state-attivo { background:var(--green2); color:var(--green); }
.bc-state-da_non_rinnovare { background:var(--amber2); color:var(--amber); }
.bc-state-disattivato { background:var(--red2); color:var(--red); }
.bc-row-disattivato td { color:var(--muted); }
.bc-paid td { color:var(--muted); }
.bc-name { min-width:200px; max-width:300px; }
.bc-table td small.bc-note-text { font-style:italic; }
.bc-table td small.bc-tag { display:inline-block; margin-top:0; }
.bc-tag { padding:1px 6px; border-radius:999px; background:#edf0ee; color:#617068; font-size:10px; font-weight:700; }
.bc-rates { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0; color:var(--muted); font-size:12px; }
.bc-legend { margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
.bc-legend .bc-ev { display:inline-block; }
/* Anni (stipendi, una tantum, scadenze) */
.bc-years { display:flex; flex-wrap:wrap; gap:6px; }
.bc-year { padding:8px 16px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--muted); font:700 13px 'DM Sans', sans-serif; cursor:pointer; }
.bc-year.active { border-color:var(--green); background:var(--green); color:#fff; }
.bc-section-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding:14px 18px; }
.bc-section-head h3 { font-size:15px; }
.bc-section-head p { margin:4px 0 0; color:var(--muted); font-size:12px; }
/* Stipendi: nome fisso a sinistra mentre si scorrono i mesi */
.bc-salaries table, .bc-analysis table { min-width:1500px; }
.bc-sticky { position:sticky; left:0; z-index:1; min-width:210px; background:#fff; }
th.bc-sticky, tfoot .bc-sticky, .bc-subtotal .bc-sticky { background:#fafbfa; }
.bc-group-title td { background:#f2f7f4; border-top:1px solid var(--line); }
.bc-group-title .btn { margin-left:8px; }
.bc-subtotal td { background:#fafbfa; font-weight:700; }
.bc-light td { font-weight:500; color:var(--muted); }
.bc-revenue td { color:var(--green); }
/* Analisi costi */
.bc-future { background:repeating-linear-gradient(135deg, transparent 0 6px, rgba(23,33,29,.025) 6px 12px); }
th.bc-future { color:#a8b1ac; }
.bc-swatch { display:inline-block; width:10px; height:10px; margin-right:6px; border-radius:3px; vertical-align:middle; }
.bc-cat-tool { background:var(--bc-tool); }
.bc-cat-dominio { background:var(--bc-dominio); }
.bc-cat-interni { background:var(--bc-interni); }
.bc-cat-esterni { background:var(--bc-esterni); }
.bc-cat-sales { background:var(--bc-sales); }
.bc-cat-societari { background:var(--bc-societari); }
.bc-cat-una_tantum { background:var(--bc-una_tantum); }
.bc-chart { display:grid; gap:12px; padding:18px; }
.bc-chart-bars { display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); gap:8px; align-items:end; height:190px; }
.bc-bar { display:grid; grid-template-rows:1fr auto; gap:6px; height:100%; text-align:center; }
.bc-bar-stack { display:flex; flex-direction:column-reverse; justify-content:flex-start; height:100%; border-radius:6px 6px 0 0; overflow:hidden; }
.bc-bar-stack i { display:block; min-height:1px; }
.bc-bar span { color:var(--muted); font-size:11px; font-weight:700; }
.bc-bar.bc-future .bc-bar-stack { opacity:.55; }
.bc-chart-legend { display:flex; flex-wrap:wrap; gap:6px 16px; color:var(--muted); font-size:12px; }
.bc-how { padding:14px 18px; }
.bc-how summary { cursor:pointer; font-weight:700; }
.bc-how ul { margin:10px 0 0; padding-left:18px; color:var(--muted); font-size:12px; line-height:1.6; }
/* Calendario */
.bc-calendar-layout { display:grid; grid-template-columns:minmax(0, 1fr) 340px; gap:16px; align-items:start; }
.bc-calendar { display:grid; gap:10px; padding:16px; }
.bc-calendar-nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.bc-calendar-nav h3 { min-width:160px; text-align:center; font-size:17px; }
.bc-weekdays, .bc-grid { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:4px; }
.bc-weekdays span { color:var(--muted); font-size:11px; font-weight:700; text-align:center; }
.bc-day { display:flex; flex-direction:column; gap:3px; min-height:96px; padding:6px; border:1px solid var(--line); border-radius:9px; background:#fff; overflow:hidden; }
.bc-day.bc-other { background:#fafbfa; opacity:.6; }
.bc-day.bc-past .bc-day-number { color:#a8b1ac; }
.bc-day.bc-today { border-color:var(--green); box-shadow:inset 0 0 0 1px var(--green); }
.bc-day-number { font-size:12px; font-weight:800; color:var(--ink); }
.bc-ev { display:block; width:100%; padding:2px 6px; border:0; border-left:3px solid var(--bc-tool); border-radius:5px; background:#eef5f1; color:var(--ink); font:600 10.5px 'DM Sans', sans-serif; line-height:1.35; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
button.bc-ev { cursor:pointer; }
button.bc-ev:hover { filter:brightness(.96); }
.bc-ev-dominio { border-left-color:var(--bc-dominio); background:#e8eef8; }
.bc-ev-payment { border-left-color:var(--bc-societari); background:#edf0ee; }
.bc-ev-stop { border-left-color:var(--amber); background:var(--amber2); }
.bc-ev-overdue { border-left-color:var(--red); background:var(--red2); color:var(--red); }
.bc-ev-paid { opacity:.6; text-decoration:line-through; }
.bc-legend .bc-ev { width:auto; margin-right:6px; }
.bc-side { display:grid; gap:16px; }
.bc-side .card-head { padding:14px 16px; }
.bc-list { display:grid; margin:0; padding:0; list-style:none; max-height:420px; overflow:auto; }
.bc-list li { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:6px 10px; padding:10px 16px; border-bottom:1px solid #f0f2f0; font-size:12px; }
.bc-list li:last-child { border-bottom:0; }
.bc-list li small { display:block; margin-top:2px; color:var(--muted); font-size:11px; }
.bc-list li span { display:flex; gap:4px; flex:0 0 auto; margin-left:auto; }
.bc-list li.bc-soon b { color:var(--amber); }
/* Finestre */
.bc-dialog { width:min(720px, calc(100vw - 30px)); }
.bc-dialog form { display:grid; gap:14px; }
.bc-dialog .modal-head { margin-bottom:0; }
.bc-dialog .modal-actions { margin-top:4px; }
.bc-dialog-intro { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.bc-form label { display:grid; gap:6px; font-size:11px; font-weight:700; }
.bc-form label small { color:var(--muted); font-size:11px; font-weight:500; line-height:1.4; }
.bc-form input, .bc-form select, .bc-form textarea { width:100%; margin-top:0; border:1px solid var(--line); border-radius:9px; padding:9px 11px; background:#fff; color:var(--ink); font:12px 'DM Sans', sans-serif; }
.bc-form .bc-check { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; }
.bc-form .bc-check input { width:auto; }
.bc-months { display:grid; grid-template-columns:repeat(6, minmax(0, 1fr)); gap:8px; margin:0; padding:10px 12px; border:1px solid var(--line); border-radius:10px; }
.bc-months legend { padding:0 4px; font-size:11px; font-weight:700; }
.bc-preview { margin:0; color:var(--green); font-size:12px; font-weight:700; }
.bc-preview:empty, .bc-form-error:empty { display:none; }
.bc-form-error { margin:0; color:var(--red); font-size:12px; font-weight:700; }
.bc-delete { display:grid; gap:6px; padding:12px; border:1px solid #efd1ce; border-radius:10px; background:var(--red2); color:var(--red); font-size:12px; }
.bc-delete[hidden] { display:none; }
.bc-delete .btn { justify-self:start; }
.bc-delete-button { margin-right:auto; }
/* Avviso all'apertura */
.bc-reminders { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.bc-reminders li { display:grid; gap:3px; padding:12px 14px; border:1px solid #f0d29d; border-left:4px solid var(--amber); border-radius:10px; background:var(--amber2); }
.bc-reminders li.bc-reminder-0, .bc-reminders li.bc-reminder-1 { border-color:#efd1ce; border-left-color:var(--red); background:var(--red2); }
.bc-reminders b { font-size:14px; }
.bc-reminders small { color:#6f4510; font-size:12px; line-height:1.4; }
@media (max-width:1100px) { .bc-calendar-layout { grid-template-columns:1fr; } }
@media (max-width:720px) {
  .bc-head { flex-direction:column; }
  .bc-head-actions { justify-content:flex-start; }
  .bc-filters input[type="search"] { min-width:100%; }
  .bc-months { grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .bc-day { min-height:64px; }
  .bc-ev { font-size:0; padding:3px; }
  .bc-chart-bars { gap:3px; }
}
