/* ============================================================
   MMPlus - tema (famiglia TitanCall/Sokom: magenta #D6147F, Montserrat)
   Responsive: sidebar fissa >=lg, offcanvas su mobile.
   ============================================================ */
:root{
  --mm-accent:#D6147F; --mm-accent-ink:#B00F68; --mm-accent-soft:#FBE6F1;
  --mm-topbar-h:60px;
  /* superfici nav/topbar — TEMA CHIARO */
  --mm-sidebar:#ffffff; --mm-sidebar-ink:#41485c; --mm-sidebar-hover:#eef0f5;
  --mm-sidebar-strong:#141414; --mm-sidebar-border:var(--bs-border-color);
}
:root[data-bs-theme="dark"]{
  --mm-accent:#F65BAE; --mm-accent-ink:#F98CC6; --mm-accent-soft:#2A1522;
  /* superfici nav/topbar — TEMA SCURO */
  --mm-sidebar:#12131a; --mm-sidebar-ink:#c9cede; --mm-sidebar-hover:#1c1e29;
  --mm-sidebar-strong:#ffffff; --mm-sidebar-border:rgba(255,255,255,.08);
}

body{ font-family:"Montserrat",system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }
h1,h2,h3,h4,.h1,.h2,.h3{ font-weight:700; letter-spacing:-.01em; }

/* Topbar (brand a sinistra + admin a destra) — segue il tema */
.mm-topbar{ background:var(--mm-sidebar); border-bottom:1px solid var(--mm-sidebar-border); min-height:var(--mm-topbar-h); padding:0; }
.mm-topbar .container-fluid{ gap:10px; }
.mm-burger,.mm-theme,.mm-user{ border:1px solid var(--mm-sidebar-border); color:var(--mm-sidebar-ink); background:transparent; }
.mm-burger:hover,.mm-theme:hover,.mm-user:hover{ background:var(--mm-sidebar-hover); color:var(--mm-sidebar-strong); }
.mm-theme{ line-height:1; }
.mm-user::after{ vertical-align:middle; }

/* Brand nella topbar */
.mm-brand-top{ display:flex; align-items:center; gap:11px; text-decoration:none; padding:2px 4px; }
.mm-brand-txt{ display:flex; flex-direction:column; line-height:1.15; }
.mm-brand-name{ font-weight:800; color:var(--mm-sidebar-strong); line-height:1; }
.mm-brand-sub{ font-size:.7rem; color:#8891ab; letter-spacing:.04em; text-transform:uppercase; }
.mm-logo{ width:38px; height:38px; border-radius:10px; background:var(--mm-accent); color:#fff; display:grid; place-items:center; font-weight:800; flex:0 0 auto; }
@media (max-width:575px){ .mm-brand-txt{ display:none; } }

/* Shell + sidebar */
.mm-shell{ display:flex; min-height:calc(100vh - var(--mm-topbar-h)); }
.mm-sidebar,.mm-offcanvas .offcanvas-body{ background:var(--mm-sidebar); color:var(--mm-sidebar-ink); }
.mm-sidebar{ width:238px; flex:0 0 238px; padding:14px 12px; position:sticky; top:var(--mm-topbar-h); height:calc(100vh - var(--mm-topbar-h)); overflow-y:auto; }
.mm-offcanvas{ background:var(--mm-sidebar); width:250px; }
.mm-nav .nav-link{ color:var(--mm-sidebar-ink); border-radius:9px; padding:9px 12px; display:flex; align-items:center; gap:11px; font-size:.93rem; font-weight:500; }
.mm-nav .nav-link:hover{ background:var(--mm-sidebar-hover); color:var(--mm-sidebar-strong); }
.mm-nav .nav-link.active{ background:var(--mm-accent); color:#fff; box-shadow:0 6px 16px -8px var(--mm-accent); }
.mm-nav .nav-link i{ font-size:1.05rem; width:18px; text-align:center; }

/* Main */
.mm-main{ flex:1 1 auto; padding:22px clamp(14px,3vw,30px); min-width:0; display:flex; flex-direction:column; }

/* Card KPI */
.mm-kpi{ border:1px solid var(--bs-border-color); border-radius:14px; padding:18px 20px; background:var(--bs-body-bg); }
.mm-kpi .n{ font-size:1.9rem; font-weight:800; letter-spacing:-.02em; }
.mm-kpi .l{ font-size:.8rem; color:var(--bs-secondary-color); text-transform:uppercase; letter-spacing:.05em; }
.mm-kpi .i{ width:44px; height:44px; border-radius:11px; display:grid; place-items:center; background:var(--mm-accent-soft); color:var(--mm-accent-ink); font-size:1.3rem; }

.text-accent{ color:var(--mm-accent-ink)!important; }
a{ color:var(--mm-accent-ink); }
.btn-accent,.mm-btn-primary{ background:var(--mm-accent); border:1px solid var(--mm-accent); color:#fff; }
.btn-accent:hover,.mm-btn-primary:hover,.mm-btn-primary:focus{ background:var(--mm-accent-ink); border-color:var(--mm-accent-ink); color:#fff; }

/* Login / invito / recupero — schermata dark brandizzata (non abbagliante) */
.mm-login{ min-height:100vh; display:grid; place-items:center; padding:16px;
  background:
    radial-gradient(900px 480px at 85% -12%, rgba(214,20,127,.30), transparent 55%),
    radial-gradient(760px 460px at 8% 112%, rgba(214,20,127,.12), transparent 52%),
    #0e0f15; }
.mm-login-card{ width:100%; max-width:400px; border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:30px;
  background:#171821; color:#e7e9f0; box-shadow:0 30px 70px -30px rgba(0,0,0,.75); }
.mm-login-card .form-label{ color:#c9cede; }
.mm-login-card .form-control{ background:#1f2130; border-color:rgba(255,255,255,.12); color:#e7e9f0; }
.mm-login-card .form-control:focus{ background:#1f2130; color:#fff; border-color:var(--mm-accent); box-shadow:0 0 0 .2rem rgba(214,20,127,.25); }
.mm-login-card .form-control::placeholder{ color:#7b8296; }
.mm-login-card .text-secondary{ color:#8891ab!important; }
.mm-login-card code{ color:#f19bd0; }

/* Logo brand caricato (trasparente, si adatta alla topbar dark) */
.mm-logo-img{ width:40px; height:40px; border-radius:8px; object-fit:contain; background:transparent; padding:0; }

/* Menu doppio: l'offcanvas mobile NON deve mai comparire su desktop */
@media (min-width:992px){ .mm-offcanvas{ display:none!important; } }

/* Footer */
.mm-footer{ margin-top:auto; padding:16px 2px 2px; border-top:1px solid var(--bs-border-color);
  color:var(--bs-secondary-color); font-size:.8rem; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.mm-foot-sep{ opacity:.5; }

/* Swatch colori branding */
.mm-swatch{ width:30px; height:30px; border-radius:50%; border:2px solid var(--bs-border-color); cursor:pointer; padding:0; }
.mm-swatch.active{ box-shadow:0 0 0 3px var(--bs-body-bg), 0 0 0 5px currentColor; border-color:#fff; }

/* tabelle */
table.dataTable{ width:100%!important; }
