/* Inter self-hosted (variable font, pesi 100-900). L'@import da Google Fonts era
   bloccato dalla CSP (style-src 'self'): il font non si e' mai caricato in produzione.
   Self-hosting = font reale + zero richieste a terzi (Garante/GDPR ok). */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/vendor/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/vendor/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --bg:              #f5f5f5;
  --bg-soft:         #f9f9f9;
  --surface:         #ffffff;
  --surface-strong:  #ffffff;
  --surface-soft:    #f5f5f5;
  --text:            #111827;
  --muted:           #64748b;
  --border:          #e5e7eb;
  --border-strong:   #d1d5db;
  --sidebar-bg:      #1e2a45;
  --sidebar-text:    #e2e8f0;
  --sidebar-muted:   #94a3b8;
  --sidebar-active:  #2d3f64;
  --sidebar-accent:  #60a5fa;
  --accent:          #2563eb;
  --accent-strong:   #1d4ed8;
  --accent-2:        #60a5fa;
  --accent-soft:     rgba(37,99,235,0.08);
  --accent-soft-strong: rgba(37,99,235,0.14);
  --flow:            #2563eb;
  --flow-soft:       rgba(37,99,235,0.08);
  --debt:            #8b5cf6;
  --debt-soft:       rgba(139,92,246,0.08);
  --wealth:          #059669;
  --wealth-soft:     rgba(5,150,105,0.08);
  --danger:          #dc2626;
  --danger-soft:     rgba(220,38,38,0.07);
  --success:         #059669;
  --success-soft:    rgba(5,150,105,0.07);
  --warning:         #d97706;
  --warning-soft:    rgba(217,119,6,0.08);
  --dashboard-balance:     #ffffff;
  --dashboard-flow:        #ffffff;
  --dashboard-debt:        #ffffff;
  --dashboard-composition: #ffffff;
  --shadow-sm:  0 1px 2px rgba(15,23,42,0.05);
  --shadow-md:  0 4px 12px rgba(15,23,42,0.06);
  --shadow-lg:  0 12px 32px rgba(15,23,42,0.08);
  --shadow-glow: 0 0 0 1px rgba(37,99,235,0.05),0 8px 24px rgba(37,99,235,0.06);
  --ease-premium: cubic-bezier(.2,.8,.2,1);
  --focus-ring: 0 0 0 3px rgba(37,99,235,.16);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-8: 3rem;
  --text-xs:   .75rem;
  --text-sm:   .8125rem;
  --text-base: .9375rem;
  --text-md:   1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.375rem;
  --dashboard-gap: 1rem;
  --dashboard-card-radius: 12px;
  --dashboard-card-padding: 1rem;
  --sidebar-w: 240px;
  --surface-blur: none;
  --font-sans:    'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-display: 'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-numeric: 'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;
  font-family: var(--font-sans);
}
*{box-sizing:border-box}
@keyframes toast-in{from{opacity:0;transform:translateX(-50%) translateY(10px) scale(.98)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
@keyframes skeleton-shimmer{100%{transform:translateX(100%)}}
@keyframes rise-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes page-enter{from{opacity:0;transform:translateY(10px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes content-reveal{from{opacity:0;transform:translateY(8px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes menu-panel-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
html{min-height:100%;max-width:100%;overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:.75rem}
body{min-height:100vh;max-width:100%;overflow-x:hidden;margin:0;color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5;background:var(--bg);-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
@supports (min-height:100dvh){body{min-height:100dvh}}
button,input,select,textarea{font:inherit;max-width:100%}
code,pre,.mono{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace}
img,svg,canvas{max-width:100%}
button,input,select,textarea,.card,.metric,.dashboard-primary,.dashboard-cluster,.score-card,.mini,.userbox,.auth-card,svg.chart,td,th,.transaction-row,.entity-row,.quick-chip,.tabs button,.nav button{transition:background-color 190ms var(--ease-premium),border-color 190ms var(--ease-premium),color 190ms var(--ease-premium),box-shadow 190ms var(--ease-premium),transform 190ms var(--ease-premium),opacity 190ms var(--ease-premium)}
button{appearance:none;border:1px solid transparent;background:var(--accent);color:#fff;border-radius:var(--radius-sm);padding:.625rem 1rem;cursor:pointer;font-weight:600;font-size:var(--text-sm);line-height:1.2;box-shadow:0 1px 2px rgba(15,23,42,.08)}
button:hover{background:var(--accent-strong);box-shadow:0 1px 3px rgba(15,23,42,.12)}
button:active{transform:scale(.985);box-shadow:0 1px 2px rgba(15,23,42,.08)}
button:focus-visible{outline:none;box-shadow:var(--focus-ring)}
button.ghost{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:none}
button.ghost:hover{background:var(--bg-soft);border-color:var(--border-strong);color:var(--text)}
button.danger{background:var(--surface);color:var(--danger);border-color:rgba(220,38,38,.25);box-shadow:none}
button.danger:hover{background:var(--danger-soft);border-color:var(--danger);box-shadow:none}
button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
input,select,textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.625rem .85rem;background:var(--surface);color:var(--text);font-size:var(--text-sm);line-height:1.2}
input::placeholder,textarea::placeholder{color:#9ca3af}
input:hover,select:hover,textarea:hover{border-color:var(--border-strong);background:var(--surface)}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(37,99,235,.55);box-shadow:var(--focus-ring)}
input.is-autofilled,select.is-autofilled{box-shadow:inset 0 0 0 2px rgba(37,99,235,.22);transition:box-shadow .5s}
textarea{min-height:100px;resize:vertical}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.small{font-size:var(--text-xs)}
.muted{color:var(--muted);font-size:var(--text-sm);line-height:1.5}
strong{font-weight:600}
.hidden{display:none!important}
.app-toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);z-index:90;min-width:min(320px,calc(100vw - 2rem));max-width:min(420px,calc(100vw - 2rem));padding:.78rem 1rem;border-radius:calc(var(--radius-md) + 2px);background:rgba(31,41,55,.94);color:#fff;box-shadow:var(--shadow-lg);font-weight:600;font-size:.875rem;animation:toast-in 190ms var(--ease-premium);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.app-toast.success{background:#065f46;color:#fff;border:none}
.app-toast.error{background:#991b1b;color:#fff;border:none}
.app-toast.warning{background:#92400e;color:#fff;border:none}
.app-toast{display:flex;align-items:center;gap:.65rem}
.app-toast .app-toast-msg{flex:1 1 auto;min-width:0;color:#fff}
.app-toast-action{flex:0 0 auto;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.28rem .65rem;border-radius:8px;font-weight:700;font-size:.82rem;cursor:pointer;white-space:nowrap}
.app-toast-action:hover{background:rgba(255,255,255,.28)}
.app-toast-close{flex:0 0 auto;background:transparent;border:none;color:rgba(255,255,255,.82);font-size:1.2rem;line-height:1;cursor:pointer;padding:.35rem;border-radius:6px;min-width:40px;min-height:40px;display:inline-grid;place-items:center}
.app-toast-close:hover{color:#fff}
.app-toast-check{flex:0 0 auto;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.18);font-size:.8rem;font-weight:800;animation:check-pop 360ms var(--ease-premium)}
/* Validazione campi + hint */
.field-hint{font-size:.72rem;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0}
input.is-invalid,select.is-invalid,textarea.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}
.field-error{font-size:.74rem;font-weight:600;color:var(--danger);margin-top:.15rem;animation:rise-in 160ms var(--ease-premium)}
/* Micro-animazioni */
@keyframes check-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes row-flash{0%{background:var(--accent-soft)}100%{background:transparent}}
.transaction-row.is-just-saved,.entity-row.is-just-saved{animation:row-flash 1100ms var(--ease-premium)}
@media(prefers-reduced-motion:reduce){.app-toast-check,.empty-state-icon,.field-error{animation:none}.transaction-row.is-just-saved,.entity-row.is-just-saved{animation:none}}
.impersonation-banner{display:flex;align-items:center;justify-content:space-between;gap:.9rem;margin-bottom:.9rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid rgba(37,99,235,.2);background:rgba(37,99,235,.06)}
.impersonation-copy{display:grid;gap:.15rem}
.impersonation-eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}
.skeleton-stack,.skeleton-list{display:grid;gap:.75rem}
.skeleton-grid{display:grid;gap:.65rem}
.skeleton-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.skeleton-block,.skeleton-row{position:relative;overflow:hidden;border-radius:var(--radius-md);border:1px solid rgba(229,231,235,.75);background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(249,250,251,.9));box-shadow:var(--shadow-sm)}
.skeleton-block::after,.skeleton-row::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:skeleton-shimmer 1.25s ease-in-out infinite}
.skeleton-block-hero{min-height:130px}
.skeleton-block-kpi{min-height:88px}
.skeleton-block-chart{min-height:240px}
.skeleton-block-form{min-height:200px}
.skeleton-row{min-height:68px}
.form-grid{display:grid;gap:.9rem}
.form-grid label{display:grid;gap:.3rem;font-size:.77rem;font-weight:600;letter-spacing:.025em;color:var(--muted)}
.form-grid label:focus-within{color:var(--accent-strong)}
.password-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center}
.password-field input{min-width:0}
.password-toggle{min-width:74px;padding-inline:.8rem;box-shadow:none}
.password-toggle:hover{box-shadow:var(--shadow-sm)}
.form-grid>.flash,.form-grid>.small.muted,.form-grid>.row-actions,.form-grid>hr{margin-top:-.05rem}
.form-grid>.small.muted{padding:0 .1rem}
.form-grid>.row-actions{padding-top:.15rem}
.form-grid>label.checkbox-row{padding:.75rem}
.tx-type-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}
.tx-type-switch button{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:none}
.tx-type-switch button.active{background:var(--accent);color:#fff;border-color:transparent}
.tx-type-switch:has(.tx-type-other){grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
.tx-type-other{color:var(--muted);font-weight:500;padding-inline:.8rem}
.tx-type-other:hover{color:var(--text);border-color:var(--border-strong)}
.inline-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center}
.compact-btn{padding-inline:.75rem;white-space:nowrap}
.quick-choice-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:-.2rem}
.quick-choice-group{display:grid;gap:.4rem;margin-top:-.1rem}
.quick-choice-label{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.quick-chip{min-height:32px;padding:.38rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:none;font-size:.78rem;font-weight:500}
.quick-chip.active{background:var(--accent);color:#fff;border-color:transparent}
.quick-chip:hover:not(.active){border-color:var(--border-strong)}
.quick-chip-ready{background:linear-gradient(180deg,#fff7d6,#fde68a);border-color:#f59e0b;color:#7a4a00;box-shadow:0 1px 2px rgba(146,64,14,.12);font-weight:700}
.quick-chip-ready:hover:not(.active){background:linear-gradient(180deg,#fffbeb,#fcd34d);border-color:#d97706;box-shadow:0 2px 6px rgba(146,64,14,.16)}
/* Quick-entry descrizione-first: layout compatto senza scroll su mobile */
.quick-entry-card .form-grid{gap:.5rem}
.quick-entry-card .js-quick-amounts .quick-choice-label{display:none}
.quick-entry-amount-row{display:grid;grid-template-columns:minmax(min(110px,38%),1fr) minmax(0,1.4fr);gap:.45rem;align-items:end}
.quick-entry-amount-row .quick-choice-group{margin:0 0 .28rem}
.quick-entry-account{display:grid;gap:.3rem}
.account-chip-row{display:flex;gap:.4rem}
.account-chip{flex:1 1 0;min-height:44px;min-width:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:.82rem}
.account-chip-other{flex:0 0 auto}
.quick-entry-meta-row{display:grid;grid-template-columns:1.4fr 1fr;gap:.45rem}
.quick-entry-card select[name="accountId"][hidden]{display:none}
.quick-entry-card .js-quick-accounts[hidden]{display:none}
.debt-position-picker{display:grid;gap:.85rem;align-content:start}
.debt-position-head{display:grid;gap:.12rem}
.debt-position-head h3{margin:0}
.debt-position-groups{display:grid;gap:.75rem}
.debt-position-group{display:grid;gap:.45rem}
.debt-position-group-head{display:grid;gap:.05rem;padding:0 .05rem}
.debt-position-group-head strong{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text)}
.debt-position-group-head span{color:var(--muted);font-size:.76rem;line-height:1.35}
.debt-position-list{display:grid;gap:.38rem}
.debt-position-option{min-height:64px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.58rem .65rem;text-align:left;background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:none}
.debt-position-option:hover{background:var(--bg-soft);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.debt-position-copy{min-width:0;display:grid;gap:.08rem}
.debt-position-copy strong{min-width:0;font-size:.86rem;line-height:1.2;overflow-wrap:anywhere}
.debt-position-copy small{min-width:0;color:var(--muted);font-size:.74rem;line-height:1.3;font-weight:500;overflow-wrap:anywhere}
.debt-position-icon{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:var(--radius-sm);font-size:.66rem;font-weight:700;letter-spacing:.02em;background:var(--debt-soft);color:var(--debt)}
.debt-position-option.credit .debt-position-icon{background:var(--success-soft);color:var(--success)}
.debt-position-kind{justify-self:end;min-height:22px;display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:4px;background:var(--bg);border:1px solid var(--border);color:var(--muted);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.debt-position-option.credit .debt-position-kind{background:var(--success-soft);border-color:rgba(5,150,105,.16);color:var(--success)}
.debt-position-option.debt .debt-position-kind{background:var(--debt-soft);border-color:rgba(139,92,246,.16);color:var(--debt)}
.debt-form-context{margin:-.25rem 0 .1rem}
.transaction-entry-shell{display:grid;gap:.9rem}
.movement-quick-menu{display:flex;flex-wrap:wrap;gap:.5rem}
.movement-quick-menu button{min-width:170px}
.transaction-edit-focus,.transaction-edit-header,.transaction-detail-focus,.investment-focus,.investment-focus-header,.account-focus,.account-focus-header,.debt-focus,.debt-focus-header{width:min(720px,100%)}
.transaction-edit-focus,.transaction-detail-focus,.investment-focus,.account-focus,.debt-focus{display:grid;gap:.75rem}
.dashboard-customization-shell{width:min(860px,100%);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:.75rem}
.dashboard-customization-header{width:min(860px,100%)}
.dashboard-fixed-list{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}
.dashboard-optional-stack{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--dashboard-gap);grid-auto-flow:dense;align-items:stretch}
.dashboard-optional-card{grid-column:span 6;min-width:0;height:auto;padding:clamp(.95rem,1.4vw,1.15rem);border-radius:var(--dashboard-card-radius);border:1px solid rgba(229,231,235,.9);background:var(--surface);box-shadow:var(--shadow-sm);display:grid;grid-template-rows:auto 1fr;gap:var(--space-3)}
.dashboard-optional-card.size-sm{grid-column:span 4}
.dashboard-optional-card.size-md{grid-column:span 6}
.dashboard-optional-card.size-lg{grid-column:span 12}
.custom-chart-controls{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.5rem}
.custom-chart-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;cursor:pointer;padding:.3rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);user-select:none;white-space:nowrap;flex-shrink:0}
.custom-chart-toggle:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.custom-chart-toggle input{margin:0}
.custom-chart-dot{width:8px;height:8px;border-radius:50%;display:block;flex-shrink:0}
.custom-chart-placeholder{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.2rem 0}
.dashboard-optional-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}
.dashboard-optional-head h3{margin:0 0 .15rem;font-size:.9rem;font-weight:650;letter-spacing:0}
.dashboard-optional-head>div,.dashboard-optional-body{min-width:0}
.dashboard-optional-body{display:grid;align-content:start;align-items:start;min-width:0;overflow:hidden}
.dashboard-optional-head h3,.dashboard-optional-head .muted,.dashboard-optional-body{overflow-wrap:anywhere}
.dashboard-optional-chart{min-height:0}
.dashboard-embedded-chart{min-width:0;height:auto;min-height:0;max-height:none;padding:0;border:0;box-shadow:none;background:transparent;overflow:hidden}
.dashboard-embedded-chart svg.chart{width:100%;height:auto;min-height:0;max-height:none}
.dashboard-order-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.dashboard-order-category{display:grid;gap:.45rem;margin-top:.55rem}
.dashboard-order-category-head{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.dashboard-order-list{display:grid;gap:.5rem}
.dashboard-order-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem;padding:.45rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);transition:background-color 150ms ease,border-color 150ms ease,transform 150ms ease,opacity 150ms ease}
.dashboard-order-item.dragging{opacity:.55;transform:scale(.99)}
.dashboard-order-list.is-draggable .dashboard-order-item{cursor:grab}
.dashboard-order-list.is-draggable .dashboard-order-item:active{cursor:grabbing}
.dashboard-order-handle{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:var(--radius-sm);background:var(--bg);color:var(--muted);font-weight:700;letter-spacing:-.08em}
.dashboard-order-item .checkbox-row{border:0;background:transparent;padding:0}
.dashboard-order-item .checkbox-row span{display:grid;gap:.08rem}
.dashboard-order-item .checkbox-row small{font-size:.74rem;color:var(--muted);font-weight:400;line-height:1.35}
.transaction-primary-card{position:relative;overflow:hidden}
.transaction-light-form{padding:.9rem;background:rgba(255,255,255,.82);box-shadow:var(--shadow-sm)}
.transaction-light-form .split-header{margin-bottom:.15rem}
.transaction-light-form .form-grid{gap:.65rem}
.transaction-light-form .form-grid input,.transaction-light-form .form-grid select,.transaction-light-form .form-grid textarea{background:var(--surface)}
.transaction-light-form .transaction-form-note{display:none}
.transaction-mobile-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:.28rem .65rem;border-radius:var(--radius-sm);background:var(--accent-soft);border:1px solid rgba(37,99,235,.12);color:var(--accent-strong);font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.transaction-metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.metric-inline{min-width:2.2rem;height:2.2rem;border-radius:var(--radius-sm);display:inline-grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:600}
.transaction-form-note{margin-top:.75rem}
.transaction-filter-card{padding:.75rem}
.transaction-filter-form{display:grid;gap:.55rem}
.transaction-filter-main{display:grid;grid-template-columns:minmax(min(180px,34%),1.4fr) minmax(min(140px,26%),.75fr) minmax(min(120px,22%),.65fr) auto;gap:.55rem;align-items:end}
.transaction-filter-form label{display:grid;gap:.25rem;color:var(--muted);font-size:.72rem;font-weight:700}
.transaction-filter-form input,.transaction-filter-form select{min-height:40px;background:rgba(255,255,255,.94)}
.transaction-filter-actions{display:flex;gap:.4rem;align-items:center;justify-content:flex-end}
.transaction-filter-actions button{min-height:40px}
.transaction-filter-secondary-actions{display:flex;justify-content:flex-end}
.transaction-filter-advanced{border-top:1px solid var(--border);padding-top:.5rem}
.transaction-filter-advanced summary{width:max-content;cursor:pointer;color:var(--muted);font-size:.76rem;font-weight:800;list-style:none}
.transaction-filter-advanced summary::-webkit-details-marker{display:none}
.transaction-filter-advanced summary::after{content:"+";margin-left:.35rem;color:var(--accent)}
.transaction-filter-advanced[open] summary{margin-bottom:.55rem}
.transaction-filter-advanced[open] summary::after{content:"-"}
.transaction-filter-advanced-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.transaction-list{display:grid;gap:.45rem}
.transaction-row-shell{display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem;align-items:center;content-visibility:auto;contain-intrinsic-size:64px}
.transaction-row-shell.selectable{grid-template-columns:auto minmax(0,1fr)}
.transaction-row-check{width:40px;min-height:40px;display:inline-grid;place-items:center;cursor:pointer}
.transaction-row-check input{position:absolute;opacity:0;pointer-events:none}
.transaction-row-check span{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border-strong);background:var(--surface);transition:background-color 160ms var(--ease-premium),border-color 160ms var(--ease-premium),box-shadow 160ms var(--ease-premium),transform 160ms var(--ease-premium)}
.transaction-row-check input:checked+span{background:var(--accent);border-color:var(--accent)}
.transaction-row-check.disabled{opacity:.42;cursor:not-allowed}
.transaction-row-check.disabled span{background:var(--bg);border-style:dashed}
.transaction-list.compact{gap:.38rem}
.transaction-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.65rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);text-align:left}
.transaction-row:hover{background:var(--bg-soft);border-color:rgba(37,99,235,.2);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.transaction-row:active{transform:scale(.99)}
.transaction-row.compact{padding:.58rem .68rem}
.transaction-row-icon{width:38px;height:38px;border-radius:var(--radius-sm);display:inline-grid;place-items:center;font-size:1rem;background:var(--bg)}
.transaction-row-icon.income{background:var(--success-soft)}
.transaction-row-icon.expense{background:var(--danger-soft)}
.transaction-row-copy{min-width:0;display:grid;gap:.1rem}
.transaction-row-copy strong{font-size:.9rem;font-weight:500;line-height:1.2;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.transaction-row-meta,.transaction-row-date{min-width:0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.transaction-row-meta{font-size:.76rem;font-weight:500}
.transaction-row-date{font-size:.72rem}
.transaction-row-badges{display:flex;align-items:center;gap:.38rem;min-width:0;flex-wrap:wrap}
.transaction-row-badges .badge{min-height:20px;font-size:.62rem}
.transaction-row-badges small{min-width:0;color:var(--muted);font-size:.7rem;line-height:1.2;overflow-wrap:anywhere}
.transaction-row-side{display:grid;justify-items:end;gap:.1rem}
.transaction-row-amount{max-width:100%;font-family:var(--font-numeric);font-size:.9rem;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.transaction-amount-income{color:var(--success)}
.transaction-amount-expense{color:var(--danger)}
.transaction-history-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(min(300px,45%),.9fr);gap:.75rem;align-items:start}
.transaction-history-list-card,.transaction-history-detail-panel{min-width:0}
.list-load-more{display:grid;justify-items:center;gap:.45rem;padding:.85rem;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);background:rgba(255,255,255,.7)}
.list-load-more button{min-width:min(260px,100%)}
.transaction-detail-card{display:grid;gap:.9rem;padding:1rem}
.transaction-detail-card.empty{min-height:220px;place-items:center}
.transaction-detail-topbar{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;min-height:20px}
.transaction-detail-back{display:none}
.transaction-detail-back-visible{display:inline-flex}
.transaction-detail-hero{display:grid;justify-items:center;text-align:center;gap:.3rem}
.transaction-detail-icon{width:60px;height:60px;border-radius:var(--radius-md);display:inline-grid;place-items:center;font-size:1.6rem;background:var(--bg)}
.transaction-detail-icon.income{background:var(--success-soft)}
.transaction-detail-icon.expense{background:var(--danger-soft)}
.transaction-detail-amount{max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.6rem,3.2vw,2.2rem);line-height:1.04;font-weight:700;letter-spacing:-.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.transaction-detail-title{font-size:1.05rem;line-height:1.2;font-weight:600}
.transaction-detail-category{color:var(--muted);font-size:.85rem}
.transaction-detail-badges{display:flex;justify-content:center;flex-wrap:wrap;gap:.35rem;margin-top:.2rem}
.transaction-detail-fields{display:grid;gap:.5rem}
.transaction-detail-field{display:grid;grid-template-columns:minmax(88px,110px) minmax(0,1fr);gap:.65rem;align-items:center;padding:0}
.transaction-detail-field span{color:var(--muted);font-size:.78rem;font-weight:500}
.transaction-detail-field strong{text-align:right;font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.transaction-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.transaction-locked-note{grid-column:1 / -1;padding:.65rem .75rem;border-radius:var(--radius-sm);border:1px solid rgba(139,92,246,.15);background:var(--debt-soft);color:var(--debt);font-size:.8rem;font-weight:600;line-height:1.35}
.transaction-empty-state{padding:1rem;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);color:var(--muted);text-align:center}
.compact-crud-shell{align-items:start;gap:.75rem}
.compact-form-card,.compact-list-card,.compact-detail-panel{min-width:0}
.compact-list-card{display:grid;gap:.6rem}
.compact-list-card>h3{margin:0}
.debt-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Nei debiti la lista scompare quando si seleziona: mostra sempre il back button */
.debt-crud-shell.has-selection .transaction-detail-back{display:inline-flex}
.debt-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;align-items:start;min-height:0}
.debt-columns.with-selection{grid-template-columns:minmax(0,1fr)}
.debt-column-card{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);align-content:stretch;overflow:hidden}
.debt-column-list{min-height:0;overflow:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-right:.12rem}
.debt-summary-single{grid-template-columns:minmax(0,1fr) !important}
.debt-mode-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px;margin:0 0 .85rem;isolation:isolate;box-shadow:var(--shadow-sm)}
.debt-mode-indicator{position:absolute;inset:4px auto 4px 4px;width:calc(50% - 4px);background:linear-gradient(160deg,#3b82f6,var(--accent));border-radius:calc(var(--radius-lg) - 4px);box-shadow:0 2px 8px rgba(37,99,235,.24);transition:transform 280ms var(--ease-premium);z-index:0;will-change:transform}
.debt-mode-switch[data-mode="credit"] .debt-mode-indicator{transform:translateX(100%)}
.debt-mode-option{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem .9rem;background:transparent;border:none;color:var(--muted);font-weight:600;font-size:.9rem;cursor:pointer;min-height:44px;box-shadow:none;border-radius:calc(var(--radius-lg) - 4px);transition:color 190ms var(--ease-premium)}
.debt-mode-option:hover{background:transparent;box-shadow:none;transform:none;color:var(--text)}
.debt-mode-option[aria-selected="true"]{color:#fff}
.debt-mode-option[aria-selected="true"]:hover{color:#fff}
.debt-mode-option:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.debt-mode-option:active{transform:none;box-shadow:none}
.debt-mode-label{line-height:1}
.debt-mode-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;font-size:.72rem;padding:.12rem .5rem;border-radius:999px;background:rgba(15,23,42,.07);color:inherit;font-variant-numeric:tabular-nums;font-weight:700;line-height:1;transition:background-color 190ms var(--ease-premium)}
.debt-mode-option[aria-selected="true"] .debt-mode-count{background:rgba(255,255,255,.22)}
@keyframes debt-list-fade-in{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
.debt-list-pane{display:grid;gap:.75rem}
.debt-list-pane.is-entering{animation:debt-list-fade-in 220ms var(--ease-premium)}
@media(max-width:720px){.debt-mode-switch{margin-bottom:.7rem}.debt-mode-option{padding:.55rem .65rem;font-size:.85rem;gap:.4rem}.debt-mode-count{font-size:.7rem;min-width:1.3rem;padding:.1rem .45rem}}
@media(prefers-reduced-motion:reduce){.debt-mode-indicator{transition:none}.debt-list-pane.is-entering{animation:none}}
.category-list-card{align-content:start}
.category-sections{display:grid;gap:.7rem}
.category-section-card{display:grid;gap:.55rem;padding:.82rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}
.category-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.category-section-head h4{margin:0;font-size:.88rem;font-weight:600;color:var(--text)}
.category-list{display:grid;gap:.5rem}
.category-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.78rem .82rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm)}
.category-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.category-item-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.68rem;align-items:center;min-width:0}
.category-item-copy{min-width:0;display:grid;gap:.12rem}
.category-item-copy strong{font-size:.92rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.category-item-subtitle{font-size:.77rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.category-item-side{display:grid;justify-items:end;gap:.45rem;min-width:max-content}
.category-item-meta{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.35rem}
.category-item .row-actions{justify-content:flex-end}
.category-item .row-actions button{min-height:34px;padding:.42rem .68rem;font-size:.77rem}
.wealth-resource-card{align-content:start}
.wealth-resource-card .entity-list{gap:.5rem}
.networth-status-main-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.networth-status-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.month-close-values{display:grid;gap:.75rem}
.month-close-value-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.month-close-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1rem 0}
.month-close-board h4{margin:0 0 .45rem}
.month-close-list{display:flex;flex-wrap:wrap;gap:.45rem}
.month-close-chip{min-height:42px;display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);padding:.45rem .7rem;box-shadow:var(--shadow-sm)}
.month-close-chip strong{font-size:.68rem;color:var(--warning);text-transform:uppercase;letter-spacing:.04em}
.month-close-chip.closed strong{color:var(--success)}
.month-close-chip.active{border-color:rgba(37,99,235,.35);box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.month-close-locked{display:grid;gap:.75rem;margin-bottom:1rem}
.month-close-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}
.month-close-summary div{display:grid;gap:.15rem;padding:.65rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.month-close-summary span{font-size:.72rem;color:var(--muted)}
.month-close-summary strong{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.month-close-historical-value{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin:.55rem 0}
.month-close-historical-value span{min-width:0;color:var(--muted);font-size:.86rem}
.month-close-historical-value strong{font-size:1rem;white-space:nowrap}
.compact-list-shell{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(min(340px,46%),.85fr);gap:.75rem;align-items:start}
.compact-list-shell.has-selection{grid-template-columns:minmax(min(280px,38%),min(360px,45%)) minmax(0,1fr)}
.compact-detail-panel{min-width:0;display:grid;align-content:start}
.entity-list{display:grid;gap:.45rem}
.entity-list>.entity-row{content-visibility:auto;contain-intrinsic-size:58px}
.entity-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);text-align:left;transition:transform .15s ease,border-color .15s ease}
.entity-row:hover,.entity-row:focus-visible{border-color:var(--border-strong);transform:translateY(-1px)}
.entity-row:active{transform:scale(.99)}
.entity-row.passive{cursor:default}
.entity-row.passive:hover,.entity-row.passive:focus-visible,.entity-row.passive:active{border-color:var(--border);transform:none}
.entity-row-icon{width:38px;height:38px;border-radius:var(--radius-sm);display:inline-grid;place-items:center;font-size:1.1rem;background:var(--bg);color:var(--text);flex-shrink:0}
.entity-row-icon.positive{background:var(--success-soft);color:var(--success)}
.entity-row-icon.negative{background:var(--danger-soft);color:var(--danger)}
.entity-row-icon.neutral{background:var(--accent-soft);color:var(--accent-strong)}
.entity-row-copy{min-width:0;display:grid;gap:.1rem}
.entity-row-copy strong,.entity-row-subtitle{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.entity-row-copy strong{font-size:.9rem;font-weight:500;color:var(--text)}
.entity-row-subtitle{font-size:.76rem;color:var(--muted)}
.entity-row-value{min-width:0;text-align:right;font-family:var(--font-numeric);font-size:.9rem;font-weight:600;color:var(--text)}
.entity-row-value.positive{color:var(--success)}
.entity-row-value.negative{color:var(--danger)}
.entity-detail-card .transaction-detail-icon.positive,.entity-detail-card .transaction-detail-amount.positive{color:var(--success)}
.entity-detail-card .transaction-detail-icon.positive{background:var(--success-soft)}
.entity-detail-card .transaction-detail-icon.negative,.entity-detail-card .transaction-detail-amount.negative{color:var(--danger)}
.entity-detail-card .transaction-detail-icon.negative{background:var(--danger-soft)}
.entity-detail-card .transaction-detail-icon.neutral,.entity-detail-card .transaction-detail-amount.neutral{color:var(--text)}
.entity-detail-card .transaction-detail-icon.neutral{background:var(--bg)}
.checkbox-row{grid-template-columns:auto 1fr;align-items:center;gap:.7rem;color:var(--text)}
.checkbox-row input[type="checkbox"]{width:1rem;height:1rem;accent-color:var(--accent)}
.flash{border-radius:var(--radius-sm);padding:.75rem .9rem;line-height:1.5;font-size:.875rem;border-left-width:3px;border-left-style:solid}
.error{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(220,38,38,.15);border-left:3px solid var(--danger)}
.success{background:var(--success-soft);color:var(--success);border:1px solid rgba(5,150,105,.15);border-left:3px solid var(--success)}
.demo{background:var(--surface-soft);border:1px solid var(--border)}
.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh;position:relative}
.sidebar-backdrop,.mobile-topbar{display:none}
.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:20;width:var(--sidebar-w);height:100dvh;overflow:hidden;display:flex;flex-direction:column;gap:.5rem;padding:1rem .75rem;background:var(--sidebar-bg);box-shadow:inset -1px 0 0 rgba(255,255,255,.04)}
.brand-block{display:flex;align-items:center;gap:.7rem;padding:.25rem .5rem .65rem;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:.25rem}
.brand-logo{width:32px;height:32px;object-fit:contain;flex:0 0 auto;filter:brightness(0) invert(1);opacity:.9}
.brand{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:#fff;letter-spacing:-.02em}
.nav{display:grid;gap:.18rem;flex:1 1 auto;padding:0;border:0;background:transparent;box-shadow:none;overflow-y:auto;overflow-x:hidden;min-height:0;overscroll-behavior:contain}
.nav{scrollbar-width:none;-ms-overflow-style:none}
.nav::-webkit-scrollbar{width:0;height:0}
.nav-group-label{padding:.7rem .75rem .25rem;font-size:.64rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--sidebar-text);opacity:.6;user-select:none}
.nav-group-label:first-child{padding-top:.25rem}
.nav button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;text-align:left;padding:.6rem .75rem;background:transparent;color:var(--sidebar-text);border-color:transparent;box-shadow:none;border-radius:var(--radius-sm);min-height:40px;font-weight:500;font-size:var(--text-sm);letter-spacing:0;opacity:.88;position:relative;overflow:hidden}
.nav button::before{content:"";position:absolute;left:0;top:50%;width:2px;height:55%;border-radius:999px;background:transparent;transform:translateY(-50%) scaleY(.5);transition:background-color 190ms var(--ease-premium),transform 190ms var(--ease-premium)}
.nav button:hover{background:rgba(255,255,255,.06);opacity:1;color:#fff;box-shadow:none}
.nav button.active{background:rgba(255,255,255,.1);color:#fff;border-color:transparent;box-shadow:none;opacity:1;font-weight:600}
.nav button.active::before{background:var(--sidebar-accent);transform:translateY(-50%) scaleY(1)}
.nav-icon{width:1rem;height:1rem;display:inline-grid;place-items:center;color:currentColor;opacity:1}
.nav-icon svg{width:1rem;height:1rem;display:block;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-label{min-width:0;line-height:1.2;font-size:var(--text-sm);overflow-wrap:anywhere}
.nav-badge,.button-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;padding:0 .38rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.72rem;font-weight:700;line-height:1}
.button-badge{margin-left:.35rem;min-width:1.25rem;height:1.25rem;font-size:.68rem}
.mobile-notification-btn{margin-left:auto;display:none;align-items:center;gap:.35rem;min-height:38px;padding:.42rem .65rem;font-size:.75rem}
.userbox{margin-top:auto;flex:0 0 auto;padding:.75rem;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.055);color:var(--sidebar-text);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.userbox strong{display:block;margin-top:.1rem;font-size:.875rem;font-weight:500;color:#fff}
.userbox #logoutBtn{width:100%;margin-top:.1rem}
.main{grid-column:2;min-width:0;max-width:100%;padding:1.75rem 2rem;display:grid;gap:1.25rem;align-content:start;background:transparent;transform:translateZ(0)}
.main>*{min-width:0;max-width:100%}
.main>*{width:min(1400px,100%)}
.main.view-enter{animation:page-enter 240ms var(--ease-premium) both}
.main.view-enter :is(.header,.card,.metric,.dashboard-primary,.dashboard-cluster,.score-card,.mini,.entity-row,.transaction-row,.table-wrap,.empty-state,.skeleton-block,.skeleton-row){animation:content-reveal 260ms var(--ease-premium) both;animation-delay:var(--reveal-delay,0ms);will-change:transform,opacity}
.main>.global-footer{padding-top:.4rem}
.mobile-nav-toggle{width:40px;min-width:40px;height:40px;padding:0;border-radius:var(--radius-sm);display:inline-grid;place-items:center;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.mobile-nav-toggle span{display:block;width:16px;height:1.5px;margin:2.5px 0;border-radius:999px;background:var(--text);transition:transform 180ms var(--ease-premium),opacity 180ms var(--ease-premium)}
.mobile-topbar-brand{display:flex;align-items:center;gap:.55rem;min-width:0}
.mobile-topbar-brand strong{font-size:.95rem;font-weight:600;letter-spacing:-.02em}
.header{padding:.25rem 0 .5rem}
.header h2{margin:0 0 .25rem;font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,1.875rem);line-height:1.15;font-weight:600;letter-spacing:-.025em}
.section-block-heading{display:grid;gap:.2rem;padding:.5rem .05rem .1rem}
.dashboard-section-divider{margin-top:.5rem}
.section-block-heading h3{margin:0;font-size:var(--text-md);font-weight:600;letter-spacing:-.01em;color:var(--text);overflow-wrap:anywhere}
.section-inline-copy{margin:-.2rem 0 .8rem}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--dashboard-gap)}
.dashboard-metrics-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dashboard-gap)}
.dashboard-decision-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dashboard-gap);align-items:stretch}
.dashboard-decision-hero .dashboard-human-card{height:100%;min-height:116px}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--dashboard-gap);align-items:stretch;grid-auto-rows:1fr}
.dashboard-flow-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dashboard-gap)}
.dashboard-primary,.dashboard-cluster{padding:.85rem;border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:var(--surface);min-width:0;position:relative;overflow:hidden;content-visibility:auto;contain-intrinsic-size:300px}
.dashboard-section-head,.dashboard-cluster-header{display:grid;gap:.12rem;margin-bottom:.4rem}
.dashboard-section-head h3,.dashboard-cluster-header h3{margin:0;font-size:.8rem;font-weight:600;color:var(--muted);letter-spacing:.03em;text-transform:uppercase;overflow-wrap:anywhere}
.dashboard-primary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dashboard-gap)}
.dashboard-secondary-grid,.dashboard-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dashboard-gap);align-items:stretch}
.dashboard-tertiary-grid{align-items:stretch}
.dashboard-cluster-compact{padding:.7rem}
.dashboard-cluster-balance,.dashboard-cluster-flow,.dashboard-cluster-debt,.dashboard-cluster-composition{background:var(--surface)}
.dashboard-scores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--dashboard-gap);align-items:stretch;grid-auto-rows:1fr}
.dashboard-onboarding-card,.dashboard-spend-card,.dashboard-empty-state{display:grid;gap:.55rem}
.onboarding-guide{gap:1rem;border-color:rgba(37,99,235,.16);background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(239,246,255,.7));box-shadow:0 18px 50px rgba(15,23,42,.08)}
.onboarding-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.onboarding-guide-head h3{margin:.1rem 0 0;font-size:clamp(1rem,2vw,1.25rem);letter-spacing:-.03em}
.onboarding-progress{min-width:58px;height:34px;padding:0 .7rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(37,99,235,.09);color:var(--accent);font-size:.78rem;font-weight:700}
.onboarding-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.onboarding-step{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"badge title" "badge copy";column-gap:.6rem;align-items:center;padding:.7rem;border:1px solid rgba(226,232,240,.9);border-radius:16px;background:rgba(255,255,255,.78)}
.onboarding-step span{grid-area:badge;width:30px;height:30px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),#38bdf8);color:#fff;font-weight:800;font-size:.82rem;box-shadow:0 8px 18px rgba(37,99,235,.22)}
.onboarding-step strong{grid-area:title;font-size:.88rem;line-height:1.15}
.onboarding-step small{grid-area:copy;color:var(--muted);font-size:.74rem;line-height:1.25;overflow-wrap:anywhere}
.onboarding-form{display:grid;gap:.85rem}
.onboarding-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;align-items:start}
.onboarding-panel{min-width:0;margin:0;padding:.85rem;border:1px solid rgba(226,232,240,.92);border-radius:18px;background:rgba(255,255,255,.88);display:grid;gap:.65rem}
.onboarding-panel-soft{background:rgba(248,250,252,.88)}
.onboarding-panel-soft.is-disabled label:not(:first-of-type){opacity:.48}
.onboarding-panel legend{padding:0 .25rem;font-size:.82rem;font-weight:700;letter-spacing:-.01em}
.onboarding-panel label{display:grid;gap:.32rem;color:var(--muted);font-size:.78rem;font-weight:600}
.onboarding-panel input,.onboarding-panel select{min-height:44px;width:100%;border-radius:14px}
.onboarding-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.onboarding-actions .small{max-width:560px}
.onboarding-tour-backdrop{position:fixed;inset:0;z-index:70;background:rgba(15,23,42,.18);backdrop-filter:blur(3px);animation:fade-in 180ms ease-out}
.onboarding-tour{position:fixed;right:1.1rem;bottom:1.1rem;z-index:71;width:min(440px,calc(100vw - 2rem));padding:1rem;border:1px solid rgba(226,232,240,.92);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 26px 80px rgba(15,23,42,.18);display:grid;gap:.85rem;animation:tour-rise 200ms ease-out}
.onboarding-tour-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}
.onboarding-tour h3{margin:.12rem 0 0;font-size:1.05rem;letter-spacing:-.03em}
.onboarding-tour p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}
.onboarding-tour-progress{display:flex;gap:.34rem}
.onboarding-tour-progress span{height:6px;flex:1;border-radius:999px;background:rgba(148,163,184,.26);transition:background 180ms ease,width 180ms ease}
.onboarding-tour-progress span.active{background:linear-gradient(90deg,var(--accent),#38bdf8)}
.onboarding-tour-actions{display:grid;grid-template-columns:1fr;gap:.55rem}
.tour-view-btn{width:100%;justify-content:center;white-space:normal;line-height:1.2;min-height:42px}
.onboarding-tour-nav{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.45rem;align-items:center}
.onboarding-tour-nav button{min-width:0;white-space:nowrap}
.onboarding-tour-nav button:first-child:last-child{grid-column:1/-1}
.onboarding-tour-nav button:nth-child(2):last-child{grid-column:3}
@keyframes tour-rise{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.notification-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.notification-summary-card{min-height:86px}
.notification-group{display:grid;gap:.75rem}
.notification-list{display:grid;gap:.55rem}
.notification-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.75rem;border:1px solid rgba(226,232,240,.9);border-radius:18px;background:rgba(255,255,255,.88);box-shadow:var(--shadow-sm)}
.notification-row.is-read{opacity:.68}
.notification-row.danger{border-color:rgba(220,38,38,.22);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(254,242,242,.76))}
.notification-row.warning{border-color:rgba(217,119,6,.22);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,251,235,.78))}
.notification-row.info{border-color:rgba(37,99,235,.18)}
.notification-icon{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:800}
.notification-row.danger .notification-icon{background:rgba(220,38,38,.1);color:var(--danger)}
.notification-row.warning .notification-icon{background:rgba(217,119,6,.12);color:#b45309}
.notification-copy{min-width:0;display:grid;gap:.18rem}
.notification-title-line{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.notification-copy strong{font-size:.95rem;letter-spacing:-.01em}
.notification-copy p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.45}
.notification-actions{display:flex;gap:.4rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.notification-empty{display:grid;gap:.25rem;text-align:center;justify-items:center}
.debt-action-panel,.debt-events-card{margin-top:.7rem}
.debt-action-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.75rem}
.debt-action-head h3{margin-bottom:.2rem}
.debt-action-residual{display:grid;justify-items:end;gap:.12rem;padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft)}
.debt-action-residual span{color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.debt-action-residual strong{font-family:var(--font-numeric);font-size:1rem}
.debt-action-form{display:grid;gap:.68rem;padding:.85rem;border:1px solid rgba(226,232,240,.9);border-radius:var(--radius-sm);background:rgba(248,250,252,.76)}
.debt-action-form + .debt-action-form{margin-top:.72rem}
.debt-action-choice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.62rem;align-items:start}
.debt-action-number{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:800;font-size:.78rem}
.debt-action-choice strong{display:block;font-size:.94rem;margin-bottom:.12rem}
.debt-action-choice p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.35}
.debt-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.debt-action-form label{display:grid;gap:.3rem;color:var(--muted);font-size:.78rem;font-weight:600}
.debt-action-form input,.debt-action-form select{min-height:42px}
.debt-action-more{border:0}
.debt-action-more summary{cursor:pointer;color:var(--muted);font-size:.78rem;font-weight:700;list-style:none}
.debt-action-more summary::-webkit-details-marker{display:none}
.debt-action-more summary::after{content:"+";margin-left:.35rem;color:var(--accent)}
.debt-action-more[open] summary{margin-bottom:.45rem}
.debt-action-more[open] summary::after{content:"-"}
.debt-event-list{display:grid;gap:.5rem}
.debt-event-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.65rem .72rem;border:1px solid rgba(226,232,240,.82);border-radius:var(--radius-sm);background:rgba(255,255,255,.82)}
.debt-event-row div:first-child{display:grid;gap:.12rem;min-width:0}
.debt-event-row span,.debt-event-row small{color:var(--muted);font-size:.76rem;overflow-wrap:anywhere}
.debt-event-side{display:grid;justify-items:end;gap:.25rem}
.debt-event-side strong{font-family:var(--font-numeric)}
.debt-event-row.debt-event-orphan{border-color:rgba(220,38,38,.28);background:var(--danger-soft)}
.debt-event-row.debt-event-orphan .debt-event-orphan-note{color:var(--danger);font-weight:500}
.debt-event-orphan-remove{background:var(--danger-soft);color:var(--danger);border-color:rgba(220,38,38,.18);box-shadow:none}
.debt-event-orphan-remove:hover{background:rgba(220,38,38,.12);box-shadow:0 6px 14px rgba(220,38,38,.1);color:var(--danger);border-color:rgba(220,38,38,.25)}
.dashboard-human-strip{display:grid;gap:.7rem}
.dashboard-human-card{min-width:0;min-height:92px;padding:var(--dashboard-card-padding);border-radius:var(--dashboard-card-radius);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem;border:1px solid rgba(229,231,235,.9);border-left-width:3px;background:var(--surface);box-shadow:var(--shadow-sm)}
.dashboard-human-icon{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;font-size:.95rem;font-weight:800;flex:0 0 auto}
.dashboard-human-copy{display:grid;gap:.15rem;min-width:0}
.dashboard-human-eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.dashboard-human-copy strong{font-size:.95rem;line-height:1.2;font-weight:600}
.dashboard-human-copy p{margin:0;color:var(--muted);font-size:.85rem}
.dashboard-human-success{border-color:rgba(5,150,105,.9);background:var(--success-soft)}
.dashboard-human-success .dashboard-human-eyebrow{color:var(--success)}
.dashboard-human-success .dashboard-human-icon{background:rgba(5,150,105,.16);color:var(--success)}
.dashboard-human-danger{border-color:rgba(220,38,38,.9);background:var(--danger-soft)}
.dashboard-human-danger .dashboard-human-eyebrow{color:var(--danger)}
.dashboard-human-danger .dashboard-human-icon{background:rgba(220,38,38,.16);color:var(--danger)}
.dashboard-human-info{border-color:rgba(37,99,235,.9);background:var(--accent-soft)}
.dashboard-human-info .dashboard-human-eyebrow{color:var(--accent)}
.dashboard-human-info .dashboard-human-icon{background:rgba(37,99,235,.14);color:var(--accent-strong)}
.soft-card{padding:.85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface)}
.dashboard-spend-value{font-family:var(--font-numeric);font-size:clamp(1.5rem,2.2vw,2rem);line-height:1;letter-spacing:0;font-weight:700}
.dashboard-upgrade-note{padding:.85rem;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);color:var(--muted)}
.metric{min-width:0;padding:.85rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);content-visibility:auto;contain-intrinsic-size:120px}
.metric.highlight{border-color:rgba(37,99,235,.2);background:rgba(37,99,235,.03)}
.metric .value{margin-top:.22rem;min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.05;font-weight:700;letter-spacing:0;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-value-card{min-width:0;min-height:96px;height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:.45rem;background:var(--surface);border-radius:var(--dashboard-card-radius)}
.dashboard-value-card .muted{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.dashboard-value-card .value{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-numeric);font-size:clamp(1.05rem,1.6vw,1.45rem);line-height:1.04;font-weight:750;letter-spacing:0;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}
.metric-delta{display:inline-flex;align-items:center;gap:.22rem;min-width:0;max-width:100%;margin-top:.3rem;padding:.16rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600;line-height:1.3;font-variant-numeric:tabular-nums lining-nums;overflow-wrap:anywhere}
.metric-delta-arrow{font-size:.68rem;line-height:1}
.metric-delta-positive{color:var(--success);background:var(--success-soft)}
.metric-delta-negative{color:var(--danger);background:var(--danger-soft)}
.metric-delta-neutral{color:var(--muted);background:rgba(100,116,139,.09)}
.text-positive{color:var(--success);font-weight:600}
.text-negative{color:var(--danger);font-weight:600}
.text-warning{color:var(--warning);font-weight:600}
.dashboard-area-balance,.dashboard-area-flow,.dashboard-area-debt,.dashboard-area-composition{background:var(--surface)}
.dashboard-value-card.primary{min-height:96px;padding:var(--dashboard-card-padding);background:var(--surface);border-color:rgba(37,99,235,.2)}
.dashboard-value-card.hero{min-height:116px;padding:var(--dashboard-card-padding);border-radius:var(--dashboard-card-radius);box-shadow:0 1px 2px rgba(15,23,42,.04),0 12px 28px -14px rgba(15,23,42,.22)}
.dashboard-value-card.hero .muted{font-size:.68rem}
.dashboard-value-card.hero .value{font-size:clamp(1.4rem,2.2vw,1.85rem);line-height:1}
.dashboard-value-card.primary .muted{font-size:.68rem}
.dashboard-value-card.primary .value{font-size:clamp(1.15rem,1.8vw,1.5rem);line-height:1}
.dashboard-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
.dashboard-goals-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2);align-items:stretch}
.dashboard-goal-manage-btn{width:100%}
.dashboard-goal-card,.dashboard-benchmark-card,.dashboard-alert-card{min-width:0;min-height:100%;padding:.72rem .8rem;border-radius:var(--radius-md);border:1px solid rgba(229,231,235,.9);background:var(--surface);box-shadow:var(--shadow-sm)}
.dashboard-goal-head,.dashboard-alert-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.dashboard-goal-head strong{font-family:var(--font-numeric);font-size:1.05rem;font-weight:700;letter-spacing:0}
.dashboard-goal-meta{margin-top:.14rem;color:var(--muted);font-size:.68rem;font-weight:500}
.dashboard-progress-track{height:5px;margin-top:.4rem;border-radius:999px;background:var(--border);overflow:hidden}
.dashboard-progress-fill{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.dashboard-benchmarks-grid,.dashboard-alerts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:.55rem;align-items:stretch}
.dashboard-month-stack{margin-top:.25rem;display:grid;gap:.25rem}
.dashboard-month-row{display:grid;grid-template-columns:40px minmax(0,1fr) 16px;align-items:center;gap:.45rem}
.dashboard-month-label{color:var(--muted);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.dashboard-month-value{min-width:0;font-family:var(--font-numeric);font-size:clamp(.88rem,1.2vw,1.02rem);line-height:1.05;font-weight:700;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-month-trend{text-align:right;font-size:.74rem;font-weight:600}
.dashboard-month-trend-up{color:var(--success)}
.dashboard-month-trend-down{color:var(--danger)}
.dashboard-month-trend-neutral{color:var(--muted)}
.dashboard-benchmark-table-wrap{min-width:0;overflow:hidden;border:1px solid rgba(229,231,235,.9);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}
.dashboard-benchmark-table-scroll{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;overscroll-behavior-x:contain}
.dashboard-benchmark-table{width:100%;min-width:min(560px,100%);border-collapse:separate;border-spacing:0;table-layout:auto}
.dashboard-benchmark-table th,.dashboard-benchmark-table td{padding:.62rem .58rem;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.dashboard-benchmark-table thead th{color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-soft)}
.dashboard-benchmark-table th:first-child,.dashboard-benchmark-table td:first-child{min-width:128px;text-align:left}
.dashboard-benchmark-table tbody tr:last-child th,.dashboard-benchmark-table tbody tr:last-child td{border-bottom:0}
.dashboard-benchmark-table tbody th{display:grid;gap:.12rem;font-weight:700}
.dashboard-benchmark-table tbody th span{color:var(--muted);font-size:.72rem;font-weight:600}
.dashboard-benchmark-table tbody td{font-family:var(--font-numeric);font-size:.86rem;font-weight:700;letter-spacing:0}
.dashboard-benchmark-table .positive{color:var(--success)}
.dashboard-benchmark-table .negative{color:var(--danger)}
.dashboard-alert-card,.dashboard-goal-card,.dashboard-benchmark-card,.dashboard-insight-card{display:grid;align-content:start;gap:.24rem}
.dashboard-alert-danger{border-color:rgba(220,38,38,.2);background:rgba(220,38,38,.03)}
.dashboard-alert-warning{border-color:rgba(217,119,6,.2);background:rgba(217,119,6,.03)}
.dashboard-alert-success{border-color:rgba(5,150,105,.2);background:rgba(5,150,105,.03)}
.dashboard-insight-list{display:grid;gap:.55rem;align-content:start}
.dashboard-insight-card{padding:.72rem .8rem;border-radius:var(--radius-md);border:1px solid rgba(229,231,235,.9);background:var(--surface);box-shadow:var(--shadow-sm)}
.dashboard-insight-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}
.dashboard-insight-head strong{font-size:.85rem;font-weight:500}
.dashboard-insight-metric{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:1.02rem;line-height:1.05;font-weight:700;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-insight-positive{border-color:rgba(5,150,105,.2);background:rgba(5,150,105,.03)}
.dashboard-insight-attention{border-color:rgba(217,119,6,.2);background:rgba(217,119,6,.03)}
.dashboard-insight-warning{border-color:rgba(220,38,38,.2);background:rgba(220,38,38,.03)}
.dashboard-insight-info{border-color:rgba(37,99,235,.18);background:rgba(37,99,235,.03)}
.dashboard-composite-card{display:grid;gap:.7rem;align-content:start}
.dashboard-composite-main{display:grid;gap:.12rem;padding:.75rem .82rem;border-radius:var(--radius-md);border:1px solid rgba(229,231,235,.9);background:var(--surface);box-shadow:var(--shadow-sm)}
.dashboard-composite-main span,.dashboard-composite-grid span{color:var(--muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.dashboard-composite-main strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.2rem,1vw + .85rem,1.5rem);line-height:1.02;font-weight:700;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-composite-main.positive strong{color:var(--success)}
.dashboard-composite-main.negative strong{color:var(--danger)}
.dashboard-composite-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.dashboard-composite-grid div{min-width:0;display:grid;gap:.12rem;padding:.65rem .72rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm)}
.dashboard-composite-grid strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:.92rem;font-weight:700;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-forecast-card{display:grid;gap:.7rem;align-content:start}
.dashboard-forecast-main{display:grid;gap:.12rem;padding:.75rem .82rem;border-radius:var(--radius-md);border:1px solid rgba(229,231,235,.9);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(244,248,255,.78));box-shadow:var(--shadow-sm)}
.dashboard-forecast-main span,.dashboard-forecast-grid span{color:var(--muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.dashboard-forecast-main strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.2rem,1vw + .85rem,1.5rem);line-height:1.02;font-weight:700;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-forecast-main.positive strong,.dashboard-forecast-grid strong.positive{color:var(--success)}
.dashboard-forecast-main.warning strong,.dashboard-forecast-grid strong.warning{color:var(--warning)}
.dashboard-forecast-main.negative strong,.dashboard-forecast-grid strong.negative{color:var(--danger)}
.dashboard-forecast-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.dashboard-forecast-grid div{min-width:0;display:grid;gap:.12rem;padding:.65rem .72rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm)}
.dashboard-forecast-grid strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:.92rem;font-weight:700;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-forecast-note{padding:.62rem .72rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--muted);font-size:.78rem;line-height:1.4}
.dashboard-forecast-grid .forecast-reliability-bar{height:5px;margin-top:.4rem;border-radius:999px;background:var(--border);overflow:hidden;display:block;padding:0;border:none;box-shadow:none}
.forecast-reliability-fill{display:block;height:100%;border-radius:inherit;transition:width .4s var(--ease-premium)}
.expense-donut-card{display:grid;grid-template-columns:min(190px,45%) minmax(0,1fr);gap:var(--space-3);align-items:center;min-width:0}
.expense-donut-chart{width:100%;max-width:190px;display:grid;place-items:center}
.expense-donut-chart svg{width:100%;height:auto;display:block}
.expense-donut-legend{display:grid;gap:.42rem;min-width:0}
.expense-donut-row{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.42rem;padding:.46rem .55rem;border-radius:var(--radius-sm);border:1px solid rgba(229,231,235,.72);background:rgba(255,255,255,.72)}
.expense-donut-dot{width:9px;height:9px;border-radius:999px}
.expense-donut-label{min-width:0;font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.expense-donut-row strong{font-family:var(--font-numeric);font-size:.84rem;white-space:nowrap}
.expense-donut-row small{color:var(--muted);font-size:.72rem;font-weight:600}
.debt-credit-overview-card{display:grid;gap:.8rem}
.debt-credit-status{display:grid;gap:.12rem;padding:.8rem .9rem;border-radius:var(--radius-md);border:1px solid rgba(229,231,235,.9);background:rgba(255,255,255,.78);box-shadow:var(--shadow-sm)}
.debt-credit-status.positive{border-color:rgba(5,150,105,.2);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(236,253,245,.74))}
.debt-credit-status.warning{border-color:rgba(217,119,6,.22);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,251,235,.78))}
.debt-credit-status.negative{border-color:rgba(220,38,38,.22);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(254,242,242,.76))}
.debt-credit-status span{font-size:.95rem;font-weight:700;letter-spacing:.01em;color:var(--text)}
.debt-credit-status.positive span{color:var(--success)}
.debt-credit-status.warning span{color:var(--warning)}
.debt-credit-status.negative span{color:var(--danger)}
.debt-credit-status small{color:var(--muted);font-size:.78rem}
.debt-credit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}
.debt-credit-kpis div{min-width:0;display:grid;gap:.12rem;padding:.65rem .72rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}
.debt-credit-kpis span{color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.debt-credit-kpis strong{font-family:var(--font-numeric);font-size:.94rem;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.debt-credit-kpis small{color:var(--muted);font-size:.72rem}
.debt-credit-actions{justify-content:flex-end}
.dashboard-mini-card{min-width:0;padding:.65rem .72rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface)}
.dashboard-mini-card .muted{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.dashboard-mini-card .value{margin-top:.2rem;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-numeric);font-size:clamp(.98rem,1.35vw,1.18rem);line-height:1.04;font-weight:700;letter-spacing:0;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}
.score-card{min-width:0;min-height:116px;height:100%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-3);text-align:left;background:var(--surface);border-color:rgba(229,231,235,.9);border-radius:var(--dashboard-card-radius)}
.score-card h3{margin:0 0 .15rem;font-size:.875rem;font-weight:500}
.score-card-body{display:grid;gap:.1rem}
.score-ring{position:relative;width:76px;height:76px;display:grid;place-items:center}
.score-ring svg{width:76px;height:76px;transform:rotate(-90deg);overflow:visible}
.score-ring-track,.score-ring-progress{fill:none;stroke-width:8}
.score-ring-track{stroke:var(--border)}
.score-ring-progress{stroke:var(--accent);stroke-linecap:round}
.score-ring-value{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:.02rem}
.score-ring-value strong{font-family:var(--font-numeric);font-size:1.2rem;line-height:1;letter-spacing:0;font-weight:700;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}
.score-ring-value span{color:var(--muted);font-size:.64rem;font-weight:600}
.dashboard-header+.dashboard-hero-grid,.dashboard-header+.dashboard-kpi-grid,.dashboard-hero-grid+.dashboard-flow-strip,.dashboard-kpi-grid+.section-block-heading,.dashboard-flow-strip+.section-block-heading,.dashboard-scores+.section-block-heading,.section-block-heading+.dashboard-scores,.section-block-heading+.dashboard-analytics-grid,.section-block-heading+.grid-1,.section-block-heading+.grid-2,.dashboard-analytics-grid+.section-block-heading,.grid-1+.section-block-heading,.grid-2+.section-block-heading{margin-top:-.08rem}
.grid-1{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.chart-card{padding:.72rem;background:var(--surface);overflow:hidden}
.chart-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;margin-bottom:.5rem}
.chart-card-header h3{margin-bottom:.18rem}
.chart-card-note{flex:0 0 auto;min-height:26px;max-width:100%;padding:.26rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--muted);font-size:.7rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;white-space:normal;overflow-wrap:anywhere}
.chart-kpi-strip{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:.55rem;margin-bottom:.65rem}
.chart-kpi-main,.chart-kpi-secondary>div{min-width:0;display:grid;gap:.14rem;padding:.65rem .72rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft)}
.chart-kpi-main span,.chart-kpi-secondary span{min-width:0;color:var(--muted);font-size:.66rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chart-kpi-main strong,.chart-kpi-secondary strong{font-family:var(--font-numeric);font-size:1.25rem;line-height:1.02;font-weight:800;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}
.chart-kpi-main small,.chart-kpi-secondary small{min-width:0;color:var(--muted);font-size:.7rem;line-height:1.3;overflow-wrap:anywhere}
.chart-kpi-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
.chart-kpi-secondary span{display:flex;align-items:center;gap:.32rem}
.chart-kpi-secondary i{width:.48rem;height:.48rem;border-radius:50%;flex:0 0 auto}
.grid-fixed{display:grid;grid-template-columns:minmax(min(300px,34%),370px) minmax(0,1fr);gap:.7rem}
.crud-block.embedded-crud{margin-top:-.05rem}
.card{min-width:0;padding:1.25rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);box-shadow:none;position:relative;overflow:hidden;content-visibility:auto;contain-intrinsic-size:400px}
.card-section{background:var(--surface)}
.card h3{margin:0 0 .85rem;font-size:var(--text-md);font-weight:600;color:var(--text);letter-spacing:-.01em;overflow-wrap:anywhere}
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;max-width:100%;padding:.2rem .55rem;border-radius:4px;border:1px solid transparent;font-size:.68rem;font-weight:600;letter-spacing:.04em;line-height:1;text-transform:uppercase;white-space:normal;overflow-wrap:anywhere;text-align:center}
.badge-default,.badge-muted{background:rgba(107,114,128,.1);color:var(--muted);border-color:rgba(107,114,128,.15)}
.badge-accent{background:var(--accent-soft);color:var(--accent-strong);border-color:rgba(37,99,235,.15)}
.badge-success{background:var(--success-soft);color:var(--success);border-color:rgba(5,150,105,.18)}
.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:rgba(220,38,38,.18)}
.badge-warning{background:var(--warning-soft);color:var(--warning);border-color:rgba(217,119,6,.18)}
.badge-flow{background:var(--flow-soft);color:var(--flow);border-color:rgba(37,99,235,.15)}
.badge-debt{background:var(--debt-soft);color:var(--debt);border-color:rgba(139,92,246,.15)}
.badge-wealth{background:var(--wealth-soft);color:var(--wealth);border-color:rgba(5,150,105,.15)}
.badge-premium{background:rgba(251,191,36,.12);color:#92400e;border-color:rgba(245,158,11,.2)}
.badge-lock{display:inline-flex;align-items:center;justify-content:center;margin-right:.2rem;line-height:1}
.premium-trigger{display:inline-flex;align-items:center;gap:.3rem}
.dashboard-upgrade-card{display:grid;gap:.75rem;padding:.9rem;border-radius:var(--radius-md);border:1px dashed rgba(245,158,11,.3);background:rgba(251,191,36,.04)}
.dashboard-upgrade-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}
.dashboard-upgrade-head h3{margin:0}
.dashboard-upgrade-list{display:grid;gap:.45rem}
.dashboard-upgrade-item{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.45rem;padding:.65rem .72rem;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}
.dashboard-upgrade-item strong{font-size:.875rem}
.dashboard-upgrade-item .muted{font-size:.8rem}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;margin:0;padding:0;-webkit-overflow-scrolling:touch;scrollbar-width:thin;content-visibility:auto;contain-intrinsic-size:300px;border-radius:var(--radius-sm);overscroll-behavior-x:contain}
.admin-users-card{min-width:0}
.admin-users-card{grid-column:1 / -1}
.admin-users-table{max-height:min(620px,62vh);overflow:auto;content-visibility:visible;contain-intrinsic-size:auto}
.admin-users-table table{min-width:min(1180px,100%)}
.admin-users-table th:nth-child(3),.admin-users-table td:nth-child(3){position:sticky;left:0;z-index:2;min-width:220px;max-width:260px;background:var(--surface);box-shadow:1px 0 0 var(--border)}
.admin-users-table th:nth-child(3){z-index:4;background:var(--bg)}
.admin-users-table tbody tr:hover td:nth-child(3){background:var(--bg-soft)}
table{width:max-content;min-width:100%;max-width:none;border-collapse:separate;border-spacing:0 4px;table-layout:auto}
tbody tr{transition:background-color 150ms ease}
th,td{text-align:left;border-bottom:1px solid var(--border);padding:.58rem .62rem;vertical-align:top;font-size:.84rem;line-height:1.4;white-space:nowrap;overflow-wrap:normal;word-break:normal}
th{position:sticky;top:0;background:var(--bg);color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding-top:.45rem;padding-bottom:.45rem;border-bottom:1px solid var(--border)}
tbody tr td{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
tbody tr td:first-child{border-left:1px solid var(--border);border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}
tbody tr td:last-child{border-right:1px solid var(--border);border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}
tbody tr:hover td{background:var(--bg-soft)}
.row-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;min-width:0}
td .row-actions button{min-height:30px;padding:.36rem .65rem;font-size:.76rem;box-shadow:none;flex:0 0 auto}
td .row-actions button.ghost:hover,td .row-actions button.danger:hover{transform:translateY(-1px)}
.stack{display:grid;gap:.6rem}
.mini{display:flex;justify-content:space-between;gap:.9rem;padding:.72rem .82rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);min-width:0}
.mini strong,td strong,.value,.metric-delta{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}
/* Copertura tabular-nums completa: importi in liste, dettagli, debiti e righe entita' */
.transaction-row-amount,.transaction-detail-amount,.entity-row-value,.debt-action-residual strong,.debt-event-side strong,.dashboard-spend-value,.metric-inline,.expense-donut-row strong,.debt-credit-kpis strong{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}
/* Importi: mai troncare in silenzio — vanno a capo invece dell'ellissi */
.transaction-row-amount,.entity-row-value,.dashboard-month-value,.dashboard-composite-main strong,.dashboard-composite-grid strong,.dashboard-forecast-main strong,.dashboard-forecast-grid strong,.transaction-detail-amount,.transaction-detail-field strong,.month-close-summary strong,.month-close-historical-value strong,.debt-action-residual strong,.expense-donut-row strong{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.mini span,.mini strong{min-width:0;overflow-wrap:anywhere}
.mini strong{text-align:right}
.mini:hover{background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.friend-search-box{display:grid;gap:.35rem;margin-bottom:.8rem}
.friend-search-label{font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.friend-search-results{display:grid;gap:.55rem;min-height:72px}
.friend-search-empty{min-height:72px;display:grid;align-content:center;gap:.15rem;padding:.75rem .85rem;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg-soft);color:var(--muted)}
.friend-search-empty strong{color:var(--text);font-size:.82rem}
.friend-search-empty span{font-size:.8rem}
.friend-search-empty.is-loading{border-style:solid;background:var(--accent-soft);color:var(--accent-strong)}
.friend-search-empty.is-error{border-style:solid;background:var(--danger-soft);color:var(--danger)}
.friend-search-results-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.friend-search-results-head small{font-size:.72rem;font-weight:600;letter-spacing:0;text-transform:none}
.friend-search-results-list{display:grid;gap:.5rem}
.friend-result-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.68rem .78rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm)}
.friend-result-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}
.friend-result-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-strong);font-size:.85rem;font-weight:800}
.friend-result-copy{min-width:0;display:grid;gap:.06rem}
.friend-result-copy strong{font-size:.9rem;line-height:1.2;overflow-wrap:anywhere}
.friend-result-copy span{color:var(--muted);font-size:.78rem;line-height:1.25;overflow-wrap:anywhere}
.friend-result-action{display:flex;align-items:center;justify-content:flex-end;min-width:0}
@media (max-width:520px){
  .friend-result-row{grid-template-columns:auto minmax(0,1fr);align-items:start}
  .friend-result-action{grid-column:2;justify-content:flex-start}
}
.friends-list{display:grid;gap:.45rem;margin-top:.5rem}
.friends-item{display:flex;align-items:center;gap:.75rem;padding:.8rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);min-width:0;transition:box-shadow 120ms var(--ease-premium),border-color 120ms}
.friends-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.friends-item-avatar{width:2.2rem;height:2.2rem;border-radius:50%;background:linear-gradient(135deg,var(--accent),#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;letter-spacing:.04em;flex-shrink:0;user-select:none}
.friends-item-avatar--lg{width:3rem;height:3rem;font-size:.9rem}
.friends-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.friends-item-info strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}
.friends-item-info .muted{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friends-item-actions{display:flex;gap:.35rem;flex-shrink:0;align-items:center}
.friends-invite-box{display:flex;flex-direction:column;gap:.5rem}
.friends-invite-url-input{font-size:.78rem;color:var(--muted);letter-spacing:.01em}
.friends-invite-btns{display:flex;gap:.5rem}
.friends-invite-btns button{flex:1}
.friends-invite-card{max-width:28rem}
.friends-empty{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1.5rem 1rem;text-align:center}
.friends-empty .muted{font-size:.82rem}
.friends-page{
  --friends-ink:#10233f;
  --friends-blue:#1769e8;
  --friends-blue-soft:#eaf2ff;
  --friends-mint-soft:#e4f7f0;
  --friends-line:#dce3ec;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  color:var(--friends-ink)
}
.friends-header,.friends-summary{grid-column:1/-1}
.friends-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.15rem 0 .35rem}
.friends-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--friends-ink)}
.friends-header .muted{font-size:.9rem;color:#66758a}
.friends-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--friends-line);border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 8px 28px rgba(31,48,73,.045);overflow:hidden}
.friends-summary>div{min-width:0;display:flex;align-items:center;gap:.8rem;padding:1rem 1.15rem;position:relative}
.friends-summary>div+div::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--friends-line)}
.friends-summary>div>span:last-child{min-width:0;display:grid;gap:.05rem}
.friends-summary strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1;font-weight:750;letter-spacing:-.035em;color:var(--friends-blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friends-summary small{color:#66758a;font-size:.78rem;font-weight:500}
.friends-summary-icon{width:44px;height:44px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--friends-blue-soft);color:var(--friends-blue)}
.friends-summary-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.friends-summary-network{background:#edf5ff}
.friends-summary-incoming{background:var(--friends-mint-soft);color:#168262}
.friends-summary-outgoing{background:#f1f4f8;color:#617086}
.friends-page>.card{min-width:0;margin:0;padding:1.05rem 1.1rem;border:1px solid var(--friends-line);border-radius:16px;background:rgba(255,255,255,.95);box-shadow:0 8px 28px rgba(31,48,73,.045)}
.friends-page>.card:nth-child(n+5){grid-column:1/-1}
.friends-page>.card h3{margin:0 0 .65rem;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--friends-ink)}
.friends-page>.card h3::before{content:"";display:block;width:34px;height:3px;margin:0 0 .55rem;border-radius:999px;background:var(--friends-blue)}
.friends-page>.card>.muted{margin:-.2rem 0 .85rem!important;color:#66758a;font-size:.82rem;line-height:1.45}
.friends-page input{min-height:46px;border-color:#cfd9e6;border-radius:10px;background:#fbfcfe;color:#172b47;font-size:.88rem;box-shadow:0 1px 0 rgba(16,35,63,.02)}
.friends-page input:hover{border-color:#aebdd0}
.friends-page input:focus{border-color:var(--friends-blue);background:#fff;box-shadow:0 0 0 3px rgba(23,105,232,.12)}
.friends-page .friends-list{gap:.65rem;margin-top:.25rem}
.friends-page .friends-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.9rem .95rem;border-color:var(--friends-line);border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 5px 18px rgba(31,48,73,.04)}
.friends-page .friends-item:hover{background:#fff;border-color:#b8c6d9;box-shadow:0 10px 26px rgba(31,48,73,.08);transform:translateY(-1px)}
.friends-page .friends-item-avatar{width:44px;height:44px;border-radius:50%;background:var(--friends-mint-soft);color:#126c70;font-size:.78rem;font-weight:800}
.friends-page .friends-item-info strong{font-size:.96rem;font-weight:750;letter-spacing:-.015em;color:var(--friends-ink)}
.friends-page .friends-item-info .muted{color:#66758a;font-size:.76rem}
.friends-page .friends-item-actions{gap:.42rem}
.friends-page .friend-search-label{color:var(--friends-blue);font-size:.66rem;font-weight:750;letter-spacing:.09em}
.friends-page .friend-search-results{min-height:86px}
.friends-page .friend-search-empty{min-height:86px;border-color:#cbd7e6;border-radius:14px;background:#f8fafc}
.friends-page .friend-result-row{border-color:var(--friends-line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(31,48,73,.04)}
.friends-page .friend-result-row:hover{border-color:#b8c6d9;box-shadow:0 10px 26px rgba(31,48,73,.08)}
.friends-page .friend-result-avatar{border-radius:50%;background:var(--friends-blue-soft);color:var(--friends-blue)}
.friends-page .friends-invite-box{gap:.65rem}
.friends-page .friends-invite-btns button,.friends-page #genInviteBtn{min-height:42px}
.friends-page .empty-state{border-color:#bbc8d8;border-radius:16px;background:rgba(255,255,255,.72)}
.friends-page .empty-state-icon{background:var(--friends-blue-soft);color:var(--friends-blue)}
.empty-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.75rem 1.25rem;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}
.empty-state-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:1.4rem;background:var(--accent-soft);color:var(--accent-strong);margin-bottom:.1rem;animation:check-pop 320ms var(--ease-premium)}
.empty-state h4{margin:0;font-size:1rem;font-weight:600;color:var(--text)}
.empty-state p{margin:0;max-width:34ch;font-size:.84rem;line-height:1.45}
.empty-state button{margin-top:.45rem}
@media(max-width:520px){
  .friends-item{flex-wrap:wrap;padding:.72rem}
  .friends-item-info{min-width:calc(100% - 3.2rem)}
  .friends-item-actions{width:100%;padding-top:.5rem;border-top:1px solid var(--border);margin-top:.15rem;justify-content:flex-end}
  .friends-item-actions button{flex:1}
  .friends-invite-btns{flex-direction:column}
  .friends-page{grid-template-columns:1fr;gap:.72rem}
  .friends-header{position:static;display:block;margin:0;padding:.2rem 0 .35rem;border:0;background:transparent}
  .friends-header h2{font-size:1.45rem}
  .friends-header .muted{font-size:.76rem;line-height:1.35}
  .friends-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;border:0;background:transparent;box-shadow:none;gap:.42rem}
  .friends-summary>div{min-width:0;display:grid;grid-template-columns:1fr;align-content:start;justify-items:start;gap:.42rem;padding:.65rem;border:1px solid var(--friends-line);border-radius:13px;background:#fff}
  .friends-summary>div+div::before{display:none}
  .friends-summary>div>span:last-child{width:100%}
  .friends-summary-icon{width:32px;height:32px}
  .friends-summary-icon svg{width:17px;height:17px}
  .friends-summary strong{width:100%;font-size:clamp(.86rem,3.5vw,1.05rem);letter-spacing:-.025em}
  .friends-summary small{font-size:.62rem;line-height:1.25;white-space:normal}
  .friends-page>.card{grid-column:1;padding:.95rem;border-radius:14px}
  .friends-page .friends-item{grid-template-columns:auto minmax(0,1fr);padding:.78rem}
  .friends-page .friends-item-info{min-width:0}
  .friends-page .friends-item-actions{grid-column:1/-1;border-top:1px solid var(--friends-line)}
}
svg.chart{width:100%;height:240px;max-height:280px;border-radius:var(--radius-sm);background:var(--surface);display:block}
.chart-shell{position:relative;width:100%;padding:0;overflow:hidden;content-visibility:auto;contain-intrinsic-size:240px}
.chart-legend{display:flex;flex-wrap:wrap;gap:.35rem .45rem;margin:.2rem 0 .45rem;align-items:center}
.chart-legend-item{display:inline-flex;align-items:center;gap:.35rem;min-height:24px;max-width:100%;padding:.22rem .55rem;border:1px solid #e6edf6;border-radius:13px;background:#fff;color:#102033;font-size:.75rem;line-height:1;white-space:normal}
.chart-legend-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}
.chart-tooltip{position:absolute;z-index:5;pointer-events:none;min-width:120px;max-width:200px;padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:#1f2937;color:#f9fafb;box-shadow:var(--shadow-md);font-size:.76rem;line-height:1.4;opacity:0;transform:translateY(4px);transition:opacity 130ms ease,transform 130ms ease;white-space:normal}
.chart-tooltip.visible{opacity:1;transform:translateY(0)}
/* ---- Interattivita' e animazioni grafici (2026-07-03) ------------------- */
/* Crosshair verticale che segue il mouse sul grafico (iniettato da chartShell,
   posizionato da bindChartTooltips). Colori gia' in palette. */
.chart-crosshair{position:absolute;top:0;width:1px;background:#c2ccd9;opacity:0;pointer-events:none;transition:opacity 120ms ease;z-index:2}
.chart-crosshair.visible{opacity:.9}
/* Pallino attivo sotto il cursore: cresce con transizione morbida */
svg.chart circle.chart-dot{transition:transform 170ms var(--ease-premium);transform-box:fill-box;transform-origin:center}
svg.chart circle.chart-dot.is-active{transform:scale(1.55)}
/* Donut: segmento a fuoco (hover diretto o via riga legenda), gli altri si attenuano */
.expense-donut-chart svg path[data-donut-seg]{transition:opacity 160ms ease,transform 220ms var(--ease-premium);transform-box:fill-box;transform-origin:center;cursor:pointer}
.expense-donut-chart svg:hover path[data-donut-seg]:not(:hover):not(.is-hot),
.expense-donut-chart svg.has-hot path[data-donut-seg]:not(.is-hot){opacity:.4}
.expense-donut-chart svg path[data-donut-seg]:hover,
.expense-donut-chart svg path[data-donut-seg].is-hot{opacity:1;transform:scale(1.045)}
.expense-donut-row{transition:background-color 150ms ease;border-radius:8px}
.expense-donut-row.is-hot{background:#f4f7fb}
/* Animazioni d'ingresso: applicate SOLO alla prima visita della vista
   (classe .chart-enter aggiunta da syncChartEntrance, mai sui re-render). */
@media (prefers-reduced-motion: no-preference){
  svg.chart-enter .chart-line-main{stroke-dasharray:1 1;stroke-dashoffset:1;animation:chart-line-draw 850ms cubic-bezier(.22,.61,.36,1) 120ms both}
  svg.chart-enter .chart-area-main{animation:chart-fade-in 620ms ease-out 380ms both}
  svg.chart-enter circle.chart-dot{animation:chart-dot-pop 320ms var(--ease-premium) both;animation-delay:var(--dot-delay,480ms)}
  svg.donut-chart.chart-enter path[data-donut-seg]{animation:donut-seg-pop 420ms var(--ease-premium) both;animation-delay:var(--seg-delay,0ms);transform-box:fill-box;transform-origin:center}
}
@keyframes chart-line-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes chart-fade-in{from{opacity:0}}
@keyframes chart-dot-pop{from{opacity:0;transform:scale(.3)}}
@keyframes donut-seg-pop{from{opacity:0;transform:scale(.82)}}
.header,.dashboard-primary,.dashboard-secondary-grid,.dashboard-scores,.grid-2,.grid-fixed,.metrics{content-visibility:auto;contain-intrinsic-size:200px}
.tabs{display:flex;flex-wrap:wrap;gap:.35rem;padding:.25rem;border-radius:var(--radius-sm);background:rgba(255,255,255,.58);border:1px solid rgba(229,231,235,.82);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.tabs button{background:transparent;color:var(--muted);border-color:transparent;box-shadow:none;flex:1 1 0;min-height:36px;font-size:.82rem;border-radius:calc(var(--radius-sm) - 2px)}
.tabs button.active{background:var(--surface);color:var(--text);border-color:rgba(229,231,235,.9);box-shadow:var(--shadow-sm);font-weight:600}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 50% 0%,rgba(37,99,235,.045),transparent 34%),var(--bg)}
.auth-card,.card,.metric{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.auth-card{width:100%;max-width:440px;padding:1.75rem;border-radius:var(--radius-md);animation:rise-in 260ms ease}
.auth-card h1{margin:.5rem 0 .3rem;font-size:clamp(1.5rem,3.5vw,1.9rem);line-height:1.1;letter-spacing:-.04em;font-weight:700}
.auth-brand-block{display:grid;justify-items:center;gap:.15rem}
.auth-brand{display:flex;justify-content:center;margin-bottom:.15rem}
.auth-brand-logo{width:min(100%,200px);height:auto;display:block}
.auth-copy{display:grid;gap:.06rem;text-align:center;margin-top:.35rem}
.auth-copy .muted{max-width:30ch;margin:0 auto}
.auth-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem;margin:.85rem 0 .55rem}
.auth-meta span{display:inline-flex;align-items:center;min-height:24px;padding:.2rem .55rem;border-radius:4px;background:var(--bg);border:1px solid var(--border);color:var(--muted);font-size:.7rem;font-weight:600;letter-spacing:.04em}
.eyebrow{display:inline-flex;align-items:center;min-height:28px;padding:.28rem .65rem;border-radius:4px;background:var(--accent-soft);color:var(--accent-strong);font-size:.75rem;font-weight:600}
.auth-panels{margin-top:.3rem}
.auth-footer-note{margin-top:.85rem;text-align:center;color:var(--muted);font-size:.78rem}
.legal-card{max-width:900px;display:grid;gap:.9rem}
.legal-topbar{display:flex;align-items:center;justify-content:space-between;gap:.9rem}
.legal-brand-inline{justify-content:flex-end;margin:0}
.inline-link,.footer-link{appearance:none;border:0;background:transparent;color:var(--accent);font:inherit;font-weight:500;padding:0;cursor:pointer}
.inline-link:hover,.footer-link:hover{color:var(--accent-strong)}
.inline-link{text-decoration:underline;text-underline-offset:.15rem}
.legal-page{display:grid;gap:.9rem}
.legal-eyebrow{display:inline-flex;align-items:center;min-height:26px;width:fit-content;padding:.2rem .6rem;border-radius:4px;background:var(--accent-soft);color:var(--accent-strong);font-size:.72rem;font-weight:600;letter-spacing:.04em}
.legal-header{display:grid;gap:.25rem}
.legal-header h2{margin:0;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.05;font-weight:700;letter-spacing:-.04em}
.legal-header p{margin:0;max-width:68ch}
.legal-sections{display:grid;gap:.75rem}
.legal-section{padding:1rem;border-radius:var(--radius-md)}
.legal-section h3{margin:0 0 .45rem;font-size:.95rem}
.legal-section p{margin:0;color:var(--muted);line-height:1.65}
.legal-section p+p{margin-top:.65rem}
.global-footer{display:flex;align-items:center;justify-content:space-between;gap:.8rem 1.2rem;flex-wrap:wrap;padding:.8rem 0 .1rem}
.public-footer{margin-top:.15rem;border-top:1px solid var(--border)}
.global-footer-copy{display:grid;gap:.1rem;min-width:0}
.global-footer-copy strong{font-size:.85rem}
.global-footer-copy .muted{font-size:.75rem}
.global-footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem .85rem}
.split-header{display:grid;grid-template-columns:1fr auto;align-items:start;gap:.75rem}

@media(hover:hover) and (pointer:fine){
  .card:not(.skeleton-block):not(.skeleton-row):hover,
  .metric:hover,
  .dashboard-primary:hover,
  .dashboard-cluster:hover,
  .score-card:hover,
  .auth-card:hover{
    border-color:var(--border-strong);
    box-shadow:var(--shadow-sm);
  }
  .card-section:hover{background:var(--surface)}
  .quick-chip:hover,
  .entity-row:hover{box-shadow:var(--shadow-sm)}
}

@media(pointer:coarse){
  button,.transaction-row,.entity-row,.quick-chip{touch-action:manipulation}
  button:active,.transaction-row:active,.entity-row:active,.quick-chip:active{transform:scale(.985)}
}

/* Sidebar fluida nella zona 721-1100px: recupera spazio per il contenuto senza spostare nulla */
@media(min-width:721px) and (max-width:1100px){:root{--sidebar-w:clamp(200px,15vw + 75px,240px)}}

@media(max-width:1100px){
  .metrics,.grid-2,.grid-fixed,.dashboard-customization-shell{grid-template-columns:1fr}
  .dashboard-scores{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-hero-grid,.dashboard-kpi-grid,.dashboard-primary-grid,.dashboard-secondary-grid,.dashboard-analytics-grid,.dashboard-decision-hero{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-optional-card.size-sm,.dashboard-optional-card.size-md{grid-column:span 6}
  .dashboard-optional-card.size-lg{grid-column:1/-1}
  .onboarding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .onboarding-panel-soft{grid-column:1/-1}
  .dashboard-decision-hero .dashboard-human-card{grid-column:1/-1}
  .dashboard-flow-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .main{padding:.9rem 1rem}
  .section-block-heading{padding-inline:0}
}

@media(max-width:720px){
  :root{--radius-lg:10px;--radius-md:9px;--radius-sm:7px;--dashboard-gap:.6rem;--dashboard-card-radius:12px;--dashboard-card-padding:.85rem}
  html,body{min-height:100%;overflow-x:hidden}
  body{overscroll-behavior-y:auto}
  .shell{grid-template-columns:1fr}
  .auth-shell{padding:.75rem}
  .auth-card,.card,.metric{border-radius:var(--radius-md)}
  .auth-card{padding:1.1rem}
  .legal-card{max-width:100%;gap:.8rem}
  .legal-topbar,.global-footer{align-items:flex-start}
  .global-footer{padding-top:.65rem}
  .legal-section{padding:.9rem}
  .sidebar,.main,.card,.metric,.auth-card{padding-left:.85rem;padding-right:.85rem}
  .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.36);opacity:0;pointer-events:none;transition:opacity 220ms var(--ease-premium),backdrop-filter 220ms var(--ease-premium);z-index:34;border:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}
  .shell.nav-open .sidebar-backdrop{opacity:1;pointer-events:auto}
  .shell.nav-open .sidebar-backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:40;width:min(86vw,292px);height:100dvh;max-height:100dvh;min-height:100vh;padding:.85rem .75rem max(.85rem,env(safe-area-inset-bottom));border-right:1px solid rgba(255,255,255,.06);border-bottom:0;box-shadow:none;transform:translate3d(-104%,0,0);transition:transform 260ms var(--ease-premium),box-shadow 260ms var(--ease-premium);will-change:transform}
  .shell.nav-open .sidebar{transform:translate3d(0,0,0);box-shadow:0 24px 80px rgba(15,23,42,.28)}
  .shell.nav-open .mobile-nav-toggle span:nth-child(1){transform:translateY(4px) rotate(45deg)}
  .shell.nav-open .mobile-nav-toggle span:nth-child(2){opacity:0;transform:scaleX(.2)}
  .shell.nav-open .mobile-nav-toggle span:nth-child(3){transform:translateY(-4px) rotate(-45deg)}
  .mobile-topbar{display:flex;align-items:center;gap:.7rem;position:sticky;top:0;z-index:42;margin:-.75rem -.75rem .1rem;padding:max(.45rem,env(safe-area-inset-top)) .75rem .45rem;background:rgba(245,245,245,.96);backdrop-filter:blur(8px)}
  .mobile-notification-btn{display:inline-flex}
  .nav{grid-template-columns:1fr;gap:.2rem;padding:0;border:0;background:transparent;box-shadow:none}
  .nav button{min-height:46px;font-size:.8rem}
  .metrics,.dashboard-scores,.dashboard-metrics-compact,.dashboard-hero-grid,.dashboard-kpi-grid,.dashboard-flow-strip,.dashboard-primary-grid,.dashboard-secondary-grid,.dashboard-analytics-grid,.transaction-metrics-grid,.networth-status-main-grid,.networth-status-secondary-grid,.dashboard-decision-hero,.notification-summary-grid{grid-template-columns:1fr}
  .onboarding-guide-head,.onboarding-actions{align-items:stretch;flex-direction:column}
  .onboarding-steps,.onboarding-grid{grid-template-columns:1fr}
  .onboarding-panel-soft{grid-column:auto}
  .onboarding-progress{align-self:flex-start}
  .onboarding-tour{left:.75rem;right:.75rem;bottom:.75rem;width:auto;padding:.88rem;border-radius:18px}
  .onboarding-tour-nav{grid-template-columns:1fr 1fr 1fr}
  .transaction-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .notification-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .notification-row{grid-template-columns:auto minmax(0,1fr);align-items:start}
  .notification-actions{grid-column:2;justify-content:flex-start}
  .debt-action-head{display:grid;gap:.6rem}
  .debt-action-residual{justify-items:start;white-space:normal}
  .debt-action-grid{grid-template-columns:1fr}
  .debt-event-row{grid-template-columns:1fr}
  .debt-event-side{justify-items:start}
  .movement-quick-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .movement-quick-menu button{min-width:0;width:100%}
  .transaction-filter-main{grid-template-columns:1fr}
  .transaction-filter-actions,.transaction-filter-secondary-actions{justify-content:stretch}
  .transaction-filter-actions button,.transaction-filter-secondary-actions button{width:100%}
  .transaction-filter-advanced-grid{grid-template-columns:1fr}
  .dashboard-decision-hero .dashboard-human-card{grid-column:auto}
  .dashboard-optional-stack{grid-template-columns:1fr}
  .dashboard-optional-card,.dashboard-optional-benchmarks,.dashboard-optional-debt-credit-overview,.dashboard-optional-expense-categories-chart,.dashboard-optional-wealth-composite,.dashboard-optional-monthly-flow,.dashboard-optional-cashflow-trend{grid-column:1/-1}
  .dashboard-goals-grid,.dashboard-benchmarks-grid,.dashboard-alerts-grid{grid-template-columns:1fr}
  .dashboard-optional-card,.dashboard-optional-card.size-sm,.dashboard-optional-card.size-md,.dashboard-optional-card.size-lg{grid-column:1/-1}
  .dashboard-embedded-chart{height:auto;min-height:0;max-height:none}
  .dashboard-embedded-chart svg.chart{height:auto;min-height:0;max-height:none}
  .main{grid-column:1;padding:.75rem;gap:.7rem}
  .split-header{grid-template-columns:1fr;align-items:start;gap:.45rem}
  .header{padding-top:.05rem}
  .header h2{font-size:1.3rem}
  .header .row-actions{width:100%;display:grid;grid-template-columns:1fr}
  .header .row-actions button{width:100%}
  .metric .value{font-size:1.15rem}
  .transaction-entry-shell{gap:.7rem}
  .app-toast{bottom:.85rem;min-width:calc(100vw - 1.2rem);max-width:calc(100vw - 1.2rem)}
  .skeleton-grid-2{grid-template-columns:1fr}
  .entity-row{padding:.72rem .8rem;gap:.55rem;grid-template-columns:auto minmax(0,1fr)}
  .entity-row-copy strong{font-size:.88rem}
  .entity-row-subtitle{font-size:.74rem}
  .entity-row-value{grid-column:2;text-align:left;justify-self:start;max-width:100%;font-size:.88rem;overflow-wrap:anywhere}
  .category-item{grid-template-columns:1fr;justify-items:stretch}
  .category-item-side{justify-items:start;min-width:0}
  .category-item-meta,.category-item .row-actions{justify-content:flex-start}
  .month-close-board{grid-template-columns:1fr}
  .month-close-summary{grid-template-columns:1fr 1fr}
  .month-close-historical-value{align-items:flex-start;flex-direction:column}
  .month-close-value-grid{grid-template-columns:1fr}
  .transaction-history-layout{grid-template-columns:1fr;gap:.65rem}
  .transaction-history-layout.has-selection .transaction-history-list-card{display:none}
  .compact-crud-shell{grid-template-columns:1fr}
  .debt-columns,.debt-summary-grid{grid-template-columns:1fr}
  .debt-columns{height:auto;grid-template-rows:auto;align-items:start}
  .debt-column-card{overflow:visible}
  .debt-column-list{overflow:visible;padding-right:0}
  .debt-summary-grid.has-selection{display:none}
  .debt-crud-shell.has-selection>.compact-form-card{display:none}
  .investments-shell.has-selection>.card:first-child{display:none}
  .debt-summary-grid.is-creating{display:none}
  .debt-crud-shell.is-creating>.compact-list-shell{display:none}
  .compact-list-shell{grid-template-columns:1fr;gap:.65rem}
  .compact-list-shell.has-selection .compact-list-card{display:none}
  .compact-detail-panel{display:none}
  .compact-detail-panel.visible{display:block}
  .transaction-history-detail-panel{display:none}
  .transaction-history-detail-panel.visible{display:block}
  .transaction-detail-back{display:inline-flex}
  .transaction-detail-card{padding:.85rem}
  .transaction-mobile-badge{justify-self:start}
  .auth-meta{margin:.75rem 0 .5rem}
  .auth-meta span{font-size:.66rem}
  .dashboard-value-card{min-height:96px}
  .score-card{min-height:150px}
  .chart-card-header{flex-direction:column;align-items:flex-start}
  .chart-card-note{min-height:24px}
  .chart-card{padding:.85rem}
  .chart-kpi-strip{grid-template-columns:1fr}
  .score-ring,.score-ring svg{width:90px;height:90px}
  svg.chart{height:220px}
  .chart-shell{padding-left:.65rem}
  .form-grid{gap:.72rem}
  .quick-choice-row{gap:.35rem}
  .transaction-row{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.6rem;padding:.62rem .7rem}
  .transaction-row-side{grid-column:2;justify-items:start;max-width:100%}
  .transaction-row-icon{width:36px;height:36px;font-size:.95rem}
  .transaction-row-copy strong{font-size:.88rem}
  .transaction-row-meta{font-size:.72rem}
  .transaction-row-date{font-size:.68rem}
  .transaction-row-amount{max-width:100%;font-size:.88rem;overflow-wrap:anywhere}
  .quick-chip{min-height:40px;padding:.4rem .65rem;font-size:.72rem}
  input,select,textarea,button{min-height:48px;font-size:16px}
  textarea{min-height:90px}
  .inline-field{grid-template-columns:1fr}
  .compact-btn{width:100%}
  .row-actions{flex-direction:column;align-items:stretch}
  .row-actions button{width:100%}
  .debt-position-option{grid-template-columns:auto minmax(0,1fr);align-items:start}
  .debt-position-kind{grid-column:2;justify-self:start}
  .form-grid>.row-actions{position:sticky;bottom:0;z-index:4;margin:0 -.15rem -.15rem;padding:.65rem .15rem .15rem;background:linear-gradient(180deg,rgba(245,245,245,0),rgba(245,245,245,.98) 22%);backdrop-filter:blur(6px)}
  .card,.metric,.dashboard-primary,.dashboard-cluster{scroll-margin-top:.65rem}
  .transaction-detail-field{grid-template-columns:1fr;gap:.22rem;padding:.7rem .78rem}
  .transaction-detail-amount{max-width:100%;overflow-wrap:anywhere}
  .transaction-detail-field strong{text-align:left;max-width:100%;overflow-wrap:anywhere}
  .transaction-detail-actions{grid-template-columns:1fr;gap:.5rem}
  .table-wrap{overflow-x:auto;overflow-y:hidden;margin:0;padding:0}
  .admin-users-table th:nth-child(3),.admin-users-table td:nth-child(3){position:static;min-width:220px;max-width:none;background:transparent;box-shadow:none}
  table{min-width:min(640px,100%)}
  .dashboard-benchmark-table-wrap{border:1px solid rgba(229,231,235,.9);background:var(--surface);box-shadow:var(--shadow-sm)}
  .dashboard-benchmark-table-scroll{overflow-x:auto;overflow-y:hidden}
  .dashboard-benchmark-table{min-width:min(520px,100%)}
  .badge{min-height:22px;font-size:.65rem}
  .impersonation-banner{align-items:stretch;flex-direction:column}
  .impersonation-banner .row-actions,.impersonation-banner .row-actions button{width:100%}
}

@media(max-width:520px){
  .tabs{display:grid}
  .legal-topbar{display:grid;justify-items:start}
  .tabs button{width:100%}
  .movement-quick-menu{grid-template-columns:1fr}
  .onboarding-step{padding:.65rem}
  .onboarding-panel{padding:.72rem}
  .onboarding-tour-nav{grid-template-columns:1fr}
  .onboarding-tour-nav button:nth-child(2):last-child{grid-column:auto}
  .metrics,.dashboard-scores,.dashboard-hero-grid,.dashboard-kpi-grid,.dashboard-flow-strip,.dashboard-primary-grid,.dashboard-secondary-grid,.dashboard-analytics-grid,.dashboard-metrics-compact,.dashboard-mini-grid,.dashboard-goals-grid,.dashboard-benchmarks-grid,.dashboard-alerts-grid,.dashboard-optional-row,.transaction-metrics-grid,.grid-2,.grid-fixed,.notification-summary-grid{grid-template-columns:1fr}
  .legal-header h2{font-size:1.65rem}
  .global-footer-links{gap:.5rem .75rem}
  .dashboard-value-card.primary{min-height:86px}
  .dashboard-value-card.hero{min-height:96px;padding:.78rem}
  .score-card{grid-template-columns:1fr;justify-items:center;text-align:center;min-height:auto}
  .score-card-body{text-align:center}
  .main{padding:.6rem;gap:.55rem}
  .chart-card{padding:.68rem}
  .chart-kpi-secondary{grid-template-columns:1fr}
  .header h2{font-size:1.22rem}
  .dashboard-value-card .value,.dashboard-mini-card .value{font-size:1rem}
  .section-block-heading h3{font-size:.875rem}
  .sidebar,.auth-card,.card,.metric,.userbox{backdrop-filter:none;-webkit-backdrop-filter:none}
  .brand-block{gap:.55rem}
  .mobile-topbar{gap:.6rem;padding-top:.05rem}
  .auth-brand-logo{width:min(100%,170px)}
  .brand-logo{width:28px;height:28px}
  button,input,select,textarea{border-radius:var(--radius-sm)}
  .metrics,.grid-2,.grid-fixed{gap:.5rem}
  .metric,.card{padding:.72rem}
  .form-grid>.row-actions{position:static;padding-top:.05rem;background:transparent;border-top:0}
  .score-card{min-height:auto}
  .score-ring,.score-ring svg{width:96px;height:96px}
  .expense-donut-card{grid-template-columns:1fr;justify-items:center}
  .expense-donut-legend{width:100%}
  .debt-credit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  svg.chart{height:200px}
  .chart-shell{padding-left:.7rem}
  .transaction-entry-shell{gap:.55rem}
  .transaction-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .notification-actions{grid-column:1/-1}
  .notification-actions button{width:100%}
  .quick-choice-row{gap:.3rem}
  td{grid-template-columns:1fr;gap:.25rem;padding:.65rem .75rem}
  td::before{font-size:.68rem}
}

@media(max-width:430px){
  body{font-size:13.5px}
  .main{padding:.55rem;gap:.5rem}
  .mobile-topbar{margin:-.55rem -.55rem .05rem;padding:max(.42rem,env(safe-area-inset-top)) .55rem .42rem}
  .header h2{font-size:1.14rem;line-height:1.15}
  .muted{font-size:.82rem;line-height:1.4}
  .card,.metric{padding:.68rem}
  .metric .value,.dashboard-value-card .value,.dashboard-mini-card .value{font-size:1rem;line-height:1.05}
  .dashboard-value-card.hero,.dashboard-value-card.primary{min-height:auto}
  .dashboard-human-card{min-height:auto;padding:.78rem}
  .dashboard-optional-card{padding:.78rem;gap:.58rem}
  .dashboard-embedded-chart svg.chart{height:auto;max-height:none}
  .dashboard-goal-card,.dashboard-benchmark-card,.dashboard-alert-card,.dashboard-insight-card{padding:.62rem .68rem}
  .dashboard-benchmark-table-wrap{border:1px solid rgba(229,231,235,.9);background:var(--surface)}
  .dashboard-benchmark-table-scroll{overflow-x:auto;overflow-y:hidden}
  .dashboard-benchmark-table{min-width:min(500px,100%)}
  .dashboard-month-row{grid-template-columns:34px minmax(0,1fr) 12px;gap:.32rem}
  .dashboard-month-value{font-size:.92rem}
  .dashboard-composite-grid,.dashboard-forecast-grid{grid-template-columns:1fr}
  .debt-credit-kpis{grid-template-columns:1fr}
  .dashboard-composite-main strong,.dashboard-forecast-main strong{font-size:1.45rem}
  .month-close-summary{grid-template-columns:1fr}
  .month-close-chip{align-items:flex-start;flex-direction:column}
  .transaction-row{padding:.58rem .62rem;gap:.5rem}
  .transaction-row-icon,.entity-row-icon{width:34px;height:34px;font-size:.92rem}
  .transaction-row-copy strong,.entity-row-copy strong{font-size:.86rem}
  .transaction-row-meta,.transaction-row-date,.entity-row-subtitle{font-size:.7rem}
  .transaction-detail-card{padding:.72rem}
  .transaction-detail-icon{width:52px;height:52px;font-size:1.35rem}
  .transaction-detail-amount{font-size:1.6rem;line-height:1.05}
  .transaction-detail-actions{gap:.42rem}
  .quick-chip{min-height:38px;padding:.38rem .58rem}
  .password-field{grid-template-columns:1fr}
  .password-toggle{width:100%}
  .chart-shell{padding-left:.45rem}
  svg.chart{height:188px}
  .app-toast{left:.55rem;right:.55rem;bottom:max(.55rem,env(safe-area-inset-bottom));min-width:0;max-width:none;transform:none;animation:none}
  .auth-shell{padding:.55rem}
}

/* ── Broadcast banner ─────────────────────────────────────────────────────── */
.broadcast-banner{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-radius:10px;margin-bottom:.75rem;border:1px solid transparent;font-size:.93rem}
.broadcast-banner--info{background:#e8f4fd;border-color:#b3d9f5;color:#0c4a78}
.broadcast-banner--update{background:#e8f6ec;border-color:#a8d9b5;color:#0d4a22}
.broadcast-banner--warning{background:#fef9e7;border-color:#f5d97a;color:#7a5000}
.broadcast-banner--maintenance{background:#f4f0fd;border-color:#c9b8f5;color:#3d1f7a}
.broadcast-banner-content{flex:1;display:flex;flex-wrap:wrap;gap:.25rem .5rem}
.broadcast-banner-content strong{font-weight:600}
.broadcast-dismiss{background:none;border:none;cursor:pointer;font-size:1.15rem;line-height:1;padding:0 .15rem;opacity:.55;color:inherit;flex-shrink:0}
.broadcast-dismiss:hover{opacity:1}

/* ── Poll bar chart ───────────────────────────────────────────────────────── */
.poll-bar-chart{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}
.poll-bar-row{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:.5rem}
.poll-bar-label{font-size:.88rem;color:var(--text-muted,#7b8aa0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.poll-bar-track{height:10px;background:var(--border,#dde3ec);border-radius:6px;overflow:hidden}
.poll-bar-fill{height:100%;border-radius:6px;transition:width .35s ease}
.poll-bar-meta{font-size:.82rem;color:var(--text-muted,#7b8aa0);white-space:nowrap;text-align:right;min-width:5.5rem}
.poll-bar-total{margin-top:.25rem;text-align:right}

/* ── Poll user card ───────────────────────────────────────────────────────── */
.poll-user-card{margin-bottom:0}
.poll-options-btns{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.poll-option-btn{border:1px solid var(--border,#dde3ec)!important;font-size:.93rem}
.poll-option-btn.poll-voting{opacity:.55;pointer-events:none}
.poll-option-btn:hover:not(:disabled){border-color:var(--accent,#1f6feb)!important;color:var(--accent,#1f6feb)}

/* ── Comms tab toggle ─────────────────────────────────────────────────────── */
.comms-tab-toggle{display:flex;gap:.25rem;background:var(--surface-alt,#f3f6fb);border-radius:10px;padding:.2rem;width:fit-content;margin-bottom:1rem}
.comms-tab-toggle button{border:none;background:none;border-radius:8px;padding:.35rem .9rem;font-size:.9rem;cursor:pointer;color:var(--text-muted,#7b8aa0);font-weight:500;transition:background .18s,color .18s}
.comms-tab-toggle button.active{background:#fff;color:var(--text,#102033);box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* ── Poll admin cards ─────────────────────────────────────────────────────── */
.poll-card{border:1px solid var(--border,#dde3ec);border-radius:10px;padding:1rem;margin-bottom:.75rem}
.poll-card--closed{opacity:.8}
.poll-card-header{display:flex;align-items:flex-start;gap:.5rem;flex-wrap:wrap}
.poll-card-header strong{flex:1;min-width:0}
.poll-card-meta{margin-top:.25rem;margin-bottom:.5rem}
.badge-broadcast{padding:.2em .6em;border-radius:6px;font-size:.78rem;font-weight:600;letter-spacing:.02em}
.badge-broadcast--info{background:#dbeeff;color:#0c4a78}
.badge-broadcast--update{background:#dcf5e4;color:#0d4a22}
.badge-broadcast--warning{background:#fef5cd;color:#7a5000}
.badge-broadcast--maintenance{background:#ede8fc;color:#3d1f7a}
.badge-closed{background:var(--surface-alt,#f3f6fb);color:var(--text-muted,#7b8aa0);padding:.2em .6em;border-radius:6px;font-size:.78rem;font-weight:600}
.comms-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}
.comms-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:500}
.comms-form input,.comms-form textarea,.comms-form select{width:100%;font-size:.93rem}
.comms-table{font-size:.88rem}
.poll-options-list{display:flex;flex-direction:column;gap:.4rem;margin:.25rem 0}
.poll-option-row{display:flex;gap:.4rem;align-items:center}
.poll-option-row input{flex:1}
.icon-btn{width:2rem;height:2rem;min-height:0;padding:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}

/* ── Comunicazioni: responsive ───────────────────────────────────────────────
   1100 px → griglia già collassata a 1 col, tab toggle si allarga
   720 px  → tasti poll verticali, intestazione poll card mantiene riga
   520 px  → bar chart si articola su 2 righe, colonna data nascosta
   ────────────────────────────────────────────────────────────────────────── */
@media(max-width:1100px){
  .comms-tab-toggle{width:100%}
  .comms-tab-toggle button{flex:1;text-align:center}
}
@media(max-width:720px){
  /* Pulsanti Chiudi/Elimina nel header della poll-card restano in riga */
  .poll-card-header .row-actions{flex-direction:row;flex-wrap:wrap;align-items:center;width:auto;align-self:flex-start}
  .poll-card-header .row-actions button{width:auto;min-width:0}
  /* La tabella broadcast ha poche colonne: può stare sotto i 640px */
  .comms-table table{min-width:320px}
  /* Opzioni di voto sondaggio: impilate verticalmente su mobile */
  .poll-options-btns{flex-direction:column}
  .poll-option-btn{width:100%!important;text-align:left}
  /* Etichette barre: permettiamo il wrap invece del troncamento */
  .poll-bar-label{white-space:normal;line-height:1.3}
  /* Banner un po' più compatto */
  .broadcast-banner{padding:.65rem .8rem;font-size:.88rem;gap:.5rem}
  /* Form comunicazioni: row-actions sticky come il resto dei form */
  .comms-form .row-actions{position:sticky;bottom:0;z-index:4;margin:0 -.15rem -.15rem;padding:.65rem .15rem .15rem;background:linear-gradient(180deg,rgba(245,245,245,0),rgba(245,245,245,.98) 22%);backdrop-filter:blur(6px)}
  /* Bottone dismiss: area touch generosa senza min-height globale */
  .broadcast-dismiss{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}
}
@media(max-width:520px){
  /* Bar chart: etichetta sopra, barra + percentuale nella riga sotto */
  .poll-bar-row{grid-template-columns:1fr auto;grid-template-rows:auto auto;row-gap:.2rem}
  .poll-bar-label{grid-column:1/-1;grid-row:1}
  .poll-bar-track{grid-column:1;grid-row:2}
  .poll-bar-meta{grid-column:2;grid-row:2;min-width:4.5rem}
  /* Nasconde la colonna data (3ª) nella tabella broadcast su schermi stretti */
  .comms-table th:nth-child(3),.comms-table td:nth-child(3){display:none}
  /* Card poll: header in colonna su schermi molto piccoli */
  .poll-card-header{flex-direction:column;gap:.4rem}
  .poll-card-header .row-actions{flex-direction:row;width:100%}
  .poll-card-header .row-actions button{flex:1}
  /* Broadcast banner: testo e dismiss su righe separate */
  .broadcast-banner{flex-direction:column;gap:.4rem}
  .broadcast-dismiss{align-self:flex-end;margin-top:-.4rem}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  button,input,select,textarea,.card,.metric,.dashboard-primary,.dashboard-cluster,.score-card,.mini,.userbox,.auth-card,svg.chart,td,th,.chart-tooltip,.main.view-enter,.main.view-enter *,.sidebar,.sidebar-backdrop,.mobile-nav-toggle span,.quick-add-menu{transition:none!important;animation:none!important}
}

/* ── Setup shell ───────────────────────────────────────────────────── */
.setup-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:var(--bg);padding:2.5rem 1rem}
.setup-shell__brand{display:flex;align-items:center;gap:.75rem;margin-bottom:2.5rem;font-size:1.2rem;font-weight:800;letter-spacing:-.03em;color:var(--text)}
.setup-shell__logo{width:36px;height:36px;object-fit:contain}
.setup-shell__body{width:100%;max-width:880px}

/* ── Profile selection ─────────────────────────────────────────────── */
.setup-profile{display:flex;flex-direction:column;gap:2rem}
.setup-profile__head{text-align:center}
.setup-profile__head h1{font-size:clamp(1.5rem,4vw,2rem);font-weight:800;letter-spacing:-.04em;margin:0 0 .5rem}
.profile-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.profile-selection-card{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;border:2px solid var(--border);border-radius:20px;padding:2rem;cursor:pointer;transition:transform .2s var(--ease-premium),box-shadow .2s var(--ease-premium),border-color .2s;background:var(--surface);text-align:left;width:100%}
.profile-selection-card:hover,.profile-selection-card:focus-visible{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--accent);outline:none}
.profile-card__icon{width:52px;height:52px;border-radius:14px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.profile-card__icon svg{width:28px;height:28px}
.profile-card__icon--accent{background:linear-gradient(135deg,var(--accent),#38bdf8);color:#fff}
.profile-card__title{font-size:1.25rem;font-weight:800;letter-spacing:-.03em;display:flex;align-items:center;gap:.5rem}
.profile-card__badge{font-size:.72rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.profile-card__sub{font-size:.875rem;color:var(--muted);margin-top:-.25rem}
.profile-card__features{list-style:none;padding:0;margin:.25rem 0 .5rem;display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;color:var(--text)}
.profile-card__features li::before{content:"✓ ";color:var(--wealth);font-weight:700;margin-right:.3rem}
.profile-card__cta{display:block;width:100%;padding:.7rem 1rem;border-radius:10px;background:var(--surface-soft);color:var(--text);font-weight:600;text-align:center;border:1.5px solid var(--border);cursor:pointer;font-size:.9rem;margin-top:auto;transition:background .15s,border-color .15s,color .15s}
.profile-selection-card:hover .profile-card__cta{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.profile-card__cta--primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.profile-selection-card:hover .profile-card__cta--primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}

/* ── Onboarding setup ──────────────────────────────────────────────── */
.setup-onboarding{display:flex;flex-direction:column;gap:2rem}
.setup-onboarding__head{text-align:center}
.setup-onboarding__head h1{font-size:clamp(1.5rem,4vw,2rem);font-weight:800;letter-spacing:-.04em;margin:0 0 .5rem}
.setup-steps{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.25rem}
.setup-step{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--muted)}
.setup-step.is-active{color:var(--accent)}
.setup-step span{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.82rem}
.setup-step.is-active span{background:linear-gradient(135deg,var(--accent),#38bdf8);color:#fff;box-shadow:0 4px 12px rgba(37,99,235,.25)}
.setup-step-divider{width:32px;height:2px;background:var(--border);border-radius:1px}
.setup-onboarding__form{display:flex;flex-direction:column;gap:1rem}
.setup-onboarding__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
.setup-onboarding__panel{min-width:0;margin:0;padding:1.25rem 1.25rem 1.5rem;border:1.5px solid var(--border);border-radius:18px;background:var(--surface);display:grid;gap:.75rem;box-shadow:var(--shadow-sm)}
.setup-onboarding__panel legend{font-weight:700;font-size:.875rem;padding:0 .25rem;color:var(--text)}
.setup-onboarding__actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.25rem}
.setup-onboarding__actions button{padding:.75rem 2rem;font-size:1rem}

@media(max-width:640px){
  .profile-cards,.setup-onboarding__grid{grid-template-columns:1fr}
  .setup-shell{padding:1.25rem .75rem}
  .setup-onboarding__actions{flex-direction:column;align-items:stretch}
  .setup-onboarding__actions button{width:100%}
}
/* — Quick-add FAB globale: nuovo movimento da qualsiasi vista — */
.quick-add{position:fixed;right:1.1rem;bottom:1.1rem;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:.55rem}
.quick-add-fab{width:52px;height:52px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#3b82f6,var(--accent));color:#fff;border:none;box-shadow:0 10px 24px rgba(37,99,235,.32);transition:transform 190ms var(--ease-premium),box-shadow 190ms var(--ease-premium)}
.quick-add-fab svg{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;transition:transform 190ms var(--ease-premium)}
.quick-add-fab:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(37,99,235,.4)}
.quick-add.open .quick-add-fab svg{transform:rotate(45deg)}
.quick-add-menu{display:grid;gap:.45rem;transform-origin:bottom right;animation:menu-panel-in 180ms var(--ease-premium, ease)}
.quick-add-option{display:flex;align-items:center;gap:.55rem;min-height:44px;padding:.55rem .95rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow-md)}
.quick-add-option:hover{border-color:var(--border-strong);transform:translateY(-1px)}
.quick-add-option:active{transform:translateY(0) scale(.985)}
.quick-add-option-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;font-size:.85rem;font-weight:700}
.quick-add-option.expense .quick-add-option-icon{background:rgba(220,38,38,.12);color:var(--danger)}
.quick-add-option.income .quick-add-option-icon{background:rgba(5,150,105,.12);color:var(--success)}
@media(max-width:720px){
  .quick-add{right:.9rem;bottom:calc(.9rem + env(safe-area-inset-bottom, 0px))}
  .quick-add-fab{width:56px;height:56px}
}
@media(prefers-reduced-motion:reduce){
  .quick-add-fab,.quick-add-fab svg,.quick-add-option{transition:none}
  .quick-add-menu{animation:none}
}

/* Assistente AI: chat fintech responsive, ottimizzata per touch e desktop. */
.assistant-widget{position:fixed;left:calc(var(--sidebar-w) + 1.2rem);bottom:1.2rem;z-index:75;display:flex;flex-direction:column;align-items:flex-start;gap:0}
.assistant-widget.open .assistant-fab{display:none}
.assistant-fab{
  position:relative;width:56px;height:56px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;
  background:#155eef;color:#fff;border:1px solid rgba(255,255,255,.28);
  box-shadow:0 12px 28px rgba(21,94,239,.3);
  transition:transform 180ms var(--ease-premium),box-shadow 180ms var(--ease-premium),background-color 180ms ease
}
.assistant-fab::after{content:'';position:absolute;right:1px;top:1px;width:11px;height:11px;border-radius:50%;background:#10b981;border:2px solid #fff;box-shadow:0 0 0 2px rgba(16,185,129,.16)}
.assistant-fab svg{width:1.45rem;height:1.45rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.assistant-fab:hover{background:#0f4fcf;transform:translateY(-2px);box-shadow:0 16px 34px rgba(21,94,239,.34)}
.assistant-fab:active{transform:translateY(0) scale(.96)}
.assistant-panel{
  width:min(432px,calc(100vw - 2.4rem));height:min(680px,calc(100dvh - 2.4rem));min-height:min(460px,calc(100dvh - 2.4rem));max-height:none;
  display:flex;flex-direction:column;overflow:hidden;
  background:#edf3f8;border:1px solid #d8e1ea;border-radius:14px;
  box-shadow:0 24px 70px rgba(15,23,42,.22),0 4px 16px rgba(15,23,42,.09);
  animation:assistant-panel-in 220ms var(--ease-premium,ease);transform-origin:bottom left
}
.assistant-panel-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:68px;padding:.72rem .8rem .72rem .9rem;background:#fff;border-bottom:1px solid #dfe7ef}
.assistant-panel-brand{min-width:0;display:flex;align-items:center;gap:.7rem}
.assistant-panel-identity{min-width:0;display:grid;gap:.08rem}
.assistant-panel-identity strong{font-size:.98rem;line-height:1.25;color:#111827}
.assistant-panel-identity>span{display:flex;align-items:center;gap:.32rem;color:#64748b;font-size:.75rem;font-weight:600}
.assistant-panel-identity>span i{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.1)}
.assistant-avatar{
  position:relative;flex:0 0 auto;width:30px;height:30px;display:inline-grid;place-items:center;border-radius:9px;
  background:#155eef;color:#fff;border:1px solid rgba(255,255,255,.86);box-shadow:0 2px 8px rgba(21,94,239,.22);
  font-size:.75rem;font-weight:800;line-height:1
}
.assistant-avatar>i{position:absolute;right:-2px;bottom:-2px;width:8px;height:8px;border-radius:50%;background:#10b981;border:2px solid #edf3f8}
.assistant-avatar-large{width:40px;height:40px;border-radius:11px;font-size:.9rem;box-shadow:0 5px 14px rgba(21,94,239,.2)}
.assistant-avatar-large>i{width:10px;height:10px;border-color:#fff}
.assistant-icon-btn{flex:0 0 auto;width:40px;height:40px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:8px;background:transparent;color:#64748b;box-shadow:none}
.assistant-icon-btn:hover{background:#f1f5f9;color:#111827;box-shadow:none}
.assistant-icon-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.assistant-messages{
  flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:1rem .85rem 1.2rem;gap:.72rem;background:#edf3f8;
  overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b9c8d7 transparent
}
.assistant-messages::-webkit-scrollbar{width:6px}
.assistant-messages::-webkit-scrollbar-thumb{background:#b9c8d7;border-radius:6px}
.assistant-empty{
  width:100%;max-width:340px;margin:auto;display:flex;flex-direction:column;align-items:center;padding:1.2rem .4rem;
  color:#475569;text-align:center;font-size:.88rem;line-height:1.5
}
.assistant-empty-icon{width:52px;height:52px;display:inline-grid;place-items:center;margin-bottom:.75rem;border-radius:14px;background:#fff;color:#155eef;border:1px solid #dbe5ee;box-shadow:0 8px 22px rgba(15,23,42,.08)}
.assistant-empty-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.assistant-empty>strong{color:#111827;font-size:1.02rem}
.assistant-empty>p{max-width:285px;margin:.3rem 0 1rem;color:#64748b;font-size:.82rem}
.assistant-starter-prompts{width:100%;display:grid;gap:.5rem}
.assistant-starter-prompts button{width:100%;min-height:44px;padding:.65rem .8rem;text-align:left;border-radius:8px;border:1px solid #d7e1eb;background:#fff;color:#1e293b;box-shadow:0 2px 7px rgba(15,23,42,.04);font-size:.8rem;font-weight:600}
.assistant-starter-prompts button:hover{background:#f8fbff;border-color:#90b7f8;color:#0f4fcf;box-shadow:0 4px 12px rgba(15,23,42,.06)}
.assistant-message{width:100%;display:flex;align-items:flex-end;gap:.48rem;animation:assistant-message-in 210ms var(--ease-premium,ease)}
.assistant-message-user{justify-content:flex-end;padding-left:2.5rem}
.assistant-message-assistant{justify-content:flex-start;padding-right:1.5rem}
.assistant-bubble{width:auto;max-width:84%;padding:.66rem .78rem;border-radius:14px;font-size:.875rem;line-height:1.48;white-space:normal;overflow-wrap:anywhere;word-break:normal}
.assistant-bubble-text{white-space:pre-wrap}
.assistant-bubble-user{align-self:auto;background:#155eef;color:#fff;border:1px solid #155eef;border-bottom-right-radius:4px;box-shadow:0 3px 10px rgba(21,94,239,.18)}
.assistant-bubble-assistant{align-self:auto;background:#fff;color:#1f2937;border:1px solid #dce5ed;border-bottom-left-radius:4px;box-shadow:0 2px 8px rgba(15,23,42,.05)}
.assistant-message-has-draft{padding-right:0}
.assistant-message-has-draft .assistant-bubble{width:calc(100% - 38px);max-width:none}
.assistant-bubble-error{align-self:auto;background:#fff7f7;color:#b42318;border:1px solid #fecaca;border-bottom-left-radius:4px;box-shadow:0 2px 8px rgba(180,35,24,.05)}
.assistant-message-error .assistant-avatar{background:#dc2626;box-shadow:0 2px 8px rgba(220,38,38,.2)}
.assistant-message-error .assistant-avatar>i{display:none}
.assistant-bubble-meta{margin:.58rem 0 0;padding-top:.52rem;border-top:1px solid #e7edf3;font-size:.74rem;white-space:normal}
.assistant-bubble-meta summary{position:relative;padding-right:1rem;color:#526173;font-weight:650;line-height:1.4;cursor:pointer;list-style:none}
.assistant-bubble-meta summary::-webkit-details-marker{display:none}
.assistant-bubble-meta summary::before{
  content:'';position:absolute;right:.15rem;top:.22rem;width:6px;height:6px;border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform 150ms ease
}
.assistant-bubble-meta[open] summary::before{content:'';transform:translateY(3px) rotate(225deg)}
.assistant-meta-block{margin-top:.55rem;color:#526173}
.assistant-meta-block ul{margin:.3rem 0 0;padding-left:1rem}
.assistant-meta-block li+li{margin-top:.2rem}
.assistant-typing{padding-right:1.5rem;font-size:inherit;font-style:normal;color:inherit}
.assistant-typing-bubble{
  min-width:54px;height:36px;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 .75rem;
  border-radius:14px;border-bottom-left-radius:4px;background:#fff;border:1px solid #dce5ed;box-shadow:0 2px 8px rgba(15,23,42,.05)
}
.assistant-typing-bubble i{width:6px;height:6px;border-radius:50%;background:#8292a5;animation:assistant-dot 1.15s ease-in-out infinite}
.assistant-typing-bubble i:nth-child(2){animation-delay:140ms}
.assistant-typing-bubble i:nth-child(3){animation-delay:280ms}
.assistant-consent-card{
  width:100%;max-width:360px;align-self:center;margin:auto;padding:1rem;display:flex;flex-direction:column;background:#fff;border:1px solid #d8e2eb;
  border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.07);gap:.75rem
}
.assistant-consent-head{display:flex;align-items:center;gap:.7rem;padding-bottom:.7rem;border-bottom:1px solid #e7edf3}
.assistant-consent-head>div{display:grid;gap:.08rem}
.assistant-consent-head strong{color:#111827;font-size:.92rem}
.assistant-consent-head span{color:#64748b;font-size:.72rem}
.assistant-consent-icon{flex:0 0 auto;width:38px;height:38px;display:inline-grid;place-items:center;border-radius:8px;background:#ecfdf5;color:#047857}
.assistant-consent-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.assistant-consent-card p{margin:0;font-size:.8rem;line-height:1.55;color:#526173}
.assistant-consent-btn{align-self:stretch;min-height:44px;padding:.65rem 1rem;border-radius:8px;background:#155eef;font-size:.82rem}
.assistant-consent-btn:hover{background:#0f4fcf}
.assistant-input-row{
  flex:0 0 auto;display:flex;align-items:flex-end;gap:.52rem;padding:.7rem .75rem .78rem;background:#fff;border-top:1px solid #dce5ed;
  box-shadow:0 -4px 14px rgba(15,23,42,.035)
}
.assistant-input-row textarea{
  flex:1 1 auto;resize:none;min-height:44px;max-height:120px;padding:.68rem .9rem;border-radius:18px;border:1px solid #cfdae5;background:#f8fafc;
  color:#111827;font-size:.875rem;line-height:1.42;box-shadow:none;
  transition:border-color 150ms ease,box-shadow 150ms ease,background-color 150ms ease
}
.assistant-input-row textarea:hover{background:#fff;border-color:#aebdcb}
.assistant-input-row textarea:focus{background:#fff;border-color:#7da8f5;box-shadow:0 0 0 3px rgba(21,94,239,.1)}
.assistant-input-row textarea::placeholder{color:#8290a1}
.assistant-input-row button{
  flex:0 0 auto;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;
  background:#155eef;color:#fff;border:1px solid #155eef;box-shadow:0 4px 11px rgba(21,94,239,.2);
  transition:transform 150ms ease,background-color 150ms ease,box-shadow 150ms ease
}
.assistant-input-row button:hover{background:#0f4fcf;box-shadow:0 6px 15px rgba(21,94,239,.24)}
.assistant-input-row button:active{transform:scale(.94)}
.assistant-input-row button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.assistant-input-row button:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}
.assistant-ask-link{display:inline-block;margin-top:.6rem;padding:.35rem .85rem;border-radius:8px;border-color:#9bbcf6;background:#fff;color:#155eef;font-size:.8rem;font-weight:700}
.assistant-ask-link:hover{background:#f4f8ff}
.assistant-draft-card{
  margin-top:.7rem;padding:.75rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.58rem;
  background:#f8fafc;border:1px solid #d3dee8;border-radius:8px
}
.assistant-draft-head,.assistant-draft-actions{grid-column:1/-1}
.assistant-draft-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-bottom:.45rem;border-bottom:1px solid #e2e8f0}
.assistant-draft-head strong{font-size:.82rem;color:#1e293b}
.assistant-draft-field{display:flex;flex-direction:column;gap:.28rem;color:#526173;font-size:.7rem;font-weight:600}
.assistant-draft-field:first-of-type{grid-column:1/-1}
.assistant-draft-field input,.assistant-draft-field select,
form.assistant-draft-card input[name="amount"],form.assistant-draft-card input[name="description"],form.assistant-draft-card input[type="date"]{
  min-height:40px;padding:.48rem .55rem;border-radius:7px;background:#fff;color:#111827;font-size:.8rem;font-weight:400;text-align:left
}
.assistant-draft-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.2rem;padding-top:.1rem}
.assistant-draft-actions button{min-height:38px;padding:.45rem .75rem;border-radius:7px;font-size:.76rem}
.assistant-draft-actions button[type="submit"]{background:#155eef;color:#fff;border:none}
.assistant-draft-confirmed{display:flex;align-items:center;gap:.4rem;margin-top:.65rem;padding:.65rem .7rem;border-radius:8px;background:#ecfdf5;border:1px solid #bbf7d0;color:#047857;font-size:.85rem;font-weight:600}
@keyframes assistant-panel-in{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes assistant-message-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes assistant-dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}
@media(max-width:720px){
  .assistant-widget{left:.8rem;bottom:calc(.8rem + env(safe-area-inset-bottom,0px))}
  .assistant-fab{width:56px;height:56px}
  .assistant-widget.open{inset:0;z-index:120;align-items:stretch;gap:0}
  .assistant-panel{width:100%;max-width:100%;height:100dvh;min-height:0;max-height:100dvh;border:0;border-radius:0;box-shadow:none}
  .assistant-panel-head{min-height:64px;padding:max(.65rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) .65rem max(.8rem,env(safe-area-inset-left))}
  .assistant-icon-btn{width:44px;height:44px}
  .assistant-messages{padding:.9rem max(.65rem,env(safe-area-inset-right)) 1rem max(.65rem,env(safe-area-inset-left));-webkit-overflow-scrolling:touch}
  .assistant-empty{padding:1rem .35rem}
  .assistant-bubble{max-width:87%;font-size:.88rem}
  .assistant-message-user{padding-left:1.6rem}
  .assistant-message-assistant{padding-right:.65rem}
  .assistant-message-has-draft{padding-right:0}
  .assistant-message-has-draft .assistant-bubble{width:calc(100% - 38px)}
  .assistant-input-row{padding:.62rem max(.65rem,env(safe-area-inset-right)) max(.62rem,calc(env(safe-area-inset-bottom) + .5rem)) max(.65rem,env(safe-area-inset-left))}
  .assistant-input-row textarea{font-size:16px}
  .assistant-draft-actions button{min-height:44px}
}
@media(max-width:380px){
  .assistant-panel-identity strong{font-size:.92rem}
  .assistant-avatar-large{width:36px;height:36px}
  .assistant-draft-card{grid-template-columns:minmax(0,1fr)}
  .assistant-draft-head,.assistant-draft-actions,.assistant-draft-field:first-of-type{grid-column:1}
}
@media(prefers-reduced-motion:reduce){
  .assistant-fab,.assistant-input-row button,.assistant-bubble-meta summary::before{transition:none}
  .assistant-panel,.assistant-message,.assistant-typing-bubble i{animation:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   MOBILE POLISH (≤720px) — Rifiniture UX mobile per movimenti, form, dashboard
   Tema invariato (palette, radius, shadow). Solo spacing, focus, sticky, touch.
   ════════════════════════════════════════════════════════════════════════ */

/* — Globals: touch tap & safe area — */
@media(max-width:720px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
  button,a,label,input,select,textarea,[role="button"]{-webkit-tap-highlight-color:transparent}
  /* iOS bounce smoothing + safe area su bottom dei body scrollabili */
  .main{padding-bottom:max(.75rem,calc(env(safe-area-inset-bottom) + .65rem))}
  /* Bottoni con focus visibile più chiaro per accessibilità touch */
  button:focus-visible,a:focus-visible,[role="button"]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}
  /* Smooth scroll su contenitori scrollabili */
  .quick-choice-row,.transaction-filter-advanced-grid,.compact-list-shell,.table-wrap,.dashboard-benchmark-table-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
}

/* — Header sticky più compatto — */
@media(max-width:720px){
  .header{position:sticky;top:54px;z-index:14;background:var(--bg);padding:.4rem 0 .35rem;margin:-.2rem 0 .3rem;border-bottom:1px solid rgba(15,23,42,.05)}
  .header h2{font-size:1.18rem;letter-spacing:-.02em;margin:0}
  .header .muted{font-size:.78rem;line-height:1.35;margin-top:.1rem}
  /* Quando ci sono row-actions e su mobile occupano una riga sotto, riduciamo il gap */
  .header .row-actions{gap:.4rem;margin-top:.5rem}
}

/* — Chip suggeriti: scroll orizzontale fluido con snap — */
@media(max-width:720px){
  .quick-choice-row{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;padding:.15rem .1rem .35rem;margin:0 -.15rem;scrollbar-width:none}
  .quick-choice-row::-webkit-scrollbar{display:none}
  .quick-choice-row .quick-chip{scroll-snap-align:start;flex:0 0 auto;max-width:80vw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
  .quick-choice-label{font-size:.74rem;letter-spacing:.02em;color:var(--muted);margin:.55rem 0 .25rem}
}

/* — Form transazione: importo protagonista — */
@media(max-width:720px){
  /* Il campo importo è il primo input nel form: lo rendiamo più grande/visibile */
  .transaction-entry-shell input[name="amount"],
  form input[name="amount"]{font-size:1.45rem;font-weight:700;text-align:left;letter-spacing:-.01em;padding:.65rem .8rem;min-height:54px}
  /* Descrizione: leggermente più alta per leggibilità */
  input[name="description"]{font-size:1rem;min-height:50px}
  /* Date input: aspetto coerente con altri input */
  input[type="date"]{font-family:inherit;color:var(--text);min-height:48px;padding:.55rem .75rem}
  /* Select: chevron + padding più generoso */
  select{padding-right:2.2rem;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;appearance:none;-webkit-appearance:none}
  /* Riduci spazio tra label e input */
  .form-grid label:not(.checkbox-row){display:flex;flex-direction:column;gap:.32rem}
  .form-grid label:not(.checkbox-row)>:first-child:not(input):not(select):not(textarea){font-size:.78rem;font-weight:600;color:var(--muted);letter-spacing:.02em;text-transform:uppercase}
  .form-grid>label.checkbox-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.7rem;text-align:left}
}

/* — Sticky CTA submit: separato, definito, sopra safe area — */
@media(max-width:720px){
  .form-grid>.row-actions{
    position:sticky;bottom:0;z-index:8;
    margin:.4rem -.85rem -.85rem;
    padding:.7rem .85rem max(.7rem,calc(env(safe-area-inset-bottom) + .55rem));
    background:linear-gradient(180deg,rgba(245,245,245,0) 0%,rgba(245,245,245,.92) 26%,rgba(245,245,245,1) 60%);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    border-top:1px solid rgba(15,23,42,.06)
  }
  .form-grid>.row-actions button{box-shadow:0 4px 14px rgba(37,99,235,.18)}
  .form-grid>.row-actions button.ghost{box-shadow:none}
  /* Card del form: ridotto padding-bottom perché la CTA è sticky */
  .compact-form-card,.card.compact-crud-card,.transaction-entry-shell .card{padding-bottom:.55rem}
}

/* — Quick-entry: la descrizione è il protagonista, compattezza extra su schermi stretti — */
@media(max-width:720px){
  /* Il titolo card è ridondante col tx-type-switch attivo: via su mobile per stare nel viewport */
  .quick-entry-card .split-header{display:none}
  .quick-entry-card .quick-entry{gap:.46rem;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .quick-entry-card .quick-entry label:not(.checkbox-row){gap:.24rem}
  .quick-entry-card .quick-choice-group{gap:.3rem;margin-top:-.16rem}
  .quick-entry-card .quick-choice-label{margin:.42rem 0 .18rem}
  .quick-entry input[name="description"]{font-size:1.15rem;font-weight:600}
  .quick-entry input[name="amount"]{font-size:1.25rem;min-height:50px}
  .quick-entry-card .quick-entry>.row-actions{
    position:fixed;left:max(.6rem,env(safe-area-inset-left));right:max(.6rem,env(safe-area-inset-right));bottom:0;z-index:30;
    margin:0;padding:.62rem .75rem max(.62rem,calc(env(safe-area-inset-bottom) + .5rem));
    background:linear-gradient(180deg,rgba(245,245,245,0) 0%,rgba(245,245,245,.96) 22%,rgba(245,245,245,1) 58%);
    border-top:1px solid rgba(15,23,42,.08);box-shadow:0 -10px 24px rgba(15,23,42,.08);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)
  }
  .quick-entry-card .quick-entry>.row-actions button{width:100%;box-shadow:0 6px 18px rgba(37,99,235,.22)}
}
@media(max-width:520px){
  .quick-entry-card .form-grid{gap:.44rem}
  .quick-entry-amount-row{grid-template-columns:minmax(120px,1fr) minmax(0,1.2fr);gap:.42rem}
}
@media(max-width:430px){
  .quick-entry-meta-row{grid-template-columns:1.3fr 1fr;gap:.36rem}
}

/* — Vista movimenti: quick-menu più tattile — */
@media(max-width:720px){
  .movement-quick-menu{gap:.45rem;padding:.1rem 0 .25rem}
  .movement-quick-menu button{min-height:52px;font-size:.8rem;font-weight:600;padding:.55rem .55rem;border-radius:var(--radius-md)}
  /* Picker operations: tap area generosa, hover/active stati chiari */
  .debt-position-option{min-height:64px;padding:.7rem .8rem;align-items:center;gap:.65rem}
  .debt-position-option:active{transform:scale(.985);background:var(--accent-soft)}
  .debt-position-icon{flex-shrink:0}
  .debt-position-copy strong{font-size:.95rem;letter-spacing:-.01em}
  .debt-position-copy small{font-size:.72rem;line-height:1.32;color:var(--muted)}
  .debt-position-kind{font-size:.6rem;align-self:flex-end}
}

/* — Vista movimenti: 4 metriche più compatte e leggibili — */
@media(max-width:720px){
  .transaction-metrics-grid{gap:.45rem}
  .transaction-metrics-grid .metric{padding:.6rem .7rem;min-height:64px;border-radius:var(--radius-md)}
  .transaction-metrics-grid .metric>span:first-child,
  .transaction-metrics-grid .metric .metric-label{font-size:.66rem;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}
  .transaction-metrics-grid .metric .value{font-size:1.02rem;line-height:1.1;font-weight:700;letter-spacing:-.01em}
}

/* — Storico movimenti: liste con divider sottile (più "nativo") — */
@media(max-width:720px){
  .transaction-history-list-card .transaction-row{
    border-radius:0;border-left:0;border-right:0;
    margin-left:-.85rem;margin-right:-.85rem;padding-left:.85rem;padding-right:.85rem
  }
  .transaction-history-list-card .transaction-row + .transaction-row{border-top:1px solid rgba(15,23,42,.05)}
  .transaction-history-list-card .transaction-row:active{background:rgba(37,99,235,.04)}
  /* Importo a destra per quick scan */
  .transaction-row-amount{font-weight:700;letter-spacing:-.01em}
}

/* — Dettaglio movimento: card piena, back button più visibile — */
@media(max-width:720px){
  .transaction-detail-back{min-height:44px;padding:.5rem .8rem;border-radius:var(--radius-md);font-weight:600}
  .transaction-detail-amount{font-size:1.85rem;line-height:1.05;font-weight:800;letter-spacing:-.02em}
  .transaction-detail-icon{box-shadow:var(--shadow-sm)}
}

/* — Sidebar mobile: voci più tappabili e con feedback chiaro — */
@media(max-width:720px){
  .nav button{padding:.7rem .85rem;border-radius:var(--radius-md);transition:background 140ms ease,color 140ms ease}
  .nav button:active{transform:scale(.99)}
  .nav button.active{background:var(--sidebar-active);color:#fff}
  /* Brand area sidebar */
  .sidebar .brand-block{padding:.45rem .25rem .85rem}
  /* Footer sidebar con safe area */
  .sidebar{padding-bottom:max(.85rem,calc(env(safe-area-inset-bottom) + .85rem))}
}

/* — Dashboard mobile: KPI hero più impattanti — */
@media(max-width:720px){
  .dashboard-value-card.hero,.dashboard-value-card.primary{padding:.85rem .9rem}
  .dashboard-value-card.hero .value,.dashboard-value-card.primary .value{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
  .dashboard-value-card .label,.dashboard-mini-card .label{font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  /* "Personalizzazione" bottone dashboard: meno invasivo */
  .header .row-actions [data-view="personalizzazione-dashboard"]{font-size:.82rem}
}

/* — Modal/dialog mobile (login, debiti, importazione) — */
@media(max-width:720px){
  .modal-card,.modal-content,.dialog-card{
    width:calc(100vw - 1rem);max-width:100vw;
    border-radius:var(--radius-lg) var(--radius-lg) 0 0;
    margin:auto 0 0;padding-bottom:max(1rem,env(safe-area-inset-bottom))
  }
  .modal-backdrop,.dialog-backdrop{align-items:flex-end}
}

/* — Toast: sopra safe area, pill style mobile — */
@media(max-width:720px){
  .app-toast{
    left:.65rem;right:.65rem;bottom:max(.65rem,calc(env(safe-area-inset-bottom) + .65rem));
    transform:none;border-radius:14px;padding:.7rem .9rem;font-size:.88rem;
    box-shadow:0 8px 28px rgba(15,23,42,.18)
  }
  .assistant-widget.open~.app-toast{
    z-index:130;top:max(4.7rem,calc(env(safe-area-inset-top) + 4.7rem));bottom:auto
  }
}

/* — Tabelle responsive: scroll orizzontale con shadow indicator — */
@media(max-width:720px){
  .table-wrap{
    background-image:
      linear-gradient(to right,var(--surface) 30%,rgba(255,255,255,0)),
      linear-gradient(to right,rgba(255,255,255,0),var(--surface) 70%) 100% 0,
      radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.08),rgba(0,0,0,0)),
      radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.08),rgba(0,0,0,0)) 100% 0;
    background-repeat:no-repeat;
    background-size:32px 100%,32px 100%,12px 100%,12px 100%;
    background-attachment:local,local,scroll,scroll
  }
}

/* — Riduce font/spacing extra su schermi molto piccoli (≤380px) — */
@media(max-width:380px){
  .header h2{font-size:1.06rem}
  .dashboard-value-card.hero .value,.dashboard-value-card.primary .value{font-size:1.18rem}
  .transaction-entry-shell input[name="amount"],form input[name="amount"]{font-size:1.28rem;min-height:50px}
  .transaction-detail-amount{font-size:1.55rem}
  .debt-position-option{padding:.6rem .65rem}
  .quick-chip{font-size:.75rem;padding:.34rem .55rem}
  .movement-quick-menu button{font-size:.74rem;min-height:48px}
}

/* — Landscape mobile: usa più altezza, header meno alto — */
@media(max-width:900px) and (orientation:landscape) and (max-height:500px){
  .mobile-topbar{padding-top:.25rem;padding-bottom:.25rem}
  .header{position:static;padding-top:.25rem}
  .form-grid>.row-actions{position:static;background:transparent;backdrop-filter:none;border-top:0;padding-bottom:.5rem}
}

/* — Debiti condivisi: autocomplete controparte, badge condivisione, modal proposte — */
.counterparty-field{position:relative}
.counterparty-suggestions{
  position:absolute;left:0;right:0;top:100%;z-index:30;
  margin-top:.25rem;max-height:280px;overflow-y:auto;
  background:#fff;border:1px solid var(--border-strong);border-radius:12px;
  box-shadow:0 14px 36px rgba(15,23,42,.18);
  display:flex;flex-direction:column;
}
.counterparty-suggestions[hidden]{display:none}
.counterparty-suggestion{
  display:flex;align-items:center;gap:.65rem;
  padding:.55rem .7rem;border:0;background:transparent;text-align:left;cursor:pointer;
  border-bottom:1px solid rgba(15,23,42,.05);
  color:var(--text);
}
.counterparty-suggestion:last-child{border-bottom:0}
.counterparty-suggestion:hover{background:rgba(59,130,246,.08)}
.counterparty-avatar{
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff;font-weight:700;font-size:.85rem;
  flex-shrink:0;
}
.counterparty-meta{display:flex;flex-direction:column;gap:.05rem;font-size:.88rem;line-height:1.2}
.counterparty-meta strong{font-weight:600}
.counterparty-meta .muted{font-size:.78rem}
.counterparty-link-badge{
  margin-top:.35rem;
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.35rem .65rem;border-radius:999px;
  background:rgba(59,130,246,.12);color:#1e3a8a;font-size:.82rem;
}
.counterparty-link-badge button{padding:.15rem .55rem;font-size:.78rem;min-height:auto}

/* Badge di stato condivisione accanto al titolo del debito */
.shared-badge{
  display:inline-block;
  font-size:.7rem;font-weight:600;
  padding:.12rem .5rem;border-radius:999px;margin-left:.4rem;
  vertical-align:middle;letter-spacing:.01em;
}
.shared-badge.shared-active{background:rgba(16,185,129,.14);color:#047857}
.shared-badge.shared-pending{background:rgba(234,179,8,.14);color:#92400e}
.shared-badge.shared-action{background:rgba(239,68,68,.14);color:#b91c1c}
.shared-badge.shared-warning{background:rgba(245,158,11,.18);color:#9a3412}
.shared-badge.shared-muted{background:rgba(100,116,139,.14);color:#475569}

/* Badge scadenza prevista (due_on) accanto al titolo del debito */
.due-badge{
  display:inline-block;
  font-size:.7rem;font-weight:600;
  padding:.12rem .5rem;border-radius:999px;margin-left:.4rem;
  vertical-align:middle;letter-spacing:.01em;
}
.due-badge.due-neutral{background:rgba(100,116,139,.14);color:#475569}
.due-badge.due-warning{background:rgba(245,158,11,.18);color:#9a3412}
.due-badge.due-danger{background:rgba(239,68,68,.14);color:#b91c1c}

/* Pannello azioni condivisione nel dettaglio debito */
.shared-actions-panel{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.95rem 1.1rem;
  border-left:4px solid var(--accent,#3b82f6);
}
.shared-actions-panel.shared-action-required{border-left-color:#ef4444;background:rgba(239,68,68,.05)}
.shared-actions-panel.shared-action-waiting{border-left-color:#f59e0b;background:rgba(245,158,11,.05)}
.shared-actions-panel.shared-action-orphaned{border-left-color:#94a3b8;background:rgba(148,163,184,.08)}
.shared-actions-panel .row-actions{flex-shrink:0}
.proposal-inline-desc{font-size:.95rem;line-height:1.45;margin-bottom:.25rem}
@media(max-width:640px){
  .shared-actions-panel{flex-direction:column;align-items:stretch}
}

/* Sezione "richieste in arrivo" nella lista debiti/crediti */
.debt-incoming-section{border-left:4px solid #ef4444!important}
.debt-incoming-section-title{
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:#b91c1c;margin-bottom:.75rem;
}
.debt-incoming-card{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.7rem 0;border-bottom:1px solid var(--border);opacity:.82;
}
.debt-incoming-card:last-child{border-bottom:none;padding-bottom:0}
.debt-incoming-info{flex:1;min-width:0}
.debt-incoming-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.15rem}
.debt-incoming-actions{display:flex;gap:.5rem;flex-shrink:0}
@media(max-width:520px){
  .debt-incoming-card{flex-direction:column;align-items:stretch}
  .debt-incoming-actions{justify-content:flex-end}
}

/* Modal di review proposta con diff */
.proposal-review-card{max-width:560px}
.proposal-diff{
  width:100%;border-collapse:collapse;margin-top:.5rem;font-size:.86rem;
}
.proposal-diff th,.proposal-diff td{padding:.45rem .55rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.proposal-diff th{font-weight:600;background:rgba(15,23,42,.04);font-size:.78rem;text-transform:uppercase;color:var(--muted)}
.proposal-diff td.from{color:var(--muted);text-decoration:line-through}
.proposal-diff td.to{color:#047857}
.proposal-diff td.to strong{color:#065f46}

/* Bottoni primary/danger nel pannello notifiche */
.notification-actions button.compact-btn.primary{
  background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:0;
}
.notification-actions button.compact-btn.primary:hover{filter:brightness(1.05)}
.notification-actions button.compact-btn.danger{
  background:#ef4444;color:#fff;border:0;
}
.notification-actions button.compact-btn.danger:hover{background:#dc2626}

/* — Overlay GDPR: re-consenso bloccante + modal cancellazione account — */
.legal-reaccept-overlay,
.modal-overlay{
  position:fixed;inset:0;z-index:100;
  display:flex;align-items:center;justify-content:center;
  padding:1.25rem;
  background:rgba(15,23,42,.55);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  animation:fade-in 160ms ease-out;
  overflow-y:auto;
}
.legal-reaccept-card,
.modal-card{
  width:min(560px,100%);
  max-height:calc(100dvh - 2.5rem);
  overflow-y:auto;
  display:flex;flex-direction:column;gap:.7rem;
  padding:1.4rem;
  border-radius:18px;
  box-shadow:0 30px 80px rgba(15,23,42,.32);
}
.legal-reaccept-card h2,.modal-card h2{margin:.1rem 0 .2rem;font-size:1.25rem}
.legal-reaccept-list{list-style:none;margin:.4rem 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.legal-reaccept-list li{padding:.7rem .85rem;border:1px solid var(--border);border-radius:12px;background:rgba(248,250,252,.65)}
.legal-reaccept-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem}
.legal-reaccept-confirm{display:flex;align-items:flex-start;gap:.55rem;margin-top:.3rem;font-size:.92rem;line-height:1.4}
.legal-reaccept-confirm input{margin-top:.2rem}
.legal-reaccept-actions{justify-content:flex-end;flex-wrap:wrap;margin-top:.6rem}
.legal-reaccept-banner{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  margin-bottom:1rem;padding:.85rem 1rem;
  border-left:4px solid var(--accent);background:rgba(245,158,11,.08);
}
.legal-reaccept-banner button{flex-shrink:0}
.modal-card .field{display:flex;flex-direction:column;gap:.3rem;font-size:.92rem}
.modal-card .field input{padding:.55rem .7rem;border:1px solid var(--border);border-radius:8px;font-size:.95rem;min-height:42px}
@media(max-width:640px){
  .legal-reaccept-overlay,.modal-overlay{padding:.6rem;align-items:flex-start}
  .legal-reaccept-card,.modal-card{padding:1.05rem;max-height:calc(100dvh - 1rem)}
  .legal-reaccept-row{flex-direction:column;align-items:flex-start}
  .legal-reaccept-banner{flex-direction:column;align-items:flex-start}
}

/* Conti: lettura dei saldi e gestione coerente con obiettivi, ricorrenze e debiti. */
.accounts-page{
  --goals-ink:#10233f;
  --goals-blue:#24527a;
  --goals-blue-soft:#eaf0f6;
  --goals-line:#dce3ec;
  --accounts-ink:#10233f;
  --accounts-navy:#172640;
  --accounts-blue:#24527a;
  --accounts-blue-soft:#eaf0f6;
  --accounts-green:#168262;
  --accounts-green-soft:#e4f7f0;
  --accounts-red:#c84f46;
  --accounts-red-soft:#fff0ed;
  display:grid;
  gap:1rem;
  color:var(--accounts-ink)
}
.accounts-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.15rem 0 .35rem}
.accounts-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--accounts-ink)}
.accounts-header .muted{font-size:.9rem;color:#66758a}
.accounts-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--goals-line);border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 8px 28px rgba(31,48,73,.045);overflow:hidden}
.accounts-summary>div{min-width:0;display:flex;align-items:center;gap:.8rem;padding:1rem 1.15rem;position:relative}
.accounts-summary>div+div::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--goals-line)}
.accounts-summary>div>span:last-child{min-width:0;display:grid;gap:.05rem}
.accounts-summary strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1;font-weight:750;letter-spacing:-.035em;color:var(--accounts-blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.accounts-summary>div:nth-child(3) strong{color:var(--accounts-red)}
.accounts-summary small{color:#66758a;font-size:.78rem;font-weight:500}
.accounts-summary-icon{width:44px;height:44px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--accounts-blue-soft);color:var(--accounts-blue)}
.accounts-summary-count{background:#edf5ff}
.accounts-summary-negative{background:var(--accounts-red-soft);color:var(--accounts-red)}
.accounts-summary-icon svg,.account-card-icon svg,.account-detail-icon svg,.account-placeholder-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.accounts-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,440px);gap:1rem;align-items:start;min-width:0}
.accounts-catalog{min-width:0;display:grid;gap:.65rem}
.accounts-list-heading{display:flex;align-items:end;justify-content:space-between;gap:.75rem;padding:.15rem .1rem .2rem}
.accounts-list-heading>div:first-child{display:grid;gap:.04rem}
.accounts-list-heading>div:first-child>span{color:var(--accounts-blue);font-size:.66rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.accounts-list-heading h3{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--accounts-ink)}
.accounts-list-tools{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}
.accounts-list-tools>small{padding:.22rem .5rem;border-radius:999px;background:#e9eef4;color:#617086;font-size:.68rem;font-weight:650;white-space:nowrap}
.account-new-button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:.42rem;padding:.46rem .7rem;border-radius:9px;background:var(--accounts-blue);font-size:.72rem;box-shadow:0 5px 14px rgba(23,105,232,.16)}
.account-new-button:hover{background:#0f5ccd;box-shadow:0 8px 19px rgba(23,105,232,.24);transform:translateY(-1px)}
.account-new-button span{font-size:1.1rem;font-weight:400;line-height:.8}
.account-close-month-button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.46rem .68rem;border-radius:9px;font-size:.7rem;color:#56667b;background:#fff;border-color:#d8e0ea}
.account-close-month-button:hover{background:#f5f8fb;color:var(--accounts-ink);border-color:#b8c6d9}
.account-close-month-button .button-badge{position:static;margin:0;transform:none}
.accounts-list{display:grid;gap:.65rem}
.account-card{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.9rem;align-items:start;padding:1rem;border:1px solid var(--goals-line);border-radius:15px;background:rgba(255,255,255,.94);color:var(--accounts-ink);box-shadow:0 5px 18px rgba(31,48,73,.045);text-align:left}
.account-card:hover{background:#fff;border-color:#b8c6d9;box-shadow:0 10px 26px rgba(31,48,73,.09);transform:translateY(-1px)}
.account-card.selected{border-color:var(--accounts-blue);box-shadow:0 0 0 2px rgba(23,105,232,.08),0 12px 28px rgba(31,48,73,.08)}
.account-card-icon,.account-detail-icon,.account-placeholder-icon{display:inline-grid;place-items:center;border-radius:50%;background:var(--accounts-blue-soft);color:var(--accounts-blue)}
.account-card.tone-negative .account-card-icon,.account-detail-panel.tone-negative .account-detail-icon{background:var(--accounts-red-soft);color:var(--accounts-red)}
.account-card-icon{width:50px;height:50px}
.account-card-icon svg,.account-detail-icon svg,.account-placeholder-icon svg{width:25px;height:25px}
.account-card-content{min-width:0;display:grid;gap:.48rem}
.account-card-heading,.account-card-balance{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}
.account-card-heading>strong{min-width:0;font-size:1rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-type-chip{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:.2rem .52rem;border-radius:999px;background:#edf0f4;color:#617086;font-size:.64rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.account-card-balance>small{color:#6d7b8e;font-size:.68rem;font-weight:650}
.account-card-balance>strong{font-family:var(--font-numeric);font-size:1.35rem;line-height:1;font-weight:750;letter-spacing:-.04em;color:var(--accounts-green);white-space:nowrap}
.account-card.tone-negative .account-card-balance>strong{color:var(--accounts-red)}
.account-detail-facts span{color:#7b8797;font-size:.6rem;font-weight:750;letter-spacing:.075em;text-transform:uppercase}
.account-side-panel{min-width:0;position:sticky;top:1rem;display:grid;align-content:start;gap:1rem;padding:1.15rem;border:1px solid var(--goals-line);border-radius:16px;background:rgba(255,255,255,.95);box-shadow:0 8px 28px rgba(31,48,73,.055)}
.account-side-placeholder{min-height:390px;place-items:center;place-content:center;text-align:center;padding:2rem}
.account-placeholder-icon{width:56px;height:56px;background:var(--accounts-blue-soft);color:var(--accounts-blue)}
.account-side-placeholder h3,.account-empty-state h3{margin:.15rem 0 0;font-size:1.05rem;color:var(--accounts-ink)}
.account-side-placeholder p,.account-empty-state p{max-width:31ch;margin:0;color:#66758a;font-size:.82rem;line-height:1.5}
.account-panel-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.account-panel-close{width:34px;height:34px;display:inline-grid;place-items:center;padding:0;border:1px solid #dce3ec;border-radius:9px;background:#fff;color:#627187;box-shadow:none;font-size:1.2rem;font-weight:400}
.account-panel-close:hover{background:#f2f5f8;color:var(--accounts-ink);border-color:#c7d1de;box-shadow:none}
.account-detail-heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;align-items:center}
.account-detail-icon{width:46px;height:46px;background:var(--accounts-green-soft);color:var(--accounts-green)}
.account-detail-heading>div{min-width:0;display:grid;gap:.05rem}
.account-detail-heading span{color:#7b8797;font-size:.62rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.account-detail-heading h3{min-width:0;margin:0;color:var(--accounts-ink);font-size:1.18rem;font-weight:750;letter-spacing:-.025em;overflow-wrap:anywhere}
.account-detail-highlight{display:grid;gap:.08rem;padding:.85rem;border-radius:12px;background:var(--accounts-green-soft)}
.account-detail-panel.tone-negative .account-detail-highlight{background:var(--accounts-red-soft)}
.account-detail-highlight>span{color:#6b7a8d;font-size:.64rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.account-detail-highlight strong{font-family:var(--font-numeric);font-size:1.7rem;line-height:1.08;font-weight:750;letter-spacing:-.045em;color:var(--accounts-green)}
.account-detail-panel.tone-negative .account-detail-highlight strong{color:var(--accounts-red)}
.account-detail-highlight small{color:#66758a;font-size:.7rem}
.account-detail-facts{display:grid;gap:.75rem}
.account-detail-facts>div{display:grid;gap:.15rem}
.account-detail-facts strong{color:#263952;font-size:.83rem;font-weight:650;overflow-wrap:anywhere}
.account-detail-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin-top:.15rem}
.account-detail-actions button{min-height:42px}
.account-detail-actions .danger{padding-inline:.75rem}
.account-empty-state{min-height:340px;display:grid;place-items:center;place-content:center;gap:.65rem;padding:2rem;border:1px dashed #bbc8d8;border-radius:16px;background:rgba(255,255,255,.72);text-align:center}
.account-editor-heading{background:radial-gradient(circle at 88% 8%,rgba(95,200,165,.2),transparent 31%),linear-gradient(135deg,#f7faff 0%,#eef5ff 100%)}

@media(max-width:1100px){
  .accounts-workspace{grid-template-columns:minmax(0,1fr) minmax(360px,400px)}
}
@media(max-width:900px){
  .accounts-workspace{grid-template-columns:1fr}
  .account-side-placeholder{display:none}
  .accounts-page.has-editor .accounts-summary,.accounts-workspace.has-editor .accounts-catalog{display:none}
}
@media(max-width:720px){
  .accounts-page{gap:.72rem}
  .accounts-header{position:static;display:block;margin:0;padding:.2rem 0 .35rem;border:0;background:transparent}
  .accounts-header h2{font-size:1.45rem}
  .accounts-header .muted{font-size:.76rem;line-height:1.35}
  .accounts-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;border:0;background:transparent;box-shadow:none;gap:.42rem}
  .accounts-summary>div{min-width:0;display:grid;grid-template-columns:1fr;align-content:start;justify-items:start;gap:.42rem;padding:.65rem;border:1px solid var(--goals-line);border-radius:13px;background:#fff}
  .accounts-summary>div+div::before{display:none}
  .accounts-summary>div>span:last-child{width:100%}
  .accounts-summary-icon{width:32px;height:32px}
  .accounts-summary-icon svg{width:17px;height:17px}
  .accounts-summary strong{width:100%;font-size:clamp(.8rem,3.35vw,1.05rem);letter-spacing:-.025em}
  .accounts-summary small{font-size:.62rem;line-height:1.25;white-space:normal}
  .accounts-list-heading{display:grid;grid-template-columns:1fr;align-items:start;gap:.55rem;padding-top:.3rem}
  .accounts-list-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;justify-content:stretch}
  .accounts-list-tools>small{display:none}
  .account-close-month-button,.account-new-button{min-height:38px}
  .accounts-workspace.has-selection .accounts-catalog,.accounts-workspace.has-editor .accounts-catalog{display:none}
  .account-side-panel{border-radius:14px;padding:.95rem}
  .account-editor-panel{padding:0}
  .account-card{grid-template-columns:auto minmax(0,1fr);gap:.68rem;padding:.82rem;border-radius:13px}
  .account-card-icon{width:42px;height:42px}
  .account-card-icon svg{width:21px;height:21px}
  .account-card-balance>strong{font-size:1.18rem}
}
@media(max-width:480px){
  .account-card{grid-template-columns:1fr}
  .account-card-icon{display:none}
  .account-card-heading>strong{font-size:.94rem}
  .account-card-balance{align-items:flex-start;flex-direction:column;gap:.2rem}
  .account-detail-actions,.account-editor-panel .row-actions{grid-template-columns:1fr}
  .accounts-list-tools{grid-template-columns:minmax(0,1fr) auto}
  .account-close-month-button{padding-inline:.55rem;font-size:.66rem}
}

/* Obiettivi: layout progress-first, isolato dal CRUD compatto condiviso. */
.goals-page{
  --goals-ink:#10233f;
  --goals-navy:#172640;
  --goals-blue:#24527a;
  --goals-blue-soft:#eaf0f6;
  --goals-mint:#5fc8a5;
  --goals-mint-soft:#e4f7f0;
  --goals-line:#dce3ec;
  display:grid;
  gap:1rem;
  color:var(--goals-ink)
}
.goals-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.15rem 0 .35rem}
.goals-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--goals-ink)}
.goals-header .muted{font-size:.9rem;color:#66758a}
.goals-new-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1rem;border-radius:11px;background:var(--goals-blue);box-shadow:0 8px 20px rgba(23,105,232,.2)}
.goals-new-button:hover{background:#0f5ccd;box-shadow:0 10px 24px rgba(23,105,232,.28);transform:translateY(-1px)}
.goals-new-button span{font-size:1.35rem;font-weight:400;line-height:.8}
.goals-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--goals-line);border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 8px 28px rgba(31,48,73,.045);overflow:hidden}
.goals-summary>div{min-width:0;display:flex;align-items:center;gap:.8rem;padding:1rem 1.15rem;position:relative}
.goals-summary>div+div::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--goals-line)}
.goals-summary>div>span:last-child{min-width:0;display:grid;gap:.05rem}
.goals-summary strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1;font-weight:750;letter-spacing:-.035em;color:var(--goals-blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.goals-summary small{color:#66758a;font-size:.78rem;font-weight:500}
.goals-summary-icon{width:44px;height:44px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--goals-blue-soft);color:var(--goals-blue)}
.goals-summary-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.goals-summary-wallet{background:#edf5ff}
.goals-summary-trend{background:var(--goals-mint-soft);color:#168262}
.goals-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,440px);gap:1rem;align-items:start;min-width:0}
.goals-catalog{min-width:0;display:grid;gap:.65rem}
.goals-list-heading{display:flex;align-items:end;justify-content:space-between;gap:.75rem;padding:.15rem .1rem .2rem}
.goals-list-heading>div{display:grid;gap:.04rem}
.goals-list-heading>div>span,.entity-editor-heading>div>span{color:var(--goals-blue);font-size:.66rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.goals-list-heading h3,.entity-editor-heading h3{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--goals-ink)}
.goals-list-heading>.goals-list-tools{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}
.goals-list-tools>small{padding:.22rem .5rem;border-radius:999px;background:#e9eef4;color:#617086;font-size:.68rem;font-weight:650;white-space:nowrap}
.goals-list-new-button{min-height:36px;padding:.46rem .7rem;border-radius:9px;font-size:.72rem;box-shadow:0 5px 14px rgba(23,105,232,.16)}
.goals-list-new-button span{font-size:1.1rem}
.goal-progress-list{display:grid;gap:.65rem}
.goal-progress-card{--goal-progress:0%;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.9rem;align-items:start;padding:1rem;border:1px solid var(--goals-line);border-radius:15px;background:rgba(255,255,255,.94);color:var(--goals-ink);box-shadow:0 5px 18px rgba(31,48,73,.045);text-align:left}
.goal-progress-card:hover{background:#fff;border-color:#b8c6d9;box-shadow:0 10px 26px rgba(31,48,73,.09);transform:translateY(-1px)}
.goal-progress-card.selected{border-color:var(--goals-blue);box-shadow:0 0 0 2px rgba(23,105,232,.08),0 12px 28px rgba(31,48,73,.08)}
.goal-progress-card.status-archived{opacity:.7}
.goal-card-icon,.goal-detail-icon,.goal-placeholder-icon{display:inline-grid;place-items:center;border-radius:50%;background:var(--goals-mint-soft);color:#126c70}
.goal-card-icon{width:50px;height:50px}
.goal-card-icon svg,.goal-detail-icon svg,.goal-placeholder-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.goal-progress-card.status-reached .goal-card-icon{background:#e2f7ec;color:#07814f}
.goal-progress-card.status-archived .goal-card-icon{background:#edf0f4;color:#6d7b8e}
.goal-card-content{min-width:0;display:grid;gap:.48rem}
.goal-card-heading,.goal-card-progress-copy{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}
.goal-card-heading>strong{min-width:0;font-size:1rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.goal-status-chip{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:.2rem .52rem;border-radius:999px;background:var(--goals-blue-soft);color:var(--goals-blue);font-size:.64rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.goal-status-chip.status-reached{background:#e2f7ec;color:#08794d}
.goal-status-chip.status-archived{background:#edf0f4;color:#68778a}
.goal-card-progress-copy>strong{font-family:var(--font-numeric);font-size:1.35rem;line-height:1;font-weight:750;letter-spacing:-.04em;color:var(--goals-blue)}
.goal-card-progress-copy>span{min-width:0;color:#263952;font-family:var(--font-numeric);font-size:.82rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.goal-progress-track{width:100%;height:7px;display:block;border-radius:999px;background:#e7ebf0;overflow:hidden}
.goal-progress-fill{display:block;width:var(--goal-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#1769e8,#3b8cff);transition:width 420ms var(--ease-premium)}
.status-reached .goal-progress-fill{background:#2fac80}
.status-archived .goal-progress-fill{background:#8492a5}
.goal-card-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:.14rem;padding-top:.6rem;border-top:1px solid #e8ecf1}
.goal-card-meta>span{min-width:0;display:grid;gap:.08rem}
.goal-card-meta small,.goal-detail-facts span{color:#7b8797;font-size:.6rem;font-weight:750;letter-spacing:.075em;text-transform:uppercase}
.goal-card-meta strong{min-width:0;color:#263952;font-size:.72rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.goals-page .tone-success{color:#08794d!important}.goals-page .tone-warning{color:#b36a00!important}.goals-page .tone-danger{color:#bf2c2c!important}.goals-page .tone-neutral{color:#516177!important}
.goal-side-panel,.recurring-side-panel{min-width:0;position:sticky;top:1rem;display:grid;align-content:start;gap:1rem;padding:1.15rem;border:1px solid var(--goals-line);border-radius:16px;background:rgba(255,255,255,.95);box-shadow:0 8px 28px rgba(31,48,73,.055)}
.goal-side-placeholder{min-height:390px;place-items:center;place-content:center;text-align:center;padding:2rem}
.goal-placeholder-icon{width:56px;height:56px;background:var(--goals-blue-soft);color:var(--goals-blue)}
.goal-side-placeholder h3,.goal-empty-state h3{margin:.15rem 0 0;font-size:1.05rem;color:var(--goals-ink)}
.goal-side-placeholder p,.goal-empty-state p{max-width:28ch;margin:0;color:#66758a;font-size:.82rem;line-height:1.5}
.goal-panel-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.goal-panel-close{width:34px;height:34px;display:inline-grid;place-items:center;padding:0;border:1px solid #dce3ec;border-radius:9px;background:#fff;color:#627187;box-shadow:none;font-size:1.2rem;font-weight:400}
.goal-panel-close:hover{background:#f2f5f8;color:var(--goals-ink);border-color:#c7d1de;box-shadow:none}
.goal-detail-heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;align-items:center}
.goal-detail-icon{width:46px;height:46px}
.goal-detail-heading>div{min-width:0;display:grid;gap:.05rem}
.goal-detail-heading span{color:#7b8797;font-size:.62rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.goal-detail-heading h3{min-width:0;margin:0;color:var(--goals-ink);font-size:1.18rem;font-weight:750;letter-spacing:-.025em;overflow-wrap:anywhere}
.goal-detail-progress{display:grid;gap:.55rem;padding:.85rem;border-radius:12px;background:#f5f8fc}
.goal-detail-progress>div{display:flex;align-items:end;justify-content:space-between;gap:.7rem}
.goal-detail-progress strong{font-family:var(--font-numeric);font-size:1.35rem;line-height:1;font-weight:750;color:var(--goals-blue)}
.goal-detail-progress>div>span{color:#66758a;font-size:.7rem;text-align:right}
.goal-detail-highlight{display:grid;gap:.08rem;padding:.2rem 0 .8rem;border-bottom:1px solid #e2e7ed}
.goal-detail-highlight>span,.goal-detail-highlight>small{color:#7b8797;font-size:.68rem}
.goal-detail-highlight>span{font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.goal-detail-highlight strong{font-family:var(--font-numeric);font-size:1.65rem;line-height:1.08;font-weight:750;letter-spacing:-.045em;color:var(--goals-ink)}
.goal-detail-facts{display:grid;gap:.75rem}
.goal-detail-facts>div{display:grid;gap:.15rem}
.goal-detail-facts strong{color:#263952;font-size:.83rem;font-weight:650;overflow-wrap:anywhere}
.goal-detail-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin-top:.15rem}
.goal-detail-actions button{min-height:42px}
.goal-detail-actions .danger{padding-inline:.75rem}
.entity-editor-panel{height:min(52rem,calc(100dvh - 2rem));gap:0;padding:0;grid-template-rows:auto minmax(0,1fr);align-content:stretch;overflow:hidden;scroll-margin-top:1rem;background:#fff;box-shadow:0 18px 48px rgba(31,48,73,.1)}
.entity-editor-heading{align-items:flex-start;padding:1.2rem 1.25rem 1.05rem;border-bottom:1px solid #dce5f0;border-radius:16px 16px 0 0;background:radial-gradient(circle at 88% 8%,rgba(95,200,165,.18),transparent 31%),linear-gradient(135deg,#f7faff 0%,#eef5ff 100%)}
.entity-editor-heading>div{min-width:0;display:grid;gap:.08rem}
.entity-editor-heading h3{font-size:1.28rem;letter-spacing:-.035em}
.entity-editor-heading p{margin:.22rem 0 0;color:#607086;font-size:.76rem;line-height:1.45}
.entity-editor-panel .entity-editor-form{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:0}
.entity-editor-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c7d3e2 transparent}
.entity-editor-panel .entity-editor-scroll>.flash{margin:1rem 1.2rem 0}
.entity-form-section{display:grid;gap:.8rem;padding:1rem 1.25rem 1.1rem;border-bottom:1px solid #e7ecf2}
.entity-form-section-secondary{background:#fafbfd}
.entity-form-section-heading{display:grid;grid-template-columns:28px minmax(0,1fr);gap:.68rem;align-items:start}
.entity-form-section-heading>span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--goals-blue-soft);color:var(--goals-blue);font-family:var(--font-numeric);font-size:.64rem;font-weight:750}
.entity-form-section-secondary .entity-form-section-heading>span{background:#e9eef4;color:#617086}
.entity-form-section-heading>div{min-width:0;display:grid;gap:.08rem}
.entity-form-section-heading h4{margin:0;color:var(--goals-ink);font-size:.83rem;font-weight:750;letter-spacing:-.01em}
.entity-form-section-heading p{margin:0;color:#738095;font-size:.67rem;line-height:1.4}
.entity-editor-panel .entity-form-field{display:grid;gap:.38rem;color:inherit;font-size:inherit;letter-spacing:0}
.entity-field-label{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:#33465f;font-size:.73rem;font-weight:700;letter-spacing:.01em}
.entity-field-label small{padding:.15rem .4rem;border-radius:999px;background:#f0f3f7;color:#748196;font-size:.57rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.entity-form-section-primary .entity-field-label small{background:#eaf2ff;color:#1769e8}
.entity-editor-panel input,.entity-editor-panel select,.entity-editor-panel textarea{min-height:48px;border-color:#cfd9e6;border-radius:10px;background:#fbfcfe;color:#172b47;font-size:.88rem;box-shadow:0 1px 0 rgba(16,35,63,.02)}
.entity-editor-panel input:hover,.entity-editor-panel select:hover,.entity-editor-panel textarea:hover{border-color:#aebdd0}
.entity-editor-panel input:focus,.entity-editor-panel select:focus,.entity-editor-panel textarea:focus{border-color:var(--goals-blue);background:#fff;box-shadow:0 0 0 3px rgba(23,105,232,.12)}
.entity-editor-panel textarea{resize:vertical;line-height:1.45}
.entity-editor-panel .field-hint{color:#7a8799;font-size:.66rem}
.input-affix{position:relative;display:block}
.money-input>span{position:absolute;left:.82rem;top:50%;z-index:1;transform:translateY(-50%);color:#617189;font-family:var(--font-numeric);font-size:.86rem;font-weight:750;pointer-events:none}
.entity-editor-panel .money-input input{width:100%;padding-left:2rem;font-family:var(--font-numeric);font-size:1.03rem;font-weight:700;font-variant-numeric:tabular-nums}
.goal-editor-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem;align-items:start;padding:.68rem .72rem;border:1px solid #dce8f8;border-radius:10px;background:#f3f7fd;color:#5b6e86;font-size:.68rem;line-height:1.45}
.goal-editor-note svg{width:17px;height:17px;margin-top:.05rem;fill:none;stroke:var(--goals-blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.goal-status-field{min-width:0;margin:0;padding:0;border:0}
.goal-status-field legend{margin-bottom:.38rem;color:#33465f;font-size:.73rem;font-weight:700}
.goal-status-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;padding:.28rem;border:1px solid #d8e0ea;border-radius:11px;background:#f0f3f7}
.entity-editor-panel .goal-status-options label{position:relative;display:block;margin:0;color:inherit;font-size:inherit;letter-spacing:0;cursor:pointer}
.goal-status-options input{position:absolute;opacity:0;pointer-events:none}
.goal-status-options label>span{min-height:36px;display:grid;place-items:center;padding:.35rem .45rem;border:1px solid transparent;border-radius:8px;color:#68778a;font-size:.68rem;font-weight:700;text-align:center;transition:background 160ms var(--ease-premium),color 160ms var(--ease-premium),box-shadow 160ms var(--ease-premium)}
.goal-status-options input:checked+span{border-color:#d7e0eb;background:#fff;color:var(--goals-blue);box-shadow:0 2px 7px rgba(31,48,73,.09)}
.goal-status-options input:focus-visible+span{outline:2px solid var(--goals-blue);outline-offset:2px}
.entity-editor-panel .entity-editor-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;margin:0;padding:1rem 1.25rem;background:#fff}
.entity-editor-panel .entity-editor-actions button{min-height:44px}
.entity-editor-panel .entity-editor-actions button:first-child{box-shadow:0 8px 20px rgba(23,105,232,.2)}
.goal-empty-state{min-height:340px;display:grid;place-items:center;place-content:center;gap:.65rem;padding:2rem;border:1px dashed #bbc8d8;border-radius:16px;background:rgba(255,255,255,.72);text-align:center}

@media(max-width:1100px){
  .goals-workspace{grid-template-columns:minmax(0,1fr) minmax(360px,400px)}
  .goal-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .goal-card-meta>span:last-child{grid-column:1/-1}
}
@media(max-width:900px){
  .goals-workspace{grid-template-columns:1fr}
  .goal-side-panel,.recurring-side-panel{position:static}
  .goal-side-placeholder{display:none}
  .goals-page.has-editor .goals-summary,.goals-workspace.has-editor .goals-catalog{display:none}
  .entity-editor-panel{scroll-margin-top:.75rem}
  .entity-editor-panel .entity-editor-actions{z-index:8;border-top:1px solid #dce3ec;box-shadow:0 -12px 28px rgba(31,48,73,.08)}
  .goal-card-meta{grid-template-columns:repeat(3,minmax(0,1fr))}
  .goal-card-meta>span:last-child{grid-column:auto}
}
@media(max-width:720px){
  .goals-page{gap:.72rem}
  .goals-header{position:static;display:block;margin:0;padding:.2rem 0 .35rem;border:0;background:transparent}
  .goals-header h2{font-size:1.45rem}
  .goals-header .muted{font-size:.76rem;line-height:1.35}
  .goals-list-new-button{min-height:38px;padding:.5rem .68rem;font-size:.72rem}
  .goals-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;border:0;background:transparent;box-shadow:none;gap:.42rem}
  .goals-summary>div{min-width:0;display:grid;grid-template-columns:1fr;align-content:start;justify-items:start;gap:.42rem;padding:.65rem;border:1px solid var(--goals-line);border-radius:13px;background:#fff}
  .goals-summary>div+div::before{display:none}
  .goals-summary>div>span:last-child{width:100%}
  .goals-summary-icon{width:32px;height:32px}
  .goals-summary-icon svg{width:17px;height:17px}
  .goals-summary strong{width:100%;font-size:clamp(.86rem,3.5vw,1.05rem);letter-spacing:-.025em}
  .goals-summary small{font-size:.62rem;line-height:1.25;white-space:normal}
  .goals-list-heading{align-items:center;padding-top:.3rem}
  .goals-workspace.has-selection .goals-catalog,.goals-workspace.has-editor .goals-catalog{display:none}
  .goal-side-panel,.recurring-side-panel{border-radius:14px;padding:.95rem}
  .entity-editor-panel{padding:0}
  .entity-editor-heading{padding:1.05rem;border-radius:14px 14px 0 0}
  .entity-form-section{padding:.92rem 1.05rem 1rem}
  .entity-editor-panel .entity-editor-actions{margin:0;padding:.72rem 1.05rem max(.72rem,calc(env(safe-area-inset-bottom) + .55rem));background:rgba(255,255,255,.97);backdrop-filter:blur(8px)}
  .entity-editor-panel .entity-form-field,.entity-editor-panel .goal-status-options label{gap:.38rem;text-transform:none}
  .entity-editor-panel .entity-form-field>.entity-field-label{display:flex;flex-direction:row;color:#33465f;font-size:.73rem;letter-spacing:.01em;text-transform:none}
  .goal-progress-card{grid-template-columns:auto minmax(0,1fr);gap:.68rem;padding:.82rem;border-radius:13px}
  .goal-card-icon{width:42px;height:42px}
  .goal-card-icon svg{width:21px;height:21px}
  .goal-card-progress-copy>strong{font-size:1.18rem}
  .goal-card-progress-copy>span{font-size:.72rem}
  .goal-card-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .goal-card-meta>span:last-child{grid-column:1/-1}
}
@media(max-width:480px){
  .goals-list-tools>small{display:none}
  .goal-progress-card{grid-template-columns:1fr}
  .goal-card-icon{display:none}
  .goal-card-heading>strong{font-size:.94rem}
  .goal-card-meta{grid-template-columns:1fr}
  .goal-card-meta>span:last-child{grid-column:auto}
  .goal-detail-actions,.entity-editor-panel .row-actions{grid-template-columns:1fr}
  .goal-status-options{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.goal-progress-fill{transition:none}}

/* Movimenti ricorrenti: stessa gerarchia degli obiettivi, con enfasi sui flussi mensili. */
.recurring-page{
  --goals-ink:#10233f;
  --goals-blue:#24527a;
  --goals-blue-soft:#eaf0f6;
  --goals-line:#dce3ec;
  --recurring-ink:#10233f;
  --recurring-navy:#172640;
  --recurring-blue:#24527a;
  --recurring-blue-soft:#eaf0f6;
  --recurring-expense:#c84f46;
  --recurring-expense-soft:#fff0ed;
  --recurring-income:#168262;
  --recurring-income-soft:#e4f7f0;
  display:grid;
  gap:1rem;
  color:var(--recurring-ink)
}
.recurring-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.15rem 0 .35rem}
.recurring-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--recurring-ink)}
.recurring-header .muted{font-size:.9rem;color:#66758a}
.recurring-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--goals-line);border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 8px 28px rgba(31,48,73,.045);overflow:hidden}
.recurring-summary>div{min-width:0;display:flex;align-items:center;gap:.8rem;padding:1rem 1.15rem;position:relative}
.recurring-summary>div+div::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--goals-line)}
.recurring-summary>div>span:last-child{min-width:0;display:grid;gap:.05rem}
.recurring-summary strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1;font-weight:750;letter-spacing:-.035em;color:var(--recurring-blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recurring-summary small{color:#66758a;font-size:.78rem;font-weight:500}
.recurring-summary-icon{width:44px;height:44px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--recurring-blue-soft);color:var(--recurring-blue)}
.recurring-summary-icon svg,.recurring-card-icon svg,.recurring-detail-icon svg,.recurring-placeholder-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.recurring-summary-expense{background:var(--recurring-expense-soft);color:var(--recurring-expense)}
.recurring-summary-income{background:var(--recurring-income-soft);color:var(--recurring-income)}
.recurring-summary>div:nth-child(2) strong{color:var(--recurring-expense)}
.recurring-summary>div:nth-child(3) strong{color:var(--recurring-income)}
.recurring-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,440px);gap:1rem;align-items:start;min-width:0}
.recurring-catalog{min-width:0;display:grid;gap:.65rem}
.recurring-list-heading{display:flex;align-items:end;justify-content:space-between;gap:.75rem;padding:.15rem .1rem .2rem}
.recurring-list-heading>div:first-child{display:grid;gap:.04rem}
.recurring-list-heading>div:first-child>span{color:var(--recurring-blue);font-size:.66rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.recurring-list-heading h3{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--recurring-ink)}
.recurring-list-tools{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}
.recurring-list-tools>small{padding:.22rem .5rem;border-radius:999px;background:#e9eef4;color:#617086;font-size:.68rem;font-weight:650;white-space:nowrap}
.recurring-new-button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:.42rem;padding:.46rem .7rem;border-radius:9px;background:var(--recurring-blue);font-size:.72rem;box-shadow:0 5px 14px rgba(23,105,232,.16)}
.recurring-new-button:hover{background:#0f5ccd;box-shadow:0 8px 19px rgba(23,105,232,.24);transform:translateY(-1px)}
.recurring-new-button span{font-size:1.1rem;font-weight:400;line-height:.8}
.recurring-list{display:grid;gap:.65rem}
.recurring-card{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.9rem;align-items:start;padding:1rem;border:1px solid var(--goals-line);border-radius:15px;background:rgba(255,255,255,.94);color:var(--recurring-ink);box-shadow:0 5px 18px rgba(31,48,73,.045);text-align:left}
.recurring-card:hover{background:#fff;border-color:#b8c6d9;box-shadow:0 10px 26px rgba(31,48,73,.09);transform:translateY(-1px)}
.recurring-card.selected{border-color:var(--recurring-blue);box-shadow:0 0 0 2px rgba(23,105,232,.08),0 12px 28px rgba(31,48,73,.08)}
.recurring-card.is-paused{opacity:.72}
.recurring-card-icon,.recurring-detail-icon,.recurring-placeholder-icon{display:inline-grid;place-items:center;border-radius:50%;background:var(--recurring-expense-soft);color:var(--recurring-expense)}
.recurring-card.type-income .recurring-card-icon,.recurring-detail-panel.type-income .recurring-detail-icon{background:var(--recurring-income-soft);color:var(--recurring-income)}
.recurring-card-icon{width:50px;height:50px}
.recurring-card-icon svg,.recurring-detail-icon svg,.recurring-placeholder-icon svg{width:25px;height:25px}
.recurring-card-content{min-width:0;display:grid;gap:.46rem}
.recurring-card-heading,.recurring-card-value{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}
.recurring-card-heading>strong{min-width:0;font-size:1rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recurring-status-chip{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:.2rem .52rem;border-radius:999px;background:var(--recurring-income-soft);color:var(--recurring-income);font-size:.64rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.recurring-status-chip.is-paused{background:#edf0f4;color:#68778a}
.recurring-card-value>strong{font-family:var(--font-numeric);font-size:1.35rem;line-height:1;font-weight:750;letter-spacing:-.04em;color:var(--recurring-expense)}
.recurring-card.type-income .recurring-card-value>strong{color:var(--recurring-income)}
.recurring-card-value>span{min-width:0;color:#56667b;font-size:.73rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recurring-card-monthly{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.48rem .58rem;border-radius:9px;background:#f4f7fa;color:#6c7a8d;font-size:.67rem}
.recurring-card-monthly strong{color:#33465f;font-family:var(--font-numeric);font-size:.75rem;white-space:nowrap}
.recurring-card-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:.12rem;padding-top:.58rem;border-top:1px solid #e8ecf1}
.recurring-card-meta>span{min-width:0;display:grid;gap:.08rem}
.recurring-card-meta small,.recurring-detail-facts span{color:#7b8797;font-size:.6rem;font-weight:750;letter-spacing:.075em;text-transform:uppercase}
.recurring-card-meta strong{min-width:0;color:#263952;font-size:.72rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recurring-side-placeholder{min-height:390px;place-items:center;place-content:center;text-align:center;padding:2rem}
.recurring-placeholder-icon{width:56px;height:56px;background:var(--recurring-blue-soft);color:var(--recurring-blue)}
.recurring-side-placeholder h3,.recurring-empty-state h3{margin:.15rem 0 0;font-size:1.05rem;color:var(--recurring-ink)}
.recurring-side-placeholder p,.recurring-empty-state p{max-width:31ch;margin:0;color:#66758a;font-size:.82rem;line-height:1.5}
.recurring-panel-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.recurring-panel-close{width:34px;height:34px;display:inline-grid;place-items:center;padding:0;border:1px solid #dce3ec;border-radius:9px;background:#fff;color:#627187;box-shadow:none;font-size:1.2rem;font-weight:400}
.recurring-panel-close:hover{background:#f2f5f8;color:var(--recurring-ink);border-color:#c7d1de;box-shadow:none}
.recurring-detail-heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;align-items:center}
.recurring-detail-icon{width:46px;height:46px}
.recurring-detail-heading>div{min-width:0;display:grid;gap:.05rem}
.recurring-detail-heading span{color:#7b8797;font-size:.62rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.recurring-detail-heading h3{min-width:0;margin:0;color:var(--recurring-ink);font-size:1.18rem;font-weight:750;letter-spacing:-.025em;overflow-wrap:anywhere}
.recurring-detail-highlight{display:grid;gap:.08rem;padding:.85rem;border-radius:12px;background:var(--recurring-expense-soft)}
.recurring-detail-panel.type-income .recurring-detail-highlight{background:var(--recurring-income-soft)}
.recurring-detail-highlight>span{color:#7b8797;font-size:.64rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.recurring-detail-highlight strong{font-family:var(--font-numeric);font-size:1.7rem;line-height:1.08;font-weight:750;letter-spacing:-.045em;color:var(--recurring-expense)}
.recurring-detail-panel.type-income .recurring-detail-highlight strong{color:var(--recurring-income)}
.recurring-detail-highlight small{color:#66758a;font-size:.7rem}
.recurring-detail-monthly{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border:1px solid #e1e7ee;border-radius:11px;background:#f8fafc;color:#66758a;font-size:.7rem}
.recurring-detail-monthly strong{color:#263952;font-family:var(--font-numeric);font-size:.9rem;white-space:nowrap}
.recurring-detail-facts{display:grid;gap:.75rem}
.recurring-detail-facts>div{display:grid;gap:.15rem}
.recurring-detail-facts strong{color:#263952;font-size:.83rem;font-weight:650;overflow-wrap:anywhere}
.recurring-detail-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin-top:.15rem}
.recurring-detail-actions button{min-height:42px}
.recurring-detail-actions .danger{padding-inline:.75rem}
.recurring-empty-state{min-height:340px;display:grid;place-items:center;place-content:center;gap:.65rem;padding:2rem;border:1px dashed #bbc8d8;border-radius:16px;background:rgba(255,255,255,.72);text-align:center}
.recurring-editor-heading{background:radial-gradient(circle at 88% 8%,rgba(95,200,165,.2),transparent 31%),linear-gradient(135deg,#f7faff 0%,#eef5ff 100%)}
.entity-editor-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem;align-items:start;padding:.68rem .72rem;border:1px solid #dce8f8;border-radius:10px;background:#f3f7fd;color:#5b6e86;font-size:.68rem;line-height:1.45}
.entity-editor-note svg{width:17px;height:17px;margin-top:.05rem;fill:none;stroke:var(--goals-blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.entity-choice-field{min-width:0;margin:0;padding:0;border:0}
.entity-choice-field legend{margin-bottom:.38rem;color:#33465f;font-size:.73rem;font-weight:700}
.entity-choice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;padding:.28rem;border:1px solid #d8e0ea;border-radius:11px;background:#f0f3f7}
.entity-choice-options label{position:relative;display:block;margin:0;color:inherit;font-size:inherit;letter-spacing:0;cursor:pointer}
.entity-choice-options input{position:absolute;opacity:0;pointer-events:none}
.entity-choice-options label>span{min-height:36px;display:grid;place-items:center;padding:.35rem .45rem;border:1px solid transparent;border-radius:8px;color:#68778a;font-size:.68rem;font-weight:700;text-align:center;transition:background 160ms var(--ease-premium),color 160ms var(--ease-premium),box-shadow 160ms var(--ease-premium)}
.entity-choice-options input:checked+span{border-color:#d7e0eb;background:#fff;color:var(--goals-blue);box-shadow:0 2px 7px rgba(31,48,73,.09)}
.recurring-type-options label:first-child input:checked+span{color:var(--recurring-expense)}
.recurring-type-options label:last-child input:checked+span{color:var(--recurring-income)}
.entity-choice-options input:focus-visible+span{outline:2px solid var(--goals-blue);outline-offset:2px}
.entity-form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.entity-toggle-field{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;margin:0;padding:.72rem .8rem;border:1px solid #d9e1eb;border-radius:11px;background:#fff;color:inherit;font-size:inherit;letter-spacing:0;cursor:pointer}
.entity-toggle-field>span:first-child{display:grid;gap:.08rem}
.entity-toggle-field strong{color:#33465f;font-size:.75rem}
.entity-toggle-field small{color:#748196;font-size:.64rem;line-height:1.35}
.entity-toggle-field input{position:absolute;opacity:0;pointer-events:none}
.entity-toggle-control{position:relative;width:42px;height:24px;display:block;border-radius:999px;background:#c8d1dc;box-shadow:inset 0 0 0 1px rgba(16,35,63,.08);transition:background 160ms var(--ease-premium)}
.entity-toggle-control::after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(31,48,73,.22);transition:transform 160ms var(--ease-premium)}
.entity-toggle-field input:checked+.entity-toggle-control{background:var(--recurring-income)}
.entity-toggle-field input:checked+.entity-toggle-control::after{transform:translateX(18px)}
.entity-toggle-field input:focus-visible+.entity-toggle-control{outline:2px solid var(--goals-blue);outline-offset:2px}
[data-recurring-month-day][hidden],[data-recurring-weekday][hidden]{display:none!important}

@media(max-width:1100px){
  .recurring-workspace{grid-template-columns:minmax(0,1fr) minmax(360px,400px)}
  .recurring-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .recurring-card-meta>span:last-child{grid-column:1/-1}
}
@media(max-width:900px){
  .recurring-workspace{grid-template-columns:1fr}
  .recurring-side-placeholder{display:none}
  .recurring-page.has-editor .recurring-summary,.recurring-workspace.has-editor .recurring-catalog{display:none}
  .recurring-card-meta{grid-template-columns:repeat(3,minmax(0,1fr))}
  .recurring-card-meta>span:last-child{grid-column:auto}
}
@media(max-width:720px){
  .recurring-page{gap:.72rem}
  .recurring-header{position:static;display:block;margin:0;padding:.2rem 0 .35rem;border:0;background:transparent}
  .recurring-header h2{font-size:1.45rem}
  .recurring-header .muted{font-size:.76rem;line-height:1.35}
  .recurring-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;border:0;background:transparent;box-shadow:none;gap:.42rem}
  .recurring-summary>div{min-width:0;display:grid;grid-template-columns:1fr;align-content:start;justify-items:start;gap:.42rem;padding:.65rem;border:1px solid var(--goals-line);border-radius:13px;background:#fff}
  .recurring-summary>div+div::before{display:none}
  .recurring-summary>div>span:last-child{width:100%}
  .recurring-summary-icon{width:32px;height:32px}
  .recurring-summary-icon svg{width:17px;height:17px}
  .recurring-summary strong{width:100%;font-size:clamp(.86rem,3.5vw,1.05rem);letter-spacing:-.025em}
  .recurring-summary small{font-size:.62rem;line-height:1.25;white-space:normal}
  .recurring-list-heading{align-items:center;padding-top:.3rem}
  .recurring-new-button{min-height:38px;padding:.5rem .68rem;font-size:.72rem}
  .recurring-workspace.has-selection .recurring-catalog,.recurring-workspace.has-editor .recurring-catalog{display:none}
  .recurring-card{grid-template-columns:auto minmax(0,1fr);gap:.68rem;padding:.82rem;border-radius:13px}
  .recurring-card-icon{width:42px;height:42px}
  .recurring-card-icon svg{width:21px;height:21px}
  .recurring-card-value>strong{font-size:1.18rem}
  .recurring-card-value>span{font-size:.68rem}
  .recurring-card-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .recurring-card-meta>span:last-child{grid-column:1/-1}
}
@media(max-width:480px){
  .recurring-list-tools>small{display:none}
  .recurring-card{grid-template-columns:1fr}
  .recurring-card-icon{display:none}
  .recurring-card-heading>strong{font-size:.94rem}
  .recurring-card-value{align-items:flex-start;flex-direction:column;gap:.2rem}
  .recurring-card-meta{grid-template-columns:1fr}
  .recurring-card-meta>span:last-child{grid-column:auto}
  .recurring-detail-actions,.recurring-editor-panel .row-actions{grid-template-columns:1fr}
  .entity-form-columns{grid-template-columns:1fr}
}

/* Debiti e crediti: gerarchia coerente con obiettivi e ricorrenze. */
.debts-page{
  --debt-page-ink:#10233f;
  --debt-page-navy:#172640;
  --debt-page-line:#dce3ec;
  --debt-page-blue:#24527a;
  --debt-page-blue-soft:#eaf0f6;
  --debt-page-debit:#c84f46;
  --debt-page-debit-soft:#fff0ed;
  --debt-page-credit:#168262;
  --debt-page-credit-soft:#e4f7f0;
  display:grid;
  gap:1rem;
  color:var(--debt-page-ink)
}
.debt-page-summary{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(390px,1.28fr);border:1px solid var(--debt-page-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045);overflow:hidden}
.debt-summary-lead{min-width:0;display:grid;align-content:center;gap:.25rem;padding:1.05rem 1.2rem;background:var(--debt-page-navy);color:#fff}
.debt-summary-lead small{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9fb0c8}
.debt-summary-lead strong{font-size:1.03rem;font-weight:680;letter-spacing:-.018em;color:#fff}
.debt-summary-metrics{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.debt-summary-metrics>div{min-width:0;display:flex;align-items:center;gap:.75rem;padding:.92rem 1rem;position:relative}
.debt-summary-metrics>div+div::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--debt-page-line)}
.debt-summary-metrics>div>span:last-child{min-width:0;display:grid;gap:.08rem}
.debt-summary-metrics strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.18rem,2vw,1.55rem);line-height:1;font-weight:740;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.debt-summary-metrics>div:nth-child(1) strong{color:var(--debt-page-debit)}
.debt-summary-metrics>div:nth-child(2) strong{color:var(--debt-page-credit)}
.debt-summary-metrics small{color:#66758a;font-size:.7rem;font-weight:550}
.debt-page-summary-icon{width:38px;height:38px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:10px}
.debt-page-summary-icon svg,.debt-side-placeholder-icon svg,.debt-position-card-icon svg,.debt-detail-shell .transaction-detail-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.debt-summary-debit{background:var(--debt-page-debit-soft);color:var(--debt-page-debit)}
.debt-summary-credit{background:var(--debt-page-credit-soft);color:var(--debt-page-credit)}
.debt-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.15rem 0 .35rem;width:100%}
.debt-page-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--debt-page-ink)}
.debt-page-header .muted{font-size:.9rem;color:#66758a}
.debt-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,490px);gap:1rem;align-items:start;min-width:0}
.debt-catalog{min-width:0;display:grid;gap:.65rem}
.debt-list-heading{display:flex;align-items:end;justify-content:space-between;gap:.75rem;padding:.15rem .1rem .2rem}
.debt-list-heading>div:first-child,.debt-closed-heading{display:grid;gap:.04rem}
.debt-list-heading>div:first-child>span,.debt-closed-heading>span{color:var(--debt-page-blue);font-size:.66rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.debt-list-heading h3,.debt-closed-heading h3{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--debt-page-ink)}
.debt-list-tools{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}
.debt-closed-toggle{min-height:36px;padding:.46rem .7rem;border-radius:9px;font-size:.7rem;color:#56667b;background:#fff;border-color:#d8e0ea;box-shadow:0 4px 12px rgba(31,48,73,.045)}
.debt-closed-toggle:hover{background:#f5f8fb;color:var(--debt-page-ink);border-color:#b8c6d9}
.debts-page .debt-mode-switch{margin:0 0 .05rem;padding:4px;border:1px solid var(--debt-page-line);border-radius:11px;background:#f0f3f7;box-shadow:none}
.debts-page .debt-mode-indicator{border-radius:8px;background:var(--debt-page-debit);box-shadow:none}
.debts-page .debt-mode-switch[data-mode="credit"] .debt-mode-indicator{background:var(--debt-page-credit);box-shadow:none}
.debts-page .debt-mode-option{min-height:40px;padding:.5rem .8rem;font-size:.82rem}
.debts-page .debt-mode-option[aria-selected="true"]{color:#fff}
.debts-page .debt-mode-count{background:rgba(16,35,63,.08)}
.debts-page .debt-mode-option[aria-selected="true"] .debt-mode-count{background:rgba(255,255,255,.22)}
.debt-list-pane{gap:.65rem}
.debt-position-list .entity-list{display:grid;gap:0;border:1px solid var(--debt-page-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035);overflow:hidden}
.debt-position-card{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:center;padding:.88rem 1rem;border:0;border-radius:0;background:#fff;color:var(--debt-page-ink);box-shadow:none;text-align:left;transition:background-color 150ms ease,box-shadow 150ms ease}
.debt-position-card+.debt-position-card{border-top:1px solid #edf0f4}
.debt-position-card:hover{background:#f8fafc;border-color:transparent;box-shadow:none;transform:none}
.debt-position-card.selected{border-color:transparent;background:#f5f8fd;box-shadow:inset 3px 0 0 var(--debt-page-blue)}
.debt-position-card.status-closed,.debt-position-card.status-cancelled{opacity:1;background:#fafbfc}
.debt-position-card-icon{width:38px;height:38px;display:inline-grid;place-items:center;border-radius:10px;background:var(--debt-page-debit-soft);color:var(--debt-page-debit);font-size:.68rem;font-weight:750;letter-spacing:.02em}
.debt-position-card-icon svg{width:18px;height:18px}
.debt-position-card.type-credit .debt-position-card-icon{background:var(--debt-page-credit-soft);color:var(--debt-page-credit)}
.debt-position-card-icon.neutral{background:#edf0f4;color:#68778a}
.debt-position-card-content{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.18rem .75rem;align-items:start}
.debt-position-card-heading{min-width:0;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.debt-position-card-heading>strong{min-width:0;font-size:.92rem;font-weight:680;letter-spacing:-.012em;overflow-wrap:anywhere}
.debt-position-badges{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}
.debt-position-badges .shared-badge,.debt-position-badges .due-badge{margin-left:0;font-size:.61rem}
.debt-position-card-value{grid-column:2;grid-row:1/3;align-self:center;font-family:var(--font-numeric);font-size:1.08rem;line-height:1;font-weight:740;letter-spacing:-.03em;white-space:nowrap}
.debt-position-card-value.negative{color:var(--debt-page-debit)}
.debt-position-card-value.positive{color:var(--debt-page-credit)}
.debt-position-card-value.neutral{color:#68778a}
.debt-position-card-subtitle{min-width:0;color:#66758a;font-size:.72rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.debt-incoming-section{border:1px solid var(--debt-page-line)!important;border-left:3px solid var(--debt-page-debit)!important;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.debt-incoming-section-title{color:#a83f37}
.debt-closed-section{display:grid;gap:.55rem;margin-top:.25rem;padding-top:.75rem;border-top:1px solid #e3e8ee}
.debt-closed-heading{padding:0 .1rem}
.debt-position-list-closed .debt-position-card{background:#fafbfc}
.debt-side-placeholder{min-width:0;min-height:390px;position:sticky;top:1rem;display:grid;place-items:center;place-content:center;gap:.65rem;padding:2rem;border:1px solid var(--debt-page-line);border-radius:15px;background:rgba(255,255,255,.86);box-shadow:0 6px 20px rgba(31,48,73,.035);text-align:center}
.debt-side-placeholder-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:12px;background:var(--debt-page-blue-soft);color:var(--debt-page-blue)}
.debt-side-placeholder h3{margin:.15rem 0 0;font-size:1.05rem;color:var(--debt-page-ink)}
.debt-side-placeholder p{max-width:31ch;margin:0;color:#66758a;font-size:.82rem;line-height:1.5}
.debt-detail-shell{min-width:0;display:grid;gap:.75rem;align-content:start}
.debt-workspace.has-selection .transaction-detail-back{display:inline-flex}
.debt-detail-shell>.entity-detail-card{gap:1rem;padding:1.1rem;border:1px solid var(--debt-page-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.04)}
.debt-detail-shell .transaction-detail-topbar{min-height:34px}
.debt-detail-shell .transaction-detail-back{min-height:34px;padding:.42rem .65rem;border-radius:9px}
.debt-detail-shell .transaction-detail-hero{grid-template-columns:auto minmax(0,1fr);justify-items:stretch;align-items:center;gap:.08rem .75rem;text-align:left}
.debt-detail-shell .transaction-detail-icon{grid-row:1/5;width:50px;height:50px;border-radius:50%;font-size:.78rem;font-weight:750}
.debt-detail-shell .transaction-detail-icon svg{width:23px;height:23px}
.debt-detail-shell .transaction-detail-amount{font-size:1.65rem;line-height:1.05;font-weight:750;letter-spacing:-.045em}
.debt-detail-shell .transaction-detail-title{font-size:1.08rem;font-weight:750;letter-spacing:-.02em}
.debt-detail-shell .transaction-detail-category{font-size:.72rem;color:#66758a}
.debt-detail-shell .transaction-detail-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.debt-detail-shell .transaction-detail-field{padding:.62rem .68rem;border:1px solid #e3e8ee;border-radius:10px;background:#f8fafc}
.debt-detail-shell .transaction-detail-field span{font-size:.59rem;letter-spacing:.07em;text-transform:uppercase}
.debt-detail-shell .transaction-detail-field strong{font-size:.78rem}
.debt-detail-shell .transaction-detail-actions{grid-template-columns:minmax(0,1fr) auto}
.debt-operational-stack{min-width:0;border:1px solid var(--debt-page-line);border-radius:15px;background:#fff;box-shadow:0 8px 26px rgba(31,48,73,.05);overflow:visible}
.debt-operational-stack>.card{margin:0;border:0;border-radius:0;background:#fff;box-shadow:none}
.debt-operational-stack>.card+.card{border-top:1px solid #e7ecf2}
.debt-operational-stack>.card:first-child{border-radius:14px 14px 0 0}
.debt-operational-stack>.card:last-child{border-radius:0 0 14px 14px}
.debt-operational-card{display:grid;gap:1rem;padding:1.05rem}
.debt-operational-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.debt-operational-topbar .transaction-detail-back{display:inline-flex;min-height:34px;padding:.42rem .65rem;border-radius:9px}
.debt-operational-status{display:inline-flex;align-items:center;min-height:24px;padding:.2rem .55rem;border-radius:999px;background:#edf6f2;color:#477565;font-size:.62rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase}
.debt-operational-status.status-closed{background:#edf1f5;color:#617086}
.debt-operational-status.status-cancelled{background:#faf1ef;color:#92554f}
.debt-operational-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}
.debt-operational-heading{min-width:0;display:grid;gap:.2rem}
.debt-operational-heading>span{color:var(--debt-page-blue);font-size:.64rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.debt-operational-heading h3{margin:0;font-size:1.2rem;font-weight:740;line-height:1.15;letter-spacing:-.03em;color:var(--debt-page-ink);overflow-wrap:anywhere}
.debt-operational-residual{min-width:0;display:grid;justify-items:end;gap:.18rem}
.debt-operational-residual small{color:#718096;font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.debt-operational-residual strong{max-width:100%;font-family:var(--font-numeric);font-size:1.55rem;line-height:1;font-weight:760;letter-spacing:-.045em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.debt-operational-residual strong.negative{color:var(--debt-page-debit)}
.debt-operational-residual strong.positive{color:var(--debt-page-credit)}
.debt-balance-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #e7ecf2;border-bottom:1px solid #e7ecf2}
.debt-balance-breakdown>div{min-width:0;display:grid;gap:.18rem;padding:.72rem .15rem}
.debt-balance-breakdown>div+div{padding-left:.85rem;border-left:1px solid #e7ecf2}
.debt-balance-breakdown small{font-size:.6rem;font-weight:700;line-height:1.25;letter-spacing:.045em;text-transform:uppercase;color:#718096}
.debt-balance-breakdown strong{min-width:0;font-family:var(--font-numeric);font-size:.92rem;font-weight:700;color:#33465f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.debt-operational-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem 0;color:#66758a;font-size:.72rem;line-height:1.4}
.debt-operational-meta span{display:inline-flex;align-items:center}
.debt-operational-meta span+span::before{content:"·";padding:0 .45rem;color:#b0bac7}
.debt-operational-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;padding:.7rem .78rem;border-left:2px solid #b9c8da;background:#f8fafc}
.debt-operational-note>span{color:#718096;font-size:.62rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.debt-operational-note p{margin:0;color:#41546c;font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}
.debt-operational-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:start}
.debt-operational-actions>button,.debt-operational-menu>summary{min-height:42px}
.debt-operational-menu{min-width:142px}
.debt-operational-menu>summary{display:flex;align-items:center;justify-content:center;padding:.6rem .85rem;border:1px solid #ccd6e2;border-radius:9px;background:#fff;color:#465a72;font-size:.78rem;font-weight:650;cursor:pointer;list-style:none;user-select:none}
.debt-operational-menu>summary::-webkit-details-marker{display:none}
.debt-operational-menu>summary::after{content:"+";margin-left:.45rem;color:#718096}
.debt-operational-menu[open]>summary::after{content:"−"}
.debt-operational-menu>div{display:grid;gap:.4rem;margin-top:.45rem}
.debt-operational-menu>div button{width:100%;min-height:38px}
.debt-operational-assistant{padding-top:.85rem;border-top:1px solid #e7ecf2}
.debt-operational-assistant button{width:100%;box-shadow:none}
.debt-operational-stack .debt-action-panel,.debt-operational-stack .debt-events-card,.debt-operational-stack .shared-actions-panel{margin-top:0;border-radius:0;border-color:#e7ecf2;box-shadow:none}
.debt-operational-stack .shared-actions-panel{border-left-width:3px;border-left-style:solid}
.debt-operational-stack .debt-action-panel{padding:1rem}
.debt-operational-stack .debt-action-head{margin-bottom:.3rem}
.debt-operational-stack .debt-action-form{margin:0;padding:.9rem 0;border:0;border-top:1px solid #e7ecf2;border-radius:0;background:transparent}
.debt-operational-stack .debt-action-form:first-of-type{margin-top:.7rem}
.debt-operational-stack .debt-action-form+.debt-action-form{margin-top:0}
.debt-action-tag{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:.2rem .5rem;border-radius:999px;background:var(--debt-page-blue-soft);color:var(--debt-page-blue);font-size:.58rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}
.debt-detail-shell .debt-action-residual{border-radius:10px;background:#f8fafc}
.debt-events-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.7rem}
.debt-events-heading>span{font-size:.98rem;font-weight:700;letter-spacing:-.015em;color:var(--debt-page-ink)}
.debt-events-heading>small{color:#718096;font-size:.66rem;font-weight:650}
.debt-operational-stack .debt-event-list{gap:0}
.debt-operational-stack .debt-event-row{position:relative;padding:.7rem 0 .7rem 1rem;border:0;border-top:1px solid #edf0f4;border-radius:0;background:transparent}
.debt-operational-stack .debt-event-list>.debt-event-row:first-child{border-top:0}
.debt-operational-stack .debt-event-row::before{content:"";position:absolute;left:.05rem;top:1rem;width:6px;height:6px;border-radius:50%;background:#9fb0c8}
.debt-operational-stack .debt-event-row.tone-accent::before{background:var(--debt-page-blue)}
.debt-operational-stack .debt-event-row.tone-warning::before{background:#a47735}
.debt-operational-stack .debt-event-row.tone-danger::before{background:var(--debt-page-debit)}
.debt-operational-stack .debt-event-row.debt-event-orphan{padding-inline:.8rem;background:var(--danger-soft)}
.debt-event-more{border-top:1px solid #edf0f4}
.debt-event-more>summary{padding:.72rem 0;color:var(--debt-page-blue);font-size:.72rem;font-weight:700;cursor:pointer;list-style:none}
.debt-event-more>summary::-webkit-details-marker{display:none}
.debt-event-more>summary::after{content:" +"}
.debt-event-more[open]>summary::after{content:" −"}
.debt-event-list-older{border-top:1px solid #edf0f4}
.debt-operational-notice{padding:.85rem 1rem;background:#f8fafc!important}
.debts-page .debt-page-editor{width:min(760px,100%);margin:0 auto}
.debts-page .debt-entry-form-card{padding:0;overflow:hidden;border:1px solid var(--debt-page-line);border-radius:15px;background:#fff;box-shadow:0 8px 28px rgba(31,48,73,.055)}
.debts-page .debt-entry-form-card>h3{margin:0;padding:1.15rem 1.25rem .4rem;background:#f8fafc;font-size:1.22rem;letter-spacing:-.03em;color:var(--debt-page-ink)}
.debts-page .debt-entry-form-card>.debt-form-context{margin:0;padding:0 1.25rem 1rem;border-bottom:1px solid #e3e8ee;background:#f8fafc;font-size:.76rem}
.debts-page .debt-entry-form-card .form-grid{gap:.8rem;padding:1.15rem 1.25rem 1.25rem}
.debts-page .debt-entry-form-card .form-grid>label,.debts-page .debt-entry-form-card .debt-initial-payment label,.debts-page .debt-entry-form-card details label{display:grid;gap:.38rem;color:#33465f;font-size:.73rem;font-weight:700;letter-spacing:.01em}
.debts-page .debt-entry-form-card input,.debts-page .debt-entry-form-card select,.debts-page .debt-entry-form-card textarea{min-height:48px;border-color:#cfd9e6;border-radius:10px;background:#fbfcfe;color:#172b47;font-size:.88rem;box-shadow:0 1px 0 rgba(16,35,63,.02)}
.debts-page .debt-entry-form-card textarea{resize:vertical;line-height:1.45}
.debts-page .debt-entry-form-card input:focus,.debts-page .debt-entry-form-card select:focus,.debts-page .debt-entry-form-card textarea:focus{border-color:var(--debt-page-blue);background:#fff;box-shadow:0 0 0 3px rgba(36,82,122,.2)}
.debts-page .debt-entry-form-card .debt-initial-payment,.debts-page .debt-entry-form-card .debt-action-more{padding:.8rem;border:1px solid #e1e7ee;border-radius:11px;background:#f8fafc}
.debts-page .debt-entry-form-card .row-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;margin-top:.15rem}
.debts-page .debt-entry-form-card .row-actions button{min-height:44px}
.debt-operational-actions>button[data-toggle-debt-operations],.debts-page .debt-entry-form-card .row-actions>button:first-child,.debt-operational-stack #debtPaymentForm .row-actions>button:first-child{border-color:var(--debt-page-blue);background:var(--debt-page-blue);color:#fff;box-shadow:0 5px 15px rgba(36,82,122,.17)}
.debt-operational-actions>button[data-toggle-debt-operations]:hover,.debts-page .debt-entry-form-card .row-actions>button:first-child:hover:not(:disabled),.debt-operational-stack #debtPaymentForm .row-actions>button:first-child:hover:not(:disabled){border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.debt-operational-actions>button[data-toggle-debt-operations]:focus-visible,.debts-page .debt-entry-form-card .row-actions>button:first-child:focus-visible,.debt-operational-stack #debtPaymentForm .row-actions>button:first-child:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}

@media(max-width:1120px){
  .debt-workspace{grid-template-columns:minmax(0,1fr) minmax(390px,440px)}
  .debt-position-card-content{grid-template-columns:1fr}
  .debt-position-card-value{grid-column:1;grid-row:auto;justify-self:start;margin-top:.18rem}
}
@media(max-width:900px){
  .debt-workspace{grid-template-columns:1fr}
  .debt-side-placeholder{display:none}
  .debt-workspace.has-selection .debt-catalog{display:none}
  .debts-page.has-editor .debt-page-summary{display:none}
  .debt-position-card-content{grid-template-columns:minmax(0,1fr) auto}
  .debt-position-card-value{grid-column:2;grid-row:1/3;justify-self:auto;margin-top:0}
}
@media(max-width:720px){
  .debts-page{gap:.72rem}
  .debt-page-header{position:static;display:block;margin:0;padding:.2rem 0 .35rem;border:0;background:transparent}
  .debt-page-header h2{font-size:1.45rem}
  .debt-page-header .muted{font-size:.76rem;line-height:1.35}
  .debt-page-summary{grid-template-columns:1fr;border-radius:14px}
  .debt-summary-lead{padding:.85rem 1rem}
  .debt-summary-metrics{border-top:1px solid var(--debt-page-line)}
  .debt-summary-metrics>div{padding:.75rem}
  .debt-summary-metrics strong{font-size:clamp(.9rem,3.7vw,1.08rem)}
  .debt-summary-metrics small{font-size:.62rem;line-height:1.25}
  .debt-page-summary-icon{width:32px;height:32px}
  .debt-page-summary-icon svg{width:17px;height:17px}
  .debt-list-heading{align-items:center;padding-top:.3rem}
  .debt-closed-toggle{min-height:38px;padding:.5rem .62rem;font-size:.66rem}
  .debt-position-card{gap:.68rem;padding:.8rem .85rem;border-radius:0}
  .debt-position-card-icon{width:36px;height:36px}
  .debt-position-card-heading>strong{font-size:.94rem}
  .debt-position-card-value{font-size:1.08rem}
  .debt-detail-shell .transaction-detail-fields{grid-template-columns:1fr}
  .debt-operational-card{padding:.9rem;gap:.85rem}
  .debt-operational-hero{gap:.7rem}
  .debt-operational-heading h3{font-size:1.08rem}
  .debt-operational-residual strong{font-size:1.3rem}
  .debt-operational-actions{grid-template-columns:1fr auto}
  .debt-operational-stack .shared-actions-panel{padding:.9rem}
  .debts-page .debt-entry-form-card{border-radius:14px}
  .debts-page .debt-entry-form-card>h3{padding:1.05rem 1.05rem .35rem}
  .debts-page .debt-entry-form-card>.debt-form-context{padding:0 1.05rem .95rem}
  .debts-page .debt-entry-form-card .form-grid{padding:1rem 1.05rem}
}
@media(max-width:480px){
  .debt-list-heading h3{font-size:.98rem}
  .debt-position-card-content{grid-template-columns:1fr}
  .debt-position-card-value{grid-column:1;grid-row:auto;justify-self:start;margin-top:.18rem}
  .debt-position-badges{width:100%}
  .debt-detail-shell .transaction-detail-actions,.debts-page .debt-entry-form-card .row-actions{grid-template-columns:1fr}
  .debt-detail-shell .debt-action-grid{grid-template-columns:1fr}
  .debt-operational-hero{grid-template-columns:1fr}
  .debt-operational-residual{justify-items:start}
  .debt-balance-breakdown>div{padding:.65rem .1rem}
  .debt-balance-breakdown>div+div{padding-left:.65rem}
  .debt-operational-actions{grid-template-columns:1fr}
  .debt-operational-menu{min-width:0}
  .debt-operational-note{grid-template-columns:1fr;gap:.25rem}
  .debt-operational-stack .debt-event-row{grid-template-columns:1fr;padding-left:1rem}
  .debt-operational-stack .debt-event-side{justify-items:start}
}

/* Stato patrimoniale: gerarchia e composizione rinnovate, grafici esclusi. */
.networth-page{
  --networth-ink:#10233f;
  --networth-navy:#172640;
  --networth-blue:#24527a;
  --networth-blue-soft:#eaf0f6;
  --networth-neutral:#52647a;
  --networth-neutral-soft:#edf1f5;
  --networth-green:#477565;
  --networth-green-soft:#edf6f2;
  --networth-red:#92554f;
  --networth-red-soft:#faf1ef;
  --networth-line:#dce3ec;
  display:grid;
  gap:1rem;
  min-width:0;
  color:var(--networth-ink)
}
.networth-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.15rem 0 .35rem}
.networth-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--networth-ink)}
.networth-header .muted{font-size:.9rem;color:#66758a}
.networth-operational-summary{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(520px,1.58fr);overflow:hidden;border:1px solid var(--networth-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.networth-summary-lead{min-width:0;display:flex;align-items:center;gap:.9rem;padding:1.05rem 1.2rem;background:var(--networth-navy);color:#fff}
.networth-summary-lead-icon{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:12px;background:rgba(255,255,255,.1);color:#a7c4e2}
.networth-summary-lead-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.networth-summary-lead-copy{min-width:0;display:grid;gap:.12rem}
.networth-summary-lead-copy>small{color:#9fb0c8;font-size:.63rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.networth-summary-lead-copy>strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.45rem,2.5vw,1.95rem);line-height:1;font-weight:760;letter-spacing:-.045em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.networth-summary-lead-copy>span{color:#d7e0ec;font-size:.72rem;font-weight:550}
.networth-operational-metrics{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.networth-operational-metrics.has-investments{grid-template-columns:repeat(4,minmax(0,1fr))}
.networth-operational-metric{min-width:0;position:relative;display:grid;align-content:center;gap:.2rem;padding:.9rem 1rem}
.networth-operational-metric+.networth-operational-metric::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--networth-line)}
.networth-operational-metric strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(.94rem,1.65vw,1.28rem);line-height:1;font-weight:730;letter-spacing:-.035em;color:#33465f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.networth-operational-metric small{color:#718096;font-size:.65rem;font-weight:550;line-height:1.25}
.networth-operational-metric.tone-debts strong{color:var(--networth-red)}
.networth-operational-metric.tone-credits strong{color:var(--networth-green)}
.networth-section-heading{display:grid;gap:.04rem;padding:.15rem .1rem .2rem}
.networth-section-heading>span,.networth-resource-heading>span{color:var(--networth-blue);font-size:.66rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.networth-section-heading h3,.networth-resource-heading h3{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--networth-ink)}
.networth-trends-heading{margin-top:.15rem}
.networth-resources-grid{align-items:start;gap:1rem}
.networth-page .wealth-resource-card{min-width:0;display:grid;gap:0;padding:0;overflow:hidden;border:1px solid var(--networth-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.networth-resource-heading{display:grid;gap:.04rem;padding:.88rem 1rem;border-bottom:1px solid #e7ecf2}
.networth-page .wealth-resource-card .entity-list{gap:0}
.networth-page .wealth-resource-card .entity-row{padding:.72rem 1rem;border:0;border-radius:0;background:#fff;box-shadow:none}
.networth-page .wealth-resource-card .entity-row+.entity-row{border-top:1px solid #edf0f4}
.networth-page .wealth-resource-card .entity-row:hover{background:#f8fafc;transform:none}
.networth-page .wealth-resource-card .entity-row-icon{border-radius:9px;background:var(--networth-blue-soft);color:var(--networth-blue)}
.networth-page .wealth-resource-card .entity-row-copy strong{font-weight:650;color:#263952}
.networth-page .wealth-resource-card .entity-row-value{font-weight:700}
.networth-page .wealth-resource-card>.muted,.networth-page .wealth-resource-card>.transaction-empty-state{margin:.85rem 1rem;padding:.75rem;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#66758a}

@media(max-width:720px){
  .networth-page{gap:.72rem}
  .networth-header{position:static;display:block;margin:0;padding:.2rem 0 .35rem;border:0;background:transparent}
  .networth-header h2{font-size:1.45rem}
  .networth-header .muted{font-size:.76rem;line-height:1.35}
  .networth-operational-summary{grid-template-columns:1fr;border-radius:14px}
  .networth-summary-lead{padding:.9rem 1rem}
  .networth-summary-lead-copy>strong{font-size:1.55rem}
  .networth-operational-metrics,.networth-operational-metrics.has-investments{grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--networth-line)}
  .networth-operational-metric{padding:.75rem .8rem;border-top:1px solid #edf0f4}
  .networth-operational-metric:nth-child(-n+2){border-top:0}
  .networth-operational-metric:nth-child(odd)::before{display:none}
  .networth-operational-metric strong{font-size:clamp(.92rem,4vw,1.08rem)}
  .networth-operational-metric small{font-size:.61rem}
  .networth-section-heading{padding-top:.3rem}
  .networth-section-heading h3,.networth-resource-heading h3{font-size:.98rem}
  .networth-page .wealth-resource-card{border-radius:14px}
  .networth-resource-heading{padding:.8rem .85rem}
  .networth-page .wealth-resource-card .entity-row{padding:.68rem .85rem}
}

@media(max-width:480px){
  .networth-summary-lead-icon{width:38px;height:38px}
  .networth-summary-lead-copy>strong{font-size:1.42rem}
}

/* Centro notifiche: inbox operativa, minimale e orientata alle azioni. */
.notifications-page{
  --notifications-ink:#10233f;
  --notifications-navy:#172640;
  --notifications-blue:#24527a;
  --notifications-blue-soft:#eaf0f6;
  --notifications-line:#dce3ec;
  display:grid;
  gap:1rem;
  min-width:0;
  color:var(--notifications-ink)
}
.notifications-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.1rem 0 .25rem}
.notifications-header h2{margin:0;font-size:clamp(1.72rem,3vw,2.15rem);font-weight:750;letter-spacing:-.045em;color:var(--notifications-ink)}
.notifications-header .muted{margin-top:.18rem;font-size:.88rem;color:#66758a}
.notifications-header .row-actions{flex:0 0 auto}
.notifications-header #markAllNotificationsReadBtn{min-height:40px;border-color:#ccd6e2;background:transparent;color:#465a72;box-shadow:none}
.notifications-header #markAllNotificationsReadBtn:hover:not(:disabled){border-color:#aebdd0;background:#fff;color:var(--notifications-blue)}
.notifications-page .notification-summary-grid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(360px,1.15fr);gap:0;border:1px solid var(--notifications-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045);overflow:hidden}
.notification-summary-primary{min-width:0;display:flex;align-items:center;gap:1rem;padding:1.05rem 1.2rem;background:var(--notifications-navy);color:#fff}
.notification-summary-icon{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:12px;background:rgba(255,255,255,.1);color:#8bbcff}
.notification-summary-icon svg,.notifications-page .notification-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-summary-primary-copy{min-width:0;display:grid;gap:.28rem}
.notification-summary-primary-copy>small{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9fb0c8}
.notification-summary-primary-value{display:flex;align-items:baseline;gap:.55rem;min-width:0}
.notification-summary-primary-value strong{font-family:var(--font-numeric);font-size:1.85rem;line-height:1;font-weight:760;letter-spacing:-.045em;color:#fff}
.notification-summary-primary-value>span{font-size:.78rem;font-weight:550;color:#d7e0ec;white-space:nowrap}
.notification-summary-secondary{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.notification-summary-secondary>div{min-width:0;display:grid;align-content:center;gap:.18rem;padding:.9rem 1rem;position:relative}
.notification-summary-secondary>div+div::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--notifications-line)}
.notification-summary-secondary strong{font-family:var(--font-numeric);font-size:1.3rem;line-height:1;font-weight:730;letter-spacing:-.035em;color:#273b55}
.notification-summary-secondary small{font-size:.7rem;font-weight:550;line-height:1.3;color:#718096}
.notifications-page .notification-group{display:grid;gap:0;margin:0;padding:0;border:1px solid var(--notifications-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035);overflow:hidden}
.notifications-page .notification-group .dashboard-cluster-header{align-items:center;margin:0;padding:.9rem 1rem;border-bottom:1px solid #e7ecf2}
.notifications-page .notification-group .dashboard-cluster-header h3{margin:0;font-size:.98rem;font-weight:700;letter-spacing:-.018em;color:var(--notifications-ink)}
.notification-group-count{display:inline-flex;align-items:center;min-height:24px;padding:.2rem .55rem;border-radius:999px;background:#f0f3f7;color:#617086;font-size:.66rem;font-weight:650;white-space:nowrap}
.notifications-page .notification-list{display:grid;gap:0}
.notifications-page .notification-row{min-width:0;grid-template-columns:auto minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.88rem 1rem;border:0;border-radius:0;background:#fff;box-shadow:none;transition:background-color 150ms ease}
.notifications-page .notification-row+.notification-row{border-top:1px solid #edf0f4}
.notifications-page .notification-row:hover{background:#f8fafc;transform:none}
.notifications-page .notification-row.danger,.notifications-page .notification-row.warning,.notifications-page .notification-row.info,.notifications-page .notification-row.success{border-color:#edf0f4;background:#fff}
.notifications-page .notification-row.danger:hover,.notifications-page .notification-row.warning:hover,.notifications-page .notification-row.info:hover,.notifications-page .notification-row.success:hover{background:#f8fafc}
.notifications-page .notification-row.is-read{opacity:1;background:#fafbfc}
.notifications-page .notification-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--notifications-blue-soft);color:var(--notifications-blue)}
.notifications-page .notification-icon svg{width:18px;height:18px}
.notifications-page .notification-row.danger .notification-icon{background:#faf1ef;color:#92554f}
.notifications-page .notification-row.warning .notification-icon{background:#f8f1e5;color:#946b2f}
.notifications-page .notification-row.success .notification-icon{background:#edf6f2;color:#477565}
.notifications-page .notification-copy{gap:.2rem}
.notifications-page .notification-copy strong{font-size:.91rem;font-weight:680;letter-spacing:-.01em;color:#263952}
.notifications-page .notification-copy p{color:#66758a;font-size:.8rem;line-height:1.42}
.notifications-page .notification-title-line{gap:.42rem}
.notifications-page .notification-title-line .badge{padding:.18rem .42rem;font-size:.58rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase}
.notifications-page .notification-row.is-read .notification-copy strong,.notifications-page .notification-row.is-read .notification-copy p{color:#7a8798}
.notifications-page .notification-actions{gap:.38rem}
.notifications-page .notification-actions button{min-height:36px;box-shadow:none}
.notifications-page .notification-actions button:focus-visible,.notifications-header #markAllNotificationsReadBtn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.notifications-page .notification-actions button:not(.ghost):not(.danger){border-color:var(--notifications-blue);background:var(--notifications-blue);color:#fff}
.notifications-page .notification-actions button:not(.ghost):not(.danger):hover:not(:disabled){border-color:#1d4266;background:#1d4266;filter:none}
.notifications-page .notification-actions button:not(.ghost):not(.danger):focus-visible{box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.notifications-page .notification-empty{min-height:210px;margin:0;padding:2rem;border:1px dashed #bbc8d8;border-radius:15px;background:rgba(255,255,255,.78)}
.notifications-page .notification-empty h3{margin:0;color:var(--notifications-ink)}

@media(max-width:720px){
  .notifications-page{gap:.72rem}
  .notifications-page .notification-summary-grid{grid-template-columns:1fr;border-radius:14px}
  .notification-summary-primary{padding:.9rem 1rem}
  .notification-summary-secondary{border-top:1px solid var(--notifications-line)}
  .notification-summary-secondary>div{padding:.75rem}
  .notification-summary-secondary strong{font-size:1.08rem}
  .notification-summary-secondary small{font-size:.62rem}
  .notifications-header{display:grid;gap:.65rem;padding:.15rem 0 .25rem}
  .notifications-header h2{font-size:1.45rem}
  .notifications-header .muted{font-size:.76rem;line-height:1.35}
  .notifications-header .row-actions{justify-content:stretch}
  .notifications-header #markAllNotificationsReadBtn{width:100%}
  .notifications-page .notification-group{border-radius:14px}
  .notifications-page .notification-row{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:.8rem .85rem}
  .notifications-page .notification-actions{grid-column:1/-1;justify-content:flex-start;padding-top:.15rem}
}

@media(max-width:480px){
  .notification-summary-primary-value{display:grid;gap:.18rem}
  .notification-summary-primary-value>span{font-size:.7rem}
  .notification-summary-secondary>div{padding:.68rem .55rem}
  .notifications-page .notification-actions{display:grid;grid-template-columns:1fr;width:100%}
  .notifications-page .notification-actions button{width:100%}
}

/* Inserimento movimenti: console operativa coerente con notifiche e debiti. */
.movements-entry-page{
  --movements-ink:#10233f;
  --movements-navy:#172640;
  --movements-line:#dce3ec;
  --movements-blue:#24527a;
  --movements-blue-soft:#eaf0f6;
  --movements-expense:#b94d45;
  --movements-expense-soft:#fff0ed;
  --movements-income:#168262;
  --movements-income-soft:#e4f7f0;
  display:grid;
  gap:1rem;
  min-width:0;
  color:var(--movements-ink)
}
.movement-entry-card{
  --movements-ink:#10233f;
  --movements-navy:#172640;
  --movements-line:#dce3ec;
  --movements-blue:#24527a;
  --movements-expense:#b94d45;
  --movements-income:#168262
}
.movements-entry-header{position:static;display:block;margin:0;padding:.1rem 0 .25rem;border:0;background:transparent}
.movements-entry-header h2{margin:0;font-size:clamp(1.72rem,3vw,2.15rem);font-weight:750;letter-spacing:-.045em;color:var(--movements-ink)}
.movements-entry-header .muted{margin-top:.18rem;font-size:.88rem;color:#66758a}
.movements-entry-page .transaction-entry-shell{gap:.8rem}
.movement-entry-card,.movements-entry-page .debt-position-picker{padding:0;overflow:hidden;border:1px solid var(--movements-line);border-radius:15px;background:#fff;box-shadow:0 8px 28px rgba(31,48,73,.05)}
.movement-entry-card.transaction-light-form{padding:0;background:#fff}
.movement-form-head,.movements-entry-page .debt-position-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem 1rem 1.3rem;background:var(--movements-navy);color:#fff}
.movement-form-head::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--movements-expense)}
.movement-form-head.is-income::before{background:var(--movements-income)}
.movement-form-head>div{min-width:0;display:grid;gap:.16rem}
.movement-form-head>div>small,.movements-entry-page .debt-position-head::before{font-size:.63rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:#9fb0c8}
.movement-form-head h3,.movements-entry-page .debt-position-head h3{margin:0;color:#fff;font-size:1.15rem;font-weight:720;letter-spacing:-.025em}
.movement-form-head .muted,.movements-entry-page .debt-position-head .muted{color:#c8d3e1;font-size:.76rem;line-height:1.4}
.movement-form-status{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:.3rem .62rem;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.movement-entry-form{padding:1rem 1.15rem 1.15rem}
.movement-entry-card>.flash{margin:.9rem 1.15rem 0!important}
.movement-entry-card>.flash:last-child{margin-bottom:1rem!important}
.movement-entry-card .tx-type-switch{gap:0;padding:.25rem;border:1px solid #d8e0ea;border-radius:11px;background:#f0f3f7}
.movement-entry-card .tx-type-switch button{min-height:38px;border:0;border-radius:8px;background:transparent;color:#68778a;font-size:.72rem;font-weight:700}
.movement-entry-card .tx-type-switch button:hover{background:rgba(255,255,255,.7);color:var(--movements-ink);box-shadow:none}
.movement-entry-card .tx-type-switch button[data-tx-type="expense"].active{background:#fff;color:var(--movements-expense);box-shadow:0 2px 7px rgba(31,48,73,.09)}
.movement-entry-card .tx-type-switch button[data-tx-type="income"].active{background:#fff;color:var(--movements-income);box-shadow:0 2px 7px rgba(31,48,73,.09)}
.movement-entry-card .tx-type-switch .tx-type-other{padding-inline:.8rem;color:#68778a}
.movement-entry-card .form-grid label{color:#52657c;font-size:.73rem;font-weight:650;letter-spacing:.015em}
.movement-entry-card input,.movement-entry-card select{border-color:#d8e0ea;background:#fff}
.movement-entry-card input:focus,.movement-entry-card select:focus{border-color:var(--movements-blue);box-shadow:0 0 0 3px rgba(36,82,122,.2)}
.movement-entry-card .quick-choice-label{color:#718096;font-size:.64rem;letter-spacing:.07em}
.movement-entry-card .quick-chip{border-color:#dbe2eb;background:#f8fafc;color:#465a72}
.movement-entry-card .quick-chip:hover:not(.active){border-color:#aebdd0;background:#fff}
.movement-entry-card .quick-chip.active{border-color:var(--movements-blue);background:var(--movements-blue);color:#fff}
.movement-entry-card .quick-chip-ready{border-color:#cdd9e7;background:#eef3f8;color:#33465f;box-shadow:none}
.movement-entry-card .account-chip{background:#f8fafc}
.movement-entry-card .row-actions{padding-top:.35rem}
.movement-entry-card .row-actions>button:first-child{min-height:42px;border-color:var(--movements-blue);background:var(--movements-blue);box-shadow:0 5px 15px rgba(36,82,122,.17)}
.movement-entry-card .row-actions>button:first-child:hover:not(:disabled){border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.movement-entry-card .row-actions>button:first-child:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.movement-utility-bar{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(420px,1.35fr);overflow:hidden;border:1px solid var(--movements-line);border-radius:13px;background:#fff;box-shadow:0 5px 18px rgba(31,48,73,.035)}
.movement-utility-copy{display:grid;align-content:center;gap:.12rem;padding:.78rem 1rem;background:#f5f7fa;border-right:1px solid var(--movements-line)}
.movement-utility-copy small{color:#718096;font-size:.61rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.movement-utility-copy strong{color:#33465f;font-size:.78rem;font-weight:680}
.movements-entry-page .movement-quick-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0}
.movements-entry-page .movement-quick-menu button{width:100%;min-width:0;min-height:58px;border:0;border-radius:0;background:#fff;color:#52657c;box-shadow:none;font-size:.73rem;font-weight:650}
.movements-entry-page .movement-quick-menu button+button{border-left:1px solid var(--movements-line)}
.movements-entry-page .movement-quick-menu button:hover{background:#f8fafc;color:var(--movements-blue);transform:none}
.movements-recent-card{padding:0;overflow:hidden;border:1px solid var(--movements-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.movements-recent-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid #e7ecf2}
.movements-recent-heading>div{display:grid;gap:.04rem}
.movements-recent-heading small{color:var(--movements-blue);font-size:.61rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.movements-recent-heading h3{margin:0;color:var(--movements-ink);font-size:.98rem;font-weight:700;letter-spacing:-.018em}
.movements-recent-heading>span{display:inline-flex;align-items:center;min-height:24px;padding:.2rem .55rem;border-radius:999px;background:#f0f3f7;color:#617086;font-size:.66rem;font-weight:650;white-space:nowrap}
.movements-recent-card .transaction-list{gap:0}
.movements-recent-card .transaction-row-shell+.transaction-row-shell{border-top:1px solid #edf0f4}
.movements-recent-card .transaction-row{padding:.72rem 1rem;border:0;border-radius:0;background:#fff;box-shadow:none}
.movements-recent-card .transaction-row:hover{border:0;background:#f8fafc;box-shadow:none;transform:none}
.movements-recent-card .transaction-row-icon{width:34px;height:34px;border-radius:9px;font-size:.9rem}
.movements-recent-card .transaction-row-copy strong{color:#263952;font-weight:650}
.movements-entry-page .debt-position-head{display:grid;justify-content:stretch}
.movements-entry-page .debt-position-head::before{content:"Seleziona operazione";position:static;width:auto;height:auto;background:none}
.movements-entry-page .debt-position-groups{gap:1rem;padding:1rem 1.15rem 1.15rem}
.movements-entry-page .debt-position-option{border-color:#dce3ec;border-radius:10px;background:#fff}
.movements-entry-page .debt-position-option:hover{border-color:#b8c6d9;background:#f8fafc;box-shadow:none;transform:none}
.movements-entry-page .debt-position-kind{border-color:#dce3ec;background:#f5f7fa}

@media(max-width:720px){
  .movements-entry-page{gap:.72rem}
  .movements-entry-header{padding:.15rem 0 .25rem}
  .movements-entry-header h2{font-size:1.45rem}
  .movements-entry-header .muted{font-size:.76rem;line-height:1.35}
  .movement-entry-card,.movements-entry-page .debt-position-picker,.movements-recent-card{border-radius:14px}
  .movement-form-head,.movements-entry-page .debt-position-head{display:flex;padding:.85rem .9rem .85rem 1.05rem}
  .movement-form-head h3,.movements-entry-page .debt-position-head h3{font-size:1.02rem}
  .movement-form-head .muted,.movements-entry-page .debt-position-head .muted{font-size:.69rem}
  .movement-form-status{min-height:25px;padding:.25rem .5rem;font-size:.58rem}
  .movement-entry-form{padding:.78rem .85rem .85rem}
  .movement-entry-card>.flash{margin:.7rem .85rem 0!important}
  .movement-entry-card .quick-entry{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .movement-entry-card .quick-choice-label{margin:.38rem 0 .15rem}
  .movement-utility-bar{grid-template-columns:1fr;border-radius:12px}
  .movement-utility-copy{display:none}
  .movements-entry-page .movement-quick-menu{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0}
  .movements-entry-page .movement-quick-menu button{min-height:48px;padding:.45rem;font-size:.68rem;border-radius:0}
  .movements-recent-card .transaction-row{padding:.68rem .8rem}
  .movements-entry-page .debt-position-head{display:grid}
  .movements-entry-page .debt-position-groups{padding:.85rem}
}

@media(max-width:480px){
  .movement-form-head>div>small{font-size:.57rem}
  .movement-form-head .muted{max-width:34ch}
  .movement-form-status{display:none}
  .quick-entry-amount-row{grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr)}
  .movements-entry-page .movement-quick-menu button{min-height:46px;font-size:.64rem}
  .movements-recent-heading{padding:.78rem .8rem}
  .movements-recent-card .transaction-row{grid-template-columns:auto minmax(0,1fr);gap:.58rem}
  .movements-recent-card .transaction-row-side{grid-column:2;justify-items:start}
  .movements-entry-page .debt-position-option{grid-template-columns:auto minmax(0,1fr)}
  .movements-entry-page .debt-position-kind{display:none}
}

/* Conti: registro operativo nella palette navy e blu acciaio. */
.accounts-summary{grid-template-columns:minmax(270px,.9fr) repeat(2,minmax(180px,.55fr));border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.accounts-summary>div{padding:.92rem 1rem}
.accounts-summary>div:first-child{padding:1.05rem 1.2rem;background:var(--accounts-navy);color:#fff}
.accounts-summary>div:first-child .accounts-summary-icon{border-radius:12px;background:rgba(255,255,255,.1);color:#a7c4e2}
.accounts-summary>div:first-child strong{color:#fff;font-size:clamp(1.42rem,2.35vw,1.9rem)}
.accounts-summary>div:first-child small{color:#d7e0ec}
.accounts-summary>div:nth-child(2) strong{color:#33465f}
.accounts-summary-icon{width:40px;height:40px;border-radius:11px;background:var(--accounts-blue-soft);color:var(--accounts-blue)}
.accounts-summary-negative{background:var(--accounts-red-soft);color:var(--accounts-red)}
.account-new-button{background:var(--accounts-blue);box-shadow:0 5px 14px rgba(36,82,122,.17)}
.account-new-button:hover{background:#1d4266;box-shadow:0 8px 19px rgba(36,82,122,.22)}
.accounts-list{gap:0;overflow:hidden;border:1px solid var(--goals-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.account-card{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;padding:.82rem 1rem;border:0;border-radius:0;background:#fff;box-shadow:none}
.account-card+.account-card{border-top:1px solid #edf0f4}
.account-card:hover{border-color:transparent;background:#f8fafc;box-shadow:none;transform:none}
.account-card.selected{border-color:transparent;background:#f5f8fb;box-shadow:inset 3px 0 0 var(--accounts-blue)}
.account-card-icon{width:38px;height:38px;border-radius:10px}
.account-card-icon svg{width:19px;height:19px}
.account-card-content{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.3rem .8rem}
.account-card-heading{grid-column:1;min-width:0}
.account-card-balance{grid-column:2;display:grid;justify-items:end;gap:.1rem}
.account-card-balance>strong{font-size:1.12rem;color:var(--accounts-blue)}
.account-card.tone-negative .account-card-balance>strong{color:var(--accounts-red)}
.account-side-panel{border-color:var(--goals-line);border-radius:15px;background:#fff;box-shadow:0 8px 26px rgba(31,48,73,.05)}
.account-detail-icon{background:var(--accounts-blue-soft);color:var(--accounts-blue)}
.account-detail-highlight{border-left:3px solid var(--accounts-blue);border-radius:10px;background:var(--accounts-blue-soft)}
.account-detail-highlight strong{color:var(--accounts-blue)}
.account-detail-panel.tone-negative .account-detail-highlight{border-left-color:var(--accounts-red);background:var(--accounts-red-soft)}
.account-detail-actions>button:first-child,.account-editor-panel .entity-editor-actions>button:first-child{border-color:var(--accounts-blue);background:var(--accounts-blue);color:#fff;box-shadow:0 5px 15px rgba(36,82,122,.17)}
.account-detail-actions>button:first-child:hover:not(:disabled),.account-editor-panel .entity-editor-actions>button:first-child:hover:not(:disabled){border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.account-detail-actions>button:first-child:focus-visible,.account-editor-panel .entity-editor-actions>button:first-child:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.accounts-page .account-editor-heading{border-bottom-color:#263952;background:var(--accounts-navy)}
.accounts-page .account-editor-heading>div>span{color:#9fb0c8}
.accounts-page .account-editor-heading h3{color:#fff}
.accounts-page .account-editor-heading p{color:#c8d3e1}
.accounts-page .account-editor-heading .account-panel-close{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff}
.accounts-page .account-editor-heading .account-panel-close:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.14);color:#fff}
.accounts-page .entity-editor-panel input:focus,.accounts-page .entity-editor-panel select:focus,.accounts-page .entity-editor-panel textarea:focus{border-color:var(--accounts-blue);box-shadow:0 0 0 3px rgba(36,82,122,.2)}

@media(max-width:720px){
  .accounts-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid var(--goals-line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
  .accounts-summary>div{display:flex;grid-template-columns:none;align-items:center;gap:.65rem;padding:.72rem .75rem;border:0;border-radius:0;background:#fff}
  .accounts-summary>div:first-child{grid-column:1/-1;padding:.9rem 1rem}
  .accounts-summary>div+div::before{display:block;top:20%;bottom:20%}
  .accounts-summary>div:nth-child(2)::before{display:none}
  .accounts-summary>div>span:last-child{width:auto}
  .accounts-summary-icon{width:34px;height:34px}
  .accounts-summary strong{font-size:clamp(.9rem,4vw,1.08rem)}
  .accounts-summary>div:first-child strong{font-size:1.5rem}
  .accounts-summary small{font-size:.62rem}
  .accounts-list{border-radius:14px}
  .account-card{grid-template-columns:auto minmax(0,1fr);padding:.75rem .82rem;border-radius:0}
  .account-card-icon{width:36px;height:36px}
  .account-card-content{grid-template-columns:minmax(0,1fr) auto}
  .account-card-balance{align-items:end}
  .account-side-panel{border-radius:14px}
}

@media(max-width:480px){
  .account-card{grid-template-columns:minmax(0,1fr)}
  .account-card-content{grid-template-columns:minmax(0,1fr) auto}
  .account-card-balance{grid-column:2;align-items:end}
  .account-card-balance>strong{font-size:1rem}
  .account-type-chip{display:none}
}

/* Ricorrenti: registro operativo con flussi semantici controllati. */
.recurring-summary{grid-template-columns:minmax(270px,.9fr) repeat(2,minmax(190px,.55fr));border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.recurring-summary>div{padding:.92rem 1rem}
.recurring-summary>div:first-child{padding:1.05rem 1.2rem;background:var(--recurring-navy);color:#fff}
.recurring-summary>div:first-child .recurring-summary-icon{border-radius:12px;background:rgba(255,255,255,.1);color:#a7c4e2}
.recurring-summary>div:first-child strong{color:#fff;font-size:clamp(1.42rem,2.35vw,1.9rem)}
.recurring-summary>div:first-child small{color:#d7e0ec}
.recurring-summary-icon{width:40px;height:40px;border-radius:11px}
.recurring-new-button{background:var(--recurring-blue);box-shadow:0 5px 14px rgba(36,82,122,.17)}
.recurring-new-button:hover{background:#1d4266;box-shadow:0 8px 19px rgba(36,82,122,.22)}
.recurring-list{gap:0;overflow:hidden;border:1px solid var(--goals-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.recurring-card{padding:.9rem 1rem;border:0;border-radius:0;background:#fff;box-shadow:none}
.recurring-card+.recurring-card{border-top:1px solid #edf0f4}
.recurring-card:hover{border-color:transparent;background:#f8fafc;box-shadow:none;transform:none}
.recurring-card.selected{border-color:transparent;background:#f5f8fb;box-shadow:inset 3px 0 0 var(--recurring-blue)}
.recurring-card.is-paused{opacity:1;background:#fafbfc}
.recurring-card.is-paused .recurring-card-content{opacity:.72}
.recurring-card-icon{width:40px;height:40px;border-radius:10px}
.recurring-card-icon svg{width:20px;height:20px}
.recurring-card-monthly{border-radius:8px;background:#f4f6f9}
.recurring-side-panel{border-color:var(--goals-line);border-radius:15px;background:#fff;box-shadow:0 8px 26px rgba(31,48,73,.05)}
.recurring-detail-highlight{border-left:3px solid var(--recurring-expense);border-radius:10px}
.recurring-detail-panel.type-income .recurring-detail-highlight{border-left-color:var(--recurring-income)}
.recurring-detail-actions>button:first-child,.recurring-editor-panel .entity-editor-actions>button:first-child{border-color:var(--recurring-blue);background:var(--recurring-blue);color:#fff;box-shadow:0 5px 15px rgba(36,82,122,.17)}
.recurring-detail-actions>button:first-child:hover:not(:disabled),.recurring-editor-panel .entity-editor-actions>button:first-child:hover:not(:disabled){border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.recurring-detail-actions>button:first-child:focus-visible,.recurring-editor-panel .entity-editor-actions>button:first-child:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.recurring-page .recurring-editor-heading{border-bottom-color:#263952;background:var(--recurring-navy)}
.recurring-page .recurring-editor-heading>div>span{color:#9fb0c8}
.recurring-page .recurring-editor-heading h3{color:#fff}
.recurring-page .recurring-editor-heading p{color:#c8d3e1}
.recurring-page .recurring-editor-heading .recurring-panel-close{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff}
.recurring-page .recurring-editor-heading .recurring-panel-close:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.14);color:#fff}
.recurring-page .entity-editor-panel input:focus,.recurring-page .entity-editor-panel select:focus,.recurring-page .entity-editor-panel textarea:focus{border-color:var(--recurring-blue);box-shadow:0 0 0 3px rgba(36,82,122,.2)}

@media(max-width:720px){
  .recurring-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid var(--goals-line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
  .recurring-summary>div{display:flex;grid-template-columns:none;align-items:center;gap:.65rem;padding:.72rem .75rem;border:0;border-radius:0;background:#fff}
  .recurring-summary>div:first-child{grid-column:1/-1;padding:.9rem 1rem}
  .recurring-summary>div+div::before{display:block;top:20%;bottom:20%}
  .recurring-summary>div:nth-child(2)::before{display:none}
  .recurring-summary>div>span:last-child{width:auto}
  .recurring-summary-icon{width:34px;height:34px}
  .recurring-summary strong{font-size:clamp(.88rem,4vw,1.08rem)}
  .recurring-summary>div:first-child strong{font-size:1.5rem}
  .recurring-summary small{font-size:.62rem}
  .recurring-list{border-radius:14px}
  .recurring-card{padding:.78rem .82rem;border-radius:0}
  .recurring-card-icon{width:36px;height:36px}
  .recurring-side-panel{border-radius:14px}
}

@media(max-width:480px){
  .recurring-card{grid-template-columns:1fr}
  .recurring-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .recurring-card-meta>span:last-child{grid-column:1/-1}
}

/* Obiettivi: registro progressivo nella palette operativa. */
.goals-new-button{background:var(--goals-blue);box-shadow:0 5px 14px rgba(36,82,122,.17)}
.goals-new-button:hover{background:#1d4266;box-shadow:0 8px 19px rgba(36,82,122,.22)}
.goals-summary{grid-template-columns:minmax(270px,.9fr) repeat(2,minmax(190px,.55fr));border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.goals-summary>div{padding:.92rem 1rem}
.goals-summary>div:first-child{padding:1.05rem 1.2rem;background:var(--goals-navy);color:#fff}
.goals-summary>div:first-child .goals-summary-icon{border-radius:12px;background:rgba(255,255,255,.1);color:#a7c4e2}
.goals-summary>div:first-child strong{color:#fff;font-size:clamp(1.42rem,2.35vw,1.9rem)}
.goals-summary>div:first-child small{color:#d7e0ec}
.goals-summary-icon{width:40px;height:40px;border-radius:11px;background:var(--goals-blue-soft);color:var(--goals-blue)}
.goals-summary-wallet,.goals-summary-trend{background:var(--goals-blue-soft);color:var(--goals-blue)}
.goal-progress-list{gap:0;overflow:hidden;border:1px solid var(--goals-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.goal-progress-card{padding:.9rem 1rem;border:0;border-radius:0;background:#fff;box-shadow:none}
.goal-progress-card+.goal-progress-card{border-top:1px solid #edf0f4}
.goal-progress-card:hover{border-color:transparent;background:#f8fafc;box-shadow:none;transform:none}
.goal-progress-card.selected{border-color:transparent;background:#f5f8fb;box-shadow:inset 3px 0 0 var(--goals-blue)}
.goal-progress-card.status-archived{opacity:1;background:#fafbfc}
.goal-progress-card.status-archived .goal-card-content{opacity:.72}
.goal-card-icon{width:40px;height:40px;border-radius:10px;background:var(--goals-blue-soft);color:var(--goals-blue)}
.goal-card-icon svg{width:20px;height:20px}
.goal-progress-fill{background:var(--goals-blue)}
.goal-side-panel{border-color:var(--goals-line);border-radius:15px;background:#fff;box-shadow:0 8px 26px rgba(31,48,73,.05)}
.goal-detail-icon{background:var(--goals-blue-soft);color:var(--goals-blue)}
.goal-detail-progress{border-left:3px solid var(--goals-blue);border-radius:10px;background:var(--goals-blue-soft)}
.goal-detail-actions>button:first-child,.goal-editor-panel .entity-editor-actions>button:first-child{border-color:var(--goals-blue);background:var(--goals-blue);color:#fff;box-shadow:0 5px 15px rgba(36,82,122,.17)}
.goal-detail-actions>button:first-child:hover:not(:disabled),.goal-editor-panel .entity-editor-actions>button:first-child:hover:not(:disabled){border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.goal-detail-actions>button:first-child:focus-visible,.goal-editor-panel .entity-editor-actions>button:first-child:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.goals-page .goal-editor-heading{border-bottom-color:#263952;background:var(--goals-navy)}
.goals-page .goal-editor-heading>div>span{color:#9fb0c8}
.goals-page .goal-editor-heading h3{color:#fff}
.goals-page .goal-editor-heading p{color:#c8d3e1}
.goals-page .goal-editor-heading .goal-panel-close{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff}
.goals-page .goal-editor-heading .goal-panel-close:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.14);color:#fff}
.goals-page .entity-editor-panel input:focus,.goals-page .entity-editor-panel select:focus,.goals-page .entity-editor-panel textarea:focus{border-color:var(--goals-blue);box-shadow:0 0 0 3px rgba(36,82,122,.2)}
.goals-page .entity-form-section-primary .entity-field-label small{background:var(--goals-blue-soft);color:var(--goals-blue)}

@media(max-width:720px){
  .goals-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid var(--goals-line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
  .goals-summary>div{display:flex;grid-template-columns:none;align-items:center;gap:.65rem;padding:.72rem .75rem;border:0;border-radius:0;background:#fff}
  .goals-summary>div:first-child{grid-column:1/-1;padding:.9rem 1rem}
  .goals-summary>div+div::before{display:block;top:20%;bottom:20%}
  .goals-summary>div:nth-child(2)::before{display:none}
  .goals-summary>div>span:last-child{width:auto}
  .goals-summary-icon{width:34px;height:34px}
  .goals-summary strong{font-size:clamp(.88rem,4vw,1.08rem)}
  .goals-summary>div:first-child strong{font-size:1.5rem}
  .goals-summary small{font-size:.62rem}
  .goal-progress-list{border-radius:14px}
  .goal-progress-card{padding:.78rem .82rem;border-radius:0}
  .goal-card-icon{width:36px;height:36px}
  .goal-side-panel{border-radius:14px}
}

@media(max-width:480px){
  .goal-progress-card{grid-template-columns:1fr}
  .goal-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .goal-card-meta>span:last-child{grid-column:1/-1}
}

/* Investimenti: quadro portafoglio e registro strumenti operativo. */
.investments-page{
  --investments-ink:#10233f;
  --investments-navy:#172640;
  --investments-blue:#24527a;
  --investments-blue-soft:#eaf0f6;
  --investments-line:#dce3ec;
  --investments-green:#477565;
  --investments-green-soft:#edf6f2;
  --investments-red:#92554f;
  --investments-red-soft:#faf1ef;
  display:grid;
  gap:1rem;
  min-width:0;
  color:var(--investments-ink)
}
.investments-header{position:static;display:block;margin:0;padding:.15rem 0 .35rem;border:0;background:transparent}
.investments-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--investments-ink)}
.investments-header .muted{font-size:.9rem;color:#66758a}
.investment-operational-summary{display:grid;grid-template-columns:minmax(270px,.9fr) minmax(540px,1.5fr);overflow:hidden;border:1px solid var(--investments-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.investment-summary-lead{min-width:0;display:flex;align-items:center;gap:.9rem;padding:1.05rem 1.2rem;background:var(--investments-navy);color:#fff}
.investment-summary-icon{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:12px;background:rgba(255,255,255,.1);color:#a7c4e2}
.investment-summary-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.investment-summary-copy{min-width:0;display:grid;gap:.12rem}
.investment-summary-copy>small{color:#9fb0c8;font-size:.63rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.investment-summary-copy>strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(1.45rem,2.5vw,1.95rem);line-height:1;font-weight:760;letter-spacing:-.045em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.investment-summary-copy>span{color:#d7e0ec;font-size:.72rem;font-weight:550}
.investment-operational-metrics{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.investment-operational-metric{min-width:0;position:relative;display:grid;align-content:center;gap:.2rem;padding:.9rem 1rem}
.investment-operational-metric+.investment-operational-metric::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--investments-line)}
.investment-operational-metric strong{min-width:0;max-width:100%;font-family:var(--font-numeric);font-size:clamp(.95rem,1.75vw,1.3rem);line-height:1;font-weight:730;letter-spacing:-.035em;color:#33465f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.investment-operational-metric small{color:#718096;font-size:.65rem;font-weight:550;line-height:1.25}
.investment-operational-metric.tone-positive strong{color:var(--investments-green)}
.investment-operational-metric.tone-negative strong{color:var(--investments-red)}
.investment-section-heading{padding:.05rem .1rem .15rem}
.investment-section-heading h3{color:var(--investments-ink);font-size:1.05rem;font-weight:700;letter-spacing:-.02em}
.investments-workspace{gap:1rem;align-items:start}
.investment-form-card{padding:0;overflow:hidden;border:1px solid var(--investments-line);border-radius:15px;background:#fff;box-shadow:0 8px 26px rgba(31,48,73,.05)}
.investment-form-heading,.investment-inline-form-card>h3{margin:0;padding:1rem 1.1rem;background:var(--investments-navy);color:#fff}
.investment-form-heading{display:grid;gap:.12rem}
.investment-form-heading>small{color:#9fb0c8;font-size:.61rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.investment-form-heading h3,.investment-inline-form-card>h3{margin:0;color:#fff;font-size:1.08rem;font-weight:720;letter-spacing:-.025em}
.investment-form-heading p{margin:0;color:#c8d3e1;font-size:.7rem;line-height:1.4}
.investment-form-card>form{gap:.72rem;padding:1rem 1.1rem 1.1rem}
.investment-form-card .form-grid label{color:#52657c;font-size:.73rem;font-weight:650}
.investment-form-card input,.investment-form-card textarea{border-color:#d8e0ea;background:#fff}
.investment-form-card input:focus,.investment-form-card textarea:focus{border-color:var(--investments-blue);box-shadow:0 0 0 3px rgba(36,82,122,.2)}
.investment-form-card .checkbox-row{border-color:#dce3ec;background:#f8fafc}
.investment-form-card .row-actions>button:first-child{border-color:var(--investments-blue);background:var(--investments-blue);color:#fff;box-shadow:0 5px 15px rgba(36,82,122,.17)}
.investment-form-card .row-actions>button:first-child:hover:not(:disabled){border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.investment-form-card .row-actions>button:first-child:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.investment-list-card{gap:0;padding:0;overflow:hidden;border:1px solid var(--investments-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.investment-list-heading{display:grid;gap:.04rem;padding:.88rem 1rem;border-bottom:1px solid #e7ecf2}
.investment-list-heading>span{color:var(--investments-blue);font-size:.62rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.investment-list-heading h3{margin:0;color:var(--investments-ink);font-size:.98rem;font-weight:700;letter-spacing:-.018em}
.investment-list-card .entity-list{gap:0}
.investment-list-card .entity-row{padding:.75rem 1rem;border:0;border-radius:0;background:#fff;box-shadow:none}
.investment-list-card .entity-row+.entity-row{border-top:1px solid #edf0f4}
.investment-list-card .entity-row:hover{border-color:transparent;background:#f8fafc;box-shadow:none;transform:none}
.investment-list-card .entity-row-icon{border-radius:9px}
.investment-list-card .entity-row-copy strong{color:#263952;font-weight:650}
.investment-list-card .empty-state{margin:.9rem}
.investment-detail-panel .entity-detail-card{gap:1rem;padding:1.05rem;border:1px solid var(--investments-line);border-radius:15px;background:#fff;box-shadow:0 8px 26px rgba(31,48,73,.05)}
.investment-detail-panel .transaction-detail-fields{gap:.45rem}
.investment-detail-panel .transaction-detail-field{padding:.62rem .68rem;border:1px solid #e3e8ee;border-radius:9px;background:#f8fafc}
.investment-detail-panel .transaction-detail-actions>button:first-child{border-color:var(--investments-blue);background:var(--investments-blue);color:#fff}
.investment-detail-panel .transaction-detail-actions>button:first-child:hover:not(:disabled){border-color:#1d4266;background:#1d4266}
.investment-disabled-card{border-color:var(--investments-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}

@media(max-width:900px){
  .investment-operational-summary{grid-template-columns:1fr}
  .investment-operational-metrics{border-top:1px solid var(--investments-line)}
}

@media(max-width:720px){
  .investments-page{gap:.72rem}
  .investments-header h2{font-size:1.45rem}
  .investments-header .muted{font-size:.76rem;line-height:1.35}
  .investment-operational-summary{border-radius:14px}
  .investment-summary-lead{padding:.9rem 1rem}
  .investment-summary-copy>strong{font-size:1.55rem}
  .investment-operational-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .investment-operational-metric{padding:.72rem .75rem}
  .investment-operational-metric:nth-child(2)::before{display:block}
  .investment-operational-metric:last-child{grid-column:1/-1;border-top:1px solid #edf0f4}
  .investment-operational-metric:last-child::before{display:none}
  .investment-operational-metric strong{font-size:clamp(.9rem,4vw,1.08rem)}
  .investment-form-card,.investment-list-card,.investment-detail-panel .entity-detail-card{border-radius:14px}
  .investment-form-card>form{padding:.85rem}
  .investment-form-heading,.investment-inline-form-card>h3{padding:.88rem .9rem}
  .investment-list-heading{padding:.8rem .85rem}
  .investment-list-card .entity-row{padding:.7rem .85rem}
}

/* Amici: rete operativa, inviti e richieste in un registro continuo. */
.friends-page{
  --friends-ink:#10233f;
  --friends-navy:#172640;
  --friends-blue:#24527a;
  --friends-blue-soft:#eaf0f6;
  --friends-line:#dce3ec;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1rem;
  min-width:0;
  color:var(--friends-ink)
}
.friends-header{position:static;display:block;margin:0;padding:.15rem 0 .35rem;border:0;background:transparent}
.friends-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--friends-ink)}
.friends-header .muted{font-size:.9rem;color:#66758a}
.friends-operational-summary{display:grid;grid-template-columns:minmax(270px,.9fr) minmax(380px,1.1fr);overflow:hidden;border:1px solid var(--friends-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.friends-summary-lead{min-width:0;display:flex;align-items:center;gap:.9rem;padding:1.05rem 1.2rem;background:var(--friends-navy);color:#fff}
.friends-summary-lead .friends-summary-icon{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:12px;background:rgba(255,255,255,.1);color:#a7c4e2}
.friends-summary-lead .friends-summary-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.friends-summary-copy{min-width:0;display:grid;gap:.12rem}
.friends-summary-copy>small{color:#9fb0c8;font-size:.63rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.friends-summary-copy>strong{font-family:var(--font-numeric);font-size:clamp(1.45rem,2.5vw,1.95rem);line-height:1;font-weight:760;letter-spacing:-.045em;color:#fff}
.friends-summary-copy>span{color:#d7e0ec;font-size:.72rem;font-weight:550}
.friends-operational-metrics{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.friends-operational-metric{min-width:0;position:relative;display:grid;align-content:center;gap:.2rem;padding:.9rem 1rem}
.friends-operational-metric+.friends-operational-metric::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--friends-line)}
.friends-operational-metric strong{font-family:var(--font-numeric);font-size:clamp(.95rem,1.75vw,1.3rem);line-height:1;font-weight:730;letter-spacing:-.035em;color:#33465f}
.friends-operational-metric small{color:#718096;font-size:.65rem;font-weight:550;line-height:1.25}
.friends-operational-metric.has-attention strong{color:var(--friends-blue)}
.friends-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--friends-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.friends-tool-card{min-width:0;margin:0;padding:1rem 1.1rem;border:0;border-radius:0;background:#fff;box-shadow:none}
.friends-tool-card+.friends-tool-card{border-left:1px solid var(--friends-line)}
.friends-card-heading{display:grid;gap:.08rem;margin-bottom:.85rem}
.friends-card-heading>span,.friends-list-heading>span{color:var(--friends-blue);font-size:.62rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.friends-card-heading h3,.friends-list-heading h3{margin:0;color:var(--friends-ink);font-size:1.02rem;font-weight:700;letter-spacing:-.02em}
.friends-card-heading h3::before,.friends-list-heading h3::before{display:none!important}
.friends-card-heading p{margin:.15rem 0 0;color:#718096;font-size:.75rem;line-height:1.4}
.friends-page input{min-height:44px;border-color:#d8e0ea;border-radius:9px;background:#fff;color:#172b47;box-shadow:none}
.friends-page input:hover{border-color:#b8c6d9}
.friends-page input:focus{border-color:var(--friends-blue);background:#fff;box-shadow:0 0 0 3px rgba(36,82,122,.2)}
.friends-page #genInviteBtn{border-color:var(--friends-blue);background:var(--friends-blue);color:#fff;box-shadow:0 5px 15px rgba(36,82,122,.17)}
.friends-page #genInviteBtn:hover{border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.friends-page #genInviteBtn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.friends-page .friend-search-label{color:#52657c;font-size:.66rem;font-weight:700;letter-spacing:.07em}
.friends-page .friend-search-results{min-height:74px}
.friends-page .friend-search-empty{min-height:74px;border-color:#d5dde7;border-radius:9px;background:#f8fafc}
.friends-page .friend-result-row{padding:.65rem .72rem;border:0;border-radius:0;background:#fff;box-shadow:none}
.friends-page .friend-result-row+.friend-result-row{border-top:1px solid #edf0f4}
.friends-page .friend-result-row:hover{border-color:transparent;background:#f8fafc;box-shadow:none}
.friends-page .friend-result-avatar{border-radius:9px;background:var(--friends-blue-soft);color:var(--friends-blue)}
.friends-page>.friends-section-card{grid-column:1;margin:0;padding:0;overflow:hidden;border:1px solid var(--friends-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.friends-list-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.85rem 1rem;border-bottom:1px solid #e7ecf2}
.friends-list-heading h3{display:flex;align-items:center;gap:.45rem}
.friends-list-heading h3 small{display:inline-grid;place-items:center;min-width:1.45rem;height:1.45rem;padding:0 .35rem;border-radius:999px;background:var(--friends-blue-soft);color:var(--friends-blue);font-family:var(--font-numeric);font-size:.68rem}
.friends-page .friends-section-card .friends-list{gap:0;margin:0}
.friends-page .friends-section-card .friends-item{padding:.78rem 1rem;border:0;border-radius:0;background:#fff;box-shadow:none;transform:none}
.friends-page .friends-section-card .friends-item+.friends-item{border-top:1px solid #edf0f4}
.friends-page .friends-section-card .friends-item:hover{border-color:transparent;background:#f8fafc;box-shadow:none;transform:none}
.friends-page .friends-item-avatar{width:40px;height:40px;border-radius:10px;background:var(--friends-blue-soft);color:var(--friends-blue);font-size:.75rem}
.friends-page .friends-item-info strong{color:#263952;font-size:.92rem;font-weight:680}
.friends-page .friends-item-info .muted{color:#718096;font-size:.74rem}
.friends-page .friends-section-card .empty-state{margin:.9rem;border-color:#c7d1de;border-radius:11px;background:#f8fafc}
.friends-page .empty-state-icon{background:var(--friends-blue-soft);color:var(--friends-blue)}
.friends-page .compact-btn:not(.ghost),.friends-page .friend-result-action .compact-btn{border-color:var(--friends-blue);background:var(--friends-blue);color:#fff}
.friends-page .compact-btn:not(.ghost):hover,.friends-page .friend-result-action .compact-btn:hover{border-color:#1d4266;background:#1d4266}

@media(max-width:720px){
  .friends-page{gap:.72rem}
  .friends-header h2{font-size:1.45rem}
  .friends-header .muted{font-size:.76rem;line-height:1.35}
  .friends-operational-summary{grid-template-columns:1fr;border-radius:14px}
  .friends-summary-lead{padding:.9rem 1rem}
  .friends-summary-copy>strong{font-size:1.55rem}
  .friends-operational-metrics{border-top:1px solid var(--friends-line)}
  .friends-operational-metric{padding:.72rem .75rem}
  .friends-operational-metric strong{font-size:clamp(.9rem,4vw,1.08rem)}
  .friends-tools{grid-template-columns:1fr;border-radius:14px}
  .friends-tool-card{padding:.9rem}
  .friends-tool-card+.friends-tool-card{border-top:1px solid var(--friends-line);border-left:0}
  .friends-page>.friends-section-card{border-radius:14px}
  .friends-list-heading{padding:.8rem .85rem}
  .friends-page .friends-section-card .friends-item{grid-template-columns:auto minmax(0,1fr);padding:.72rem .85rem}
  .friends-page .friends-section-card .friends-item-actions{grid-column:1/-1;width:100%;padding-top:.55rem;border-top:1px solid #edf0f4}
}

@media(max-width:430px){
  .friends-list-heading{align-items:flex-start;flex-direction:column;gap:.2rem}
  .friends-page .friends-item-actions button{min-height:42px}
}

/* Profilo: identita', stato account e controllo dati in superfici operative. */
.profile-page{
  --profile-ink:#10233f;
  --profile-navy:#172640;
  --profile-blue:#24527a;
  --profile-blue-soft:#eaf0f6;
  --profile-line:#dce3ec;
  --profile-red:#92554f;
  --profile-red-soft:#faf1ef;
  display:grid;
  gap:1rem;
  min-width:0;
  color:var(--profile-ink)
}
.profile-header{position:static;display:block;margin:0;padding:.15rem 0 .35rem;border:0;background:transparent}
.profile-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--profile-ink)}
.profile-header .muted{font-size:.9rem;color:#66758a}
.profile-username-warning{margin:0}
.profile-operational-summary{display:grid;grid-template-columns:minmax(290px,.95fr) minmax(540px,1.5fr);overflow:hidden;border:1px solid var(--profile-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.profile-summary-lead{min-width:0;display:flex;align-items:center;gap:.9rem;padding:1.05rem 1.2rem;background:var(--profile-navy);color:#fff}
.profile-summary-avatar{width:44px;height:44px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:12px;background:rgba(255,255,255,.1);color:#c2d3e5;font-size:.78rem;font-weight:800;letter-spacing:.04em}
.profile-summary-copy{min-width:0;display:grid;gap:.12rem}
.profile-summary-copy>small{color:#9fb0c8;font-size:.63rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.profile-summary-copy>strong{min-width:0;max-width:100%;font-size:clamp(1.15rem,2.1vw,1.48rem);line-height:1.08;font-weight:740;letter-spacing:-.035em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-summary-copy>span{color:#d7e0ec;font-size:.72rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-operational-metrics{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.profile-operational-metric{min-width:0;position:relative;display:grid;align-content:center;gap:.22rem;padding:.9rem 1rem}
.profile-operational-metric+.profile-operational-metric::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--profile-line)}
.profile-operational-metric>strong{min-width:0;max-width:100%;font-size:clamp(.88rem,1.55vw,1.08rem);line-height:1.15;font-weight:700;letter-spacing:-.02em;color:#33465f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}
.profile-operational-metric>strong .badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.profile-operational-metric>small{color:#718096;font-size:.65rem;font-weight:550;line-height:1.25}
.profile-workspace{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(480px,1.35fr);gap:1rem;align-items:start}
.profile-account-card,.profile-privacy-card{min-width:0;margin:0;padding:0;overflow:hidden;border:1px solid var(--profile-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.profile-section-heading{display:grid;gap:.07rem;padding:.9rem 1rem;border-bottom:1px solid #e7ecf2}
.profile-section-heading>span{color:var(--profile-blue);font-size:.62rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.profile-section-heading h3{margin:0;color:var(--profile-ink);font-size:1.02rem;font-weight:700;letter-spacing:-.02em}
.profile-section-heading p{margin:.25rem 0 0;color:#718096;font-size:.75rem;line-height:1.45}
.profile-section-heading p strong{color:#52657c;font-weight:650}
.profile-record-list,.profile-legal-list{display:grid;min-width:0}
.profile-record-list>div,.profile-legal-list>div{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.72rem 1rem;border-bottom:1px solid #edf0f4}
.profile-record-list span,.profile-legal-list span{color:#718096;font-size:.72rem;line-height:1.35}
.profile-record-list strong,.profile-legal-list strong{min-width:0;max-width:100%;color:#263952;font-size:.8rem;font-weight:650;text-align:right;overflow-wrap:anywhere}
.profile-legal-list strong em{display:block;margin-top:.08rem;font-size:.66rem;font-weight:500;font-style:normal}
.profile-account-actions{display:flex;justify-content:flex-end;padding:.8rem 1rem}
.profile-account-actions button{min-height:40px}
.profile-data-actions{display:grid}
.profile-data-action{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.85rem 1rem;border-top:1px solid #edf0f4}
.profile-data-action>div{min-width:0;display:grid;gap:.18rem}
.profile-data-action>div>strong{color:#263952;font-size:.84rem;font-weight:680}
.profile-data-action p{margin:0;max-width:64ch;color:#718096;font-size:.72rem;line-height:1.42}
.profile-data-action button{min-width:128px;min-height:40px}
.profile-data-action:not(.is-danger) button{border-color:var(--profile-blue);background:var(--profile-blue);color:#fff;box-shadow:0 5px 15px rgba(36,82,122,.17)}
.profile-data-action:not(.is-danger) button:hover{border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.profile-data-action:not(.is-danger) button:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.profile-data-action.is-danger{background:var(--profile-red-soft)}
.profile-data-action.is-danger>div>strong{color:#70413d}
.profile-data-action.is-danger button{border-color:#cda6a1;background:#fff;color:var(--profile-red);box-shadow:none}
.profile-data-action.is-danger button:hover{border-color:var(--profile-red);background:var(--profile-red);color:#fff}

@media(max-width:980px){
  .profile-operational-summary{grid-template-columns:1fr}
  .profile-operational-metrics{border-top:1px solid var(--profile-line)}
  .profile-workspace{grid-template-columns:1fr}
}

@media(max-width:720px){
  .profile-page{gap:.72rem}
  .profile-header h2{font-size:1.45rem}
  .profile-header .muted{font-size:.76rem;line-height:1.35}
  .profile-operational-summary{border-radius:14px}
  .profile-summary-lead{padding:.9rem 1rem}
  .profile-summary-copy>strong{font-size:1.2rem}
  .profile-operational-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-operational-metric{padding:.72rem .75rem}
  .profile-operational-metric:last-child{grid-column:1/-1;border-top:1px solid #edf0f4}
  .profile-operational-metric:last-child::before{display:none}
  .profile-account-card,.profile-privacy-card{border-radius:14px}
  .profile-section-heading{padding:.8rem .85rem}
  .profile-record-list>div,.profile-legal-list>div{padding:.68rem .85rem}
  .profile-account-actions{padding:.72rem .85rem}
  .profile-data-action{grid-template-columns:1fr;padding:.78rem .85rem}
  .profile-data-action button{width:100%;min-height:44px}
}

@media(max-width:430px){
  .profile-record-list>div,.profile-legal-list>div{grid-template-columns:1fr;gap:.2rem;align-items:start}
  .profile-record-list strong,.profile-legal-list strong{text-align:left}
  .profile-legal-list strong em{display:inline;margin-left:.2rem}
}

/* Impostazioni: configurazione applicativa e manutenzione dati in blocchi operativi. */
.settings-page{
  --settings-ink:#10233f;
  --settings-navy:#172640;
  --settings-blue:#24527a;
  --settings-blue-soft:#eaf0f6;
  --settings-line:#dce3ec;
  display:grid;
  gap:1rem;
  min-width:0;
  color:var(--settings-ink)
}
.settings-header{position:static;display:block;margin:0;padding:.15rem 0 .35rem;border:0;background:transparent}
.settings-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--settings-ink)}
.settings-header .muted{font-size:.9rem;color:#66758a}
.settings-operational-summary{display:grid;grid-template-columns:minmax(290px,.95fr) minmax(540px,1.5fr);overflow:hidden;border:1px solid var(--settings-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.settings-summary-lead{min-width:0;display:flex;align-items:center;gap:.9rem;padding:1.05rem 1.2rem;background:var(--settings-navy);color:#fff}
.settings-summary-icon{width:42px;height:42px;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:12px;background:rgba(255,255,255,.1);color:#a7c4e2}
.settings-summary-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.settings-summary-copy{min-width:0;display:grid;gap:.12rem}
.settings-summary-copy>small{color:#9fb0c8;font-size:.63rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.settings-summary-copy>strong{min-width:0;max-width:100%;font-size:clamp(1.2rem,2.2vw,1.55rem);line-height:1.08;font-weight:740;letter-spacing:-.035em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-summary-copy>span{color:#d7e0ec;font-size:.72rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-operational-metrics{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.settings-operational-metric{min-width:0;position:relative;display:grid;align-content:center;gap:.22rem;padding:.9rem 1rem}
.settings-operational-metric+.settings-operational-metric::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--settings-line)}
.settings-operational-metric strong{min-width:0;max-width:100%;color:#33465f;font-size:clamp(.88rem,1.55vw,1.08rem);line-height:1.15;font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-operational-metric small{color:#718096;font-size:.65rem;font-weight:550;line-height:1.25}
.settings-section-heading{margin:0;padding:.4rem .1rem 0;border:0}
.settings-section-heading h3{margin:0;color:var(--settings-ink);font-size:1.08rem;font-weight:720;letter-spacing:-.025em}
.settings-section-heading .muted{margin-top:.12rem;color:#718096;font-size:.76rem;line-height:1.4}
.settings-card{min-width:0;margin:0;padding:0;overflow:hidden;border:1px solid var(--settings-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.settings-card-heading{display:grid;gap:.07rem;padding:.88rem 1rem;border-bottom:1px solid #e7ecf2}
.settings-card-heading>span{color:var(--settings-blue);font-size:.62rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.settings-card-heading h3{margin:0;color:var(--settings-ink);font-size:1.02rem;font-weight:700;letter-spacing:-.02em}
.settings-card>.flash{margin:1rem 1rem 0!important}
.settings-form{gap:.72rem;padding:1rem}
.settings-form label{color:#52657c;font-size:.73rem;font-weight:650}
.settings-form label:focus-within{color:var(--settings-blue)}
.settings-form input,.settings-form select,.settings-form textarea{border-color:#d8e0ea;background:#fff}
.settings-form input:hover,.settings-form select:hover,.settings-form textarea:hover{border-color:#b8c6d9}
.settings-form input:focus,.settings-form select:focus,.settings-form textarea:focus{border-color:var(--settings-blue);box-shadow:0 0 0 3px rgba(36,82,122,.2)}
.settings-form .checkbox-row{border-color:#dce3ec;border-radius:9px;background:#f8fafc}
.settings-form>.small.muted{color:#718096;font-size:.72rem;line-height:1.45}
.settings-form>.row-actions{justify-content:flex-end;padding-top:.35rem;border-top:1px solid #edf0f4}
.settings-form>.row-actions>button:first-child{border-color:var(--settings-blue);background:var(--settings-blue);color:#fff;box-shadow:0 5px 15px rgba(36,82,122,.17)}
.settings-form>.row-actions>button:first-child:hover:not(:disabled){border-color:#1d4266;background:#1d4266;box-shadow:0 8px 20px rgba(36,82,122,.22)}
.settings-form>.row-actions>button:first-child:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.settings-status-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-status-list>div{min-width:0;display:grid;gap:.18rem;padding:.75rem 1rem;border-bottom:1px solid #edf0f4}
.settings-status-list>div+div{border-left:1px solid #edf0f4}
.settings-status-list span{color:#718096;font-size:.68rem}
.settings-status-list strong{color:#263952;font-size:.84rem;font-weight:680}
.settings-card-note{margin:0;padding:.85rem 1rem;color:#718096;line-height:1.5}
.settings-card-note+.row-actions,.settings-assistant-card>.row-actions{justify-content:flex-end;margin:0;padding:0 1rem 1rem}
.settings-assistant-card>#assistantConsentRevokeBtn{margin:0 1rem 1rem}
.settings-assistant-card>.small.muted:last-child{margin:0;padding:0 1rem 1rem}
.settings-import-card>div[style]{padding:0 1rem 1rem}
.settings-snapshot-workspace{grid-template-columns:minmax(300px,370px) minmax(0,1fr);gap:1rem;margin:0}
.settings-snapshot-list{overflow:auto}
.settings-snapshot-list .table-wrap{margin:0;border:0;border-radius:0;box-shadow:none}
.settings-snapshot-list table{margin:0}
.settings-snapshot-list th{background:#f5f7fa;color:#52657c}
.settings-snapshot-list td{border-color:#edf0f4}

@media(max-width:980px){
  .settings-operational-summary{grid-template-columns:1fr}
  .settings-operational-metrics{border-top:1px solid var(--settings-line)}
  .settings-snapshot-workspace{grid-template-columns:1fr}
}

@media(max-width:720px){
  .settings-page{gap:.72rem}
  .settings-header h2{font-size:1.45rem}
  .settings-header .muted{font-size:.76rem;line-height:1.35}
  .settings-operational-summary{border-radius:14px}
  .settings-summary-lead{padding:.9rem 1rem}
  .settings-summary-copy>strong{font-size:1.25rem}
  .settings-operational-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-operational-metric{padding:.72rem .75rem}
  .settings-operational-metric:last-child{grid-column:1/-1;border-top:1px solid #edf0f4}
  .settings-operational-metric:last-child::before{display:none}
  .settings-section-heading{padding:.25rem .05rem 0}
  .settings-card{border-radius:14px}
  .settings-card-heading{padding:.8rem .85rem}
  .settings-form{padding:.85rem}
  .settings-form>.row-actions{align-items:stretch}
  .settings-form>.row-actions button{width:100%;min-height:44px}
  .settings-card>.flash{margin:.85rem .85rem 0!important}
  .settings-status-list>div{padding:.68rem .85rem}
  .settings-card-note{padding:.78rem .85rem}
  .settings-card-note+.row-actions,.settings-assistant-card>.row-actions{padding:0 .85rem .85rem}
  .settings-assistant-card>.small.muted:last-child{padding:0 .85rem .85rem}
}

@media(max-width:430px){
  .settings-status-list{grid-template-columns:1fr}
  .settings-status-list>div+div{border-left:0}
}

/* Homepage: affinamento leggero delle superfici, grafici esplicitamente esclusi. */
.dashboard-page{
  --home-ink:#10233f;
  --home-navy:#172640;
  --home-blue:#24527a;
  --home-blue-soft:#eaf0f6;
  --home-line:#dce3ec;
  display:grid;
  gap:1rem;
  min-width:0;
  color:var(--home-ink)
}
.dashboard-page>.dashboard-header{position:static;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:0;padding:.15rem 0 .35rem;border:0;background:transparent}
.dashboard-page>.dashboard-header h2{font-size:clamp(1.75rem,3vw,2.2rem);font-weight:750;letter-spacing:-.045em;color:var(--home-ink)}
.dashboard-page>.dashboard-header .muted{font-size:.9rem;color:#66758a}
.dashboard-page>.dashboard-header .row-actions button{min-height:40px;border-color:var(--home-blue);background:var(--home-blue);color:#fff;box-shadow:0 5px 14px rgba(36,82,122,.17)}
.dashboard-page>.dashboard-header .row-actions button:hover{border-color:#1d4266;background:#1d4266;box-shadow:0 8px 19px rgba(36,82,122,.22)}
.dashboard-page>.dashboard-header .row-actions button:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,82,122,.25)}
.dashboard-page .dashboard-decision-hero{gap:1rem}
.dashboard-page .dashboard-decision-hero>.dashboard-value-card{border-color:var(--home-line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.dashboard-page .dashboard-decision-hero>.dashboard-value-card:first-child{border-color:var(--home-navy);background:var(--home-navy);color:#fff;box-shadow:0 10px 26px rgba(23,38,64,.16)}
.dashboard-page .dashboard-decision-hero>.dashboard-value-card:first-child .muted{color:#9fb0c8}
.dashboard-page .dashboard-decision-hero>.dashboard-value-card:first-child .value{color:#fff}
.dashboard-page .dashboard-decision-hero>.dashboard-value-card:first-child .metric-delta{background:rgba(255,255,255,.1);color:#d7e0ec}
.dashboard-page .dashboard-human-card{border-color:var(--home-line);border-left-width:3px;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,48,73,.045)}
.dashboard-page .dashboard-human-success{border-left-color:#477565}
.dashboard-page .dashboard-human-danger{border-left-color:#92554f}
.dashboard-page .dashboard-human-info{border-left-color:var(--home-blue)}
.dashboard-page .dashboard-human-icon{border-radius:10px}
.dashboard-page .dashboard-human-info .dashboard-human-icon{background:var(--home-blue-soft);color:var(--home-blue)}
.dashboard-page .dashboard-section-divider{margin:.15rem 0 0;padding:.35rem .1rem 0;border:0}
.dashboard-page .dashboard-section-divider h3{margin:0;color:var(--home-ink);font-size:1.05rem;font-weight:710;letter-spacing:-.022em}
.dashboard-page .dashboard-section-divider .muted{margin-top:.1rem;color:#718096;font-size:.75rem;line-height:1.4}
.dashboard-page .dashboard-flow-strip{gap:1rem}
.dashboard-page .dashboard-flow-strip>.dashboard-value-card{border-color:var(--home-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.dashboard-page .dashboard-flow-strip>.dashboard-value-card.primary{border-color:var(--home-line)}
.dashboard-page .dashboard-flow-strip>.dashboard-value-card .muted{color:#718096}
.dashboard-page .dashboard-scores{gap:1rem}
.dashboard-page .dashboard-scores>.score-card,.dashboard-page .dashboard-scores>.dashboard-value-card{border-color:var(--home-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.dashboard-page .dashboard-scores>.dashboard-value-card.primary{border-color:var(--home-line)}
.dashboard-page .dashboard-optional-stack{gap:1rem}
.dashboard-page .dashboard-optional-card{border-color:var(--home-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}
.dashboard-page .dashboard-optional-head{padding-bottom:.65rem;border-bottom:1px solid #e7ecf2}
.dashboard-page .dashboard-optional-head h3{color:var(--home-ink);font-size:.96rem;font-weight:700;letter-spacing:-.018em}
.dashboard-page .dashboard-optional-head .muted{color:#718096;font-size:.72rem;line-height:1.4}
.dashboard-page .dashboard-goal-manage-btn,.dashboard-page .debt-credit-actions button{border-color:var(--home-blue);color:var(--home-blue);background:#fff}
.dashboard-page .dashboard-goal-manage-btn:hover,.dashboard-page .debt-credit-actions button:hover{border-color:var(--home-blue);background:var(--home-blue-soft);color:#1d4266}
.dashboard-page .dashboard-progress-fill{background:var(--home-blue)}
.dashboard-page .poll-user-card,.dashboard-page .dashboard-empty-state{border-color:var(--home-line);border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(31,48,73,.035)}

@media(max-width:720px){
  .dashboard-page{gap:.72rem}
  .dashboard-page>.dashboard-header{align-items:flex-start;padding:.2rem 0 .35rem}
  .dashboard-page>.dashboard-header h2{font-size:1.45rem}
  .dashboard-page>.dashboard-header .muted{font-size:.76rem;line-height:1.35}
  .dashboard-page>.dashboard-header .row-actions button{min-height:38px;padding:.55rem .7rem;font-size:.72rem}
  .dashboard-page .dashboard-decision-hero,.dashboard-page .dashboard-flow-strip,.dashboard-page .dashboard-scores,.dashboard-page .dashboard-optional-stack{gap:.72rem}
  .dashboard-page .dashboard-decision-hero>.dashboard-value-card,.dashboard-page .dashboard-human-card,.dashboard-page .dashboard-flow-strip>.dashboard-value-card,.dashboard-page .dashboard-scores>.score-card,.dashboard-page .dashboard-scores>.dashboard-value-card,.dashboard-page .dashboard-optional-card,.dashboard-page .poll-user-card,.dashboard-page .dashboard-empty-state{border-radius:14px}
  .dashboard-page .dashboard-section-divider{padding:.25rem .05rem 0}
}

@media(max-width:430px){
  .dashboard-page>.dashboard-header{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .dashboard-page>.dashboard-header .row-actions{align-self:start}
}
