/* =====================================================================
   RECORDATE - Design system (restyling 2026)
   Sostituisce il template Sneat (core-dark.css / theme-default.css).
   Tema chiaro/scuro tramite l'attributo data-bs-theme su <html>
   (gestito da window.rdTheme in index.html e dal componente ThemeToggle).
   ===================================================================== */

/* ---------- TOKEN: tema chiaro ---------- */
:root,
[data-bs-theme="light"] {
    --rd-bg: #F6F5F2;
    --rd-surface: #FFFFFF;
    --rd-surface-2: #FAF9F7;
    --rd-border: #E9E6E0;
    --rd-text: #1B1A18;
    --rd-text-2: #4A4843;
    --rd-muted: #8A867E;
    --rd-accent: #EF7D17;
    --rd-accent-rgb: 239, 125, 23;
    --rd-accent-hover: #D96D0C;
    --rd-accent-soft: #FDF0E3;
    --rd-accent-text: #B85A06;
    --rd-danger: #E5484D;
    --rd-danger-soft: #FDECEC;
    --rd-success: #2F9E6A;
    --rd-success-soft: #E6F5EE;
    --rd-shadow: 0 1px 2px rgba(20,18,15,.04), 0 4px 16px rgba(20,18,15,.04);
    --rd-shadow-lg: 0 10px 40px rgba(20,18,15,.10);
    --rd-radius: 14px;
    --rd-radius-sm: 10px;
    --rd-sidebar-w: 248px;
    /* Mappatura sulle variabili di Bootstrap 5.3 */
    --bs-font-sans-serif: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --bs-body-font-size: .9375rem;
    --bs-body-bg: var(--rd-bg);
    --bs-body-bg-rgb: 246, 245, 242;
    --bs-body-color: var(--rd-text-2);
    --bs-emphasis-color: var(--rd-text);
    --bs-secondary-color: var(--rd-muted);
    --bs-secondary-bg: var(--rd-surface-2);
    --bs-tertiary-bg: var(--rd-surface-2);
    --bs-heading-color: var(--rd-text);
    --bs-border-color: var(--rd-border);
    --bs-border-color-translucent: var(--rd-border);
    --bs-border-radius: .625rem;
    --bs-border-radius-lg: .875rem;
    --bs-link-color: var(--rd-accent-text);
    --bs-link-color-rgb: 184, 90, 6;
    --bs-link-hover-color: var(--rd-accent);
    --bs-link-hover-color-rgb: 239, 125, 23;
    --bs-primary: var(--rd-accent);
    --bs-primary-rgb: var(--rd-accent-rgb);
    --bs-warning: var(--rd-accent);
    --bs-warning-rgb: var(--rd-accent-rgb);
    --bs-danger: var(--rd-danger);
    --bs-danger-rgb: 229, 72, 77;
    --bs-success: var(--rd-success);
    --bs-success-rgb: 47, 158, 106;
    --bs-light-rgb: 250, 249, 247;
    --bs-focus-ring-color: rgba(var(--rd-accent-rgb), .20);
    color-scheme: light;
}

/* ---------- TOKEN: tema scuro ---------- */
[data-bs-theme="dark"] {
    --rd-bg: #0E0F11;
    --rd-surface: #16171A;
    --rd-surface-2: #1C1E21;
    --rd-border: #2A2C31;
    --rd-text: #EEEEF0;
    --rd-text-2: #C4C5CA;
    --rd-muted: #8B8D95;
    --rd-accent: #FF9233;
    --rd-accent-rgb: 255, 146, 51;
    --rd-accent-hover: #FFA552;
    --rd-accent-soft: rgba(255,146,51,.12);
    --rd-accent-text: #FFAE66;
    --rd-danger: #F2555A;
    --rd-danger-soft: rgba(242,85,90,.14);
    --rd-success: #3DD68C;
    --rd-success-soft: rgba(61,214,140,.12);
    --rd-shadow: 0 1px 2px rgba(0,0,0,.3);
    --rd-shadow-lg: 0 10px 40px rgba(0,0,0,.5);
    --bs-body-bg-rgb: 14, 15, 17;
    --bs-link-color-rgb: 255, 174, 102;
    --bs-link-hover-color-rgb: 255, 165, 82;
    --bs-danger-rgb: 242, 85, 90;
    --bs-success-rgb: 61, 214, 140;
    --bs-light-rgb: 28, 30, 33;
    color-scheme: dark;
}

/* ---------- BASE ---------- */
html, body { background: var(--rd-bg); }
body {
    font-family: var(--bs-font-sans-serif);
    color: var(--rd-text-2);
    -webkit-font-smoothing: antialiased;
    padding-top: 0 !important;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: var(--rd-text); font-weight: 700; letter-spacing: -.01em; }
a { text-decoration: none; }
::selection { background: rgba(var(--rd-accent-rgb), .25); }
.text-muted, .text-body-secondary { color: var(--rd-muted) !important; }
.text-body-emphasis { color: var(--rd-text) !important; }
.text-warning { color: var(--rd-accent) !important; }
.text-danger { color: var(--rd-danger) !important; }
.text-success { color: var(--rd-success) !important; }

/* ---------- COMPONENTI BOOTSTRAP ---------- */
.card {
    --bs-card-bg: var(--rd-surface);
    --bs-card-border-color: var(--rd-border);
    --bs-card-border-radius: var(--rd-radius);
    --bs-card-inner-border-radius: calc(var(--rd-radius) - 1px);
    --bs-card-cap-bg: transparent;
    --bs-card-color: var(--rd-text-2);
    box-shadow: var(--rd-shadow);
}
.card .card { box-shadow: none; }

.btn { --bs-btn-font-weight: 600; --bs-btn-border-radius: var(--rd-radius-sm); --bs-btn-font-size: .875rem; --bs-btn-padding-x: 1rem; --bs-btn-padding-y: .5rem; --bs-btn-focus-box-shadow: 0 0 0 4px rgba(var(--rd-accent-rgb), .2); transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s; }
.btn-sm { --bs-btn-padding-x: .625rem; --bs-btn-padding-y: .3rem; --bs-btn-font-size: .8125rem; --bs-btn-border-radius: 8px; }
.btn-lg { --bs-btn-padding-x: 1.25rem; --bs-btn-padding-y: .7rem; --bs-btn-font-size: 1rem; }
.btn-primary, .btn-warning {
    --bs-btn-color: #fff; --bs-btn-bg: var(--rd-accent); --bs-btn-border-color: var(--rd-accent);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--rd-accent-hover); --bs-btn-hover-border-color: var(--rd-accent-hover);
    --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--rd-accent-hover); --bs-btn-active-border-color: var(--rd-accent-hover);
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--rd-accent); --bs-btn-disabled-border-color: var(--rd-accent);
}
.btn-outline-primary, .btn-outline-warning {
    --bs-btn-color: var(--rd-accent-text); --bs-btn-border-color: rgba(var(--rd-accent-rgb), .45); --bs-btn-bg: transparent;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--rd-accent); --bs-btn-hover-border-color: var(--rd-accent);
    --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--rd-accent); --bs-btn-active-border-color: var(--rd-accent);
    --bs-btn-disabled-color: var(--rd-accent-text); --bs-btn-disabled-border-color: rgba(var(--rd-accent-rgb), .3);
}
.btn-secondary, .btn-light, .btn-dark {
    --bs-btn-color: var(--rd-text); --bs-btn-bg: var(--rd-surface-2); --bs-btn-border-color: var(--rd-border);
    --bs-btn-hover-color: var(--rd-text); --bs-btn-hover-bg: var(--rd-border); --bs-btn-hover-border-color: var(--rd-border);
    --bs-btn-active-color: var(--rd-text); --bs-btn-active-bg: var(--rd-border); --bs-btn-active-border-color: var(--rd-border);
}
.btn-outline-secondary, .btn-outline-light, .btn-outline-dark {
    --bs-btn-color: var(--rd-text-2); --bs-btn-border-color: var(--rd-border); --bs-btn-bg: var(--rd-surface);
    --bs-btn-hover-color: var(--rd-text); --bs-btn-hover-bg: var(--rd-surface-2); --bs-btn-hover-border-color: var(--rd-border);
    --bs-btn-active-color: var(--rd-accent); --bs-btn-active-bg: var(--rd-accent-soft); --bs-btn-active-border-color: transparent;
}
.btn-success { --bs-btn-bg: var(--rd-success); --bs-btn-border-color: var(--rd-success); --bs-btn-hover-bg: var(--rd-success); --bs-btn-hover-border-color: var(--rd-success); --bs-btn-active-bg: var(--rd-success); }
.btn-danger { --bs-btn-bg: var(--rd-danger); --bs-btn-border-color: var(--rd-danger); --bs-btn-hover-bg: var(--rd-danger); --bs-btn-hover-border-color: var(--rd-danger); --bs-btn-active-bg: var(--rd-danger); }
.btn-outline-danger { --bs-btn-color: var(--rd-danger); --bs-btn-border-color: rgba(229,72,77,.4); --bs-btn-hover-bg: var(--rd-danger); --bs-btn-hover-border-color: var(--rd-danger); }
.btn-outline-success { --bs-btn-color: var(--rd-success); --bs-btn-border-color: rgba(47,158,106,.4); --bs-btn-hover-bg: var(--rd-success); --bs-btn-hover-border-color: var(--rd-success); }
.btn-link { --bs-btn-color: var(--rd-text-2); --bs-btn-hover-color: var(--rd-accent); --bs-btn-active-color: var(--rd-accent); text-decoration: none; }

.form-control, .form-select {
    background-color: var(--rd-surface);
    border-color: var(--rd-border);
    color: var(--rd-text);
    border-radius: var(--rd-radius-sm);
    padding: .55rem .85rem;
}
.form-control::placeholder { color: var(--rd-muted); }
.form-control:focus, .form-select:focus { border-color: var(--rd-accent); box-shadow: 0 0 0 4px rgba(var(--rd-accent-rgb), .15); background-color: var(--rd-surface); color: var(--rd-text); }
.form-label, .col-form-label { font-weight: 600; font-size: .8125rem; color: var(--rd-text); }
.form-check-input { border-color: var(--rd-border); background-color: var(--rd-surface); }
.form-check-input:checked { background-color: var(--rd-accent); border-color: var(--rd-accent); }
.form-check-input:focus { box-shadow: 0 0 0 4px rgba(var(--rd-accent-rgb), .15); border-color: var(--rd-accent); }
.input-group-text { background-color: var(--rd-surface-2); border-color: var(--rd-border); color: var(--rd-muted); border-radius: var(--rd-radius-sm); }

