﻿/* Piccole aggiunte di GS2 sopra gli stili approvati del sito attuale. */
.gs2-banner { margin: 0 0 12px; }
.gs2-date { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; white-space: nowrap; }
.gs2-date input { font: inherit; padding: 4px 6px; border-radius: 6px; border: 1px solid #d4d9e1; }
.nav-item.gs2-later { opacity: .45; cursor: not-allowed; }

/* Barra in alto: «Oggi» e «＋ Registra». */
.top-actions { display: flex; align-items: center; gap: 8px; }
.gs2-oggi { min-height: 36px; padding: 6px 12px; }
.gs2-registra { min-height: 38px; padding: 8px 16px; white-space: nowrap; }

/* Scelta «Cosa vuoi registrare?». */
.gs2-scelta { width: min(560px, calc(100vw - 24px)); }
.gs2-scelta .quick-choice { cursor: pointer; font: inherit; color: var(--ink); }
.gs2-scelta .quick-choice strong { font-size: 1.02rem; }

/* Modulo movimento: tipo a pulsanti, importo in evidenza. */
.gs2-tipi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 12px; }
.gs2-tipo { min-height: 44px; padding: 0 4px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); font: inherit; font-size: .9rem; font-weight: 700; white-space: nowrap; cursor: pointer; }
.gs2-tipo[aria-pressed=true].gs2-tipo-uscita { background: #fdeceb; border-color: #e6a19b; color: #9b2c22; }
.gs2-tipo[aria-pressed=true].gs2-tipo-entrata { background: #e6f6ee; border-color: #8fd0ae; color: #17663f; }
.gs2-tipo[aria-pressed=true].gs2-tipo-trasferimento { background: #eaf0ff; border-color: #9fb5e8; color: #2443a0; }
.gs2-importo input { font-size: 1.6rem; font-weight: 800; min-height: 54px; }
.gs2-salva { width: 100%; min-height: 46px; font-size: 1rem; margin-top: 4px; }

/* Avvisi a scomparsa: errori in rosso; tocco per chiudere. */
.toast { cursor: pointer; }
.toast.gs2-toast-errore { background: #9b2c22; }
.toast.gs2-toast-errore span { color: #ffe1de; }

/* Dashboard: riquadro «Da verificare» cliccabile. */
.gs2-cliccabile { cursor: pointer; }
.gs2-cliccabile:hover, .gs2-cliccabile:focus-visible { box-shadow: 0 0 0 2px #e8c35a inset; }

@media (max-width: 767px) {
  /* Barra in basso a cinque voci, con «＋ Registra» al centro. */
  .gs2-bottom-nav { grid-template-columns: repeat(5, 1fr); }
  .gs2-bottom-add span:first-child { display: grid; place-items: center; width: 40px; height: 40px; margin-top: -14px; border-radius: 50%; background: var(--primary, #2557d6); color: #fff; font-size: 1.4rem; box-shadow: 0 6px 16px rgba(37,87,214,.35); }
  .gs2-date-label { display: none; }
  /* Le barre «Salva» fisse in fondo (es. Aggiorna valori) restano sopra la barra in basso. */
  .upd-bar { bottom: calc(66px + env(safe-area-inset-bottom)); }
  .topbar { gap: 8px; padding-inline: 12px; }
  /* Movimenti sul telefono: una riga compatta per movimento (descrizione e importo, sotto data · conto · categoria). */
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; gap: 2px 8px; align-items: baseline; padding: 10px 12px; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td { display: block; padding: 0; text-align: left; border: 0; min-width: 0; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td::before { display: none; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(2) { grid-column: 1 / 4; grid-row: 1; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(3) { grid-column: 4; grid-row: 1; text-align: right; font-weight: 800; white-space: nowrap; font-size: .95rem; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(1),
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(4),
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(5) { grid-row: 2; font-size: .76rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(5) { grid-column: 3 / 5; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(4)::after { content: " ·"; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(1)::after { content: " ·"; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td:nth-child(6) { display: none; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) .movement-description { font-weight: 700; text-align: left; }
  table.responsive.movement-table :is(tr.row, tr.scheduled-row) > td { background: transparent !important; }
  table.responsive.movement-table tr.movement-out { border-left: 4px solid #e6a19b; }
  table.responsive.movement-table tr.movement-in { border-left: 4px solid #8fd0ae; }
  table.responsive.movement-table tr.scheduled-row { border-left: 4px solid #e8c35a; background: #fffaf0; }
  table.responsive.movement-table tr.scheduled-row .scheduled-badge { display: block; font-size: .74rem; }
}
/* Previdenza: nessun acquisto da registrare (Cometa si aggiorna dai valori). */
#previdenza .register-menu { display: none; }
.gs2-link-prestiti { margin-left: auto; }
/* Il registro matched betting è largo: scorre dentro la sua area, non allarga la pagina. */
#mbBody { max-width: 100%; overflow-x: auto; }

/* Impostazioni: elenchi semplici con le azioni a destra. */
.gs2-im-tabs { margin-bottom: 12px; }
.gs2-im-barra { display: flex; gap: 10px; align-items: center; }
.gs2-im-barra input { flex: 1; min-height: 40px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
.gs2-im-lista { padding: 6px 16px; }
.gs2-im-gruppo { margin: 14px 0 4px; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.gs2-im-riga { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #edf0f5; }
.gs2-im-riga:last-child { border-bottom: 0; }
.gs2-im-testo { display: grid; min-width: 0; }
.gs2-im-testo small { color: var(--muted); font-size: .8rem; overflow: hidden; text-overflow: ellipsis; }
.gs2-im-azioni { display: flex; gap: 6px; flex-shrink: 0; }
.gs2-im-spenta { opacity: .55; }
/* ── Home «Oggi in breve»: tre numeri grandi e un elenco «Da fare». ── */
.gs2-breve { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 16px; margin-bottom: 18px; align-items: start; }
.gs2-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gs2-tile { display: flex; flex-direction: column; gap: 6px; text-align: left; font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; min-width: 0; border-top: 4px solid var(--gs2-accent, var(--primary)); }
button.gs2-tile { cursor: pointer; transition: transform .12s, box-shadow .12s; }
button.gs2-tile:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(20, 40, 80, .1); }
.gs2-t-patrimonio { --gs2-accent: var(--gs2-viola); } .gs2-t-liquidita { --gs2-accent: var(--gs2-verde); } .gs2-t-uscite { --gs2-accent: var(--gs2-rosso); }
.gs2-tile-label { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); font-weight: 600; }
.gs2-tile-icon { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; background: color-mix(in srgb, var(--gs2-accent) 14%, transparent); color: var(--gs2-accent); font-size: 14px; }
.gs2-tile-value { font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs2-tile-foot { font-size: 12px; color: var(--muted); }
.gs2-su { color: var(--gs2-rosso); } .gs2-giu { color: var(--gs2-verde); }
.gs2-fare { padding: 16px 18px; }
.gs2-fare-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.gs2-fare-head h2 { margin: 0; font-size: 17px; }
.gs2-fare-count { min-width: 26px; height: 26px; padding: 0 8px; border-radius: 13px; display: inline-grid; place-items: center; background: var(--gs2-ambra-soft); color: var(--gs2-ambra); font-weight: 700; font-size: 13px; }
.gs2-fare-count.ok { background: var(--gs2-verde-soft); color: var(--gs2-verde); }
.gs2-fare-vuoto { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.gs2-fare-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.gs2-fare-lista li { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line); }
.gs2-fare-lista li:last-child { border-bottom: 0; }
.gs2-fare-lista strong { display: block; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs2-fare-lista small { display: block; color: var(--muted); font-size: 12px; }
.gs2-fare-icon { width: 30px; height: 30px; border-radius: 9px; display: inline-grid; place-items: center; background: var(--blue-soft); color: var(--primary); font-weight: 700; }
.gs2-fare-warn .gs2-fare-icon { background: var(--gs2-ambra-soft); color: var(--gs2-ambra); }
.gs2-fare-btn { min-height: 34px; padding: 6px 12px; }
.gs2-fare-altre { color: var(--muted); font-size: 12px; display: block !important; }
@media (max-width: 1099px) { .gs2-breve { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .gs2-tiles { grid-template-columns: 1fr 1fr; } .gs2-t-patrimonio { grid-column: 1 / -1; } .gs2-tile { padding: 13px 14px; } }

/* ── Pannello fondi a schede. ── */
.gs2-schede { display: flex; gap: 6px; flex-wrap: wrap; margin: 4px 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: var(--paper); z-index: 2; }
.gs2-scheda { font: inherit; font-size: 13px; font-weight: 600; padding: 8px 13px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); color: var(--muted); cursor: pointer; }
.gs2-scheda[aria-selected=true] { background: var(--primary); border-color: var(--primary); color: #fff; }
.family-dialog { width: min(760px, calc(100vw - 24px)); }
.family-dialog details > form { margin-top: 6px; }
.gs2-salda { min-height: 28px; padding: 3px 10px; font-size: 12px; margin-left: 6px; }

/* ── Movimenti: icona del tipo e importi colorati. ── */
.gs2-con-icona { display: flex; align-items: center; gap: 10px; }
.gs2-ico { flex: none; width: 28px; height: 28px; border-radius: 9px; display: inline-grid; place-items: center; font-size: 14px; font-weight: 700; }
.gs2-ico-out { background: var(--gs2-rosso-soft); color: var(--gs2-rosso); }
.gs2-ico-in { background: var(--gs2-verde-soft); color: var(--gs2-verde); }
.gs2-ico-trasf { background: var(--blue-soft); color: var(--primary); }
.gs2-ico-comune { background: var(--gs2-viola-soft); color: var(--gs2-viola); }
.gs2-ico-inv { background: var(--gs2-ambra-soft); color: var(--gs2-ambra); }
.gs2-ico-neutro { background: var(--canvas); color: var(--muted); }
.amount-negative { color: var(--gs2-rosso) !important; } .amount-positive { color: var(--gs2-verde) !important; }
td.value, .money, .kpi-value { font-variant-numeric: tabular-nums; }

/* ── Colori comuni (chiaro) e tema scuro automatico. ── */
:root { --gs2-verde: #12805a; --gs2-verde-soft: #e3f5ec; --gs2-rosso: #c2392f; --gs2-rosso-soft: #fdebea; --gs2-viola: #6d4bd8; --gs2-viola-soft: #efeafe;
  --gs2-ambra: #a86400; --gs2-ambra-soft: #fff1d6; }
@media all {
  :root[data-theme=dark] { color-scheme: dark; --ink: #e6ebf3; --muted: #9aa6ba; --line: #2a3546; --paper: #161e2b; --canvas: #0e141d; --blue-soft: #1d2a45; --primary: #6f93ff; --primary-dark: #5a7ff0;
    --teal-soft: #13302b; --amber-soft: #33270f; --red-soft: #3a1c20; --shadow: none;
    --gs2-verde: #4cc994; --gs2-verde-soft: #15322a; --gs2-rosso: #ff7a6e; --gs2-rosso-soft: #3a1f1d; --gs2-viola: #a690ff; --gs2-viola-soft: #251f3f; --gs2-ambra: #f0b44c; --gs2-ambra-soft: #33270f; }
  :root[data-theme=dark] body { background: var(--canvas); color: var(--ink); }
  :root[data-theme=dark] .card, :root[data-theme=dark] .sidebar, :root[data-theme=dark] .topbar, :root[data-theme=dark] dialog,
  :root[data-theme=dark] .bottom-nav, :root[data-theme=dark] .kpi, :root[data-theme=dark] .redesign-metrics, :root[data-theme=dark] .gs2-tipo,
  :root[data-theme=dark] .quick-choice, :root[data-theme=dark] .table-wrap, :root[data-theme=dark] table { background: var(--paper) !important; color: var(--ink); border-color: var(--line) !important; }
  :root[data-theme=dark] input, :root[data-theme=dark] select, :root[data-theme=dark] textarea { background: #0f1621; color: var(--ink); border-color: var(--line); }
  :root[data-theme=dark] th, :root[data-theme=dark] td { border-color: var(--line) !important; }
  :root[data-theme=dark] thead th, :root[data-theme=dark] .common-sheet th { background: #1b2433 !important; color: var(--ink) !important; }
  :root[data-theme=dark] tr:hover td { background: #1b2433; }
  :root[data-theme=dark] .nav-item:hover, :root[data-theme=dark] .nav-item.active, :root[data-theme=dark] .compact-sheet tr.selected { background: #1d2a45 !important; color: #a9c0ff !important; }
  :root[data-theme=dark] .notice, :root[data-theme=dark] .notice.warning { background: #2b2412 !important; color: #f3dfae !important; border-color: #4a3c17 !important; }
  :root[data-theme=dark] .btn:not(.btn-primary), :root[data-theme=dark] .icon-btn { background: #1b2433; color: var(--ink); border-color: var(--line); }
  :root[data-theme=dark] .brand-mark { background: #2d4a75; }
  :root[data-theme=dark] .gs2-scheda[aria-selected=true] { color: #0e141d; }
}

/* ── Ricerca unica in alto. ── */
.gs2-cerca { position: relative; flex: 1; max-width: 420px; display: flex; align-items: center; gap: 8px; background: var(--canvas); border: 1px solid var(--line); border-radius: 12px; padding: 0 10px; margin: 0 12px; }
.gs2-cerca > span { color: var(--muted); font-size: 16px; }
.gs2-cerca input { flex: 1; border: 0 !important; background: transparent !important; min-height: 38px; outline: none; color: var(--ink); min-width: 0; }
.gs2-cerca:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent); }
.gs2-cerca kbd { font: 11px/1 inherit; color: var(--muted); border: 1px solid var(--line); border-radius: 5px; padding: 3px 6px; }
.gs2-cerca-lista { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 30px rgba(10, 20, 40, .16); padding: 6px; z-index: 50; }
.gs2-cerca-voce { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 8px; align-items: center; width: 100%; text-align: left; font: inherit; font-size: 13px; color: var(--ink); background: transparent; border: 0; border-radius: 8px; padding: 8px; cursor: pointer; }
.gs2-cerca-voce span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs2-cerca-voce small { color: var(--muted); font-size: 11px; }
.gs2-cerca-voce:hover, .gs2-cerca-voce.attiva { background: var(--blue-soft); }
.gs2-cerca-ico { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 7px; background: var(--canvas); color: var(--primary); }
@media (max-width: 767px) { .gs2-cerca { order: 3; flex-basis: 100%; max-width: none; margin: 8px 0 0; } .gs2-cerca kbd { display: none; } .topbar { flex-wrap: wrap; } }
@media all {
  :root[data-theme=dark] .bottom-item.active, :root[data-theme=dark] .bottom-item:hover { background: #1d2a45 !important; color: #a9c0ff !important; }
  :root[data-theme=dark] .dash-panel, :root[data-theme=dark] .dash-list .card-head, :root[data-theme=dark] .gs2-cerca-ico { background: #1b2433; }
}
@media all {
  :root[data-theme=dark] .movement-planned, :root[data-theme=dark] .common-unpaid-row, :root[data-theme=dark] .movement-planned td { background: #2b2412 !important; color: #f3dfae; }
}
@media all {
  :root[data-theme=dark] .scheduled-row, :root[data-theme=dark] .scheduled-row td { background: #2b2412 !important; color: #f3dfae !important; }
}

/* ☰ sul computer: menu laterale nascosto del tutto, pagina a tutta larghezza (scelta ricordata). */
@media (min-width: 1100px) {
  html.nav-collapsed .sidebar:not(.open) { transform: translateX(-105%); visibility: hidden; }
  html.nav-collapsed .app-frame { margin-left: 0; }
  .sidebar { transition: transform .18s ease; }
}

/* ── Registro matched betting: date intere e multiple ben visibili. ── */
.mbr-table.mbr-fit td[data-k=date], .mbr-table.mbr-fit td[data-k=dataEvento] { text-overflow: clip !important; overflow: visible !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Multipla come nel foglio: riquadro scuro intorno alle righe, partite coperte dalla bancata in rosso. */
.mbr-table tr.mbr-multi > td:first-child { box-shadow: inset 2px 0 0 #1d2b4f; }
.mbr-table tr.mbr-multi > td[data-k=guadagno] { box-shadow: inset -2px 0 0 #1d2b4f; }
.mbr-table tr.mbr-multi-top > td { border-top: 2px solid #1d2b4f !important; }
.mbr-table tr.mbr-multi-bottom > td { border-bottom: 2px solid #1d2b4f !important; }
.mbr-table td.mbr-coperta { color: #d1242f !important; font-weight: 700; }
:root[data-theme=dark] .mbr-table tr.mbr-multi > td:first-child { box-shadow: inset 2px 0 0 #9fb3d9; }
:root[data-theme=dark] .mbr-table tr.mbr-multi > td[data-k=guadagno] { box-shadow: inset -2px 0 0 #9fb3d9; }
:root[data-theme=dark] .mbr-table tr.mbr-multi-top > td { border-top-color: #9fb3d9 !important; }
:root[data-theme=dark] .mbr-table tr.mbr-multi-bottom > td { border-bottom-color: #9fb3d9 !important; }
:root[data-theme=dark] .mbr-table td.mbr-coperta { color: #ff7a6e !important; }
.mbr-table tr.mbr-multi-head > td { padding: 8px 12px !important; background: color-mix(in srgb, var(--multi) 14%, var(--paper)); border-left: 4px solid var(--multi); white-space: normal !important; overflow: visible !important; font-size: 12.5px; }
.mbr-multi-t strong { color: var(--multi); }
.mbr-multi-t span { color: var(--ink); }
.mbr-multi-passi { margin: 4px 0 0; padding-left: 20px; display: grid; gap: 1px; }
.mbr-multi-passi em { font-style: normal; color: var(--muted); }
.mbr-multi-passi em.ok { color: var(--gs2-verde); font-weight: 600; }
.mbr-table .mbr-ev-search { border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 4px 0 0 !important; min-width: 0 !important; min-height: 0 !important; width: auto !important; height: auto !important; opacity: .65; cursor: pointer; }
.mbr-table .mbr-ev-search:hover { opacity: 1; }
.mbr-table tr.mbr-multi-head > td { text-align: left !important; }
.mbr-multi-passi li { text-align: left; }
.mbr-table td[data-k=esito] { position: relative; overflow: visible !important; }
.mbr-esito-btn { font: inherit; font-weight: 800; min-width: 30px; min-height: 26px; border-radius: 7px; cursor: pointer; border: 1px solid transparent; }
.mbr-esito-V { background: var(--gs2-verde-soft); color: var(--gs2-verde); border-color: color-mix(in srgb, var(--gs2-verde) 35%, transparent); }
.mbr-esito-P { background: var(--gs2-rosso-soft); color: var(--gs2-rosso); border-color: color-mix(in srgb, var(--gs2-rosso) 35%, transparent); }
.mbr-esito-btn:hover { filter: brightness(.95); box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 25%, transparent); }
.mbr-esito-menu { position: absolute; z-index: 20; top: calc(100% - 2px); left: 2px; display: flex; flex-direction: column; gap: 2px; background: var(--paper); border: 1px solid var(--line); border-radius: 9px; padding: 4px; box-shadow: 0 10px 24px rgba(10, 20, 40, .18); }
.mbr-esito-opt { font: inherit; font-size: 12px; text-align: left; padding: 6px 12px; border: 0; border-radius: 6px; background: transparent; color: var(--ink); cursor: pointer; white-space: nowrap; }
.mbr-esito-opt:hover:not(:disabled) { background: var(--blue-soft); }
.mbr-esito-opt.attuale { color: var(--muted); }
/* Testata del registro ferma mentre si scorre: il contenitore non deve avere uno scorrimento suo. */
#mbBody { overflow: visible !important; overflow-x: clip !important; }
.mbr .mbr-table.mbr-fit thead th { box-shadow: 0 1px 0 rgba(0, 0, 0, .15); }
/* Bancata e quota banca scritte direttamente nella riga. */
.mbr-table td.mbr-inline-td { padding: 2px 3px !important; overflow: visible !important; }
.mbr-inline { width: 100%; min-width: 0; min-height: 28px !important; padding: 3px 5px !important; font: inherit; font-size: 12px !important; text-align: right; font-variant-numeric: tabular-nums;
  border: 1px dashed color-mix(in srgb, var(--primary) 45%, transparent) !important; border-radius: 6px; background: color-mix(in srgb, var(--paper) 85%, transparent) !important; color: var(--ink); }
.mbr-inline:focus { border-style: solid !important; outline: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 25%, transparent); }
.mbr-inline::placeholder { color: var(--muted); opacity: .7; font-size: 11px; }
.mbr-inline.err { border-color: var(--gs2-rosso) !important; }

/* ── Registro matched betting più leggibile. ── */
#mbRegister .mbr-table.mbr-fit td { padding-top: 3px !important; padding-bottom: 3px !important; height: 34px; vertical-align: middle; }
/* Aperte: niente giallo pieno, solo una striscia ambra a sinistra e un velo leggero. */
#mbRegister .mbr-table tr.open > td { background: color-mix(in srgb, #f5c542 9%, var(--paper)) !important; }
#mbRegister .mbr-table tr.open > td:first-child { box-shadow: inset 3px 0 0 #e0a800; }
#mbRegister .mbr-table tr.mbr-multi.open > td:first-child { box-shadow: inset 2px 0 0 #1d2b4f, inset 5px 0 0 #e0a800; }
/* Bollino will / rob. */
.mbr-chi { display: inline-block; min-width: 38px; text-align: center; font-size: 11px; font-weight: 700; padding: 2px 6px; border-radius: 999px; }
.mbr-chi-will { background: #e3edff; color: #2457c5; }
.mbr-chi-rob { background: #fde7f1; color: #b4236b; }
:root[data-theme=dark] .mbr-chi-will { background: #1d2a45; color: #8fb0ff; } :root[data-theme=dark] .mbr-chi-rob { background: #3a1d2c; color: #ff8fc4; }
/* Tipo come etichetta (solo se non è sport). */
.mbr-tipo { display: inline-block; font-size: 10px; font-weight: 800; padding: 1px 5px; border-radius: 4px; margin-right: 6px; background: var(--canvas); color: var(--muted); border: 1px solid var(--line); vertical-align: 1px; }
.mbr-tipo-C { background: #f1e8ff; color: #6d3fc0; border-color: #dccbff; } .mbr-tipo-D { background: #e6f6ee; color: #17663f; border-color: #bfe6d2; }
.mbr-tipo-P { background: #fdebea; color: #a52a20; border-color: #f5c7c3; } .mbr-tipo-V { background: #fff1d6; color: #8a5a00; border-color: #f2d9a6; }
/* Evento e offerta interi: vanno a capo (al massimo due righe). */
#mbRegister .mbr-table.mbr-fit td[data-k=evento], #mbRegister .mbr-table.mbr-fit td[data-k=offerta] { white-space: normal !important; text-overflow: clip !important; line-height: 1.25; }
#mbRegister .mbr-table.mbr-fit td[data-k=evento] { display: table-cell; }
#mbRegister .mbr-table.mbr-fit td[data-k=exchange], #mbRegister .mbr-table.mbr-fit td[data-k=book] { text-overflow: clip !important; }
/* Pulsanti V / P piccoli e affiancati. */
#mbRegister .mbr-close { min-height: 24px !important; height: 24px; min-width: 26px !important; padding: 0 6px !important; font-size: 12px !important; border-radius: 6px !important; }
#mbRegister td[data-k=esito] { white-space: nowrap; }
#mbRegister td[data-k=esito] > .mbr-close + .mbr-close { margin-left: 4px; }
.mbr-esito-btn { min-height: 24px !important; height: 24px; }
/* Bancata: importo @ quota modificabili nella riga. */
.mbr-inline-box { display: grid; grid-template-columns: 1fr auto 46px; align-items: center; gap: 3px; }
.mbr-inline-at { color: var(--muted); font-size: 11px; }
.mbr-inline { min-height: 24px !important; height: 24px; }
/* Intestazione del giorno. */
#mbRegister .mbr-table tr.mbr-giorno > td { background: var(--canvas) !important; border-top: 1px solid var(--line); padding: 6px 10px !important; height: auto; font-size: 12px; color: var(--muted); white-space: nowrap !important; text-align: left !important; }
#mbRegister .mbr-table tr.mbr-giorno strong { color: var(--ink); font-size: 13px; }
#mbRegister .mbr-table tr.mbr-giorno b { font-weight: 700; }
/* Filtro «Da bancare» in evidenza. */
.mbr-chip-bancare[aria-pressed=true] { background: #d1242f !important; border-color: #d1242f !important; color: #fff !important; }
/* Depositi e prelievi su una riga sola; bollino will/rob senza puntini. */
#mbRegister .mbr-table.mbr-fit td.mbr-riga-lunga { white-space: nowrap !important; text-overflow: clip !important; overflow: visible !important; }
#mbRegister .mbr-table.mbr-fit td[data-k=id] { text-overflow: clip !important; padding-left: 4px !important; padding-right: 4px !important; }
.mbr-chi { min-width: 0; padding: 2px 8px; }
/* Depositi in verde, prelievi in arancio, scritti nella riga libera. */
#mbRegister td.mbr-dp.mbr-dp-dep { color: var(--gs2-verde) !important; font-weight: 600; }
#mbRegister td.mbr-dp.mbr-dp-prel { color: #b45309 !important; font-weight: 600; }
#mbRegister .mbr-table.mbr-fit td[data-k=puntata], #mbRegister .mbr-table.mbr-fit td[data-k=bancata] { white-space: nowrap !important; text-overflow: clip !important; }
.mbr-tag-bonus { display: inline-block; font-size: 9.5px; font-weight: 800; line-height: 1; padding: 2px 4px; margin-left: 3px; border-radius: 4px; background: #fff1d6; color: #8a5a00; vertical-align: 1px; text-transform: uppercase; }
.mbr-quota { color: var(--muted); }
#mbRegister .mbr-table.mbr-fit td[data-k=puntata] { white-space: normal !important; line-height: 1.25; }
#mbRegister .mbr-table.mbr-fit td[data-k=puntata] .mbr-quota { white-space: nowrap; }
.mbr-ico-bonus { margin-left: 3px; font-size: 13px; line-height: 1; vertical-align: -1px; cursor: help; }
.mbr-tipo { white-space: nowrap; }
/* Puntata su una riga: lettera del tipo di soldi (R, B, FR, FB), importo, quota. */
#mbRegister .mbr-table.mbr-fit td[data-k=puntata] { white-space: nowrap !important; line-height: 1.2; font-size: 12px; }
.mbr-soldi { display: inline-block; min-width: 15px; text-align: center; font-size: 9.5px; font-weight: 800; line-height: 1; padding: 2px 3px; margin-right: 3px; border-radius: 4px; vertical-align: 1px; cursor: help; }
.mbr-soldi-r { background: #e3edff; color: #2457c5; }
.mbr-soldi-b { background: #fff1d6; color: #8a5a00; }
.mbr-soldi-fr { background: #e6f6ee; color: #17663f; }
.mbr-soldi-fb { background: #f1e8ff; color: #6d3fc0; }
#mbRegister .mbr-table.mbr-fit td.mbr-puntata-doppia { font-size: 11px; letter-spacing: -.01em; }
#mbRegister td.mbr-puntata-doppia .mbr-soldi { margin-right: 2px; padding: 2px 2px; }

/* Attesa durante l'aggiornamento di una tabella. */
.gs2-carica { opacity: .45; transition: opacity .15s; pointer-events: none; }
.mbr-chip-togli { border-color: #d1242f !important; color: #d1242f !important; font-weight: 700; }

/* ── Registro: una riga sola per scommessa, testo lungo con «…» (intero passando col mouse). ── */
#mbRegister .mbr-table.mbr-fit td[data-k=evento], #mbRegister .mbr-table.mbr-fit td[data-k=offerta], #mbRegister .mbr-table.mbr-fit td[data-k=puntata],
#mbRegister .mbr-table.mbr-fit td[data-k=mercato], #mbRegister .mbr-table.mbr-fit td[data-k=exchange], #mbRegister .mbr-table.mbr-fit td[data-k=book] {
  white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
#mbRegister .mbr-table.mbr-fit td.mbr-riga-lunga { overflow: visible !important; text-overflow: clip !important; }
#mbRegister .mbr-table.mbr-fit td[data-k=puntata].mbr-puntata-doppia { font-size: 11px; }
/* Bancata: discreta (sembra testo) finché non si passa sulla riga; con il mouse o scrivendo diventa una casella. */
#mbRegister .mbr-inline { border-color: transparent !important; background: transparent !important; }
#mbRegister .mbr-inline::placeholder { color: transparent; }
#mbRegister tr:hover .mbr-inline, #mbRegister .mbr-inline:focus { border-color: color-mix(in srgb, var(--primary) 45%, transparent) !important; background: var(--paper) !important; }
#mbRegister tr:hover .mbr-inline::placeholder { color: var(--muted); }
#mbRegister .mbr-inline-at { opacity: .35; } #mbRegister tr:hover .mbr-inline-at { opacity: 1; }

/* Aperte da refertare: giallo acceso. Scadute (partita finita, manca V o P): rossastro. */
#mbRegister .mbr-table tr.mbr-da-refertare > td { background: #ffe680 !important; }
#mbRegister .mbr-table tr.mbr-scaduta > td { background: #ffc9c2 !important; }
#mbRegister .mbr-table tr.mbr-scaduta > td:first-child { box-shadow: inset 4px 0 0 #d1242f !important; }
#mbRegister .mbr-table tr.mbr-da-refertare > td:first-child { box-shadow: inset 4px 0 0 #e0a800 !important; }
#mbRegister .mbr-table tr.mbr-multi.mbr-scaduta > td:first-child { box-shadow: inset 2px 0 0 #1d2b4f, inset 6px 0 0 #d1242f !important; }
#mbRegister .mbr-table tr.mbr-multi.mbr-da-refertare > td:first-child { box-shadow: inset 2px 0 0 #1d2b4f, inset 6px 0 0 #e0a800 !important; }
:root[data-theme=dark] #mbRegister .mbr-table tr.mbr-da-refertare > td { background: #4a3d0c !important; }
:root[data-theme=dark] #mbRegister .mbr-table tr.mbr-scaduta > td { background: #4d1f1c !important; }
/* Guadagno totale della promo (gruppo con riquadro): una casella alta quanto il gruppo. */
#mbRegister .mbr-table td.mbr-tot-promo { vertical-align: middle !important; text-align: right; border-left: 1px dashed var(--line); background: color-mix(in srgb, var(--paper) 70%, transparent); }
#mbRegister .mbr-table td.mbr-tot-promo strong { display: block; font-size: 14px; }
#mbRegister .mbr-table td.mbr-tot-promo small { display: block; font-size: 10px; color: var(--muted); font-weight: 600; }
/* Riga sottile di totale in fondo al gruppo della promo. */
#mbRegister .mbr-table tr.mbr-tot-riga > td { height: 24px !important; padding-top: 2px !important; padding-bottom: 2px !important; background: color-mix(in srgb, var(--canvas) 80%, var(--paper)) !important; border-top: 1px dashed var(--line) !important; }
#mbRegister .mbr-table td.mbr-tot-lab { text-align: right !important; font-size: 11px; color: var(--muted); font-weight: 700; letter-spacing: .02em; }
#mbRegister .mbr-table td.mbr-tot-val { font-weight: 800; font-size: 13px; }
/* Colonna «Promo» sul fianco: fuori dal riquadro, totale in verticale lungo il gruppo. */
#mbRegister .mbr-table.mbr-fit td[data-k=promo] { padding: 0 !important; background: var(--paper) !important; border-top-color: transparent !important; border-bottom-color: transparent !important; box-shadow: none !important; }
#mbRegister .mbr-table tr.mbr-multi-top > td[data-k=promo], #mbRegister .mbr-table tr.mbr-multi-bottom > td[data-k=promo] { border-top: 0 !important; border-bottom: 0 !important; }
#mbRegister .mbr-table td.mbr-promo-tot { padding: 4px 0 !important; background: var(--paper) !important; border: 0 !important; box-shadow: none !important; text-align: center; vertical-align: middle !important; overflow: visible !important; cursor: help; }
#mbRegister .mbr-promo-testo { display: inline-block; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; font-weight: 800; font-size: 12.5px; padding: 6px 3px; border-radius: 6px; background: color-mix(in srgb, currentColor 10%, transparent); }
#mbRegister .mbr-table th:last-child { font-size: 0; }
#mbRegister .mbr-table th:last-child::after { content: 'Σ'; font-size: 13px; }

/* ── Dashboard: variazioni, andamento, torta e dettaglio per strumento. ── */
.gs2-tiles.gs2-tiles-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gs2-t-var { --gs2-accent: var(--muted); } .gs2-su-v { --gs2-accent: var(--gs2-verde); } .gs2-giu-v { --gs2-accent: var(--gs2-rosso); }
.gs2-su-v .gs2-tile-value, .gs2-su-v .gs2-tile-foot { color: var(--gs2-verde); } .gs2-giu-v .gs2-tile-value, .gs2-giu-v .gs2-tile-foot { color: var(--gs2-rosso); }
/* Riquadri entrate / uscite / guadagno con minigrafico. */
.gs2-t-flussi .gs2-tile-foot { color: var(--muted); }
.gs2-t-flussi .gs2-tile-foot b.positive { color: var(--gs2-verde); } .gs2-t-flussi .gs2-tile-foot b.negative { color: var(--gs2-rosso); }
.gs2-flussi-eu { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 12.5px; font-weight: 600; font-variant-numeric: tabular-nums; }
.gs2-fl-e { color: var(--gs2-verde); } .gs2-fl-u { color: var(--gs2-rosso); }
.gs2-mini { display: block; width: 100%; height: 40px; margin: 2px 0; }
.gs2-mini-e { fill: var(--gs2-verde); opacity: .75; } .gs2-mini-u { fill: var(--gs2-rosso); opacity: .7; }
.gs2-mini g:hover rect { opacity: 1; }
@media (max-width: 1099px) { .gs2-tiles.gs2-tiles-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gs2-tiles.gs2-tiles-4 .gs2-t-patrimonio { grid-column: auto; } }
.gs2-andamento { margin-bottom: 16px; padding: 16px 18px; }
.gs2-and-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.gs2-and-head h2 { margin: 0; font-size: 17px; }
.gs2-and-scelta { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.gs2-chip { font: inherit; font-size: 12px; font-weight: 600; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); color: var(--muted); cursor: pointer; }
.gs2-chip[aria-pressed=true] { background: var(--blue-soft); border-color: var(--primary); color: var(--primary); }
.gs2-foto { min-height: 30px; padding: 4px 12px; font-size: 12px; }
.gs2-and-grafico { position: relative; }
.gs2-and-svg { width: 100%; height: auto; display: block; }
.gs2-and-griglia { stroke: var(--line); stroke-width: 1; } .gs2-and-anno { stroke: var(--line); stroke-dasharray: 3 4; }
.gs2-and-asse { fill: var(--muted); font-size: 11px; }
.gs2-and-linea { fill: none; stroke: #2a78d6; stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; }
.gs2-and-area { fill: rgba(42, 120, 214, .10); }
.gs2-and-nota { fill: #eb6834; stroke: var(--paper); stroke-width: 1.5; } .gs2-and-fine, .gs2-and-cursore { fill: #2a78d6; stroke: var(--paper); stroke-width: 2; }
.gs2-and-tip { position: absolute; top: 0; width: 160px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 6px 9px; font-size: 12px; box-shadow: 0 6px 18px rgba(10, 20, 40, .12); pointer-events: none; }
.gs2-and-tip strong { display: block; font-size: 14px; } .gs2-and-tip span { color: var(--muted); }
.gs2-patr { margin-bottom: 16px; }
.gs2-torta-corpo { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 899px) { .gs2-torta-corpo { grid-template-columns: 1fr; } }
.gs2-torta-lato .field-hint { margin: 8px 0 0; }
.gs2-leg-riga { width: 100%; }
.gs2-leg-riga:hover { background: color-mix(in srgb, var(--line) 35%, transparent); }
.gs2-leg-riga.aperto { border-bottom-color: transparent; font-weight: 600; }
.gs2-leg-nome { display: flex; gap: 8px; align-items: baseline; min-width: 0; } .gs2-leg-nome small { color: var(--muted); font-weight: 400; font-size: 12px; }
.gs2-leg-riga .gs2-dett-freccia { margin: 0; text-align: center; }
.gs2-leg-riga.aperto .gs2-dett-freccia { transform: rotate(90deg); }
.gs2-legenda .gs2-dett-corpo { padding: 2px 0 8px 20px; border-bottom: 1px solid var(--line); }
.gs2-torta, .gs2-dett { padding: 16px 18px; } .gs2-torta h2, .gs2-dett h2 { font-size: 17px; margin: 0 0 8px; }
.gs2-anello { width: 100%; max-width: 230px; display: block; margin: 0 auto 10px; } .gs2-fetta { stroke: var(--paper); stroke-width: 2; }
.gs2-anello-lab { fill: var(--muted); font-size: 11px; } .gs2-anello-val { fill: var(--ink); font-size: 17px; font-weight: 800; }
.gs2-legenda { display: grid; gap: 2px; }
.gs2-leg-riga { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto 52px 18px; gap: 8px; align-items: center; font: inherit; font-size: 14px; text-align: left; padding: 9px 4px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; }
.gs2-leg-riga small { color: var(--muted); text-align: right; } .gs2-leg-riga b { font-variant-numeric: tabular-nums; }
.gs2-q { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.gs2-dett-gruppo { display: flex; width: 100%; gap: 10px; align-items: center; margin: 14px 0 4px; padding: 6px 4px; background: none; border: 0; border-bottom: 2px solid var(--line); border-radius: 0; font: inherit; font-size: 13px; color: inherit; text-align: left; cursor: pointer; }
.gs2-dett-gruppo:hover { background: color-mix(in srgb, var(--line) 35%, transparent); }
.gs2-dett-gruppo .gs2-q { flex: 0 0 12px; }
.gs2-dett-gruppo b { font-variant-numeric: tabular-nums; font-size: 14px; }
.gs2-dett-gruppo small { color: var(--muted, #6b7280); font-weight: 400; }
.gs2-dett-freccia { margin-left: auto; transition: transform .15s; color: var(--muted, #6b7280); font-size: 18px; line-height: 1; }
.gs2-dett-gruppo.chiuso .gs2-dett-freccia { transform: rotate(-90deg); }
.gs2-dett-corpo[hidden] { display: none; }
.gs2-strum { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto 112px; gap: 10px; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--line); min-height: 44px; }
.gs2-strum-info { min-width: 0; } .gs2-strum-info strong { display: block; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs2-strum-info small { display: block; font-size: 11.5px; color: var(--muted); } .gs2-ver-ok { color: var(--gs2-verde) !important; } .gs2-ver-diff, .gs2-ver-never { color: var(--gs2-ambra) !important; }
.gs2-strum-val { text-align: right; font-variant-numeric: tabular-nums; font-size: 14px; } .gs2-strum-val.negative { color: var(--gs2-rosso); }
.gs2-strum-ver { display: flex; align-items: center; gap: 6px; }
.gs2-strum-ver input { width: 110px; min-height: 30px !important; padding: 4px 8px !important; text-align: right; font-size: 13px !important; }
.gs2-strum-diff { font-size: 12px; min-width: 76px; white-space: nowrap; } .gs2-strum-diff.negative { color: var(--gs2-rosso); } .gs2-strum-diff.positive { color: var(--gs2-verde); }
.gs2-strum-btn { min-height: 30px; padding: 4px 10px; font-size: 12px; }
.gs2-ic { width: 30px; height: 30px; border-radius: 8px; display: inline-grid; place-items: center; background: var(--canvas); font-size: 16px; overflow: hidden; }
.gs2-ic img { width: 22px; height: 22px; object-fit: contain; }
.gs2-ic-revolut { background: #111; color: #fff; font-weight: 800; font-size: 15px; }
@media (max-width: 640px) { .gs2-strum { grid-template-columns: 30px minmax(0, 1fr) 100px; } .gs2-strum-ver { grid-column: 2 / -1; grid-row: 2; } .gs2-strum-vuoto { display: none; } }

/* Menu laterale a scomparsa (computer): zona sensibile sul bordo sinistro; il menu scivola sopra la pagina. */
.gs2-nav-zona { display: none; }
@media (min-width: 1100px) {
  html.nav-collapsed .gs2-nav-zona { display: block; position: fixed; left: 0; top: 0; width: 14px; height: 100vh; z-index: 35; }
  html.nav-collapsed .sidebar.gs2-peek { transform: none !important; visibility: visible !important; z-index: 40; box-shadow: 8px 0 28px rgba(10, 20, 40, .18); }
  html.nav-collapsed .sidebar.gs2-peek .brand > span:last-child, html.nav-collapsed .sidebar.gs2-peek .nav-label, html.nav-collapsed .sidebar.gs2-peek .nav-item > span:last-child, html.nav-collapsed .sidebar.gs2-peek .sidebar-foot > span:last-child { display: block; }
  html.nav-collapsed .sidebar.gs2-peek .nav-item { justify-content: flex-start; }
}

/* Barra disponibile / riserva / investito. */
.gs2-disp { margin: 4px 0 18px; }
.gs2-disp-barra { display: flex; height: 26px; border-radius: 8px; overflow: hidden; gap: 2px; }
.gs2-disp-seg { display: flex; align-items: center; justify-content: center; min-width: 4px; color: #fff; font-size: 12px; font-weight: 700; }
.gs2-disp-1 { background: #1baf7a; } .gs2-disp-2 { background: #eb6834; } .gs2-disp-3 { background: #2a78d6; }
.gs2-disp-leg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 10px; }
@media (max-width: 699px) { .gs2-disp-leg { grid-template-columns: 1fr; } }
.gs2-disp-voce { display: grid; gap: 1px; } .gs2-disp-voce strong { font-size: 17px; font-variant-numeric: tabular-nums; } .gs2-disp-voce small { color: var(--muted); font-size: 12px; }
.gs2-disp-nome { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); font-weight: 600; }
.gs2-disp-pallino { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

/* Andamento per categoria. */
.gs2-and-vista { display: inline-flex; gap: 4px; margin-right: 10px; padding-right: 10px; border-right: 1px solid var(--line); }
.gs2-and-strato { opacity: .85; stroke: var(--paper); stroke-width: .6; }
.gs2-and-leg { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12.5px; color: var(--muted); margin-top: 6px; }
.gs2-and-leg span, .gs2-and-tip-riga { display: inline-flex; align-items: center; gap: 6px; }
.gs2-and-leg .gs2-q, .gs2-and-tip-riga .gs2-q { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.gs2-and-tip-riga { font-size: 12px; } .gs2-and-tip-riga b { margin-left: auto; padding-left: 8px; font-variant-numeric: tabular-nums; }

/* Obiettivi e tasso di risparmio. */
.gs2-riga2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
@media (max-width: 899px) { .gs2-riga2 { grid-template-columns: 1fr; } }
.gs2-obiettivi, .gs2-risp { padding: 16px 18px; } .gs2-obiettivi h2, .gs2-risp h2 { font-size: 17px; margin: 0 0 8px; }
.gs2-ob-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; } .gs2-ob-head h2 { margin: 0; }
.gs2-ob { padding: 10px 0; border-bottom: 1px solid var(--line); } .gs2-ob:last-child { border-bottom: 0; }
.gs2-ob-top { display: flex; align-items: center; gap: 10px; }
.gs2-ob-nome { display: flex; align-items: baseline; gap: 8px; min-width: 0; flex: 1; } .gs2-ob-nome small { color: var(--muted); font-size: 12px; }
.gs2-ob-pct { font-variant-numeric: tabular-nums; } .gs2-ob-azioni { display: inline-flex; gap: 2px; }
.gs2-ob-barra { height: 10px; border-radius: 6px; background: color-mix(in srgb, var(--line) 70%, transparent); overflow: hidden; margin: 6px 0 4px; }
.gs2-ob-barra span { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #2a78d6, #1baf7a); }
.gs2-ob.raggiunto .gs2-ob-barra span { background: #1baf7a; }
.gs2-ob-nota { color: var(--muted); font-size: 12.5px; }
.gs2-risp-big { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; } .gs2-risp-big strong { font-size: 34px; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.gs2-risp-big span { color: var(--muted); font-size: 13px; }
.gs2-risp-det { margin: 2px 0 6px; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.gs2-risp-conf { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13px; margin-bottom: 10px; }
.gs2-risp-sotto { color: var(--muted); font-size: 12px; } .gs2-risp-svg { display: block; width: 100%; height: auto; max-height: 120px; margin-top: 4px; }
.gs2-risp-svg g:hover rect { opacity: 1; }

/* Bilancio · confronto fra due periodi. */
.gs2-bc { padding: 18px 20px; margin-bottom: 16px; }
.gs2-bc-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; }
.gs2-bc-head h2 { margin: 2px 0 0; font-size: 20px; }
.gs2-bc-ctr { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.gs2-bc-chips { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.gs2-bc-esc { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.gs2-bc-esc select { font: inherit; padding: 2px 4px; border-radius: 6px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); }
.gs2-bc-sotto { margin: 6px 0 12px; }
.gs2-bc-kpi { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 699px) { .gs2-bc-kpi { grid-template-columns: 1fr; } }
.gs2-bc-n { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; }
.gs2-bc-n strong { font-size: clamp(22px, 2.3vw, 28px); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.gs2-bc-d { font-weight: 700; font-size: 14px; font-variant-numeric: tabular-nums; }
.gs2-bc-frase { margin: 14px 0; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, #2a78d6 8%, transparent); line-height: 1.55; font-size: 14.5px; }
.gs2-bc-blocchi { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 1099px) { .gs2-bc-blocchi { grid-template-columns: 1fr; } }
.gs2-bc-diff h3 { margin: 0; font-size: 15px; }
.gs2-bc-diff-head, .gs2-bc-riga { display: grid; grid-template-columns: minmax(0, 1.4fr) 88px 88px minmax(60px, 1fr) 92px 14px; gap: 8px; align-items: center; }
.gs2-bc-diff-head { padding: 0 4px 6px; border-bottom: 2px solid var(--line); }
.gs2-bc-diff-head h3 { grid-column: 1; } .gs2-bc-col { font-size: 11.5px; color: var(--muted); text-align: right; } .gs2-bc-col-d { grid-column: 5; }
.gs2-bc-riga { width: 100%; padding: 8px 4px; border: 0; border-bottom: 1px solid var(--line); background: none; font: inherit; font-size: 13.5px; color: var(--ink); text-align: left; cursor: pointer; }
.gs2-bc-riga:hover { background: color-mix(in srgb, var(--line) 35%, transparent); }
.gs2-bc-riga.aperto { font-weight: 700; }
.gs2-bc-l1 { font-size: 13px; padding-left: 22px; }
.gs2-bc-nome { display: flex; align-items: center; gap: 8px; min-width: 0; } .gs2-bc-testo { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs2-bc-ic { width: 20px; text-align: center; flex: 0 0 20px; }
.gs2-bc-v, .gs2-bc-dv { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; } .gs2-bc-dv { font-weight: 700; } .gs2-bc-muted { color: var(--muted); }
.gs2-bc-barra { position: relative; height: 10px; } .gs2-bc-barra::before { content: ''; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--line); }
.gs2-bc-barra i { position: absolute; top: 0; bottom: 0; border-radius: 3px; } .gs2-bc-barra i.pos { background: var(--gs2-verde, #1baf7a); } .gs2-bc-barra i.neg { background: var(--gs2-rosso, #d64545); }
.gs2-bc-freccia { color: var(--muted); transition: transform .15s; } .gs2-bc-riga.aperto > .gs2-bc-freccia { transform: rotate(90deg); }
.gs2-bc-tot { cursor: default; font-weight: 700; border-bottom: 0; } .gs2-bc-tot:hover { background: none; }
.gs2-bc-dentro { background: color-mix(in srgb, var(--line) 18%, transparent); border-radius: 0 0 10px 10px; }
.gs2-bc-mov { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 10px 6px 12px 22px; }
@media (max-width: 699px) { .gs2-bc-mov { grid-template-columns: 1fr; } }
.gs2-bc-movcol { min-width: 0; } .gs2-bc-movcol > strong { display: block; font-size: 13px; }
.gs2-bc-movcol ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 2px; }
.gs2-bc-movcol li { display: flex; align-items: center; gap: 8px; font-size: 12.5px; padding: 3px 0; border-bottom: 1px dashed var(--line); }
.gs2-bc-movcol li b { margin-left: auto; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gs2-bc-data { color: var(--muted); font-variant-numeric: tabular-nums; flex: 0 0 auto; }
.gs2-bc-desc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.gs2-bc-tag { font-size: 10.5px; padding: 1px 6px; border-radius: 99px; background: color-mix(in srgb, #eda100 22%, transparent); color: var(--ink); flex: 0 0 auto; }
.gs2-bc-str { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 10px; } .gs2-bc-str summary { cursor: pointer; font-size: 13.5px; font-weight: 600; }
.gs2-bc-str .gs2-bc-mov { padding-left: 0; }
.gs2-bil-dett { padding: 12px 18px; } .gs2-bil-dett > summary { cursor: pointer; font-weight: 700; font-size: 15px; padding: 4px 0; }
.gs2-bil-dentro { margin-top: 12px; }
@media (max-width: 699px) { .gs2-bc-diff-head, .gs2-bc-riga { grid-template-columns: minmax(0, 1fr) 78px 80px 12px; } .gs2-bc-diff-head .gs2-bc-col:nth-of-type(2), .gs2-bc-riga > :nth-child(3), .gs2-bc-riga > .gs2-bc-barra { display: none; } }
@media (max-width: 699px) { .gs2-bc-col-d { grid-column: auto; } }
.gs2-bc-esc { white-space: nowrap; } .gs2-bc-esc input[type=checkbox] { width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; flex: 0 0 auto; } .gs2-bc-esc select { width: auto; min-height: 0; }
/* Movimenti mese per mese: stesso mese dei due periodi sulla stessa riga. */
.gs2-bc-mov { display: block; padding: 8px 6px 14px 22px; }
.gs2-bc-mrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 100px; gap: 18px; align-items: start; }
.gs2-bc-mtesta { padding-bottom: 6px; border-bottom: 2px solid var(--line); } .gs2-bc-mtesta strong { display: block; font-size: 13px; } .gs2-bc-mtesta small { font-size: 11.5px; }
.gs2-bc-mese { padding: 6px 0 4px; border-bottom: 1px solid var(--line); }
.gs2-bc-mhead { font-size: 12px; color: var(--muted); align-items: baseline; }
.gs2-bc-mhead > div { display: flex; justify-content: space-between; gap: 8px; min-width: 0; } .gs2-bc-mhead > div span { text-transform: capitalize; font-weight: 600; }
.gs2-bc-mhead b { color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.gs2-bc-mdiff { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gs2-bc-mov ul, .gs2-bc-strcols ul { list-style: none; margin: 2px 0 0; padding: 0; display: grid; gap: 0; min-width: 0; }
.gs2-bc-mov li, .gs2-bc-strcols li { display: grid; grid-template-columns: 40px minmax(0, 1fr) max-content; gap: 8px; align-items: center; font-size: 12.5px; padding: 2px 0; border: 0; min-width: 0; }
.gs2-bc-mov li b, .gs2-bc-strcols li b { margin: 0; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gs2-bc-mov .gs2-bc-desc, .gs2-bc-strcols .gs2-bc-desc { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.gs2-bc-mov .gs2-bc-tag { margin-right: 6px; }
.gs2-bc-vuoto { color: var(--muted); font-style: italic; display: block !important; } .gs2-bc-altri { display: block !important; }
.gs2-bc-strcols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; padding-top: 8px; }
.gs2-bc-strcols li { grid-template-columns: 52px minmax(0, 1fr) max-content; }
@media (max-width: 699px) { .gs2-bc-mov { padding-left: 4px; } .gs2-bc-mrow { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; } .gs2-bc-mdiff { grid-column: 1 / -1; text-align: left; }
  .gs2-bc-mov li { grid-template-columns: 34px minmax(0, 1fr); } .gs2-bc-mov li b { grid-column: 2; text-align: left; } .gs2-bc-strcols { grid-template-columns: 1fr; } }
.gs2-bc-blocchi:has(.gs2-bc-mov) { grid-template-columns: 1fr; } .gs2-bc-blocchi:has(.gs2-bc-mov) .gs2-bc-diff:has(.gs2-bc-mov) { order: -1; }
.gs2-bc-cliccabile { cursor: pointer; border-radius: 4px; } .gs2-bc-cliccabile:hover, .gs2-bc-cliccabile:focus-visible { background: color-mix(in srgb, #2a78d6 12%, transparent); outline: none; } .gs2-bc-cliccabile:hover .gs2-bc-desc { text-decoration: underline; }
/* Acquisto per conto di qualcuno. */
.gs2-pc-blocco { display: grid; gap: 6px; margin: 4px 0; } .gs2-pc-etichetta { font-size: 13px; font-weight: 600; }
.gs2-pc-modi { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (max-width: 599px) { .gs2-pc-modi { grid-template-columns: 1fr; } }
.gs2-pc-modo { text-align: left; } .gs2-pc-modo[hidden] { display: none; }
.gs2-pc-modo[aria-pressed=true] { border-color: #2a78d6; box-shadow: 0 0 0 2px color-mix(in srgb, #2a78d6 35%, transparent); background: color-mix(in srgb, #2a78d6 7%, var(--paper)); }
.gs2-pc-saldo { margin: 0; } .gs2-pc-saldo:empty { display: none; }
/* Riquadri: grafico a linee entrate/uscite accumulate con assi. */
.gs2-t-flussi .gs2-mini { height: auto; margin: 4px 0 2px; overflow: visible; }
.gs2-mini-asse { stroke: var(--muted); stroke-width: .8; opacity: .55; } .gs2-mini-griglia { stroke: var(--line); stroke-width: .6; stroke-dasharray: 2 2; }
.gs2-mini-txt { fill: var(--muted); font-size: 8px; font-variant-numeric: tabular-nums; }
.gs2-mini-le, .gs2-mini-lu { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.gs2-mini-le { stroke: var(--gs2-verde, #1baf7a); } .gs2-mini-lu { stroke: var(--gs2-rosso, #d64545); }
.gs2-mini-pe { fill: var(--gs2-verde, #1baf7a); } .gs2-mini-pu { fill: var(--gs2-rosso, #d64545); }
.gs2-mini-cur { stroke: var(--muted); stroke-width: .8; stroke-dasharray: 2 2; }
/* Numeri grandi dei 4 riquadri: si rimpiccioliscono invece di finire coi puntini. */
.gs2-tiles-4 .gs2-tile { container-type: inline-size; }
.gs2-tiles-4 .gs2-tile-value { font-size: clamp(18px, 12cqi, 30px); text-overflow: clip; }
.gs2-t-flussi .gs2-mini { max-width: 340px; }
@media (min-width: 700px) { .gs2-bc-diff-head, .gs2-bc-riga { grid-template-columns: minmax(128px, 1.4fr) 84px 84px minmax(24px, 1fr) 88px 14px; } .gs2-bc-l1 { grid-template-columns: minmax(106px, 1.4fr) 84px 84px minmax(24px, 1fr) 88px 14px; } .gs2-bc-diff h3 { white-space: nowrap; } }
/* Bilancio: cinque numeri in fila (entrate − uscite = messo da parte − investito = resta sul conto). */
.gs2-bc-kpi5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 1099px) { .gs2-bc-kpi5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 699px) { .gs2-bc-kpi5 { grid-template-columns: 1fr 1fr; } }
.gs2-bc-kpi5 .gs2-bc-n strong { font-size: clamp(19px, 1.9vw, 26px); }
.gs2-bc-op { display: inline-block; width: 1.2em; font-size: 15px; color: var(--muted); }
.gs2-bc-n-sub { background: color-mix(in srgb, #1baf7a 6%, transparent); }
.gs2-bc-n-tot { background: color-mix(in srgb, #2a78d6 8%, transparent); border-color: color-mix(in srgb, #2a78d6 35%, var(--line)); }
/* Mese per mese. */
.gs2-bc-mesi { margin: 6px 0 18px; }
.gs2-bc-mesi-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 6px; } .gs2-bc-mesi-head h3 { margin: 0; font-size: 15px; }
.gs2-bc-mr { display: grid; grid-template-columns: minmax(130px, 1.3fr) repeat(5, minmax(92px, 1fr)) 14px; gap: 8px; align-items: center; padding: 7px 6px; font-size: 13.5px; width: 100%; }
.gs2-bc-mr .n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gs2-bc-mth { font-size: 11.5px; color: var(--muted); border-bottom: 2px solid var(--line); }
.gs2-bc-mriga { border: 0; border-bottom: 1px solid var(--line); background: none; font: inherit; color: var(--ink); text-align: left; cursor: pointer; }
.gs2-bc-mriga:hover { background: color-mix(in srgb, var(--line) 35%, transparent); } .gs2-bc-mriga.aperto { font-weight: 700; }
.gs2-bc-mriga.aperto > .gs2-bc-freccia { transform: rotate(90deg); }
.gs2-bc-mnome { text-transform: capitalize; }
.gs2-bc-mresta { position: relative; padding-bottom: 5px; font-weight: 700; }
.gs2-bc-mbar { position: absolute; right: 0; bottom: 0; height: 3px; border-radius: 2px; } .gs2-bc-mbar.pos { background: var(--gs2-verde, #1baf7a); } .gs2-bc-mbar.neg { background: var(--gs2-rosso, #d64545); }
.gs2-bc-mtot { font-weight: 700; border-top: 2px solid var(--line); }
.gs2-bc-mprima { color: var(--muted); font-size: 12.5px; }
.gs2-bc-mdett { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 8px 6px 12px 22px; background: color-mix(in srgb, var(--line) 18%, transparent); border-bottom: 1px solid var(--line); }
.gs2-bc-mdett ul { list-style: none; margin: 4px 0 0; padding: 0; } .gs2-bc-mdett li { display: grid; grid-template-columns: 40px minmax(0, 1fr) max-content; gap: 8px; align-items: center; font-size: 12.5px; padding: 2px 0; }
.gs2-bc-mdett li b { text-align: right; font-variant-numeric: tabular-nums; } .gs2-bc-mdett .gs2-bc-desc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 799px) { .gs2-bc-mr { grid-template-columns: minmax(90px, 1fr) repeat(3, minmax(70px, 1fr)) 12px; } .gs2-bc-mr > :nth-child(2), .gs2-bc-mr > :nth-child(3) { display: none; } .gs2-bc-mdett { grid-template-columns: 1fr; padding-left: 6px; } }
.gs2-bc-mnome { text-transform: none; } .gs2-bc-mnome::first-letter { text-transform: uppercase; }
.gs2-bc-mdett { grid-template-columns: repeat(3, minmax(0, 1fr)); } @media (max-width: 1099px) { .gs2-bc-mdett { grid-template-columns: 1fr 1fr; } } @media (max-width: 799px) { .gs2-bc-mdett { grid-template-columns: 1fr; } } .gs2-bc-mdett li .gs2-bc-voce { color: var(--muted); font-size: 11px; }
/* Bilancio: contenuto aperto ben riconoscibile e facile da richiudere. */
.gs2-bc-riga.aperto > .gs2-bc-freccia, .gs2-bc-mriga.aperto > .gs2-bc-freccia { transform: none; color: #2a78d6; }
.gs2-bc-riga.aperto, .gs2-bc-mriga.aperto { background: color-mix(in srgb, #2a78d6 10%, transparent); border-bottom-color: transparent; border-radius: 10px 10px 0 0; }
.gs2-bc-box { margin: 0 0 12px; border: 1px solid color-mix(in srgb, #2a78d6 30%, var(--line)); border-left: 4px solid #2a78d6; border-top: 0; border-radius: 0 0 10px 10px; background: color-mix(in srgb, #2a78d6 3%, var(--paper)); overflow: hidden; }
.gs2-bc-box1 { border-left-color: #7aa7e0; margin-left: 18px; }
.gs2-bc-box .gs2-bc-dentro, .gs2-bc-box .gs2-bc-mdett { background: transparent; border-bottom: 0; }
.gs2-bc-box .gs2-bc-mov { padding-left: 12px; }
.gs2-bc-chiudi { display: block; width: 100%; padding: 8px 12px; border: 0; border-top: 1px dashed color-mix(in srgb, #2a78d6 30%, var(--line)); background: color-mix(in srgb, #2a78d6 7%, transparent); color: #2a78d6; font: inherit; font-size: 13px; font-weight: 600; text-align: center; cursor: pointer; }
.gs2-bc-chiudi:hover { background: color-mix(in srgb, #2a78d6 14%, transparent); }
.gs2-bc-tutto { float: right; margin: -2px 0 4px; padding: 3px 10px; border: 1px solid var(--line); border-radius: 99px; background: var(--paper); color: var(--muted); font: inherit; font-size: 12px; cursor: pointer; }
.gs2-bc-tutto:hover { color: #2a78d6; border-color: #2a78d6; }
.gs2-bc-mesi-head .gs2-bc-tutto { float: none; margin: 0 0 0 auto; }
/* Investimenti: «Di chi» a pulsanti. */
.gs2-inv-chi { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
/* Investimenti · Portafoglio. */
.gs2-pf h2 { font-size: 17px; margin: 4px 0 10px; } .gs2-pf h3 { font-size: 15px; margin: 0 0 2px; }
.gs2-pf-enti { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-bottom: 16px; }
.gs2-pf-ente { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.gs2-pf-ente small { color: var(--muted); font-size: 12.5px; font-weight: 600; } .gs2-pf-ente strong { font-size: 22px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.gs2-pf-gl { font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.gs2-pf-data { justify-self: start; margin-top: 2px; padding: 0; border: 0; background: none; font: inherit; font-size: 12px; color: var(--muted); cursor: pointer; }
.gs2-pf-data.vecchio { color: var(--gs2-rosso, #d64545); font-weight: 600; }
.gs2-pf-tot { background: color-mix(in srgb, #2a78d6 7%, var(--paper)); border-color: color-mix(in srgb, #2a78d6 30%, var(--line)); }
.gs2-pf-sim { padding: 16px 18px; margin-bottom: 16px; } .gs2-pf-head { display: flex; align-items: baseline; gap: 12px; } .gs2-pf-head h2 { margin: 0 0 8px; }
.gs2-pf-barra { display: flex; height: 22px; gap: 2px; border-radius: 7px; overflow: hidden; margin: 2px 0 6px; } .gs2-pf-barra span { min-width: 3px; }
.gs2-pf-leg { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12.5px; color: var(--muted); margin-bottom: 14px; } .gs2-pf-leg i, .gs2-pf-cl i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; } .gs2-pf-leg b { color: var(--ink); }
.gs2-pf-corpo { display: grid; grid-template-columns: minmax(260px, .9fr) minmax(0, 1.4fr); gap: 22px; align-items: start; } @media (max-width: 899px) { .gs2-pf-corpo { grid-template-columns: 1fr; } }
.gs2-pf-pre { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.gs2-pf-cl { display: grid; grid-template-columns: 18px 14px 100px minmax(0, 1fr) 46px; gap: 6px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; cursor: pointer; }
.gs2-pf-cl input[type=checkbox], .gs2-pf-r input[type=checkbox], .gs2-pf-fam input { width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; } .gs2-pf-cl input[type=range] { width: 100%; padding: 0; min-height: 0; }
.gs2-pf-cl b { text-align: right; font-variant-numeric: tabular-nums; }
.gs2-pf-ris { display: grid; gap: 2px; margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, #d64545 10%, var(--paper)); color: var(--gs2-rosso, #b42318); }
.gs2-pf-ris strong { font-size: 26px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; } .gs2-pf-ris small { font-size: 12.5px; }
.gs2-pf-fam { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; color: var(--muted); cursor: pointer; }
.gs2-pf-tab { font-size: 13px; }
.gs2-pf-r { display: grid; grid-template-columns: minmax(0, 1.6fr) 70px 86px 86px 80px; gap: 8px; align-items: center; padding: 6px 2px; border-bottom: 1px solid var(--line); cursor: pointer; } .gs2-pf-r.fuori { opacity: .5; }
.gs2-pf-th { color: var(--muted); font-size: 11.5px; border-bottom-width: 2px; cursor: default; }
.gs2-pf-r .n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gs2-pf-nome { display: flex; align-items: center; gap: 8px; min-width: 0; } .gs2-pf-nome span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs2-pf-mini { display: flex; height: 8px; gap: 1px; border-radius: 4px; overflow: hidden; } .gs2-pf-mini i { min-width: 2px; }
@media (max-width: 699px) { .gs2-pf-r { grid-template-columns: minmax(0, 1fr) 80px 74px; } .gs2-pf-r > :nth-child(2), .gs2-pf-r > :nth-child(4) { display: none; } }
.gs2-pf-altri { padding: 12px 18px; } .gs2-pf-altri > summary { cursor: pointer; font-weight: 700; }
/* Investimenti · Davide. */
.gs2-dv { margin-bottom: 18px; } .gs2-dv-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; } .gs2-dv-head h2 { margin: 0 0 8px; font-size: 19px; }
.gs2-dv-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-bottom: 12px; }
.gs2-dv-k { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); } .gs2-dv-k small { color: var(--muted); font-size: 12.5px; } .gs2-dv-k strong { font-size: 22px; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.gs2-dv-da { background: color-mix(in srgb, #eda100 14%, var(--paper)); border-color: color-mix(in srgb, #eda100 45%, var(--line)); }
.gs2-dv-su small:last-child { color: var(--gs2-verde, #1baf7a); font-weight: 700; } .gs2-dv-giu small:last-child { color: var(--gs2-rosso, #d64545); font-weight: 700; }
.gs2-dv-az { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 14px; }
.gs2-dv-corpo { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 16px; align-items: start; } @media (max-width: 899px) { .gs2-dv-corpo { grid-template-columns: 1fr; } }
.gs2-dv-c { padding: 14px 16px; } .gs2-dv-c h3 { margin: 0 0 6px; font-size: 15px; }
.gs2-dv-svg { display: block; width: 100%; height: auto; } .gs2-dv-val { fill: none; stroke: #1D9E75; stroke-width: 2.4; } .gs2-dv-vers { fill: none; stroke: var(--muted); stroke-width: 1.6; stroke-dasharray: 5 4; }
.gs2-dv-pos { display: grid; gap: 1px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 13px; }
.gs2-dv-lista { list-style: none; margin: 0; padding: 0; } .gs2-dv-lista li { display: grid; grid-template-columns: 78px minmax(0, 1fr) max-content; gap: 8px; align-items: center; padding: 5px 0; border-bottom: 1px dashed var(--line); font-size: 12.5px; }
.gs2-dv-lista b { font-variant-numeric: tabular-nums; }
/* Investimenti · Andamento e Futuro. */
.gs2-an-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-bottom: 10px; } .gs2-an-head h2 { margin: 0; font-size: 19px; }
.gs2-an-head select { width: auto; max-width: 340px; } .gs2-an-head .gs2-pf-pre { margin: 0; }
.gs2-an-card { padding: 12px 14px; margin-bottom: 14px; }
.gs2-an-val { fill: none; stroke: #2a78d6; stroke-width: 2.4; stroke-linejoin: round; }
.gs2-an-su { fill: color-mix(in srgb, #1baf7a 22%, transparent); } .gs2-an-giu { fill: color-mix(in srgb, #d64545 22%, transparent); }
.gs2-fu h2 { margin: 0 0 4px; font-size: 19px; }
.gs2-fu-corpo { display: grid; grid-template-columns: minmax(250px, 320px) minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 10px; } @media (max-width: 899px) { .gs2-fu-corpo { grid-template-columns: 1fr; } }
.gs2-fu-form { padding: 12px 14px; display: grid; gap: 4px; }
.gs2-fu-c { display: grid; grid-template-columns: minmax(0, 1fr) 92px; gap: 2px 8px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.gs2-fu-top { grid-column: 1 / -1; display: flex; justify-content: space-between; font-weight: 600; }
.gs2-fu-c input[type=range] { width: 100%; padding: 0; min-height: 0; } .gs2-fu-c input[type=number] { min-height: 30px; padding: 2px 6px; text-align: right; }
.gs2-fu-c small { grid-column: 1 / -1; font-size: 11.5px; }
.gs2-fu-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 12px; }
.gs2-fu-area { fill: color-mix(in srgb, #2a78d6 10%, transparent); } .gs2-fu-reale { fill: none; stroke: #2a78d6; stroke-width: 1.6; stroke-dasharray: 5 4; opacity: .8; }
.gs2-fu-obi { stroke: #1baf7a; stroke-width: 1.6; stroke-dasharray: 2 3; } .gs2-fu-obit { fill: #1baf7a; font-size: 11px; font-weight: 700; } .gs2-fu-pt { fill: #1baf7a; stroke: var(--paper); stroke-width: 2; }
.gs2-fu-frase { margin: 10px 0 14px; padding: 10px 14px; border-radius: 12px; background: color-mix(in srgb, #2a78d6 7%, transparent); font-size: 14px; }
/* Impostazioni · Fisse e variabili. */
.gs2-fv-testa { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin: 10px 0 14px; }
.gs2-fv-fondo { background: color-mix(in srgb, #2a78d6 7%, var(--paper)); border-color: color-mix(in srgb, #2a78d6 30%, var(--line)); } .gs2-fv-fondo select { width: auto; min-height: 0; padding: 1px 4px; font: inherit; }
.gs2-fv-lista { padding: 6px 14px; }
.gs2-fv-riga { display: grid; grid-template-columns: minmax(140px, 1fr) 110px max-content 90px; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.gs2-fv-th { color: var(--muted); font-size: 12px; border-bottom-width: 2px; } .gs2-fv-media { text-align: right; font-variant-numeric: tabular-nums; color: var(--muted); }
.gs2-fv-seg { display: inline-flex; gap: 4px; flex-wrap: wrap; } .gs2-fv-seg .gs2-chip { font-size: 12px; padding: 3px 10px; }
@media (max-width: 699px) { .gs2-fv-riga { grid-template-columns: minmax(0, 1fr) 90px; } .gs2-fv-seg { grid-column: 1 / -1; } }
/* Liquidità. */
.gs2-lq-cmd { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-bottom: 6px; }
.gs2-lq-mesi { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; } .gs2-lq-mesi input[type=range] { width: 220px; padding: 0; min-height: 0; } .gs2-lq-mesi b { min-width: 80px; font-variant-numeric: tabular-nums; }
.gs2-lq-spiega { margin: 2px 0 12px; }
.gs2-lq-conto { margin-bottom: 10px; }
.gs2-lq-fondo { margin: 0 0 16px; padding: 10px 14px; border-radius: 12px; font-size: 14px; } .gs2-lq-fondo.ok { background: color-mix(in srgb, #1baf7a 10%, transparent); } .gs2-lq-fondo.basso { background: color-mix(in srgb, #eda100 16%, transparent); }
.gs2-lq-fondo a { color: #2a78d6; }
.gs2-lq-pro { padding: 14px 16px; margin-bottom: 16px; } .gs2-lq-pro .gs2-lq-mesi { margin: 6px 0 10px; } .gs2-lq-pro .gs2-lq-mesi input[type=range] { width: 260px; }
.gs2-lq-zero { stroke: var(--gs2-rosso, #d64545); stroke-width: 1.2; }
.gs2-lq-voci { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; } @media (max-width: 1099px) { .gs2-lq-voci { grid-template-columns: 1fr; } }
.gs2-lq-g { padding: 12px 14px; } .gs2-lq-gh { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; margin-bottom: 6px; } .gs2-lq-gh h3 { margin: 0; font-size: 16px; } .gs2-lq-gh strong { font-variant-numeric: tabular-nums; font-size: 16px; }
.gs2-lq-entrata .gs2-lq-gh strong { color: var(--gs2-verde, #1baf7a); } .gs2-lq-fissa .gs2-lq-gh strong, .gs2-lq-variabile .gs2-lq-gh strong { color: var(--gs2-rosso, #d64545); } .gs2-lq-investimenti .gs2-lq-gh strong { color: #2a78d6; }
.gs2-lq-r { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(40px, .7fr) max-content; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--line); } .gs2-lq-r.fuori { opacity: .45; }
.gs2-lq-sx { display: grid; min-width: 0; } .gs2-lq-sx small { font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs2-lq-nome { display: flex; align-items: center; gap: 8px; font-size: 14px; min-width: 0; cursor: pointer; } .gs2-lq-nome span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .gs2-lq-nome input { width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; flex: 0 0 auto; }
.gs2-lq-barra { height: 8px; border-radius: 4px; background: color-mix(in srgb, var(--line) 50%, transparent); overflow: hidden; } .gs2-lq-barra i { display: block; height: 100%; border-radius: 4px; }
.gs2-lq-entrata .gs2-lq-barra i { background: var(--gs2-verde, #1baf7a); } .gs2-lq-fissa .gs2-lq-barra i, .gs2-lq-variabile .gs2-lq-barra i { background: color-mix(in srgb, #d64545 70%, transparent); } .gs2-lq-investimenti .gs2-lq-barra i { background: #2a78d6; }
.gs2-lq-dx { display: inline-flex; align-items: center; gap: 4px; } .gs2-lq-imp { width: 92px; min-height: 30px; padding: 2px 8px; text-align: right; font-variant-numeric: tabular-nums; } .gs2-lq-imp.manuale { border-color: #eda100; background: color-mix(in srgb, #eda100 10%, var(--paper)); }
.gs2-lq-reset { border: 0; background: none; color: #2a78d6; cursor: pointer; font-size: 15px; padding: 0 4px; }
.gs2-lq-pac { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); margin-bottom: 6px; } .gs2-lq-pac input { width: 90px; min-height: 30px; padding: 2px 8px; text-align: right; }
.gs2-lq-link { display: inline-block; font-size: 12.5px; color: #2a78d6; margin-bottom: 4px; }

/* Schermata di accesso (solo online) */
.gs2-accesso{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:var(--nav)}
.gs2-accesso-card{width:min(380px,100%);display:grid;gap:14px;padding:28px;border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:0 10px 40px rgba(0,0,0,.25);text-align:center}
.gs2-accesso-card h1{margin:0;font-size:1.3rem}
.gs2-accesso-card p{margin:0;color:var(--muted)}