.dropdown-menu {
    --bs-dropdown-bg: var(--rd-surface); --bs-dropdown-border-color: var(--rd-border); --bs-dropdown-border-radius: 12px;
    --bs-dropdown-link-color: var(--rd-text-2); --bs-dropdown-link-hover-bg: var(--rd-surface-2); --bs-dropdown-link-hover-color: var(--rd-text);
    --bs-dropdown-link-active-bg: var(--rd-accent-soft); --bs-dropdown-link-active-color: var(--rd-accent-text);
    --bs-dropdown-item-padding-y: .45rem; --bs-dropdown-divider-bg: var(--rd-border);
    box-shadow: var(--rd-shadow-lg); padding: .4rem;
}
.dropdown-item { border-radius: 8px; }
.list-group { --bs-list-group-bg: var(--rd-surface); --bs-list-group-border-color: var(--rd-border); --bs-list-group-color: var(--rd-text-2); --bs-list-group-action-hover-bg: var(--rd-surface-2); --bs-list-group-action-hover-color: var(--rd-text); --bs-list-group-active-bg: var(--rd-accent); --bs-list-group-active-border-color: var(--rd-accent); }
.table { --bs-table-bg: transparent; --bs-table-color: var(--rd-text-2); --bs-table-border-color: var(--rd-border); --bs-table-hover-bg: var(--rd-surface-2); --bs-table-striped-bg: var(--rd-surface-2); }
.table > thead th { color: var(--rd-muted); font-weight: 600; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.offcanvas { --bs-offcanvas-bg: var(--rd-bg); --bs-offcanvas-border-color: var(--rd-border); --bs-offcanvas-color: var(--rd-text-2); }
.offcanvas-header { border-bottom: 1px solid var(--rd-border); background: var(--rd-surface); }
.modal { --bs-modal-bg: var(--rd-surface); --bs-modal-border-color: var(--rd-border); --bs-modal-border-radius: 18px; --bs-modal-header-border-color: var(--rd-border); --bs-modal-footer-border-color: var(--rd-border); }
.accordion { --bs-accordion-bg: var(--rd-surface); --bs-accordion-border-color: var(--rd-border); --bs-accordion-btn-color: var(--rd-text); --bs-accordion-active-bg: var(--rd-surface-2); --bs-accordion-active-color: var(--rd-text); --bs-accordion-btn-focus-box-shadow: none; }
.pagination { --bs-pagination-bg: transparent; --bs-pagination-border-color: transparent; --bs-pagination-color: var(--rd-muted); --bs-pagination-hover-bg: var(--rd-surface-2); --bs-pagination-hover-color: var(--rd-text); --bs-pagination-hover-border-color: transparent; --bs-pagination-active-bg: var(--rd-surface); --bs-pagination-active-color: var(--rd-text); --bs-pagination-active-border-color: var(--rd-border); --bs-pagination-disabled-bg: transparent; --bs-pagination-disabled-border-color: transparent; --bs-pagination-focus-box-shadow: none; --bs-pagination-border-radius: 8px; gap: 2px; margin: 0; }
.page-link { border-radius: 8px !important; font-weight: 500; }
.nav-tabs { --bs-nav-tabs-border-color: var(--rd-border); --bs-nav-tabs-link-active-bg: transparent; --bs-nav-tabs-link-active-color: var(--rd-text); --bs-nav-tabs-link-active-border-color: transparent transparent var(--rd-accent); --bs-nav-tabs-link-hover-border-color: transparent; --bs-nav-link-color: var(--rd-muted); --bs-nav-link-hover-color: var(--rd-text); --bs-nav-link-font-weight: 600; }
.nav-tabs .nav-link { border-width: 0 0 2px 0; }
.nav-pills { --bs-nav-pills-link-active-bg: var(--rd-accent-soft); --bs-nav-pills-link-active-color: var(--rd-accent-text); --bs-nav-link-color: var(--rd-text-2); }
.breadcrumb { --bs-breadcrumb-item-active-color: var(--rd-text); margin: 0; }
.toast { --bs-toast-bg: var(--rd-surface); --bs-toast-border-color: var(--rd-border); --bs-toast-header-bg: var(--rd-surface); --bs-toast-header-color: var(--rd-text); --bs-toast-border-radius: 12px; box-shadow: var(--rd-shadow-lg); }
.alert { border-radius: 12px; }
.tooltip { --bs-tooltip-bg: var(--rd-text); --bs-tooltip-color: var(--rd-bg); --bs-tooltip-border-radius: 8px; font-family: var(--bs-font-sans-serif); }
.progress { --bs-progress-bg: var(--rd-surface-2); --bs-progress-bar-bg: var(--rd-accent); --bs-progress-border-radius: 99px; }
.placeholder { background-color: var(--rd-border); opacity: 1; border-radius: 6px; }
hr { border-color: var(--rd-border); opacity: 1; }

/* Badge: i tag (ToSpanHtml produce "badge bg-light") diventano pillole neutre */
.badge { font-weight: 600; border-radius: 999px; }
.badge.bg-light, .badge.text-bg-light {
    background: var(--rd-surface-2) !important;
    color: var(--rd-text-2) !important;
    border: 1px solid var(--rd-border);
    font-weight: 500;
    padding: .3em .7em;
    margin-right: .25rem;
}
.badge.bg-danger, .badge.text-bg-danger { background: var(--rd-danger) !important; }
.badge.bg-dark, .badge.text-bg-dark { background: var(--rd-text) !important; color: var(--rd-bg) !important; }

/* ---------- UTILITY EREDITATE DA SNEAT (usate nei componenti) ---------- */
.text-heading { color: var(--rd-text) !important; }
.fs-tiny { font-size: .75rem !important; }
.op-6 { opacity: .6; }
.cursor-pointer { cursor: pointer !important; }
.w-px-35 { width: 35px !important; }
.h-px-35 { height: 35px !important; }
.pos-relative { position: relative; }
.container-p-y { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.container-p-x { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.bg-label-primary { background: var(--rd-accent-soft) !important; color: var(--rd-accent-text) !important; }
.app-brand, .app-brand-link { display: flex; align-items: center; }
.misc-wrapper { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: calc(100vh - 12rem); text-align: center; padding: 1.5rem; }

.avatar { position: relative; width: 2.25rem; height: 2.25rem; flex-shrink: 0; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar-sm { width: 1.5rem; height: 1.5rem; }
.avatar h6 { margin: 0; }
.avatar .badge { width: 2rem; height: 2rem; display: grid; place-items: center; padding: 0; border-radius: 10px; font-size: .95rem; color: #fff; }
.avatar-initial { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: 50%; font-weight: 600; background: var(--rd-accent-soft); color: var(--rd-accent-text); }
.avatar-wrapper { margin-right: .75rem; }
.avatar-group { margin: 0; padding: 0; }
.avatar-group .avatar { width: 30px; height: 30px; margin-left: -.55rem; }
.avatar-group .avatar img { width: 30px !important; height: 30px !important; max-width: none; object-fit: cover; border-radius: 50%; margin: 0 !important; }
.avatar-group .avatar:first-child { margin-left: 0; }
.avatar-group img { border: 2px solid var(--rd-surface); }
.pull-up { transition: transform .2s; }
.pull-up:hover { transform: translateY(-3px); z-index: 2; }

.divider { display: flex; align-items: center; gap: .75rem; margin: 1.25rem 0 .75rem; }
.divider::before, .divider::after { content: ""; flex: 1; border-top: 1px solid var(--rd-border); }
.divider .divider-text { color: var(--rd-muted); font-weight: 600; font-size: .8125rem !important; white-space: nowrap; display: inline-flex; align-items: center; gap: .35rem; }

.timeline { list-style: none; margin: 0; padding: 0 0 0 1.5rem; border-left: 1px solid var(--rd-border); }
.timeline-item { position: relative; padding: 0 0 1.25rem .5rem; border: 0 !important; }
.timeline-indicator-advanced { position: absolute; left: -2.35rem; top: 0; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--rd-surface); border: 1px solid var(--rd-border); display: grid; place-items: center; font-size: .8rem; }
.timeline-indicator-primary, .timeline-indicator-warning { color: var(--rd-accent); }
.timeline-indicator-success { color: var(--rd-success); }
.timeline-indicator-danger { color: var(--rd-danger); }
.timeline-indicator-secondary { color: var(--rd-muted); }
.timeline-header { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }

/* =====================================================================
   LAYOUT APPLICAZIONE (MainLayout)
   ===================================================================== */
.rd-app { min-height: 100vh; }
.rd-app:has(.rd-sidebar) { display: grid; grid-template-columns: var(--rd-sidebar-w) minmax(0, 1fr); }
.rd-main { display: flex; flex-direction: column; min-height: 100vh; min-width: 0; }
.rd-content { flex: 1; padding: 1.75rem 2.5rem 2.5rem; width: 100%; max-width: 1440px; margin: 0 auto; }
.rd-app:not(:has(.rd-sidebar)) .rd-content { padding: 0; max-width: none; }

/* Sidebar */
.rd-sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; background: var(--rd-surface); border-right: 1px solid var(--rd-border); padding: 1.25rem .875rem 1rem; display: flex; flex-direction: column; gap: 2px; scrollbar-width: thin; }
.rd-sidebar .rd-logo { padding: .25rem .625rem 1.1rem; display: block; }
.rd-sidebar .rd-logo img { height: 26px; width: auto; }
.rd-sidebar .rd-new { width: calc(100% - .5rem); margin: 0 .25rem 1.1rem; justify-content: center; }
.rd-sidebar h6 { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--rd-muted); margin: 1.1rem .625rem .4rem; }
.rd-nav-item { display: flex; align-items: center; gap: .75rem; width: 100%; padding: .5rem .625rem; border-radius: 9px; border: 0; background: transparent; color: var(--rd-text-2); font-weight: 500; font-size: .875rem; text-align: left; cursor: pointer; transition: background-color .15s, color .15s; }
.rd-nav-item:hover { background: var(--rd-surface-2); color: var(--rd-text); }
.rd-nav-item.active { background: var(--rd-accent-soft); color: var(--rd-accent-text); font-weight: 600; }
.rd-nav-item .bi { font-size: 1rem; width: 1.1rem; text-align: center; }
.rd-sidebar .rd-spacer { flex: 1; min-height: 1rem; }
.rd-me { display: flex; align-items: center; gap: .625rem; padding: .875rem .625rem .25rem; border-top: 1px solid var(--rd-border); margin-top: .5rem; }
.rd-me .rd-me-img { position: relative; flex: none; }
.rd-me .rd-me-img img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.rd-me .rd-google { position: absolute; right: -2px; bottom: -2px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--rd-surface); background: var(--rd-muted); }
.rd-me .rd-google.ok { background: var(--rd-success); }
.rd-me .rd-google.ko { background: var(--rd-danger); }
.rd-me .rd-me-name { min-width: 0; line-height: 1.25; }
.rd-me .rd-me-name a { display: block; font-weight: 700; font-size: .8125rem; color: var(--rd-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-me .rd-me-name small { color: var(--rd-muted); font-size: .7rem; }
.rd-icon-btn { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 9px; border: 1px solid transparent; background: transparent; color: var(--rd-muted); cursor: pointer; flex: none; transition: .15s; }
.rd-icon-btn:hover { background: var(--rd-surface-2); color: var(--rd-text); border-color: var(--rd-border); }
.rd-icon-btn.active { background: var(--rd-accent-soft); color: var(--rd-accent); }

/* Footer (contenuto principale) */
.rd-footer { padding: 1rem 2.5rem 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; font-size: .75rem; color: var(--rd-muted); }
.rd-footer a { color: var(--rd-muted) !important; }
.rd-footer a:hover { color: var(--rd-text) !important; }
.rd-footer .rd-footer-links { display: flex; flex-wrap: wrap; gap: .25rem 1rem; align-items: center; }

/* Mobile: barra superiore e barra di navigazione inferiore */
.rd-mtop, .rd-mnav { display: none; }

@media (max-width: 991.98px) {
    .rd-app:has(.rd-sidebar) { display: block; }
    .rd-sidebar { display: none; }
    .rd-mtop { display: flex; align-items: center; gap: .5rem; padding: .75rem 1rem; background: var(--rd-surface); border-bottom: 1px solid var(--rd-border); position: sticky; top: 0; z-index: 1020; }
    .rd-mtop img.rd-mlogo { height: 22px; }
    .rd-mtop .rd-mtop-actions { margin-left: auto; display: flex; gap: .25rem; align-items: center; }
    .rd-mtop .rd-mtop-actions img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
    .rd-content { padding: 1.1rem 1rem 6rem; }
    .rd-footer { padding: 0 1rem 6.5rem; justify-content: center; text-align: center; }
    .rd-mnav { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; background: var(--rd-surface); border-top: 1px solid var(--rd-border); padding: .4rem .75rem calc(.6rem + env(safe-area-inset-bottom)); justify-content: space-around; align-items: center; }
    .rd-mnav button, .rd-mnav a { display: flex; flex-direction: column; align-items: center; gap: 1px; font-size: .65rem; font-weight: 600; color: var(--rd-muted); background: none; border: 0; padding: .2rem .4rem; min-width: 56px; }
    .rd-mnav .bi { font-size: 1.2rem; }
    .rd-mnav .active { color: var(--rd-accent); }
    .rd-mnav .rd-plus { width: 50px; height: 50px; min-width: 50px; border-radius: 16px; background: var(--rd-accent); color: #fff; display: grid; place-items: center; font-size: 1.4rem; margin-top: -1.75rem; box-shadow: 0 8px 20px rgba(var(--rd-accent-rgb), .4); padding: 0; }
    .rd-mnav .rd-plus .bi { font-size: 1.4rem; }
}

/* =====================================================================
   HOME
   ===================================================================== */
.rd-page-head { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.4rem; }
.rd-page-head h1 { font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.rd-page-head p { margin: .15rem 0 0; color: var(--rd-muted); }
.rd-page-head .rd-actions { margin-left: auto; display: flex; gap: .5rem; }

.rd-search { display: flex; align-items: center; gap: .5rem; background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 14px; padding: .35rem .35rem .35rem 1rem; box-shadow: var(--rd-shadow); transition: border-color .15s, box-shadow .15s; }
.rd-search:focus-within { border-color: var(--rd-accent); box-shadow: 0 0 0 4px rgba(var(--rd-accent-rgb), .15); }
.rd-search > .bi-search { color: var(--rd-muted); font-size: 1rem; }
.rd-search input { flex: 1; border: 0; outline: 0; background: transparent; font-size: .975rem; color: var(--rd-text); padding: .5rem 0; min-width: 0; }
.rd-search input::placeholder { color: var(--rd-muted); }
.rd-search .btn { padding: .45rem .9rem; }
.rd-search-options { margin-top: .75rem; }

.rd-chips { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1rem 0 1.6rem; }
.rd-chip { display: inline-flex; align-items: center; gap: .4rem; font-size: .8125rem; font-weight: 500; padding: .35rem .8rem; border-radius: 999px; border: 1px solid var(--rd-border); background: var(--rd-surface); color: var(--rd-text-2); cursor: pointer; transition: .15s; white-space: nowrap; }
.rd-chip:hover { border-color: var(--rd-muted); color: var(--rd-text); }
.rd-chip.active { background: var(--rd-text); border-color: var(--rd-text); color: var(--rd-bg); }
.rd-chip.rd-chip-clear { color: var(--rd-danger); border-color: rgba(229,72,77,.35); }
.rd-chip.rd-chip-static { cursor: default; background: var(--rd-accent-soft); border-color: transparent; color: var(--rd-accent-text); }

.rd-list-head { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; flex-wrap: wrap; }
.rd-list-head h2 { font-size: 1rem; font-weight: 700; margin: 0; }
.rd-list-head .dropdown-toggle, .rd-list-head .btn-link { font-size: .8125rem; }

/* QuickGrid come lista di card */
.rd-grid table { width: 100%; border-collapse: separate; border-spacing: 0 .5rem; margin-top: -.5rem; }
.rd-grid thead { display: none; }
.rd-grid td { padding: 0 !important; border: 0 !important; background: transparent !important; }

.rd-row { display: grid; grid-template-columns: auto minmax(0, 1.1fr) minmax(0, 1.3fr) auto; gap: 1rem; align-items: center; padding: .9rem 1.1rem; background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: var(--rd-radius); cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; }
.rd-row:hover { border-color: rgba(var(--rd-accent-rgb), .5); box-shadow: var(--rd-shadow-lg); transform: translateY(-1px); }
.rd-row-toggles { display: flex; flex-direction: column; gap: 2px; }
.rd-toggle { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; border: 0; background: transparent; color: var(--rd-border); font-size: 1rem; cursor: pointer; transition: .15s; }
[data-bs-theme="dark"] .rd-toggle { color: #44464d; }
.rd-toggle:hover { background: var(--rd-surface-2); color: var(--rd-muted); }
.rd-toggle.on { color: var(--rd-accent); }
.rd-row-title { font-weight: 600; font-size: .975rem; color: var(--rd-text); display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-bottom: .35rem; line-height: 1.3; }
.rd-row-tags { font-size: .75rem; }
.rd-row-rems { min-width: 0; font-size: .8125rem; }
.rd-row-rems .row { margin: 0; }
.rd-row-end { text-align: right; color: var(--rd-muted); font-size: .75rem; white-space: nowrap; display: flex; align-items: center; gap: .5rem; }
.rd-row-end .bi-chevron-right { color: var(--rd-border); font-size: .9rem; }
.rd-pill { font-size: .6875rem; font-weight: 700; padding: .12rem .55rem; border-radius: 999px; text-transform: uppercase; letter-spacing: .03em; background: var(--rd-accent-soft); color: var(--rd-accent-text); }

.rd-pager { margin-top: 1rem; }

@media (max-width: 767.98px) {
    .rd-page-head h1 { font-size: 1.3rem; }
    .rd-page-head .rd-actions { display: none; }
    .rd-chips { flex-wrap: nowrap; overflow-x: auto; margin: .9rem -1rem 1.2rem; padding: 0 1rem; scrollbar-width: none; }
    .rd-chips::-webkit-scrollbar { display: none; }
    .rd-row { grid-template-columns: minmax(0, 1fr) auto; gap: .6rem .75rem; padding: .85rem .9rem; }
    .rd-row-toggles { grid-column: 2; grid-row: 1; flex-direction: row; }
    .rd-row-main { grid-column: 1; grid-row: 1; }
    .rd-row-rems { grid-column: 1 / -1; grid-row: 2; border-top: 1px dashed var(--rd-border); padding-top: .6rem; }
    .rd-row-rems:empty { display: none; }
    .rd-row-end { display: none; }
}

/* =====================================================================
   DETTAGLIO ATTIVITÀ
   ===================================================================== */
.rd-crumb { display: flex; align-items: center; gap: .6rem; color: var(--rd-muted); font-size: .8125rem; margin-bottom: 1rem; }
.rd-crumb .rd-back { width: 32px; height: 32px; border-radius: 9px; border: 1px solid var(--rd-border); background: var(--rd-surface); color: var(--rd-text); display: grid; place-items: center; cursor: pointer; }
.rd-crumb .rd-back:hover { border-color: var(--rd-muted); }
.rd-crumb b { color: var(--rd-text); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-dhead { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: flex-start; }
.rd-dhead h1 { font-size: 1.85rem; font-weight: 800; letter-spacing: -.025em; margin: 0 0 .6rem; line-height: 1.15; word-break: break-word; }
.rd-dhead .rd-dhead-main { min-width: min(100%, 320px); flex: 1 1 420px; }
.rd-dmeta img { max-width: 28px; max-height: 28px; object-fit: cover; }
.rd-dhead .rd-dhead-actions { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.rd-dmeta { display: flex; gap: .5rem 1.25rem; align-items: center; flex-wrap: wrap; color: var(--rd-muted); font-size: .8rem; }
.rd-dmeta .row { margin: 0; }
.rd-seg { display: inline-flex; border: 1px solid var(--rd-border); border-radius: 10px; padding: 3px; background: var(--rd-surface); gap: 2px; }
.rd-seg button { width: 32px; height: 32px; border: 0; border-radius: 7px; background: transparent; color: var(--rd-muted); display: grid; place-items: center; cursor: pointer; }
.rd-seg button:hover { color: var(--rd-text); background: var(--rd-surface-2); }
.rd-seg button.on { background: var(--rd-accent-soft); color: var(--rd-accent); }
.rd-seg .rd-seg-lock { width: 32px; height: 32px; display: grid; place-items: center; color: var(--rd-danger); }
.rd-dhead .dropdown-toggle::after { display: none; }

.rd-tabs { display: flex; gap: .25rem; border-bottom: 1px solid var(--rd-border); margin: 1.5rem 0 1.4rem; overflow-x: auto; scrollbar-width: none; }
.rd-tabs::-webkit-scrollbar { display: none; }
.rd-tab { position: relative; padding: .65rem .85rem; font-weight: 600; font-size: .875rem; color: var(--rd-muted); border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; background: none; display: inline-flex; gap: .45rem; align-items: center; cursor: pointer; white-space: nowrap; }
.rd-tab:hover { color: var(--rd-text); }
.rd-tab.active { color: var(--rd-text); border-bottom-color: var(--rd-accent); }
.rd-tab .rd-count { font-size: .6875rem; background: var(--rd-surface-2); border: 1px solid var(--rd-border); padding: 0 .45rem; border-radius: 999px; color: var(--rd-text-2); line-height: 1.5; }
.rd-tab .rd-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--rd-danger); }
.rd-tab.rd-tab-alert .bi { color: var(--rd-danger); }

.rd-dgrid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.5rem; align-items: start; }
.rd-note { padding: 1.75rem 2rem; }
.rd-note .editorcontent { font-size: .95rem; line-height: 1.7; }
.rd-note-more { display: flex; justify-content: center; border-top: 1px solid var(--rd-border); margin: 1.25rem -2rem -1.75rem; padding: .7rem; color: var(--rd-muted); font-size: .8125rem; font-weight: 600; cursor: pointer; background: none; border-left: 0; border-right: 0; border-bottom: 0; width: calc(100% + 4rem); border-radius: 0 0 var(--rd-radius) var(--rd-radius); }
.rd-note-more:hover { color: var(--rd-text); background: var(--rd-surface-2); }
.rd-aside { display: flex; flex-direction: column; gap: 1rem; }
.rd-box { padding: 1.1rem 1.2rem; }
.rd-box h4 { font-size: .8125rem; font-weight: 700; margin: 0 0 .6rem; display: flex; align-items: center; gap: .5rem; }
.rd-box h4 .rd-box-count { margin-left: auto; color: var(--rd-muted); font-weight: 600; }
.rd-box .rd-box-item + .rd-box-item { border-top: 1px solid var(--rd-border); }
.rd-box .rd-box-item { padding: .15rem 0; }
.rd-box .rd-box-empty { color: var(--rd-muted); font-size: .8125rem; }
.rd-section-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.rd-section-head h3 { font-size: 1.05rem; margin: 0; }
.rd-section-head .rd-icon-btn { margin-left: auto; }
.rd-section { padding: 1.25rem 1.4rem; }

@media (max-width: 1199.98px) {
    .rd-dgrid { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    .rd-dhead { flex-direction: column; gap: .75rem; }
    /* in colonna la flex-basis (420px) diventava un'altezza: spazio vuoto sotto il titolo */
    .rd-dhead .rd-dhead-main { flex: 0 0 auto; width: 100%; min-width: 0; }
    .rd-dhead h1 { font-size: 1.45rem; margin-bottom: .5rem; }
    .rd-crumb { margin-bottom: .75rem; }
    .rd-crumb .rd-updated { display: none; }
    .rd-dhead .rd-dhead-actions { width: 100%; justify-content: flex-start; }
    .rd-dhead .rd-dhead-actions .rd-edit { margin-left: auto; }
    .rd-dhead .rd-hide-sm { display: none !important; }
    .rd-tabs { margin: 1.1rem -1rem 1.1rem; padding: 0 1rem; }
    .rd-note { padding: 1.25rem 1.1rem; }
    .rd-note-more { margin: 1rem -1.1rem -1.25rem; width: calc(100% + 2.2rem); }
    .rd-section { padding: 1rem .9rem; }
}

/* =====================================================================
   ACCESSO / REGISTRAZIONE (AuthShell)
   ===================================================================== */
.rd-auth { display: grid; grid-template-columns: 1.1fr 1fr; min-height: calc(100vh - 3.5rem); }
.rd-auth-hero { padding: 3rem 4rem; display: flex; flex-direction: column; background: radial-gradient(800px 400px at 0% 0%, var(--rd-accent-soft), transparent 60%), radial-gradient(600px 500px at 100% 100%, var(--rd-accent-soft), transparent 60%), var(--rd-surface-2); border-right: 1px solid var(--rd-border); }
.rd-auth-hero .rd-auth-logo img { height: 30px; width: auto; }
.rd-auth-copy { margin: auto 0; max-width: 540px; padding: 2rem 0; }
.rd-auth-copy h1 { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.08; letter-spacing: -.035em; font-weight: 800; margin: 0 0 1.1rem; }
.rd-auth-copy h1 em { font-style: normal; color: var(--rd-accent); }
.rd-auth-copy p { font-size: 1.05rem; color: var(--rd-text-2); margin: 0 0 2rem; }
.rd-feat { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.rd-feat div { display: flex; gap: .6rem; align-items: center; background: var(--rd-surface); border: 1px solid var(--rd-border); padding: .75rem .9rem; border-radius: 12px; font-weight: 600; font-size: .8125rem; color: var(--rd-text); }
.rd-feat .bi { color: var(--rd-accent); font-size: 1.05rem; }
.rd-auth-form { display: flex; align-items: center; justify-content: center; padding: 3rem 2rem; }
.rd-auth-form .rd-auth-inner { width: 100%; max-width: 400px; }
.rd-auth-form h2 { font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; margin: 0 0 .35rem; }
.rd-auth-form .rd-auth-sub { color: var(--rd-muted); margin: 0 0 1.75rem; }
.rd-auth-form .divider { margin: 1.4rem 0; }
.rd-auth-form .form-label { float: none !important; }
.rd-auth-cta { display: flex; gap: .75rem; flex-wrap: wrap; }

@media (max-width: 991.98px) {
    .rd-auth { grid-template-columns: 1fr; min-height: 0; }
    .rd-auth-hero { padding: 1.5rem 1.25rem 1.75rem; border-right: 0; border-bottom: 1px solid var(--rd-border); }
    .rd-auth-copy { margin: 1.5rem 0 0; padding: 0; }
    .rd-auth-copy p { font-size: .95rem; margin-bottom: 1.25rem; }
    .rd-feat { display: none; }
    .rd-auth-form { padding: 1.75rem 1.25rem 2.5rem; align-items: flex-start; }
}

.rd-auth-form { position: relative; }
.rd-auth-tools { position: absolute; top: 1rem; right: 1rem; }

/* Icona dei promemoria nella lista (PromemoriaDettaglioInGriglia) */
.avatar > .bi { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 10px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); color: var(--rd-text-2); font-size: .95rem !important; }

/* Menu a tendina accanto ai pulsanti (es. "Nuovo" + "⋮" nelle sezioni del dettaglio): sulla stessa riga */
.dropdown { display: inline-block; vertical-align: middle; }
.dropdown-toggle:has(.bi-three-dots-vertical) { width: 38px; height: 38px; padding: 0; display: inline-grid; place-items: center; border: 1px solid var(--rd-border); background: var(--rd-surface); border-radius: var(--rd-radius-sm); color: var(--rd-text-2); margin-left: .35rem; }
.dropdown-toggle:has(.bi-three-dots-vertical):hover { background: var(--rd-surface-2); color: var(--rd-text); }
.dropdown-toggle:has(.bi-three-dots-vertical)::after { display: none; }
.dropdown-toggle .bi-three-dots-vertical { font-size: 1rem !important; }

/* =====================================================================
   MODULO ATTIVITÀ (DocumentoSalvataggio): pagina "Nuova attività" e modifica dal dettaglio
   ===================================================================== */
.rd-form { max-width: 1100px; }
.rd-form-head { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.rd-form-title { display: flex; align-items: center; gap: .75rem; min-width: 0; flex: 1 1 auto; }
.rd-form-title h1 { font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.rd-form-title .rd-back { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--rd-border); background: var(--rd-surface); color: var(--rd-text); display: grid; place-items: center; cursor: pointer; flex: none; }
.rd-form-title .rd-back:hover { border-color: var(--rd-muted); }
.rd-form-actions { display: flex; gap: .5rem; margin-left: auto; }
.rd-form-card { padding: 1.5rem 1.75rem; }
.rd-title-input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--rd-text); font-size: 1.5rem; font-weight: 700; letter-spacing: -.015em; padding: .25rem 0 .6rem; border-bottom: 1px solid var(--rd-border); border-radius: 0; }
.rd-title-input::placeholder { color: var(--rd-muted); font-weight: 600; }
.rd-title-input:focus { border-bottom-color: var(--rd-accent); }
.rd-form-card .rte-note { border-radius: var(--rd-radius-sm); }
.rd-form-card .rte-note [contenteditable] { min-height: 380px; }

@media (max-width: 991.98px) {
    .rd-form { padding-bottom: 4.5rem; }
    .rd-form-title h1 { font-size: 1.3rem; }
    .rd-form-card { padding: 1rem; }
    .rd-title-input { font-size: 1.2rem; }
    /* pulsanti fissi in basso, sopra la barra di navigazione */
    .rd-form-actions { position: fixed; left: 0; right: 0; bottom: calc(62px + env(safe-area-inset-bottom)); z-index: 1025; margin: 0; padding: .6rem 1rem; background: var(--rd-surface); border-top: 1px solid var(--rd-border); }
    .rd-form-actions .btn { flex: 1; justify-content: center; }
}

/* Foto profilo (ImageUser, scheda utente): sempre cerchi pieni, mai deformate */
img.rounded-circle,
.rd-me-img img,
.rd-mtop-actions img {
    object-fit: cover;
    object-position: center;
    aspect-ratio: 1 / 1;
    flex: none;
    vertical-align: middle;
    background: var(--rd-surface-2);
}
img.rounded-circle:not(.border-warning) { box-shadow: 0 0 0 1px var(--rd-border); }

/* =====================================================================
   SEZIONI DEL DETTAGLIO (Promemoria, Piani, Pagamenti, Allegati, Commenti)
   Componenti: Components/Sezione/SezioneBarra, SezioneFinestra, SezioneVuota
   ===================================================================== */
.rd-sec-bar { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem; }
.rd-sec-title { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--rd-text); display: flex; align-items: center; gap: .5rem; white-space: nowrap; }
.rd-sec-count { font-size: .75rem; color: var(--rd-muted); font-weight: 600; background: var(--rd-surface-2); border: 1px solid var(--rd-border); border-radius: 999px; padding: 0 .5rem; }
.rd-sec-search { flex: 1 1 200px; max-width: 360px; display: flex; align-items: center; gap: .5rem; background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: var(--rd-radius-sm); padding: 0 .4rem 0 .75rem; height: 38px; transition: border-color .15s, box-shadow .15s; }
.rd-sec-search:focus-within { border-color: var(--rd-accent); box-shadow: 0 0 0 4px rgba(var(--rd-accent-rgb), .15); }
.rd-sec-search .bi-search { color: var(--rd-muted); }
.rd-sec-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--rd-text); font-size: .875rem; }
.rd-sec-search input::placeholder { color: var(--rd-muted); }
.rd-sec-clear { border: 0; background: none; color: var(--rd-muted); width: 26px; height: 26px; border-radius: 6px; display: grid; place-items: center; font-size: .75rem; }
.rd-sec-clear:hover { background: var(--rd-surface-2); color: var(--rd-text); }
.rd-sec-spacer { flex: 1; }
.rd-sec-bar .form-check, .rd-sec-bar .form-switch { margin: 0; white-space: nowrap; font-size: .8125rem; }
.rd-sec-bar .form-check-label { color: var(--rd-text-2); }

/* Righe delle liste nelle sezioni */
.rd-item { background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 12px; padding: .7rem 1rem; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.rd-item:hover { border-color: rgba(var(--rd-accent-rgb), .5); box-shadow: var(--rd-shadow); }
.rd-item .row { --bs-gutter-x: 1rem; }

/* Stato vuoto */
.rd-empty { text-align: center; padding: 2.5rem 1.25rem; border: 1px dashed var(--rd-border); border-radius: var(--rd-radius); background: var(--rd-surface); }
.rd-empty-icon { width: 56px; height: 56px; border-radius: 16px; background: var(--rd-accent-soft); color: var(--rd-accent); display: grid; place-items: center; font-size: 1.5rem; margin: 0 auto .9rem; }
.rd-empty h4 { margin: 0 0 .25rem; font-size: 1rem; }
.rd-empty p { margin: 0 auto 1.1rem; color: var(--rd-muted); max-width: 420px; }

/* Finestra (dialog) */
.rd-dialog-overlay { position: fixed; inset: 0; z-index: 1040; background: rgba(20,18,15,.38); backdrop-filter: blur(2px); display: flex; align-items: flex-start; justify-content: center; padding: 5vh 1rem; overflow-y: auto; animation: rd-fade .15s ease-out; }
[data-bs-theme="dark"] .rd-dialog-overlay { background: rgba(0,0,0,.6); }
.rd-dialog { width: 100%; max-width: 620px; background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 18px; box-shadow: var(--rd-shadow-lg); display: flex; flex-direction: column; max-height: 90vh; outline: 0; animation: rd-pop .18s ease-out; }
.rd-dialog.rd-dialog-lg { max-width: 960px; }
.rd-dialog-head { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--rd-border); flex: none; }
.rd-dialog-head h3 { margin: 0; font-size: 1.05rem; font-weight: 700; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-dialog-body { padding: 1.25rem; overflow-y: auto; flex: 1; }
.rd-dialog-foot { display: flex; gap: .5rem; justify-content: flex-end; padding: .85rem 1.25rem; border-top: 1px solid var(--rd-border); background: var(--rd-surface-2); border-radius: 0 0 18px 18px; flex: none; }
/* pulsanti Annulla / Salva dei moduli: in fondo e sempre visibili */
.rd-dialog-actions { position: sticky; bottom: -1.25rem; z-index: 2; display: flex; gap: .5rem; justify-content: flex-end; margin: 1.25rem -1.25rem -1.25rem; padding: .85rem 1.25rem; border-top: 1px solid var(--rd-border); background: var(--rd-surface-2); border-radius: 0 0 18px 18px; }
.rd-dialog-body > hr:first-child, .rd-dialog-body form > hr:first-of-type { display: none; }

/* Moduli nella finestra: etichette sopra i campi (le tabelle label/campo diventano righe impilate) */
.rd-dialog form .table-responsive { overflow: visible; }
.rd-dialog form .table-detail > tbody > tr,
.rd-dialog form .table-detail-sm > tbody > tr { display: flex; flex-direction: column; gap: .35rem; padding: .45rem 0; }
.rd-dialog form .table-detail > tbody > tr > td,
.rd-dialog form .table-detail-sm > tbody > tr > td { display: block; width: auto !important; min-width: 0 !important; max-width: none !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; word-break: normal !important; }
.rd-dialog form .table-detail > tbody > tr > td:first-child,
.rd-dialog form .table-detail-sm > tbody > tr > td:first-child { font-weight: 600; font-size: .8125rem; color: var(--rd-text); }
.rd-dialog form .table-detail > tbody > tr > td:first-child .bi,
.rd-dialog form .table-detail-sm > tbody > tr > td:first-child .bi { color: var(--rd-muted) !important; }
.rd-dialog form .table { margin-bottom: 0; }
.rd-dialog form .row.mt-4.px-2 { margin-top: .75rem !important; padding: 0 !important; }

@keyframes rd-fade { from { opacity: 0; } }
@keyframes rd-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } }

/* Commenti: campo di scrittura */
.rd-composer { background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: var(--rd-radius); padding: .6rem; margin-bottom: 1rem; box-shadow: var(--rd-shadow); }
.rd-composer:focus-within { border-color: var(--rd-accent); box-shadow: 0 0 0 4px rgba(var(--rd-accent-rgb), .15); }
.rd-composer .input-group { align-items: flex-end; gap: .5rem; }
.rd-composer .input-group-text { display: none; }
.rd-composer textarea.form-control { border: 0 !important; box-shadow: none !important; background: transparent; resize: none; min-height: 44px; border-radius: 8px !important; }
.rd-composer .btn { border-radius: 10px !important; flex: none; }

@media (max-width: 767.98px) {
    .rd-sec-search { order: 3; flex-basis: 100%; max-width: none; }
    .rd-sec-spacer { display: none; }
    .rd-sec-new { margin-left: auto; }
    .rd-sec-new span { display: none; }
    .rd-sec-bar .form-switch, .rd-sec-bar .form-check { order: 4; }
    .rd-dialog-overlay { padding: 0; }
    .rd-dialog, .rd-dialog.rd-dialog-lg { max-width: none; max-height: none; min-height: 100%; border-radius: 0; border: 0; }
    .rd-dialog-foot, .rd-dialog-actions { border-radius: 0; }
    .rd-dialog-foot .btn, .rd-dialog-actions .btn { flex: 1; justify-content: center; }
}
.min-w-0 { min-width: 0; }

/* =====================================================================
   CAMPI DEI MODULI NELLE FINESTRE (Promemoria, Piani, Pagamenti, Allegati)
   ===================================================================== */
.rd-form-fields { margin-top: .25rem; }
.rd-field { margin-bottom: 1rem; min-width: 0; }
.rd-field > label { display: block; font-size: .8125rem; font-weight: 600; color: var(--rd-text); margin-bottom: .35rem; }
.rd-req { color: var(--rd-danger); }
.rd-field .form-control, .rd-field .form-select { width: 100%; }
.rd-field textarea.form-control { resize: vertical; min-height: 84px; }
.rd-field-hint { font-size: .78rem; color: var(--rd-muted); margin-top: .1rem; }
.rd-field-box { border: 1px solid var(--rd-border); border-radius: 12px; padding: .75rem 1rem; background: var(--rd-surface-2); }
.rd-fieldset { border: 1px solid var(--rd-border); border-radius: 12px; padding: .9rem 1rem .75rem; margin: 0 0 1rem; background: var(--rd-surface-2); min-width: 0; }
.rd-fieldset-title { float: none; width: auto; padding: 0; margin: 0 0 .65rem; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rd-muted); display: flex; align-items: center; gap: .4rem; }
.rd-fieldset .rd-field { margin-bottom: .6rem; }
.rd-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 .75rem; }
.rd-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 .75rem; }
.rd-switch-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--rd-border); border-radius: 12px; margin-bottom: 1rem; }
.rd-switch-row b { display: block; color: var(--rd-text); font-weight: 600; font-size: .875rem; }
.rd-switch-row small { display: block; color: var(--rd-muted); font-size: .78rem; }
.rd-switch-row .form-check { margin: 0; min-height: 0; flex: none; }
.rd-switch-row .form-check-input { width: 2.4em; height: 1.35em; margin-top: 0; cursor: pointer; }
.rd-color-swatch { width: 18px; height: 18px; border-radius: 6px; border: 1px solid var(--rd-border); flex: none; }

@media (max-width: 767.98px) {
    .rd-grid-3, .rd-grid-2 { grid-template-columns: 1fr; }
}

/* =====================================================================
   FINESTRA: icona e sottotitolo nell'intestazione
   ===================================================================== */
.rd-dialog-icon { width: 36px; height: 36px; border-radius: 10px; background: var(--rd-accent-soft); color: var(--rd-accent); display: grid; place-items: center; font-size: 1.05rem; flex: none; }
.rd-dialog-titles { flex: 1; min-width: 0; }
.rd-dialog-titles h3 { margin: 0; font-size: 1.05rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-dialog-titles small { display: block; color: var(--rd-muted); font-size: .78rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-dialog-info { margin-right: auto; align-self: center; font-size: .8rem; color: var(--rd-muted); }
.rd-counter { font-size: .75rem; color: var(--rd-muted); font-weight: 500; }

/* =====================================================================
   CARICA ALLEGATO (AllegatoCaricamento)
   ===================================================================== */
.rd-drop { position: relative; border: 2px dashed rgba(var(--rd-accent-rgb), .4); border-radius: 16px; background: linear-gradient(180deg, var(--rd-accent-soft), transparent 140%); padding: 2rem 1.25rem 1.75rem; text-align: center; transition: border-color .15s, background-color .15s, transform .15s; }
.rd-drop:hover, .rd-drop:focus-within { border-color: var(--rd-accent); }
.rd-drop-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; }
.rd-drop-circle { width: 64px; height: 64px; border-radius: 50%; margin: 0 auto .9rem; display: grid; place-items: center; background: var(--rd-surface); color: var(--rd-accent); font-size: 1.75rem; box-shadow: 0 6px 18px rgba(var(--rd-accent-rgb), .25); transition: transform .2s, background-color .2s, color .2s; }
.rd-drop-title { display: block; margin: 0 0 .25rem; font-size: 1.02rem; font-weight: 700; color: var(--rd-text); }
.rd-drop p { margin: 0; color: var(--rd-muted); font-size: .82rem; }
.rd-drop p u { color: var(--rd-accent-text); font-weight: 700; text-underline-offset: 3px; }
.rd-drop-types { display: flex; justify-content: center; gap: .35rem; margin-top: .9rem; flex-wrap: wrap; }
.rd-drop-types span { font-size: .68rem; font-weight: 700; letter-spacing: .03em; padding: .15rem .5rem; border-radius: 6px; background: var(--rd-surface); border: 1px solid var(--rd-border); color: var(--rd-text-2); }
.rd-drop.rd-drop-over { border-style: solid; border-color: var(--rd-accent); background: rgba(var(--rd-accent-rgb), .14); transform: scale(1.01); }
.rd-drop.rd-drop-over .rd-drop-circle { transform: translateY(-4px) scale(1.08); background: var(--rd-accent); color: #fff; }
.rd-drop.rd-drop-compact { padding: .75rem 1rem; border-radius: 12px; }
.rd-drop.rd-drop-compact .rd-drop-title { margin: 0; font-size: .85rem; color: var(--rd-accent-text); }

.rd-files { display: flex; flex-direction: column; gap: .5rem; margin-bottom: .75rem; }
.rd-file { display: flex; align-items: center; gap: .75rem; padding: .6rem .75rem; border: 1px solid var(--rd-border); border-radius: 12px; background: var(--rd-surface); animation: rd-pop .2s ease-out; }
.rd-file-icon { position: relative; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; font-size: 1.1rem; flex: none; }
.rd-file-icon em { position: absolute; bottom: -5px; right: -6px; font-style: normal; font-size: .56rem; font-weight: 800; padding: 1px 4px; border-radius: 4px; background: var(--rd-surface); border: 1px solid var(--rd-border); color: var(--rd-text-2); max-width: 44px; overflow: hidden; text-overflow: ellipsis; }
.rd-file-name { flex: 1; min-width: 0; }
.rd-file-name b { display: block; color: var(--rd-text); font-weight: 600; font-size: .85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-file-name small { color: var(--rd-muted); font-size: .75rem; }
.rd-file-reading { display: inline-flex; align-items: center; color: var(--rd-accent-text); }
.rd-file-reading .spinner-border { width: .8rem; height: .8rem; border-width: .15em; }
.rd-ft-pdf { background: var(--rd-danger-soft); color: var(--rd-danger); }
.rd-ft-img { background: rgba(62,123,250,.12); color: #3E7BFA; }
.rd-ft-xls { background: var(--rd-success-soft); color: var(--rd-success); }
.rd-ft-doc { background: rgba(43,108,217,.12); color: #2B6CD9; }
.rd-ft-other { background: var(--rd-surface-2); color: var(--rd-text-2); border: 1px solid var(--rd-border); }
[data-bs-theme="dark"] .rd-ft-img, [data-bs-theme="dark"] .rd-ft-doc { background: rgba(107,155,255,.14); color: #6B9BFF; }
.rd-switch-icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; font-size: 1.05rem; flex: none; }
.rd-switch-row .flex-grow-1 { min-width: 0; }

@media (max-width: 767.98px) {
    .rd-dialog-actions { flex-wrap: wrap; }
    .rd-dialog-info { flex-basis: 100%; text-align: center; margin: 0 0 .25rem; }
}

/* =====================================================================
   PAGAMENTI: piani + pagamenti in un'unica scheda (PagamentiPanoramica)
   ===================================================================== */
.rd-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1.25rem; }
.rd-kpi { display: flex; flex-direction: row; justify-content: flex-start; align-items: center; gap: .75rem; padding: .85rem 1rem; text-align: left; font: inherit; color: inherit; }
button.rd-kpi { cursor: pointer; }
.rd-kpi.rd-kpi-alert { border-color: rgba(229,72,77,.35); }
.rd-kpi-icon { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; font-size: 1.1rem; flex: none; }
.rd-kpi-text { min-width: 0; }
.rd-kpi-text small { display: block; color: var(--rd-muted); font-size: .75rem; font-weight: 600; }
.rd-kpi-text b { display: block; color: var(--rd-text); font-size: 1.1rem; font-weight: 800; letter-spacing: -.01em; }
.rd-kpi-sub { display: block; color: var(--rd-muted); font-size: .75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-ki-danger { background: var(--rd-danger-soft); color: var(--rd-danger); }
.rd-ki-accent { background: var(--rd-accent-soft); color: var(--rd-accent); }
.rd-ki-success { background: var(--rd-success-soft); color: var(--rd-success); }

.rd-seg-toggle { display: inline-flex; border: 1px solid var(--rd-border); border-radius: 10px; padding: 3px; background: var(--rd-surface); gap: 2px; }
.rd-seg-toggle button { border: 0; background: transparent; color: var(--rd-muted); font-weight: 600; font-size: .8rem; padding: .35rem .75rem; border-radius: 7px; display: inline-flex; gap: .35rem; align-items: center; white-space: nowrap; }
.rd-seg-toggle button:hover { color: var(--rd-text); }
.rd-seg-toggle button.on { background: var(--rd-accent-soft); color: var(--rd-accent-text); }
.rd-new-toggle::after { margin-left: .15rem; }
.rd-new-menu { min-width: 270px; }
.rd-new-item { display: flex; gap: .75rem; align-items: flex-start; white-space: normal; }
.rd-new-icon { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; flex: none; }
.rd-new-item b { display: block; color: var(--rd-text); font-size: .875rem; }
.rd-new-item small { color: var(--rd-muted); font-size: .75rem; }

.rd-plans { display: flex; flex-direction: column; gap: .75rem; }
.rd-plan { overflow: visible; }
.rd-plan-head { display: grid; grid-template-columns: auto minmax(0, 1fr) 220px auto auto; gap: 1rem; align-items: center; padding: .9rem 1rem; cursor: pointer; border-radius: var(--rd-radius); }
.rd-plan-head:hover { background: var(--rd-surface-2); }
.rd-plan-color { width: 10px; height: 40px; border-radius: 6px; flex: none; }
.rd-plan-title { min-width: 0; }
.rd-plan-title b { display: block; color: var(--rd-text); font-size: .95rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-plan-meta { display: flex; gap: .25rem .9rem; flex-wrap: wrap; font-size: .78rem; color: var(--rd-muted); }
.rd-plan-prog small { display: flex; justify-content: space-between; font-size: .75rem; color: var(--rd-muted); margin-bottom: .3rem; }
.rd-plan-prog small b { color: var(--rd-text); }
.rd-track { height: 7px; border-radius: 99px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); overflow: hidden; display: flex; }
.rd-track i { display: block; height: 100%; }
.rd-status { font-size: .7rem; font-weight: 700; padding: .2rem .6rem; border-radius: 999px; white-space: nowrap; display: inline-flex; gap: .3rem; align-items: center; }
.rd-status-ko { background: var(--rd-danger-soft); color: var(--rd-danger); }
.rd-status-ok { background: var(--rd-success-soft); color: var(--rd-success); }
.rd-status-done { background: var(--rd-surface-2); color: var(--rd-muted); border: 1px solid var(--rd-border); }
.rd-chev { color: var(--rd-muted); transition: transform .2s; }
.rd-plan.open .rd-chev { transform: rotate(180deg); }
.rd-plan-body { border-top: 1px solid var(--rd-border); padding: .5rem 1rem .9rem; background: var(--rd-surface-2); border-radius: 0 0 var(--rd-radius) var(--rd-radius); }
.rd-plan-tools { display: flex; gap: .5rem; justify-content: flex-end; flex-wrap: wrap; padding: .35rem 0 .25rem; }

.rd-rates { list-style: none; margin: 0; padding: 0; }
.rd-rate { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto auto; gap: .75rem; align-items: center; padding: .55rem 0; }
.rd-rate + .rd-rate { border-top: 1px dashed var(--rd-border); }
.rd-rate-dot { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: .8rem; }
.rd-r-paid .rd-rate-dot { background: var(--rd-success-soft); color: var(--rd-success); }
.rd-r-late .rd-rate-dot { background: var(--rd-danger-soft); color: var(--rd-danger); }
.rd-r-due .rd-rate-dot { background: var(--rd-accent-soft); color: var(--rd-accent); }
.rd-r-future .rd-rate-dot { background: var(--rd-surface); color: var(--rd-muted); border: 1px solid var(--rd-border); }
.rd-rate-text { min-width: 0; }
.rd-rate-text b { color: var(--rd-text); font-weight: 600; font-size: .85rem; }
.rd-r-future .rd-rate-text b { color: var(--rd-muted); }
.rd-rate-meta { font-size: .75rem; color: var(--rd-muted); display: flex; gap: .15rem .65rem; flex-wrap: wrap; }
.rd-rate-late { color: var(--rd-danger); font-weight: 600; }
.rd-rate-due { color: var(--rd-accent-text); font-weight: 600; }
.rd-rate-amt { font-weight: 700; color: var(--rd-text); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.rd-rate-act { display: flex; justify-content: flex-end; min-width: 34px; }
.rd-btn-danger-soft { background: var(--rd-danger-soft); color: var(--rd-danger); border: 0; }
.rd-btn-danger-soft:hover { background: var(--rd-danger); color: #fff; }
.rd-btn-accent-soft { background: var(--rd-accent-soft); color: var(--rd-accent-text); border: 0; }
.rd-btn-accent-soft:hover { background: var(--rd-accent); color: #fff; }

.rd-group-title { display: flex; align-items: center; gap: .5rem; margin: 1.5rem 0 .6rem; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--rd-muted); }
.rd-month { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--rd-muted); margin: 1.1rem 0 .5rem; }
.rd-month:first-child { margin-top: 0; }
.rd-pays { display: flex; flex-direction: column; gap: .5rem; }
.rd-pay { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: .85rem; align-items: center; }
.rd-pay-icon { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; font-size: 1rem; background: var(--rd-surface-2); color: var(--rd-text-2); border: 1px solid var(--rd-border); }
.rd-pay-icon.rd-ki-success { border-color: transparent; }
.rd-pay-text { min-width: 0; }
.rd-pay-text b { display: block; color: var(--rd-text); font-weight: 600; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-pay-meta { display: flex; gap: .25rem .65rem; flex-wrap: wrap; align-items: center; font-size: .78rem; color: var(--rd-muted); }
.rd-pay-amt { font-weight: 800; color: var(--rd-text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rd-pay-amt.rd-in { color: var(--rd-success); }
.rd-plan-pill { display: inline-flex; align-items: center; gap: .35rem; font-size: .72rem; font-weight: 600; padding: .05rem .55rem .05rem .45rem; border-radius: 99px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); color: var(--rd-text-2); }
.rd-plan-pill i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.rd-more { display: block; width: 100%; margin-top: .6rem; padding: .5rem; border: 1px dashed var(--rd-border); border-radius: 10px; background: transparent; color: var(--rd-accent-text); font-weight: 600; font-size: .82rem; }
.rd-more:hover { background: var(--rd-surface); }

/* Finestra "Registra rata" / "Collega a un piano" */
.rd-linked { display: flex; gap: .75rem; align-items: center; padding: .75rem .9rem; border-radius: 12px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); margin-bottom: .9rem; }
.rd-linked-color { width: 10px; height: 34px; border-radius: 5px; flex: none; }
.rd-linked b { display: block; color: var(--rd-text); font-size: .9rem; }
.rd-linked small { color: var(--rd-muted); font-size: .78rem; }
.rd-suggest { display: flex; gap: .75rem; align-items: center; padding: .75rem .9rem; border-radius: 12px; border: 1px dashed rgba(47,158,106,.5); background: var(--rd-success-soft); margin-bottom: .9rem; flex-wrap: wrap; }
.rd-suggest-icon { width: 34px; height: 34px; border-radius: 10px; background: var(--rd-surface); color: var(--rd-success); display: grid; place-items: center; flex: none; }
.rd-suggest b { display: block; color: var(--rd-text); font-size: .875rem; }
.rd-suggest small { color: var(--rd-text-2); font-size: .78rem; }
.rd-calc { display: flex; gap: .6rem; align-items: flex-start; padding: .75rem .9rem; border-radius: 12px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); font-size: .85rem; }
.rd-calc .bi { color: var(--rd-accent); margin-top: .1rem; }
.rd-calc.rd-calc-err { background: var(--rd-danger-soft); border-color: transparent; color: var(--rd-danger); }
.rd-calc.rd-calc-err .bi { color: var(--rd-danger); }

@media (max-width: 767.98px) {
    .rd-kpis { display: flex; overflow-x: auto; gap: .5rem; margin: 0 -1rem 1rem; padding: 0 1rem; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .rd-kpi { flex: 0 0 78%; scroll-snap-align: start; padding: .65rem .8rem; }
    .rd-kpi-text b { font-size: 1rem; }
    .rd-new-text { display: none; }
    .rd-seg-toggle { order: 5; }
    .rd-plan-head { grid-template-columns: auto minmax(0, 1fr) auto; gap: .6rem .75rem; }
    .rd-plan-head .rd-plan-prog { grid-column: 1 / -1; grid-row: 2; }
    .rd-plan-head .rd-plan-status { grid-column: 1 / 3; grid-row: 3; }
    .rd-plan-head .rd-chev { grid-column: 3; grid-row: 1; }
    .rd-rate { grid-template-columns: 28px minmax(0, 1fr) auto; }
    .rd-rate .rd-rate-act { grid-column: 2 / -1; justify-content: flex-start; }
    .rd-pay { grid-template-columns: auto minmax(0, 1fr) auto; }
    .rd-pay > span:last-child { grid-column: 3; grid-row: 1 / span 2; }
}

/* "Altre N da registrare" nell'elenco rate */
.rd-rate-more { list-style: none; padding: .35rem 0 .35rem 40px; border-top: 1px dashed var(--rd-border); }
.rd-more-late { border: 0; background: var(--rd-danger-soft); color: var(--rd-danger); font-weight: 600; font-size: .78rem; padding: .3rem .75rem; border-radius: 999px; display: inline-flex; gap: .35rem; align-items: center; }
.rd-more-late:hover { background: var(--rd-danger); color: #fff; }

/* =====================================================================
   PROMEMORIA — schede calendario raggruppate
   ===================================================================== */
.rd-rem-list { display: flex; flex-direction: column; }
.rd-rem-group { display: flex; align-items: center; gap: .5rem; margin: 1.25rem 0 .6rem; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--rd-muted); }
.rd-rem-group:first-child { margin-top: 0; }
.rd-rem-group-n { background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 99px; padding: 0 .45rem; font-size: .6875rem; }
.rd-rem-group-line { flex: 1; height: 1px; background: var(--rd-border); }
.rd-rem-items { display: flex; flex-direction: column; gap: .5rem; }

.rd-rem { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: 1rem; align-items: center; padding: .75rem .875rem; background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 14px; cursor: pointer; transition: border-color .15s, box-shadow .15s, opacity .15s; }
.rd-rem:hover { border-color: rgba(var(--rd-accent-rgb), .45); box-shadow: var(--rd-shadow); }
.rd-rem.rd-rem-dim { opacity: .62; }
.rd-rem.rd-rem-dim:hover { opacity: 1; }

.rd-cal { width: 54px; border-radius: 12px; overflow: hidden; text-align: center; border: 1px solid var(--rd-border); background: var(--rd-surface); flex: none; }
.rd-cal-m { font-size: .656rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 3px 0; background: var(--rd-surface-2); color: var(--rd-muted); }
.rd-cal-d { font-size: 1.375rem; font-weight: 800; color: var(--rd-text); line-height: 1.15; padding: 3px 0 1px; }
.rd-cal-w { font-size: .625rem; color: var(--rd-muted); padding-bottom: 4px; text-transform: capitalize; }
.rd-u-late .rd-cal, .rd-u-soon .rd-cal { border-color: transparent; box-shadow: 0 0 0 1px var(--rd-border); }
.rd-u-late .rd-cal-m { background: var(--rd-danger); color: #fff; }
.rd-u-late .rd-cal-d { color: var(--rd-danger); }
.rd-u-soon .rd-cal-m { background: var(--rd-accent); color: #fff; }
.rd-u-soon .rd-cal-d { color: var(--rd-accent-text); }

.rd-rem-body { min-width: 0; }
.rd-rem-body > b { display: block; color: var(--rd-text); font-size: .9375rem; font-weight: 600; margin-bottom: .3rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-pills { display: flex; gap: .375rem; flex-wrap: wrap; }
.rd-pill { display: inline-flex; align-items: center; gap: .3rem; font-size: .75rem; font-weight: 600; padding: 2px 9px; border-radius: 99px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); color: var(--rd-text-2); white-space: nowrap; }
.rd-pill-late { background: var(--rd-danger-soft); color: var(--rd-danger); border-color: transparent; }
.rd-pill-soon { background: var(--rd-accent-soft); color: var(--rd-accent-text); border-color: transparent; }
.rd-pill-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }

.rd-pstatus { font-size: .6875rem; font-weight: 700; padding: 3px 10px; border-radius: 99px; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.rd-pst-on { background: var(--rd-success-soft); color: var(--rd-success); }
.rd-pst-pause, .rd-pst-done { background: var(--rd-surface-2); color: var(--rd-muted); border: 1px solid var(--rd-border); }
.rd-pst-ko { background: var(--rd-danger-soft); color: var(--rd-danger); }
.rd-rem-menu .dropdown-toggle { margin-left: 0; }
.rd-rem-menu .dropdown-item.text-danger:hover { color: var(--rd-danger) !important; }

@media (max-width: 767.98px) {
  .rd-rem { grid-template-columns: auto minmax(0,1fr) auto; gap: .75rem; align-items: start; }
  .rd-rem .rd-pstatus { grid-column: 2; grid-row: 2; justify-self: start; }
  .rd-rem .rd-pstatus.rd-pst-on { display: none; }
  .rd-rem .rd-rem-menu { grid-column: 3; grid-row: 1; }
  .rd-rem-body > b { white-space: normal; }
}

/* =====================================================================
   ALLEGATI — schede file (stesso schema dei promemoria)
   ===================================================================== */
.rd-att { grid-template-columns: auto minmax(0,1fr) auto auto; }
.rd-ftile { width: 54px; border-radius: 12px; overflow: hidden; text-align: center; flex: none; border: 0 !important; box-shadow: 0 0 0 1px var(--rd-border); }
.rd-ftile-ext { font-size: .625rem; font-weight: 800; letter-spacing: .06em; padding: 3px 2px; background: var(--rd-ft-c, var(--rd-muted)); color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-ftile-ico { font-size: 1.35rem; line-height: 1; padding: .45rem 0 .5rem; color: var(--rd-ft-c, var(--rd-text-2)); }
.rd-ftile.rd-ft-pdf { --rd-ft-c: var(--rd-danger); }
.rd-ftile.rd-ft-xls { --rd-ft-c: var(--rd-success); }
.rd-ftile.rd-ft-img { --rd-ft-c: #3E7BFA; }
.rd-ftile.rd-ft-doc { --rd-ft-c: #2B6CD9; }
.rd-ftile.rd-ft-other { --rd-ft-c: var(--rd-muted); background: var(--rd-surface-2); }
[data-bs-theme="dark"] .rd-ftile.rd-ft-img, [data-bs-theme="dark"] .rd-ftile.rd-ft-doc { --rd-ft-c: #6B9BFF; }

.rd-att-desc { color: var(--rd-text-2); font-size: .8125rem; margin: -.1rem 0 .4rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-pill-user { padding-left: 3px; }
.rd-pill-user img, .rd-pill-user .avatar { width: 16px !important; height: 16px !important; margin: 0 !important; }
.rd-pill-ok { background: var(--rd-success-soft); color: var(--rd-success); border-color: transparent; }

.rd-att-dl { width: 38px; height: 38px; display: inline-grid; place-items: center; border-radius: var(--rd-radius-sm); border: 1px solid var(--rd-border); background: var(--rd-surface); color: var(--rd-text-2); transition: background .15s, color .15s, border-color .15s; }
.rd-att-dl:hover { background: var(--rd-accent-soft); color: var(--rd-accent-text); border-color: transparent; }

@media (max-width: 767.98px) {
  .rd-att { grid-template-columns: auto minmax(0,1fr) auto; }
  .rd-att .rd-att-dl { display: none; }
  .rd-att-desc { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}

/* Elenco completo delle rate di un piano */
.rd-rates-filter { display: flex; justify-content: flex-start; padding: .25rem 0 .5rem; overflow-x: auto; }
.rd-seg-n { font-size: .6875rem; font-weight: 700; padding: 0 .4rem; border-radius: 99px; background: var(--rd-surface-2); color: var(--rd-muted); }
.rd-seg-toggle button.on .rd-seg-n { background: var(--rd-surface); color: var(--rd-accent-text); }
.rd-plan-body > .rd-more { margin-bottom: .25rem; }

/* =====================================================================
   COMMENTI — righe come le altre liste
   ===================================================================== */
.rd-comment { grid-template-columns: auto minmax(0,1fr) auto; align-items: start; cursor: default; }
.rd-comment-avatar { width: 54px; display: grid; place-items: center; padding-top: 2px; }
.rd-comment-avatar img, .rd-comment-avatar .avatar { width: 40px !important; height: 40px !important; margin: 0 !important; }
.rd-comment-head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .3rem; }
.rd-comment-head b { color: var(--rd-text); font-size: .9375rem; font-weight: 600; }
.rd-comment-text { color: var(--rd-text-2); font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
.rd-comment-text p:last-child { margin-bottom: 0; }
.rd-comment-del { opacity: .55; }
.rd-comment:hover .rd-comment-del { opacity: 1; }
.rd-comment-del:hover { background: var(--rd-danger-soft); color: var(--rd-danger); }
@media (hover: none) { .rd-comment-del { opacity: 1; } }

/* =====================================================================
   PROMEMORIA NELLE RIGHE DELLA HOME / COLONNA SCADENZE (opzione C)
   ===================================================================== */
.rd-mrem { display: grid; grid-template-columns: 52px minmax(0,1fr); column-gap: .65rem; align-items: baseline; padding: 2px 0; min-width: 0; }
.rd-mrem + .rd-mrem { margin-top: .4rem; padding-top: .5rem; border-top: 1px dashed var(--rd-border); }
.rd-mrem-when { font-size: .75rem; font-weight: 700; color: var(--rd-text-2); text-align: right; white-space: nowrap; }
.rd-u-late .rd-mrem-when { color: var(--rd-danger); }
.rd-u-soon .rd-mrem-when { color: var(--rd-accent-text); }
.rd-mrem-name { font-size: .84rem; font-weight: 600; color: var(--rd-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.rd-mrem-meta { grid-column: 2; font-size: .75rem; color: var(--rd-muted); margin-top: 1px; }
.rd-mrem-meta b { color: var(--rd-danger); font-weight: 600; }

/* =====================================================================
   PROFILO
   ===================================================================== */
.rd-prof { max-width: 1080px; margin: 0 auto; padding-bottom: 6rem; }
.rd-prof-head { display: flex; align-items: center; gap: .75rem; margin: .25rem 0 1.4rem; }
.rd-prof-head h1 { font-size: 1.6rem; font-weight: 800; margin: 0; letter-spacing: -.01em; }
.rd-back { border-color: var(--rd-border); background: var(--rd-surface); text-decoration: none; }
.rd-prof-layout { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 1.25rem; align-items: start; }

.rd-prof-id { background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 18px; padding: 1.6rem 1.4rem; text-align: center; position: sticky; top: 1rem; }
.rd-prof-av { position: relative; width: 116px; height: 116px; margin: 0 auto .9rem; }
.rd-prof-img { width: 116px; height: 116px; border-radius: 50%; object-fit: cover; display: block; box-shadow: 0 0 0 4px var(--rd-surface), 0 0 0 5px var(--rd-border); }
.rd-prof-initial { display: grid; place-items: center; font-size: 2.5rem; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--rd-accent), #E0567A); }
.rd-prof-cam { position: absolute; right: 2px; bottom: 2px; width: 36px; height: 36px; border-radius: 50%; background: var(--rd-accent); color: #fff; border: 3px solid var(--rd-surface); display: grid; place-items: center; cursor: pointer; margin: 0; transition: transform .15s; }
.rd-prof-cam:hover { transform: scale(1.08); }
.rd-prof-id h2 { margin: 0; font-size: 1.2rem; font-weight: 700; word-break: break-word; }
.rd-prof-mail { color: var(--rd-muted); font-size: .8125rem; margin-top: .2rem; word-break: break-all; }
.rd-prof-badges { display: flex; gap: .4rem; justify-content: center; flex-wrap: wrap; margin: .9rem 0 1.1rem; }
.rd-prof-badge { font-size: .72rem; font-weight: 700; padding: 3px 10px; border-radius: 99px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); color: var(--rd-text-2); display: inline-flex; gap: .3rem; align-items: center; }
.rd-prof-premium { background: var(--rd-accent-soft); color: var(--rd-accent-text); border-color: transparent; }
.rd-prof-hint { font-size: .72rem; color: var(--rd-muted); margin: -.5rem 0 1rem; }
.rd-prof-google { border-radius: 12px; padding: .75rem; text-align: left; display: flex; gap: .65rem; align-items: flex-start; font-size: .78rem; line-height: 1.45; color: var(--rd-text-2); }
.rd-prof-google.ok { background: var(--rd-success-soft); }
.rd-prof-google.ko { background: var(--rd-danger-soft); }
.rd-prof-google b { display: block; font-size: .8125rem; }
.rd-prof-google.ok b { color: var(--rd-success); }
.rd-prof-google.ko b { color: var(--rd-danger); }
.rd-prof-g { width: 28px; height: 28px; border-radius: 8px; background: var(--rd-surface); display: grid; place-items: center; flex: none; color: var(--rd-text); }

.rd-prof-sec { background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 18px; margin-bottom: 1rem; overflow: hidden; }
.rd-prof-sec-h { display: flex; align-items: center; gap: .65rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--rd-border); }
.rd-prof-sec-h h3 { margin: 0; font-size: .95rem; font-weight: 700; }
.rd-prof-sec-h p { margin: 0; color: var(--rd-muted); font-size: .78rem; }
.rd-prof-ic { width: 32px; height: 32px; border-radius: 9px; background: var(--rd-accent-soft); color: var(--rd-accent-text); display: grid; place-items: center; flex: none; }
.rd-prof-set { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1rem 1.25rem; }
.rd-prof-set + .rd-prof-set { border-top: 1px solid var(--rd-border); }
.rd-prof-set.rd-prof-full { grid-template-columns: 1fr; }
.rd-prof-l { margin: 0; cursor: default; }
.rd-prof-l b { display: block; font-size: .875rem; font-weight: 600; color: var(--rd-text); }
.rd-prof-l span { display: block; color: var(--rd-muted); font-size: .78rem; margin-top: .2rem; line-height: 1.45; }
.rd-prof-set .form-switch .form-check-input { width: 2.6em; height: 1.4em; cursor: pointer; }
.rd-prof-ctrl { min-width: 240px; }
.rd-prof-pw { padding: 0 1.25rem 1.1rem; }
.rd-prof-pw .rd-prof-pw-first { grid-column: 1 / -1; max-width: calc(50% - .5rem); }
.rd-prof-pwwrap { position: relative; }
.rd-prof-pwwrap .form-control { padding-right: 2.6rem; }
.rd-prof-eye { position: absolute; right: .35rem; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--rd-muted); width: 32px; height: 32px; border-radius: 8px; display: grid; place-items: center; }
.rd-prof-eye:hover { color: var(--rd-text); background: var(--rd-surface-2); }

.rd-prof-save { position: fixed; left: 50%; bottom: 1.1rem; transform: translate(-50%, 160%); background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 14px; box-shadow: var(--rd-shadow-lg); padding: .6rem .75rem .6rem 1.1rem; display: flex; align-items: center; gap: .75rem; transition: transform .25s; z-index: 1030; max-width: calc(100% - 2rem); }
.rd-prof-save.show { transform: translate(-50%, 0); }
.rd-prof-save span { color: var(--rd-text-2); font-size: .8125rem; white-space: nowrap; }

@media (max-width: 991.98px) {
  .rd-prof-save { bottom: calc(1rem + 64px); }
}
@media (max-width: 860px) {
  .rd-prof-layout { grid-template-columns: 1fr; }
  .rd-prof-id { position: static; }
  .rd-prof-set { grid-template-columns: 1fr; }
  .rd-prof-ctrl { min-width: 0; }
  .rd-prof-pw .rd-prof-pw-first { max-width: none; }
  .rd-prof-save span { display: none; }
}
.rd-prof .rd-field-hint { display: block; margin-top: .4rem; }

/* Dettaglio piano: riepilogo e accesso alle rate (niente più modale "Stato dei pagamenti") */
.rd-plan-sum { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin: 1rem 0 .75rem; }
.rd-plan-sum-kpi { border: 1px solid var(--rd-border); border-radius: 12px; padding: .6rem .75rem; background: var(--rd-surface-2); }
.rd-plan-sum-kpi span { display: block; font-size: .72rem; color: var(--rd-muted); }
.rd-plan-sum-kpi b { font-size: 1.05rem; color: var(--rd-text); }
.rd-plan-sum-kpi.bad b { color: var(--rd-danger); }
.rd-plan-cta { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; border-radius: 12px; padding: .7rem .85rem; background: var(--rd-surface-2); margin-bottom: .5rem; }
.rd-plan-cta.bad { background: var(--rd-danger-soft); }
.rd-plan-cta b { font-size: .875rem; color: var(--rd-danger); }
.rd-plan-cta b.ok { color: var(--rd-success); }
.rd-plan { transition: border-color .3s, box-shadow .3s; scroll-margin-top: 1rem; }
.rd-plan.rd-plan-flash { border-color: var(--rd-accent) !important; box-shadow: 0 0 0 4px var(--rd-accent-soft); }

/* =====================================================================
   DETTAGLIO PROMEMORIA
   ===================================================================== */
.rd-pd-hero { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 1.1rem; align-items: start; }
.rd-cal-lg { width: 66px; border-radius: 14px; }
.rd-cal-lg .rd-cal-m { font-size: .72rem; padding: 4px 0; }
.rd-cal-lg .rd-cal-d { font-size: 1.75rem; padding: 4px 0 1px; }
.rd-cal-lg .rd-cal-w { font-size: .72rem; padding-bottom: 6px; }
.rd-pd-dim .rd-cal { opacity: .7; }
.rd-pd-title { font-size: 1.25rem; font-weight: 700; margin: .1rem 0 .55rem; line-height: 1.3; display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; overflow-wrap: anywhere; }
.rd-pd-sub { font-size: .875rem; font-weight: 500; color: var(--rd-muted); }
.rd-pd-meta { margin-top: .6rem; font-size: .78rem; color: var(--rd-muted); }
.rd-pd-side { display: flex; align-items: center; gap: .5rem; }
.rd-pd-desc { margin-top: 1.1rem; padding: .85rem 1rem; border-radius: 12px; background: var(--rd-surface-2); color: var(--rd-text-2); font-size: .875rem; line-height: 1.55; overflow-wrap: anywhere; }
.rd-pd-desc p:last-child { margin-bottom: 0; }
.rd-pd-rata { margin-top: 1rem; display: flex; gap: .7rem; align-items: center; padding: .75rem .9rem; border-radius: 12px; background: var(--rd-accent-soft); }
.rd-pd-rata > i { font-size: 1.15rem; color: var(--rd-accent-text); }
.rd-pd-rata.ok { background: var(--rd-success-soft); }
.rd-pd-rata.ok > i { color: var(--rd-success); }
.rd-pd-rata b { display: block; font-size: .875rem; }
.rd-pd-rata span { font-size: .78rem; color: var(--rd-text-2); }
.rd-pd-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; margin-top: 1.1rem; }
.rd-pd-fact { border: 1px solid var(--rd-border); border-radius: 12px; padding: .65rem .8rem; background: var(--rd-surface); min-width: 0; }
.rd-pd-fact span { display: flex; align-items: center; gap: .35rem; font-size: .72rem; color: var(--rd-muted); margin-bottom: .15rem; }
.rd-pd-fact b { font-size: .9rem; font-weight: 600; color: var(--rd-text); overflow-wrap: anywhere; }
.rd-pd-small { font-weight: 500; color: var(--rd-muted); font-size: .72rem; }
.rd-pd-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1.1rem; }
.rd-pd-actions .btn.active { background: var(--rd-surface-2); border-color: var(--rd-border); color: var(--rd-text); }
.rd-pd-events { margin-top: .9rem; padding-top: .9rem; border-top: 1px dashed var(--rd-border); }

@media (max-width: 575.98px) {
  .rd-pd-hero { grid-template-columns: auto minmax(0,1fr); }
  .rd-pd-side { grid-column: 1 / -1; justify-content: space-between; }
  .rd-cal-lg { width: 56px; }
  .rd-cal-lg .rd-cal-d { font-size: 1.45rem; }
}

/* =====================================================================
   AVATAR E "CHI / QUANDO" (ImageUser, ActivityTimeline)
   ===================================================================== */
.rd-avatar { display: inline-grid; place-items: center; flex: none; border-radius: 50%; overflow: hidden; color: #fff; font-weight: 700; line-height: 1; vertical-align: middle; user-select: none; }
.rd-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rd-avatar-owner { box-shadow: 0 0 0 2px var(--rd-surface), 0 0 0 3.5px var(--rd-accent); }
.avatar-group .rd-avatar { box-shadow: 0 0 0 2px var(--rd-surface); }
.avatar-group .rd-avatar.rd-avatar-owner { box-shadow: 0 0 0 2px var(--rd-surface), 0 0 0 3.5px var(--rd-accent); }

.rd-trail { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; font-size: .78rem; color: var(--rd-muted); }
.rd-trail-item { display: inline-flex; align-items: center; gap: .4rem; padding: 2px 10px 2px 3px; border-radius: 99px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); white-space: nowrap; max-width: 100%; }
.rd-trail-item b { color: var(--rd-text); font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
.rd-trail-item > .bi { width: 20px; text-align: center; color: var(--rd-muted); }
.rd-trail-item > span:last-child { overflow: hidden; text-overflow: ellipsis; }
/* l'avatar si porta dietro un piccolo margine (come il vecchio "me-1") tranne dove c'è già un gap */
.rd-avatar { margin-right: .25rem; }
.rd-trail-item .rd-avatar, .rd-pill-user .rd-avatar, .rd-comment-avatar .rd-avatar, .avatar-group .rd-avatar, .rd-me-img .rd-avatar, .rd-mtop-me .rd-avatar { margin-right: 0; }
.avatar-group .rd-avatar img { border: 0; }
.rd-me-img .rd-avatar img, .rd-mtop-me .rd-avatar img { width: 100% !important; height: 100% !important; }

/* =====================================================================
   CONDIVISIONE
   ===================================================================== */
.rd-share-block + .rd-share-block { margin-top: 1.4rem; }
.rd-share-label { display: flex; align-items: center; gap: .4rem; font-size: .8125rem; font-weight: 600; color: var(--rd-text); margin-bottom: .5rem; }
.rd-share-label .bi { color: var(--rd-accent-text); }
.rd-share-link { display: flex; gap: .5rem; }
.rd-share-link .form-control { flex: 1; min-width: 0; background: var(--rd-surface-2); color: var(--rd-text-2); font-size: .8125rem; }
.rd-share-invite { display: flex; align-items: center; gap: .5rem; background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: var(--rd-radius); padding: .4rem .4rem .4rem .9rem; transition: border-color .15s, box-shadow .15s; }
.rd-share-invite:focus-within { border-color: var(--rd-accent); box-shadow: 0 0 0 4px rgba(var(--rd-accent-rgb), .15); }
.rd-share-invite > .bi { color: var(--rd-muted); }
.rd-share-invite .form-control { border: 0; background: transparent; box-shadow: none !important; padding-left: .25rem; min-width: 0; }
.rd-share-invite .btn { flex: none; white-space: nowrap; }
.rd-share-people { display: flex; flex-direction: column; gap: .5rem; }
.rd-share-person { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: .75rem; align-items: center; padding: .6rem .75rem; background: var(--rd-surface); border: 1px solid var(--rd-border); border-radius: 12px; transition: border-color .15s, box-shadow .15s; }
.rd-share-person:hover { border-color: rgba(var(--rd-accent-rgb), .45); box-shadow: var(--rd-shadow); }
.rd-share-person:hover .rd-comment-del { opacity: 1; }
.rd-share-who { min-width: 0; line-height: 1.3; }
.rd-share-who b { display: block; font-size: .875rem; font-weight: 600; color: var(--rd-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-share-who span { display: block; font-size: .75rem; color: var(--rd-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-share-owner { background: var(--rd-accent-soft); color: var(--rd-accent-text); grid-column: span 2; justify-self: end; }
.rd-share-person .rd-avatar { margin-right: 0; }
@media (max-width: 575.98px) {
  .rd-share-person { grid-template-columns: auto minmax(0,1fr) auto; }
  .rd-share-person .rd-pstatus:not(.rd-share-owner) { display: none; }
  .rd-share-owner { grid-column: auto; }
  .rd-share-invite .btn span, .rd-share-link .btn-outline-secondary:first-of-type { font-size: .8rem; }
}

/* Dettaglio allegato */
.rd-ftile-lg { width: 66px; border-radius: 14px; }
.rd-ftile-lg .rd-ftile-ext { font-size: .72rem; padding: 4px 2px; }
.rd-ftile-lg .rd-ftile-ico { font-size: 1.75rem; padding: .55rem 0 .65rem; }
.rd-pd-preview { margin-top: 1rem; border: 1px solid var(--rd-border); border-radius: 14px; overflow: hidden; background: var(--rd-surface-2); }
.rd-pd-actions .btn-primary .rd-pd-small { color: rgba(255,255,255,.8); }
@media (max-width: 575.98px) { .rd-ftile-lg { width: 56px; } }

/* Modifica allegato: scheda del file */
.rd-file-edit { animation: none; padding: .75rem .9rem; }
.rd-file-edit-body { flex: 1; min-width: 0; }
.rd-file-edit-body b { display: block; font-size: .9375rem; font-weight: 600; color: var(--rd-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: .3rem; }

/* Aggiorna accanto al percorso */
.rd-crumb-end { margin-left: auto; display: flex; align-items: center; gap: .6rem; flex: none; }
.rd-updated { display: inline-flex; align-items: center; gap: .4rem; font-size: .75rem; color: var(--rd-muted); white-space: nowrap; }
.rd-updated-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--rd-success); }
.rd-crumb .rd-refresh:disabled { opacity: 1; cursor: progress; }
.rd-crumb .rd-refresh.spin .bi { display: inline-block; animation: rd-spin .7s linear infinite; }
@keyframes rd-spin { to { transform: rotate(360deg); } }

/* Etichette */
.rd-tags-edit { display: flex; flex-wrap: wrap; gap: .45rem; }
.rd-tag-chip { display: inline-flex; align-items: center; gap: .35rem; padding: 3px 4px 3px 10px; border-radius: 99px; background: var(--rd-surface-2); border: 1px solid var(--rd-border); font-size: .75rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--rd-text-2); transition: opacity .15s; }
.rd-tag-chip > .bi { color: var(--rd-accent-text); }
.rd-tag-chip button { width: 22px; height: 22px; border-radius: 50%; border: 0; background: transparent; color: var(--rd-muted); display: grid; place-items: center; padding: 0; }
.rd-tag-chip button:hover:not(:disabled) { background: var(--rd-danger-soft); color: var(--rd-danger); }
.rd-tag-chip.busy { opacity: .55; }
.rd-tag-chip .spinner-border-sm { width: .75rem; height: .75rem; border-width: .15em; }
.rd-share-label .rd-rem-group-n { font-weight: 600; color: var(--rd-muted); }
.rd-chips-sep { width: 1px; align-self: stretch; margin: .2rem .15rem; background: var(--rd-border); }

/* Eventi del promemoria (righe come le rate dei piani) */
.rd-events .rd-rate { align-items: start; }
.rd-events .rd-rate-dot, .rd-events .rd-rate-act, .rd-events .rd-event-check { margin-top: 2px; }
.rd-event-note { margin-top: .35rem; font-size: .8125rem; color: var(--rd-text-2); display: flex; gap: .4rem; align-items: baseline; overflow-wrap: anywhere; }
.rd-event-note .bi { color: var(--rd-muted); font-size: .75rem; }
.rd-event-note-edit { margin-top: .5rem; }
.rd-event-check { border: 1px solid var(--rd-border); background: var(--rd-surface); color: var(--rd-text-2); display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
.rd-event-check:hover { border-color: var(--rd-success); color: var(--rd-success); }
.rd-event-check.on { background: var(--rd-success-soft); border-color: transparent; color: var(--rd-success); }

/* Dettaglio pagamento */
.rd-pay-amount { font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.rd-pay-amount.out { color: var(--rd-danger); }
.rd-pay-amount.in { color: var(--rd-success); }
.rd-pay-desc { margin-top: .3rem; color: var(--rd-text-2); font-size: .9rem; line-height: 1.45; overflow-wrap: anywhere; }
.rd-pd-rata .btn { flex: none; }

/* Importi: rosso se negativi, verde se positivi (componente Importo) */
.rd-money { font-variant-numeric: tabular-nums; white-space: nowrap; }
.rd-money-neg { color: var(--rd-danger); }
.rd-money-pos { color: var(--rd-success); }
.rd-money-zero { color: var(--rd-muted); }
