:root {
  --violet-950: #250a49;
  --violet-800: #3c126b;
  --violet-700: #55208e;
  --violet-600: #7027b4;
  --violet-100: #f0e7fa;
  --cream: #fff8e8;
  --cream-strong: #ffe39a;
  --gold: #efbd45;
  --ink: #171322;
  --muted: #655e70;
  --green: #18ae63;
  --white: #ffffff;
  --border: rgba(60, 18, 107, 0.14);
  --shadow: 0 16px 40px rgba(48, 17, 80, 0.11);
  --radius-lg: 28px;
  --radius-md: 20px;
  --radius-sm: 14px;
}

#chatComposer[hidden]{display:none!important}

.dialog-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1rem}.button-danger{border-color:#a3262e!important;background:#a3262e!important;color:#fff!important}.chat-blocked-notice{margin:.7rem 0;padding:1rem;border:2px solid #a3262e;border-radius:13px;background:#fff0f0;color:#762027}.chat-blocked-notice p{margin:.35rem 0 0;line-height:1.45}@media(max-width:460px){.dialog-confirm-actions{grid-template-columns:1fr}}

.reschedule-waiting-note{margin:.7rem 0;padding:.7rem;border-left:4px solid #d58b42;border-radius:8px;background:#fff8ee;color:#70451f;font-weight:800}.planned-actions button:disabled{opacity:1;background:#fff0dd!important;color:#8b4c20!important;cursor:not-allowed}.planned-actions [data-confirm-reschedule]{grid-column:1/-1;background:#f5edf7!important;color:#542a63!important}

.reschedule-panel{border:3px solid #d58b42!important;background:#fff8ee!important;box-shadow:0 10px 24px rgba(117,72,30,.16)}.reschedule-panel .eyebrow{color:#8b4c20}

.chat-time-proposal{margin:.7rem 0;padding:1rem;border:2px solid #542a63;border-radius:14px;background:#fff}.chat-time-proposal h2{margin:0 0 .7rem;color:#542a63;font-size:1rem}.chat-time-proposal>div{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.chat-time-proposal label{display:grid;gap:.3rem;font-weight:800}.chat-time-proposal input,.chat-time-proposal select{width:100%;min-height:46px;padding:.6rem;border:1px solid #bba8c0;border-radius:10px;background:#fff;font:inherit}.chat-time-proposal .chat-time-proposal-actions{margin-top:.7rem}.chat-time-proposal-actions button{min-height:44px;border:1px solid #542a63;border-radius:9px;background:#542a63;color:#fff;font-weight:900}.chat-time-proposal-actions button:last-child{background:#fff;color:#542a63}@media(max-width:480px){.chat-time-proposal>div{grid-template-columns:1fr}}

.field-hint{display:block;margin-top:.3rem;color:#6d6172;font-size:.76rem;font-weight:600}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background:
    radial-gradient(circle at 12% 8%, rgba(255, 221, 123, 0.42), transparent 24rem),
    linear-gradient(180deg, #fffdf8 0%, #fffaf0 50%, #fff 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}

button,
input {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

img {
  display: block;
  max-width: 100%;
}

.skip-link {
  position: fixed;
  left: 1rem;
  top: -5rem;
  z-index: 100;
  padding: 0.75rem 1rem;
  color: white;
  background: var(--violet-950);
  border-radius: 0 0 10px 10px;
}

.skip-link:focus {
  top: 0;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: 48px minmax(150px, 260px) auto;
  gap: 1rem;
  align-items: center;
  min-height: 86px;
  padding: 0.65rem clamp(1rem, 4vw, 3rem);
  border-bottom: 1px solid rgba(60, 18, 107, 0.08);
  background: rgba(255, 250, 238, 0.92);
  backdrop-filter: blur(16px);
}

.header-brand {
  justify-self: center;
}

.header-brand img {
  width: min(240px, 32vw);
  max-height: 66px;
  object-fit: contain;
}

.icon-button,
.online-pill {
  border: 0;
}

.icon-button {
  width: 44px;
  height: 44px;
  color: var(--violet-800);
  background: var(--white);
  border-radius: 50%;
  box-shadow: 0 5px 18px rgba(48, 17, 80, 0.1);
  font-size: 1.35rem;
  cursor: pointer;
  touch-action: manipulation;
}

.online-pill {
  justify-self: end;
  display: inline-flex;
  gap: 0.4rem;
  align-items: center;
  padding: 0.65rem 0.9rem;
  color: var(--violet-950);
  background: var(--white);
  border-radius: 999px;
  white-space: nowrap;
}

.online-dot {
  width: 0.7rem;
  height: 0.7rem;
  background: var(--green);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(24, 174, 99, 0.13);
}

.drawer {
  position: absolute;
  top: calc(100% + 0.55rem);
  left: clamp(1rem, 4vw, 3rem);
  display: grid;
  width: min(320px, calc(100vw - 2rem));
  max-height: calc(100dvh - 110px);
  padding: 0.75rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow);
}

.drawer::-webkit-scrollbar { width: 10px; }
.drawer::-webkit-scrollbar-track { margin-block: .45rem; background: #f4eee5; border-radius: 999px; }
.drawer::-webkit-scrollbar-thumb { background: #8e6a9b; border: 2px solid #f4eee5; border-radius: 999px; }
.drawer { scrollbar-width: thin; scrollbar-color: #8e6a9b #f4eee5; }

.drawer[hidden] {
  display: none;
}

.drawer.is-open {
  display: grid;
}

.drawer a,
.drawer button {
  padding: 0.85rem 1rem;
  color: var(--violet-950);
  text-align: left;
  text-decoration: none;
  background: transparent;
  border: 0;
  border-radius: 12px;
}

.drawer a:hover,
.drawer a:focus-visible,
.drawer button:hover,
.drawer button:focus-visible {
  background: var(--violet-100);
}

.drawer .drawer-home {
  margin-bottom: .2rem;
  background: var(--violet-100);
  font-weight: 900;
}

.drawer-group {
  display: grid;
  gap: .1rem;
  padding: .45rem 0 .55rem;
  border-top: 1px solid var(--border);
}

.drawer-group h2 {
  margin: 0;
  padding: .3rem .75rem .15rem;
  color: var(--violet-800);
  font-size: .72rem;
  letter-spacing: .08em;
}

.drawer-group button {
  padding-block: .62rem;
  font-size: .86rem;
}

.drawer-group-info h2 { color: #756a73; }

.account-summary { display: flex; align-items: center; gap: .7rem; padding: .65rem .75rem .85rem; margin-bottom: .35rem; border-bottom: 1px solid var(--border); }
.account-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--violet-100); }
.initials-avatar{display:grid;place-items:center;background:#f0e4f3!important;color:#542a63!important;font-size:.82rem!important;font-weight:950;letter-spacing:.04em;text-transform:uppercase}
.profile-points-guide{margin:.65rem 0;padding:.85rem;border:1px solid #cab1d0;border-radius:14px;background:#f5edf7}.profile-points-guide strong{color:#542a63}.profile-points-guide p{margin:.35rem 0;font-size:.75rem}.profile-points-guide ul{margin:.45rem 0 0;padding-left:1.15rem;font-size:.75rem}
.account-summary strong, .account-summary small { display: block; }
.account-summary small { margin-top: .1rem; color: #766861; }
.drawer .drawer-subtle { margin-top: .3rem; color: #74655e; font-size: .78rem; border-top: 1px solid var(--border); border-radius: 0; }
.drawer .drawer-logout { margin-top: .25rem; color: #8f1f2c; font-weight: 900; border: 1px solid #e7b7bd; background: #fff5f6; }
.drawer .drawer-logout:hover, .drawer .drawer-logout:focus-visible { background: #ffe5e8; }
.password-security-status { display: block; margin-top: .45rem; color: #8f1f2c; font-size: .82rem; }
.password-security-status.is-ready { color: #176b3a; }

.page {
  min-height: calc(100vh - 86px);
}

.page[hidden] {
  display: none;
}

body[data-route="vivilo"] .site-header,
body[data-route="vivilo"] .site-footer,
body[data-route="chat"] .site-header,
body[data-route="chat"] .site-footer,
body[data-route="avatar"] .site-header,
body[data-route="avatar"] .site-footer {
  display: none;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.hero {
  display: grid;
  justify-items: center;
  max-width: 960px;
  margin: 0 auto;
  padding: clamp(3rem, 8vw, 7rem) 1.25rem 3rem;
  text-align: center;
}

.navigation-hub {
  padding-top: 1.1rem;
}

.navigation-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
}

.navigation-hub-grid button {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .15rem .75rem;
  align-items: center;
  min-height: 112px;
  padding: 1rem;
  color: var(--violet-950);
  text-align: left;
  background: linear-gradient(145deg, #fff, #fff9e9);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 9px 24px rgba(48, 17, 80, .08);
}

.navigation-hub-grid button:hover,
.navigation-hub-grid button:focus-visible {
  border-color: var(--violet-500);
  transform: translateY(-2px);
}

.navigation-hub-grid button > span {
  grid-row: 1 / span 2;
  font-size: 1.7rem;
}

.navigation-hub-grid strong { font-size: 1.05rem; }
.navigation-hub-grid small { color: var(--muted); line-height: 1.35; }

@media (max-width: 720px) {
  .navigation-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .navigation-hub-grid button { min-height: 118px; padding: .85rem; }
}

.eyebrow,
.page-number {
  margin: 0 0 0.65rem;
  color: var(--violet-600);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.hero-logo {
  width: min(680px, 92vw);
  margin: 0.6rem auto 1.5rem;
}

.hero h1,
.page-shell > h1 {
  margin: 0;
  color: var(--violet-950);
  font-size: clamp(2.25rem, 7vw, 5.2rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
}

.hero-copy,
.lead {
  max-width: 700px;
  margin: 1.2rem auto 0;
  color: var(--muted);
  font-size: clamp(1.05rem, 2.5vw, 1.35rem);
}

.friendship-promise { margin: 1rem auto 0; color: var(--violet-800); font-size: clamp(1rem,2vw,1.2rem); font-weight: 850; }
.heart-shell { padding-bottom: 4rem; text-align: center; }
.heart-logo { width: min(430px,88vw); margin: 1.25rem auto 1.5rem; }
.heart-shell>h1 { max-width: 820px; margin-inline: auto; font-size: clamp(2.25rem,6vw,4.5rem); }
.heart-manifesto { margin: 2rem 0; padding: clamp(1.35rem,4vw,2.5rem); color: #3e3150; text-align: left; background: linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,248,225,.96)); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.heart-manifesto p { margin: 0 0 1rem; font-size: clamp(1.02rem,2.2vw,1.18rem); line-height: 1.7; }
.heart-manifesto p:last-child { margin-bottom: 0; }
.heart-welcome { padding-top: 1rem; color: var(--violet-800); text-align: center; border-top: 1px solid var(--border); }

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem;
  margin-top: 2rem;
}

.button {
  min-height: 50px;
  padding: 0.8rem 1.25rem;
  color: var(--violet-950);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-weight: 850;
  box-shadow: 0 8px 22px rgba(48, 17, 80, 0.09);
}

.button-primary {
  color: white;
  background: linear-gradient(135deg, var(--violet-800), #8b25d6);
  border-color: transparent;
}

.button-secondary {
  color: var(--violet-950);
  background: linear-gradient(135deg, #fff3bc, #ffd66f);
  border-color: #f2ca60;
}

.button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
  box-shadow: none;
}

.button-block {
  width: 100%;
}

.button-small {
  min-height: 42px;
  padding: 0.6rem 0.9rem;
  white-space: nowrap;
}

.text-button,
.back-button {
  padding: 0.5rem;
  color: var(--violet-700);
  background: transparent;
  border: 0;
  font-weight: 800;
}

.section-shell,
.page-shell,
.respect-banner {
  width: min(1180px, calc(100% - 2rem));
  margin-inline: auto;
}

.section-shell {
  padding: 2rem 0 4rem;
}

.section-heading {
  display: flex;
  gap: 1rem;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 1.4rem;
}

.section-heading h2,
.page-shell h2 {
  margin: 0;
  color: var(--violet-950);
}

.section-heading h2 {
  font-size: clamp(1.75rem, 4vw, 2.7rem);
}

.moment-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.moment-card {
  padding: 1.35rem;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}

.moment-card h3 {
  margin: 0.7rem 0 0.3rem;
  color: var(--violet-950);
  font-size: 1.35rem;
}

.moment-card p {
  min-height: 3rem;
  margin: 0 0 1rem;
  color: var(--muted);
}

.moment-card button {
  width: 100%;
  padding: 0.7rem 1rem;
  color: var(--violet-800);
  background: var(--violet-100);
  border: 0;
  border-radius: 12px;
  font-weight: 800;
}

.moment-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  background: var(--cream);
  border-radius: 16px;
  font-size: 1.8rem;
}

.respect-banner {
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-bottom: 4rem;
  padding: 1.25rem 1.4rem;
  background: linear-gradient(100deg, #fff0b9, #f4e9ff);
  border: 1px solid rgba(239, 189, 69, 0.38);
  border-radius: var(--radius-md);
}

.respect-banner > span {
  font-size: 2rem;
}

.respect-banner strong {
  color: var(--violet-950);
  font-size: 1.2rem;
}

.respect-banner p {
  margin: 0.2rem 0 0;
}

.page-shell {
  padding: 2.5rem 0 5rem;
}

.mobile-app-shell {
  width: min(100%, 1060px);
  margin: 0 auto;
  padding: 1.4rem clamp(1rem, 4vw, 2.3rem) 1rem;
}

.app-page-topline {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 52px;
}

.app-page-topline > div {
  text-align: center;
}

.app-page-topline .page-number {
  margin: 0;
  font-size: 0.72rem;
}

.app-page-topline strong {
  color: var(--violet-800);
  font-size: 1.5rem;
}

.compact-back {
  justify-self: start;
  margin: 0;
}

.mini-online {
  justify-self: end;
  display: inline-flex;
  gap: 0.55rem;
  align-items: center;
  padding: 0.55rem 0.75rem;
  color: var(--violet-950);
  background: white;
  border-radius: 999px;
  font-weight: 750;
}

.vivilo-intro {
  padding: 1.5rem 0 1.3rem;
  text-align: center;
}

.vivilo-intro h1 {
  margin: 0;
  color: var(--violet-950);
  font-size: clamp(2rem, 6vw, 3.4rem);
  line-height: 1.05;
  text-transform: uppercase;
}

.vivilo-intro p {
  margin: 0.7rem auto 0;
  color: var(--muted);
  font-size: 1.08rem;
}

.activity-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.85rem;
}

.activity-card {
  display: grid;
  place-items: center;
  min-height: 128px;
  padding: 0.85rem;
  color: var(--violet-950);
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(239, 189, 69, 0.42);
  border-radius: 18px;
  font-weight: 800;
  box-shadow: 0 8px 22px rgba(48, 17, 80, 0.05);
}

.activity-card span {
  font-size: 2.2rem;
}

.activity-card:hover,
.activity-card:focus-visible,
.activity-card.is-selected {
  color: white;
  background: linear-gradient(145deg, var(--violet-800), var(--violet-600));
  border-color: transparent;
  transform: translateY(-2px);
}

.custom-activity,
.location-card,
.selection-summary,
.people-online-banner {
  margin-top: 1rem;
  border-radius: 18px;
}

.custom-activity {
  overflow: hidden;
  background: linear-gradient(110deg, #f6edff, #fff9ed);
  border: 1px solid var(--border);
}

.direct-expense-option{margin:1rem 0;border:1px solid var(--border);border-radius:16px;background:#fff;padding:.9rem 1rem}.direct-expense-option summary{cursor:pointer;color:var(--violet-950);font-weight:800}.direct-expense-option summary small{display:block;margin-top:.2rem;color:#6d6172;font-weight:600}.direct-expense-option label{display:grid;gap:.45rem;margin-top:.9rem;font-weight:700}.direct-expense-option select{width:100%;min-height:46px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:.65rem;color:var(--violet-950)}

/* Gli elementi esclusi dal percorso personale restano realmente nascosti
   anche quando le loro regole grafiche usano display:grid o display:flex. */
[hidden]{display:none!important}

.custom-activity > button {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.85rem;
  align-items: center;
  width: 100%;
  padding: 1rem 1.2rem;
  color: var(--violet-950);
  text-align: left;
  background: transparent;
  border: 0;
}

.custom-activity > button > span:first-child,
.custom-activity > button > span:last-child {
  font-size: 1.8rem;
}

.custom-activity small {
  display: block;
  margin-top: 0.15rem;
  color: var(--muted);
}

.custom-activity-panel {
  padding: 0 1.2rem 1.2rem;
}

.custom-activity-panel label {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--violet-950);
  font-weight: 750;
}

.custom-input-row {
  display: flex;
  gap: 0.6rem;
}

.custom-input-row input {
  width: 100%;
  min-height: 46px;
  padding: 0.7rem 0.85rem;
  color: var(--ink);
  background: white;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.area-picker-trigger {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.8rem;
  align-items: center;
  width: 100%;
  min-height: 58px;
  padding: 0.7rem 0.9rem;
  color: var(--violet-950);
  text-align: left;
  background: white;
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 5px 16px rgba(48, 17, 80, 0.06);
}

.area-picker-trigger > span:first-child,
.area-picker-trigger > span:last-child {
  color: var(--violet-700);
  font-size: 1.55rem;
}

.area-picker-trigger small,
.area-picker-trigger strong {
  display: block;
}

.area-picker-trigger small {
  color: var(--muted);
}

.custom-input-row button {
  padding-inline: 1rem;
  color: white;
  background: var(--violet-700);
  border: 0;
  border-radius: 12px;
  font-weight: 800;
}

.location-card {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 1rem;
  padding: 1.15rem;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--border);
}

.location-icon {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  color: white;
  background: var(--violet-700);
  border-radius: 16px 16px 16px 4px;
}

.location-card h2 {
  margin: 0;
  color: var(--violet-950);
  font-size: 1.15rem;
  text-transform: uppercase;
}

.location-card p {
  margin: 0.25rem 0 0.75rem;
  color: var(--muted);
}

.selection-summary {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.15rem;
  color: var(--violet-950);
  background: #fff5c9;
  border: 1px solid rgba(239, 189, 69, 0.45);
}

.selection-summary[hidden] {
  display: none;
}

.selection-summary span,
.selection-summary small {
  display: block;
}

.selection-summary strong {
  display: block;
  font-size: 1.2rem;
}

.moment-start-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;min-width:min(100%,390px)}
.moment-start-actions .button{min-height:58px;line-height:1.15}
.events-saving-banner{display:grid;gap:.1rem;margin:0 0 1.15rem;padding:1.15rem;text-align:center;border:3px solid #efbd45;border-radius:18px;background:linear-gradient(135deg,#542a63,#773b88);color:#fff;box-shadow:0 10px 24px rgba(84,42,99,.2)}
.events-saving-banner strong,.events-saving-banner span{font-weight:950;letter-spacing:.055em;line-height:1.05}
.events-saving-banner strong{font-size:clamp(1.3rem,5vw,2rem);color:#ffe17d}
.events-saving-banner span{font-size:clamp(1.15rem,4.5vw,1.75rem)}
.events-saving-banner small{margin-top:.45rem;color:#fff8dc;font-weight:700;line-height:1.35}

.people-online-banner {
  display: flex;
  gap: 0.9rem;
  align-items: center;
  padding: 1rem 1.2rem;
  background: linear-gradient(100deg, #fff0ae, #fff9e7);
  border: 1px solid rgba(239, 189, 69, 0.4);
}

.people-online-banner p {
  margin: 0.1rem 0 0;
  color: var(--muted);
}

.mobile-bottom-nav {
  position: sticky;
  bottom: 0.7rem;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.25rem;
  margin-top: 1rem;
  padding: 0.5rem;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: 0 14px 35px rgba(48, 17, 80, 0.14);
  backdrop-filter: blur(12px);
}

.mobile-bottom-nav button {
  display: grid;
  place-items: center;
  gap: 0.15rem;
  min-height: 54px;
  padding: 0.35rem 0.2rem;
  color: #3a3440;
  background: transparent;
  border: 0;
  border-radius: 14px;
  font-size: 0.78rem;
}

.mobile-bottom-nav button span {
  color: var(--violet-800);
  font-size: 1.3rem;
}

.mobile-bottom-nav button.is-current {
  color: var(--violet-800);
  background: var(--violet-100);
  font-weight: 850;
}

.narrow-shell {
  max-width: 780px;
}

.page-shell > h1 {
  font-size: clamp(2.15rem, 6vw, 4rem);
}

.back-button {
  margin: 0 0 2rem -0.5rem;
}

.steps {
  display: grid;
  gap: 0.9rem;
  margin: 2rem 0;
}

.step-card {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 1rem;
  padding: 1.25rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: 0 10px 30px rgba(48, 17, 80, 0.07);
}

.step-card > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: white;
  background: var(--violet-800);
  border-radius: 50%;
  font-weight: 900;
}

.step-card h2 {
  font-size: 1.2rem;
}

.step-card p,
.plain-notice p,
.invite-status-list p {
  margin: 0.35rem 0 0;
  color: var(--muted);
}

.plain-notice {
  margin: 1.5rem 0;
  padding: 1.3rem;
  color: var(--violet-950);
  background: var(--cream);
  border: 1px solid rgba(239, 189, 69, 0.45);
  border-radius: var(--radius-md);
}

.plain-notice ul {
  margin: 0.8rem 0 0;
  padding-left: 1.2rem;
}

.plain-notice li + li {
  margin-top: 0.45rem;
}

.compact-notice {
  margin-top: 1rem;
}

.consent-check {
  display: flex;
  gap: 0.8rem;
  align-items: flex-start;
  margin: 1.5rem 0;
  padding: 1rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.consent-check input {
  width: 1.3rem;
  height: 1.3rem;
  margin-top: 0.1rem;
  accent-color: var(--violet-700);
}

.form-help {
  color: var(--muted);
  text-align: center;
  font-size: 0.9rem;
}

.progress-card,
.invite-code-card {
  margin-top: 1.5rem;
  padding: 1.35rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow);
}

.progress-topline {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
}

.progress-topline > strong {
  padding: 0.55rem 0.8rem;
  color: var(--violet-800);
  background: var(--violet-100);
  border-radius: 999px;
}

.progress-track {
  height: 14px;
  margin-top: 1.4rem;
  overflow: hidden;
  background: #e8e2ec;
  border-radius: 999px;
}

.progress-track span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--violet-600), var(--gold));
  transition: width 300ms ease;
}

.invite-code-card label {
  display: block;
  margin-top: 1rem;
  color: var(--muted);
  font-weight: 700;
}

.copy-row {
  display: flex;
  gap: 0.65rem;
  align-items: stretch;
  margin-top: 0.55rem;
}

.copy-row code,
.copy-row input {
  min-width: 0;
  flex: 1;
  padding: 0.8rem 0.9rem;
  color: var(--violet-950);
  background: #fbf9fc;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.invite-status-list {
  display: grid;
  gap: 0.8rem;
  margin-top: 1.2rem;
}

.invite-status-list article {
  display: flex;
  gap: 0.85rem;
  align-items: center;
  padding: 1rem 1.2rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

.invite-status-list article > span {
  color: var(--gold);
  font-size: 2rem;
}

.site-footer {
  display: grid;
  justify-items: center;
  padding: 2.5rem 1rem;
  color: var(--muted);
  text-align: center;
  background: #fbf5e8;
  border-top: 1px solid rgba(60, 18, 107, 0.08);
}

.site-footer img {
  width: 220px;
}

.site-footer nav {
  display: flex;
  gap: 0.4rem;
}

.site-footer button {
  color: var(--violet-700);
  background: transparent;
  border: 0;
}

.toast {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 50;
  max-width: min(360px, calc(100vw - 2rem));
  padding: 0.9rem 1rem;
  color: white;
  background: var(--violet-950);
  border-radius: 14px;
  box-shadow: var(--shadow);
}

.message-dialog {
  width: min(480px, calc(100% - 2rem));
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: 0 28px 80px rgba(30, 8, 51, 0.3);
}

.message-dialog::backdrop {
  background: rgba(37, 10, 73, 0.5);
  backdrop-filter: blur(3px);
}

.area-picker-dialog {
  width: min(720px, calc(100% - 1.5rem));
  max-height: min(82vh, 760px);
  padding: 0;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: 0 28px 80px rgba(30, 8, 51, 0.3);
}

.area-picker-dialog::backdrop {
  background: rgba(37, 10, 73, 0.5);
  backdrop-filter: blur(3px);
}

.area-dialog-content {
  position: relative;
  max-height: min(82vh, 760px);
  padding: 1.5rem;
  overflow: auto;
}

.area-dialog-content h2 {
  margin: 0;
  color: var(--violet-950);
  font-size: clamp(1.65rem, 5vw, 2.3rem);
}

.area-dialog-content > p:not(.page-number) {
  margin: 0.4rem 3rem 1rem 0;
  color: var(--muted);
}

.area-choice-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.55rem;
}

.area-choice-list button {
  min-height: 48px;
  padding: 0.7rem 0.8rem;
  color: var(--violet-950);
  text-align: left;
  background: #fbf8fd;
  border: 1px solid var(--border);
  border-radius: 12px;
  font-weight: 750;
}

.area-choice-list button:hover,
.area-choice-list button:focus-visible {
  color: white;
  background: var(--violet-700);
}

#provinceChoicePanel[hidden] {
  display: none;
}

.message-dialog form {
  position: relative;
  padding: 1.3rem;
}

.dialog-close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 40px;
  height: 40px;
  color: var(--violet-800);
  background: var(--violet-100);
  border: 0;
  border-radius: 50%;
  font-size: 1.5rem;
}

@media (max-width: 760px) {
  .site-header {
    grid-template-columns: 44px 1fr auto;
    min-height: 72px;
    gap: 0.5rem;
    padding-inline: 0.75rem;
  }

  .drawer { left: .75rem; max-height: calc(100dvh - 88px); }

  .header-brand img {
    width: min(190px, 44vw);
    max-height: 54px;
  }

  .online-pill {
    padding: 0.55rem 0.65rem;
    font-size: 0.82rem;
  }

  .moment-grid {
    grid-template-columns: 1fr;
  }

  .activity-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.55rem;
  }

  .activity-card {
    min-height: 102px;
    padding: 0.55rem 0.25rem;
    font-size: 0.88rem;
  }

  .activity-card span {
    font-size: 1.8rem;
  }

  .moment-card p {
    min-height: auto;
  }

  .copy-row {
    flex-direction: column;
  }
}

@media (max-width: 470px) {
  .online-pill {
    width: 42px;
    height: 42px;
    justify-content: center;
    padding: 0;
    font-size: 0;
  }

  .online-pill strong {
    display: none;
  }

  .hero-actions,
  .hero-actions .button {
    width: 100%;
  }

  .section-heading {
    align-items: flex-start;
  }

  .step-card {
    grid-template-columns: 40px 1fr;
    padding: 1rem;
  }

  .progress-topline {
    align-items: flex-start;
  }

  .app-page-topline {
    grid-template-columns: auto 1fr auto;
  }

  .mini-online {
    width: 38px;
    height: 38px;
    justify-content: center;
    padding: 0;
    overflow: hidden;
    font-size: 0;
  }

  .custom-input-row,
  .selection-summary {
    align-items: stretch;
    flex-direction: column;
  }

  .moment-start-actions{grid-template-columns:1fr;min-width:0}

  .area-choice-list {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
/* Pagine 3–5: percorsi OFFRO, INVITO e INVITAMI */
.path-choice { margin: 1rem 0; padding: 1rem; border-radius: 20px; background: #fff; box-shadow: 0 10px 28px rgba(90, 51, 31, .09); }
.path-choice h2 { margin: 0 0 .8rem; font-size: 1.1rem; }
.path-choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.path-choice-grid button { padding: 1rem .6rem; border: 1px solid #ead9c4; border-radius: 16px; background: #fffaf1; color: #4b2e25; cursor: pointer; }
.path-choice-grid strong, .path-choice-grid span { display: block; }
.path-choice-grid strong { color: #b3262d; margin-bottom: .25rem; }
.path-choice-grid span { font-size: .78rem; }
.flow-shell { padding-bottom: 6rem; }
.flow-intro { padding: 1.4rem 1rem .7rem; text-align: center; }
.flow-intro h1 { margin: 0 0 .35rem; text-transform: uppercase; }
.flow-intro p { margin: 0; color: #6f625c; }
.flow-activities { margin: .8rem 0; }
.field-card, .form-grid label { display: flex; flex-direction: column; gap: .4rem; }
.field-card { margin: 1rem 0; padding: 1rem; border: 1px solid #ead9c4; border-radius: 16px; background: #fffaf1; font-weight: 700; }
.field-card input, .field-card textarea, .form-grid input, .form-grid textarea, .form-grid select { width: 100%; box-sizing: border-box; padding: .75rem; border: 1px solid #cdbba9; border-radius: 10px; background: #fff; color: #342721; font: inherit; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin: 1rem 0; }
.form-grid label > span { font-size: .86rem; font-weight: 700; }
.form-grid .wide { grid-column: 1 / -1; }
.form-grid .check-field { flex-direction: row; align-items: center; padding-top: 1.6rem; }
.form-grid .check-field input { width: auto; }
.choice-field { display: flex; gap: 1rem; margin: 1rem 0; padding: 1rem; border: 1px solid #ead9c4; border-radius: 16px; }
.choice-field legend { padding: 0 .3rem; font-weight: 800; }
.privacy-note { padding: .9rem; border-radius: 12px; background: #fff4d6; color: #655242; font-size: .84rem; }
.account-deleted-button{background:#e8e8e8!important;color:#555!important;border-color:#bdbdbd!important;cursor:not-allowed!important;opacity:1!important}
.referral-access-card.is-suspended{border-color:#d48c84!important;background:#fff0ef!important;color:#8f251d!important}
.delete-account-identity{padding:.7rem .8rem;border:1px solid #dfb8b4;border-radius:10px;background:#fff7f6;color:#6f2721;font-size:.82rem;line-height:1.45}.delete-account-identity strong{font-size:.9rem}.delete-account-identity small{color:#80544f}
.delete-account-request-status{padding:.7rem .8rem;border-radius:10px;background:#eaf6ed;color:#24613b;font-size:.82rem;font-weight:900}.delete-account-request-status.is-deleted{background:#ececec;color:#444}.request-sent-button{background:#eaf6ed!important;color:#24613b!important;border-color:#80b991!important;cursor:not-allowed!important;opacity:1!important}
.referral-entry{margin:1rem 0;padding:1rem;border:1px solid #cdbbd0;border-radius:14px;background:#faf7fb}.referral-entry.is-verified{border:2px solid #4c9a68;background:#edf8f0;box-shadow:0 0 0 3px rgba(76,154,104,.12)}.referral-entry h3{margin:0 0 .35rem;color:var(--purple-dark)}.referral-entry p{font-size:.8rem;color:var(--muted)}.referral-entry #referralCodeFeedback.is-success{display:block;padding:.65rem;border-radius:9px;background:#dff2e4;color:#1f6036;font-size:.9rem;font-weight:950}.referral-entry #referralCodeFeedback.is-error{display:block;padding:.65rem;border-radius:9px;background:#fff0ef;color:#a2251b;font-weight:900}.referral-entry #referralCodeFeedback.is-neutral{color:var(--muted)}
.referral-entry.is-verified #verifyReferralCode:disabled{display:inline-flex;align-items:center;justify-content:center;opacity:1;background:#287a47;border-color:#287a47;color:#fff;cursor:default}
.referral-entry.is-awaiting-confirmation{border:2px solid #d58b42;background:#fff8ee}.referral-entry.is-awaiting-confirmation #verifyReferralCode:disabled{display:inline-flex;align-items:center;justify-content:center;opacity:1;background:#8b4c20;border-color:#8b4c20;color:#fff}.referral-entry #referralCodeFeedback.is-warning{display:block;padding:.65rem;border-radius:9px;background:#fff0dd;color:#7b421d;font-weight:900}.presenter-confirmation{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.7rem}.presenter-confirmation[hidden]{display:none}

/* BLOCCO 42 — COMUNITÀ, AFFINITÀ E CONTATTO RISPETTOSO */
.community-value-card{margin:1rem 0;padding:1.15rem;border:2px solid #d6ad4c;border-radius:20px;background:linear-gradient(145deg,#fff9e8,#f5edf7);box-shadow:0 10px 24px rgba(84,42,99,.1)}.community-value-card h2{margin:.2rem 0;color:#542a63;font-size:1.45rem}.community-value-card>p{line-height:1.5}.community-value-card>div{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:.8rem 0}.community-value-card>div span{padding:.55rem;border-radius:10px;background:#fff;font-weight:850}.community-value-card>strong,.community-value-card>small{display:block;margin-top:.65rem;line-height:1.45}.community-value-card>small{color:#6f625b}.block42-profile-fields{margin:1rem 0;padding:1rem;border:2px solid #d9c5df;border-radius:18px;background:#fcf9fd}.mood-wish-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.mood-wish-grid label,.affinity-questionnaire>label{display:grid;gap:.3rem;color:#542a63;font-weight:900}.mood-wish-grid select,.mood-wish-grid input,.affinity-questionnaire select{width:100%;padding:.65rem;border:1px solid #cbbdce;border-radius:9px;background:#fff}.affinity-questionnaire{margin-top:.8rem;padding:.75rem;border-radius:12px;background:#fff}.affinity-questionnaire summary{cursor:pointer;color:#542a63;font-weight:950}.affinity-questionnaire fieldset{display:flex;flex-wrap:wrap;gap:.55rem;margin:.7rem 0;border:0;padding:0}.affinity-questionnaire fieldset label{padding:.45rem;border-radius:8px;background:#f5edf7}.preview-mood-wish{display:grid;gap:.3rem;margin:.7rem 0;padding:.75rem;border-radius:12px;background:#fff7df}.preview-mood-wish strong{color:#542a63}.preview-mood-wish small{color:#6b5b53}.person-mood,.person-wish{margin:.25rem 0}.affinity-reason{display:block;margin-top:.3rem;color:#5e5161;line-height:1.35}.person-contact-actions{display:grid;gap:.35rem}.person-contact-actions small{max-width:180px;color:#76675f;font-size:.65rem}.know-person{min-height:46px;padding:.6rem;border:0;border-radius:11px;background:#542a63;color:#fff;font-weight:950}.know-person.is-sent{background:#e9e0eb;color:#542a63}.chat-attach{display:grid;place-items:center;min-width:42px;height:42px;border-radius:50%;background:#fff4d6;cursor:pointer;font-size:1.15rem}.chat-attachment-note{margin:.35rem 0;padding:.5rem;border-radius:9px;background:#fff8ee;color:#725b47;font-size:.67rem}.chat-attached-image{display:block;max-width:min(100%,280px);max-height:300px;margin-bottom:.45rem;border-radius:12px;object-fit:cover}@media(max-width:620px){.community-value-card>div,.mood-wish-grid{grid-template-columns:1fr}.person-contact-actions{grid-column:1/-1}.know-person{width:100%}}
.chat-attached-file{display:grid;grid-template-columns:auto 1fr;column-gap:.45rem;margin-bottom:.45rem;padding:.6rem;border:1px solid #9fc9aa;border-radius:10px;background:#eef8f1;color:#205d36;text-decoration:none}.chat-attached-file span{grid-row:1/3}.chat-attached-file small{color:#45634d}
.app-help-search{display:grid;gap:.35rem;margin:1rem 0;padding:.85rem;border:2px solid #d5aa31;border-radius:14px;background:#fff8df;color:#542a63;font-weight:900}.app-help-search input{width:100%;padding:.75rem;border:1px solid #cbbdce;border-radius:10px;background:#fff;font:inherit}.app-help-results{display:grid;gap:.6rem}.app-help-card{border:1px solid #ded1e2;border-radius:13px;background:#fff}.app-help-card summary{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:.6rem;padding:.85rem;cursor:pointer}.app-help-card summary span{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#542a63;color:#fff;font-weight:950}.app-help-card p{margin:0;padding:0 .9rem .9rem 4.5rem;color:#675b69;line-height:1.55}.app-help-empty{padding:.8rem;border-radius:10px;background:#fff1f2;color:#8f1d16}@media(max-width:520px){.app-help-card p{padding-left:.9rem}}
.app-help-topic{display:grid;gap:.35rem;margin:1rem 0;padding:.85rem;border:2px solid #542a63;border-radius:14px;background:#f7eef9;color:#542a63;font-weight:900}.app-help-topic select{width:100%;padding:.75rem;border:1px solid #a88caf;border-radius:10px;background:#fff;font:inherit}
.vivilora-permanent-page-list{display:grid;gap:.7rem}.vivilora-permanent-page-list button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;width:100%;padding:1rem;border:1px solid #decbb7;border-radius:14px;background:#fff;text-align:left}.vivilora-permanent-page-list button>span{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:#f7eef9;color:#542a63}.vivilora-permanent-page-list button>div{display:grid;gap:.2rem}.vivilora-permanent-page-list small{color:#74645b}.vivilora-permanent-page-list b{color:#542a63;font-size:.72rem}.vivilora-permanent-page-detail{padding:1rem;border:2px solid #d5aa31;border-radius:16px;background:#fff}.vivilora-permanent-page-detail>p{margin:1rem 0 .25rem;color:#765900;font-size:.72rem;font-weight:900}.vivilora-permanent-page-detail h2{margin:.2rem 0;color:#542a63}.vivilora-permanent-page-detail>div{white-space:pre-wrap;line-height:1.65;color:#5f5560}
.community-benefit-grid button{min-height:48px;padding:.55rem;border:2px solid transparent;border-radius:10px;background:#fff;color:#542a63;text-align:left;font-weight:850;cursor:pointer}.community-benefit-grid button:hover,.community-benefit-grid button:focus-visible,.community-benefit-grid button.is-selected{border-color:#542a63;background:#f5edf7}.community-value-card .community-benefit-detail{display:grid;grid-template-columns:1fr;gap:.35rem;margin:.8rem 0;padding:.8rem;border-left:5px solid #d6ad4c;border-radius:10px;background:#fff}.community-value-card .community-benefit-detail[hidden]{display:none}.community-benefit-detail strong{color:#542a63}.community-benefit-detail p{margin:.1rem 0;line-height:1.45}.community-benefit-detail button{justify-self:start;margin-top:.35rem;padding:.55rem .75rem;border:0;border-radius:9px;background:#542a63;color:#fff;font-weight:900}
.know-person.is-sent:disabled{opacity:1;background:#f3c84b;color:#593f00}.know-person.is-accepted{background:#287a47;color:#fff}
.referral-access-card{margin:.8rem 0;padding:1rem;border:1px solid #dec68f;border-radius:14px;background:#fff8e5;color:#6b5420}.referral-access-card strong{display:block;margin-bottom:.3rem}.referral-access-card p{margin:0}.referral-access-card.is-active{border-color:#76af87;background:#eaf7ee;color:#235f38}

/* BLOCCO 40 — PAGINA PONTE INVITO, STORE E RECUPERO CODICE */
.invite-router-page{min-height:100vh;margin:0;background:linear-gradient(145deg,#f7eff9,#fff9ec);color:#302832}.invite-router-shell{width:min(720px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 4rem}.invite-router-logo{display:block;width:min(330px,75%);margin:0 auto 1.5rem}.invite-router-shell h1{margin:.2rem 0;color:#351642;font-size:clamp(2rem,6vw,3.4rem);line-height:1.05}.invite-router-shell>p{line-height:1.55}.invite-router-code,.invite-router-warning,.invite-router-channels{margin:1rem 0;padding:1rem;border:1px solid #decfe2;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(58,28,68,.08)}.invite-router-code{display:grid;gap:.35rem;border-left:7px solid #e5aa3d}.invite-router-code span{font-size:.68rem;font-weight:950;letter-spacing:.08em;color:#736875}.invite-router-code strong{color:#50245f;font-size:1.45rem}.invite-router-code p,.invite-router-warning p,.invite-router-channels p{margin:.25rem 0;color:#736875}.invite-router-warning{border-left:7px solid #b12e3b;background:#fff4f5}.invite-router-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.invite-router-actions button{min-height:48px}.invite-router-channels h2{margin:.1rem 0;color:#351642}.invite-router-channels>div{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:.8rem 0}.invite-router-channels>div button{padding:.7rem;border:1px solid #cbb8d0;border-radius:10px;background:#fff;color:#50245f;font-weight:850}.invite-router-channels>div button.is-selected{border-color:#50245f;background:#f1e7f4}.invite-router-channels>.button{width:100%;margin-top:.6rem}@media(max-width:650px){.invite-router-actions,.invite-router-channels>div{grid-template-columns:1fr}}
.demo-account-switcher{display:grid;gap:.75rem;margin:1rem 0;padding:1rem;border:2px dashed #7b5a8d;border-radius:16px;background:#f8f2fa}.demo-account-switcher h2,.demo-account-switcher p{margin:.2rem 0}.demo-account-switcher>label{display:grid;gap:.35rem;color:#542a63;font-weight:900}.demo-account-switcher select{width:100%;min-height:46px;padding:.7rem;border:1px solid #9f87aa;border-radius:10px;background:#fff;color:#34213c;font:inherit}.demo-account-identity{padding:.7rem;border-radius:10px;background:#542a63;color:#fff;font-size:.78rem;font-weight:900;overflow-wrap:anywhere}
.chip-group { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1rem 0; }
.chip-group button { border: 1px solid #cfbba5; border-radius: 999px; padding: .65rem .9rem; background: #fff; color: #543c32; cursor: pointer; }
.chip-group button.is-selected { border-color: #b3262d; background: #b3262d; color: #fff; }
.small-chips { margin-top: .4rem; }
.filter-panel { margin: 1rem 0 1.5rem; padding: 1rem; border-radius: 18px; background: #fff; box-shadow: 0 8px 25px rgba(76, 45, 30, .08); }
.filter-panel h2 { margin: 0; font-size: 1.1rem; }
.compact-grid { margin: .8rem 0; }
.verified-filter { display: flex; align-items: center; gap: .5rem; margin: .7rem 0; font-size: .82rem; font-weight: 800; }
.people-results, .invite-results { display: grid; gap: .8rem; margin-bottom: 1rem; }
.person-result, .invite-result { padding: 1rem; border: 1px solid #ead9c4; border-radius: 16px; background: #fff; }
.person-result { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; }
.avatar-demo { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #f4dfc9; font-size: 1.45rem; }
.person-result h3, .invite-result h3 { margin: 0 0 .25rem; }
.person-result p, .invite-result p { margin: .18rem 0; color: #6c5d56; font-size: .84rem; }
.person-result button, .invite-actions button { border: 0; border-radius: 10px; padding: .65rem .8rem; background: #b3262d; color: #fff; font-weight: 800; cursor: pointer; }
.invite-result header { display: flex; justify-content: space-between; gap: .8rem; }
.invite-result .tag { color: #b3262d; font-weight: 800; }
.invite-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.invite-actions button.secondary { background: #fff0dd; color: #6c3d2c; }
.invite-result { position: relative; }
.invite-result header { padding-right: 2.2rem; }
.invite-more { position: absolute; top: .7rem; right: .7rem; width: 2rem; height: 2rem; padding: 0 !important; border: 1px solid #dac9b7 !important; border-radius: 50% !important; background: #fff !important; color: #5e5048 !important; font-size: 1.1rem; }
.invite-context-menu { position: absolute; top: 2.9rem; right: .7rem; z-index: 3; display: grid; min-width: 175px; padding: .35rem; border: 1px solid #dac9b7; border-radius: 12px; background: #fff; box-shadow: 0 10px 24px rgba(52, 39, 33, .16); }
.invite-context-menu[hidden] { display: none; }
.invite-context-menu button { padding: .65rem .75rem; border: 0; border-radius: 8px; background: transparent; color: #5b4941; text-align: left; cursor: pointer; }
.invite-context-menu button:hover, .invite-context-menu button:focus-visible { background: #fff0dd; }
.invite-context-menu .report-option { color: #9b2530; font-size: .82rem; }
.journey-guide { display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; margin: .5rem 0 1rem; padding: .65rem; border-radius: 14px; background: #fff; }
.journey-guide span { padding: .55rem .35rem; border-radius: 9px; color: #7a6d66; font-size: .75rem; text-align: center; }
.journey-guide .is-done { color: #247044; background: #eaf7ef; }
.journey-guide .is-current { color: #fff; background: #b3262d; font-weight: 800; }

/* B245 — dalla Piazza i gruppi sono visibili e i Momenti non sono duplicati */
.home-group-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.home-group-preview-grid article { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: center; padding: 1rem; border: 1px solid #ead7ef; border-radius: 18px; background: #fff; }
.home-group-preview-grid article > span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: #fff4bb; font-size: 1.7rem; }
.home-group-preview-grid h3, .home-group-preview-grid p { margin: 0; }
.home-group-preview-grid p { color: var(--muted); margin-top: .25rem; }
.home-group-preview-grid button { grid-column: 1 / -1; border: 0; border-radius: 999px; padding: .7rem 1rem; background: #f4e9f7; color: #5c2768; font-weight: 800; cursor: pointer; }
.home-create-group { margin-top: 1rem; }
.activity-card-any { background: #fff4bb; border-color: #d3a900; }
.activity-card-any small { display: block; margin-top: .25rem; color: #665d54; font-size: .72rem; font-weight: 600; }
@media (max-width: 680px) { .home-group-preview-grid { grid-template-columns: 1fr; } }
.invitami-date-feedback{margin:0;color:#5c2768;font-weight:800}.is-date-to-agree{opacity:.58}.is-date-to-agree span::after{content:" · da concordare";color:#5c2768;font-weight:800}
.field-card small { color: #74665f; font-weight: 400; line-height: 1.35; }
.chat-shell { position: relative; display: flex; flex-direction: column; min-height: 100vh; padding: 0; background: #fffaf2; }
.chat-header { position: sticky; top: 0; z-index: 5; display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: .65rem; padding: .7rem; background: #fff; border-bottom: 1px solid #ead9c4; }
.chat-header h1 { margin: 0; font-size: 1rem; }
.chat-header p { margin: .15rem 0 0; color: #786960; font-size: .75rem; }
.chat-more { width: 2.3rem; height: 2.3rem; border: 1px solid #d8c7b5; border-radius: 50%; background: #fff; font-size: 1.2rem; }
.compact-guide { margin: .65rem; }
.chat-safety-note { margin: 0 .75rem .7rem; padding: .75rem; border-radius: 12px; background: #fff4d6; color: #665449; font-size: .78rem; line-height: 1.35; }
.chat-thread { display: flex; flex: 1; flex-direction: column; gap: .6rem; min-height: 300px; padding: .75rem; }
.chat-message { max-width: 82%; padding: .7rem .85rem; border-radius: 16px 16px 16px 4px; background: #fff; box-shadow: 0 3px 12px rgba(60,40,30,.07); }
.chat-message.is-mine { align-self: flex-end; border-radius: 16px 16px 4px 16px; background: #ffe3c7; }
.chat-message p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-message small { display: block; margin-top: .3rem; color: #7c6d65; font-size: .68rem; text-align: right; }
.chat-reply-quote { display: grid; gap: .15rem; margin: 0 0 .55rem; padding: .5rem .6rem; border-left: 4px solid #542a63; border-radius: 7px; background: rgba(255,255,255,.7); }
.chat-reply-quote strong { color: #542a63; font-size: .72rem; }
.chat-reply-quote span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #675750; font-size: .75rem; }
.reply-message-button { display: block; margin-top: .35rem; padding: .2rem 0; border: 0; background: transparent; color: #542a63; font-size: .65rem; font-weight: 900; }
.react-message-button { display: inline-block; margin-left: .65rem; padding: .2rem 0; border: 0; background: transparent; color: #8b4c20; font-size: .65rem; font-weight: 900; }
.delete-message-button { display: inline-block; margin-left: .65rem; padding: .2rem 0; border: 0; background: transparent; color: #9b2530; font-size: .65rem; font-weight: 900; }
.deleted-message-copy { color: #7c6d65; font-style: italic; }
.message-delete-picker { display: grid; gap: .3rem; margin-top: .45rem; padding: .45rem; border-radius: 10px; background: #fff; box-shadow: 0 4px 12px rgba(60,40,30,.12); }
.message-delete-picker button { min-height: 34px; padding: .4rem; border: 1px solid #d9c6b4; border-radius: 8px; background: #fff8ee; color: #8c2630; font-size: .68rem; font-weight: 900; }
.chat-planning-actions { display: grid; grid-template-columns: repeat(2,1fr); gap: .45rem; padding: .5rem .65rem; background: #fff; }
.chat-planning-actions button { min-height: 40px; border: 1px solid #542a63; border-radius: 10px; background: #f5edf7; color: #542a63; font-size: .72rem; font-weight: 900; }
.reply-message-button { display: inline-block; }
.message-reaction-badge { position: absolute; right: .45rem; bottom: -.65rem; display: grid; place-items: center; min-width: 28px; height: 25px; padding: 0 .3rem; border: 2px solid #fffaf2; border-radius: 999px; background: #fff; box-shadow: 0 2px 7px rgba(60,40,30,.15); font-size: .9rem; }
.chat-message { position: relative; }
.message-reaction-picker { display: flex; gap: .25rem; margin-top: .45rem; padding: .3rem; border-radius: 999px; background: #fff; box-shadow: 0 4px 12px rgba(60,40,30,.12); }
.message-reaction-picker button { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: #fff8ee; font-size: 1.1rem; }
.reply-preview { display: grid; grid-template-columns: 1fr auto; gap: .6rem; align-items: center; margin: 0 .65rem; padding: .6rem .75rem; border-left: 5px solid #542a63; background: #f5edf7; }
.reply-preview[hidden] { display: none; }
.reply-preview small, .reply-preview strong { display: block; }
.reply-preview small { color: #77656f; }
.reply-preview p { margin: .15rem 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #4f4148; font-size: .78rem; }
.reply-preview button { width: 34px; height: 34px; border: 0; border-radius: 50%; background: #fff; color: #542a63; font-size: 1.35rem; }
.chat-composer { position: sticky; bottom: 0; display: grid; grid-template-columns: auto auto auto 1fr auto; gap: .45rem; align-items: end; padding: .65rem; background: #fff; border-top: 1px solid #ead9c4; }
.chat-composer textarea { grid-column: 1 / -1; grid-row: 1; width: 100%; min-height: 96px; max-height: 180px; box-sizing: border-box; padding: .75rem; resize: vertical; border: 1px solid #cfbdab; border-radius: 14px; font: inherit; line-height: 1.45; }
.chat-composer .my-avatar-button { grid-column: 1; }
.chat-content-rule{margin:.45rem 0 0;padding:.55rem .7rem;border-radius:10px;background:#f5edf7;color:#5f5260;font-size:.7rem;line-height:1.4}
.chat-composer .chat-attach { grid-column: 2; }
.chat-composer .emoji-toggle { grid-column: 3; }
.chat-composer .chat-send { grid-column: 5; }
.emoji-toggle, .chat-send { min-height: 42px; border: 0; border-radius: 12px; cursor: pointer; }
.emoji-toggle { width: 42px; background: #fff1df; font-size: 1.15rem; }
.chat-send { padding: 0 .9rem; background: #b3262d; color: #fff; font-weight: 800; }
.emoji-panel { display: block; max-height: 220px; padding: .65rem .75rem; overflow-y: auto; background: #fff; border-top: 1px solid #ead9c4; box-shadow: 0 -8px 20px rgba(60,40,30,.08); }
.emoji-panel[hidden], .chat-options-menu[hidden] { display: none; }
.emoji-panel-heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .5rem; color: #5f4d44; }
.emoji-panel-heading small { color: #88766c; }
.emoji-grid { display: grid; grid-template-columns: repeat(8,1fr); gap: .35rem; }
.emoji-panel button { min-width: 0; height: 2.8rem; border: 1px solid #f1dfca; border-radius: 11px; background: #fff8ee; font-size: 1.5rem; line-height: 1; }
/* Emoticon leggibili sopra la chat, anche su schermi piccoli. */
#emojiPanel.emoji-panel{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;max-height:none;padding:1rem;box-sizing:border-box;overflow:auto;background:rgba(28,17,35,.55)}
#emojiPanel.emoji-panel[hidden]{display:none}
#emojiPanel .emoji-dialog-content{width:min(440px,100%);max-height:min(75vh,600px);padding:1rem;box-sizing:border-box;overflow-y:auto;border-radius:16px;background:#fff;box-shadow:0 16px 45px rgba(20,10,30,.3)}
#emojiPanel .emoji-panel-heading{align-items:center}
#emojiPanel .emoji-close{width:36px;height:36px;border:0;border-radius:50%;background:#f3ebf5;color:#542a63;font-size:1.5rem}
#emojiPanel .emoji-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:440px){#emojiPanel .emoji-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.chat-options-menu { position: fixed; top: 4rem; right: max(.75rem, calc((100vw - 720px)/2 + .75rem)); z-index: 9; display: grid; min-width: 200px; padding: .4rem; border: 1px solid #d8c7b5; border-radius: 12px; background: #fff; box-shadow: 0 10px 25px rgba(50,35,28,.18); }
.chat-options-menu button { padding: .7rem; border: 0; border-radius: 8px; background: transparent; text-align: left; }
.chat-options-menu button:hover { background: #fff0dd; }
.person-search { margin: .5rem 0 1rem; padding: 1rem; border: 2px solid #efd8bb; border-radius: 18px; background: #fff; box-shadow: 0 8px 22px rgba(70,45,30,.08); }
.compact-heading { align-items: center; margin-bottom: .75rem; }
.compact-heading h2 { margin: .1rem 0 0; font-size: 1.2rem; }
.favorites-shortcut { border: 1px solid #d2b793; border-radius: 999px; padding: .55rem .75rem; background: #fff8df; color: #6b4c24; font-weight: 800; cursor: pointer; }
.search-kind { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .65rem; }
.search-kind button { padding: .55rem .7rem; border: 1px solid #d8c5b0; border-radius: 999px; background: #fff; color: #5d4c43; cursor: pointer; }
.search-kind button.is-selected { border-color: #b3262d; background: #b3262d; color: #fff; }
.person-search-row { display: grid; grid-template-columns: 1fr auto; gap: .45rem; }
.person-search-row input { min-width: 0; padding: .8rem; border: 1px solid #cdb9a5; border-radius: 12px; font: inherit; }
.person-search-row button { padding: .8rem 1rem; border: 0; border-radius: 12px; background: #542a63; color: #fff; font-weight: 800; }
.phone-search-help, .search-feedback { margin: .55rem 0 0; color: #74645b; font-size: .78rem; line-height: 1.35; }
.results-heading { display: flex; align-items: baseline; justify-content: space-between; gap: .7rem; }
.results-heading h2 { margin-bottom: .5rem; }
.results-heading small { color: #796b63; }
.person-result { position: relative; }
.person-result .favorite-person { position: absolute; right: .38rem; bottom: .38rem; width: 1.55rem; height: 1.55rem; padding: 0; border: 1px solid #d9c6b0; border-radius: 50%; background: #fff; color: #6f5a42; font-size: .9rem; }
.person-result .favorite-person.is-favorite { color: #d18a00; background: #fff8d5; }
.person-result .person-copy { padding-right: 1.7rem; }
.person-result .nickname { color: #8a516d; font-weight: 700; }
.person-result .compatibility { color: #267048; font-weight: 800; }
.person-result .open-chat-person { white-space: nowrap; }
.start-chat-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; margin: 1rem 0; padding: 1rem; border-radius: 18px; background: #542a63; color: #fff; }
.start-chat-icon { font-size: 1.8rem; }
.start-chat-card h2 { margin: 0 0 .2rem; font-size: 1rem; }
.start-chat-card p { margin: 0; color: #f0dfef; font-size: .8rem; }
.start-chat-card button { padding: .75rem .9rem; border: 0; border-radius: 11px; background: #fff; color: #542a63; font-weight: 900; }
.start-chat-card button:disabled { opacity: .55; }
.decide-together { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; margin: .4rem 0; padding: 1rem; border: 2px solid #d7b88e; border-radius: 18px; background: #fff8e8; }
.decide-together legend { padding: 0 .4rem; color: #6b342f; font-size: 1.05rem; font-weight: 900; }
.decide-together > p { grid-column: 1 / -1; margin: 0 0 .2rem; color: #6f5d52; font-size: .82rem; }
.decide-together button { display: grid; gap: .25rem; align-content: center; min-height: 92px; padding: .85rem; border: 3px solid #cdb494; border-radius: 15px; background: #fff; color: #4e3b32; text-align: center; cursor: pointer; }
.decide-together button strong { font-size: 1.05rem; }
.decide-together button span { font-size: .82rem; }
.decide-together button small { color: #806c5f; font-size: .68rem; font-weight: 900; }
.decide-together button[aria-pressed="true"] { border-color: #b3262d; background: #b3262d; color: #fff; box-shadow: 0 0 0 4px rgba(179,38,45,.12); }
.decide-together button[aria-pressed="true"] strong::before { content: "✓ "; font-size: 1.2rem; }
.decide-together button[aria-pressed="true"] small { color: #fff; }
.chat-composer { grid-template-columns: auto auto auto 1fr auto; }
.my-avatar-button { width: 42px; height: 42px; padding: 0; border: 2px solid #542a63; border-radius: 50%; background: #ffe0bd; font-size: 1.25rem; }
.avatar-shell { padding-bottom: 2rem; }
.avatar-preview { position: relative; display: grid; place-items: center; width: 160px; height: 160px; margin: 1rem auto 1.4rem; border: 5px solid #fff; border-radius: 50%; background: #ffe0bd; box-shadow: 0 10px 28px rgba(65,40,30,.16); overflow: hidden; }
.avatar-face { z-index: 1; font-size: 5.4rem; }
.avatar-hair { position: absolute; z-index: 2; top: 11px; font-size: 3.2rem; }
.avatar-accessory { position: absolute; z-index: 3; top: 57px; right: 24px; font-size: 2.7rem; }
.avatar-preview.uses-gesture-avatar .avatar-face { font-size: 6.2rem; }
.avatar-preview.uses-gesture-avatar .avatar-hair, .avatar-preview.uses-gesture-avatar .avatar-accessory { display: none; }
.avatar-controls { display: grid; gap: .8rem; margin: 1rem 0; }
.avatar-controls fieldset { display: flex; flex-wrap: wrap; gap: .55rem; padding: .85rem; border: 1px solid #decbb7; border-radius: 15px; background: #fff; }
.avatar-controls legend { padding: 0 .35rem; font-weight: 900; }
.avatar-controls button { min-width: 52px; min-height: 48px; padding: .45rem; border: 2px solid #dfd0c1; border-radius: 12px; background: #fffaf2; font-size: 1.35rem; }
.avatar-controls button.is-selected { border-color: #b3262d; box-shadow: 0 0 0 3px rgba(179,38,45,.12); }
.avatar-controls .expressive-avatar-choices { display: grid; grid-template-columns: repeat(3,1fr); }
.expressive-avatar-choices button { display: grid; justify-items: center; gap: .15rem; min-height: 70px; font-size: 1.7rem; }
.expressive-avatar-choices button small { color: #6f6058; font-size: .65rem; font-weight: 800; }
.expressive-avatar-choices button.is-selected small { color: #8f2026; }
.avatar-controls .color-choice { background: var(--choice-color); }
.see-all-activities { min-height: 52px; padding-inline: 1.15rem; font-size: .9rem; font-weight: 900; }
.carried-activity { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; margin: .5rem 0 1rem; padding: 1rem; border: 2px solid #6caf82; border-radius: 18px; background: #edf9f1; }
.carried-activity[hidden] { display: none; }
.carried-activity > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #267048; color: #fff; font-size: 1.25rem; font-weight: 900; }
.carried-activity small, .carried-activity strong { display: block; }
.carried-activity small { color: #55705f; }
.carried-activity strong { margin-top: .15rem; color: #194f30; font-size: 1.25rem; }
.carried-activity button { min-height: 46px; padding: .65rem .8rem; border: 2px solid #267048; border-radius: 12px; background: #fff; color: #1d6039; font-weight: 900; }
.moment-choice-summary { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .8rem; margin: .5rem 0 1rem; padding: 1rem; border: 2px solid #6caf82; border-radius: 18px; background: #edf9f1; }
.moment-choice-summary > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #267048; color: #fff; font-size: 1.25rem; font-weight: 900; }
.moment-choice-summary small, .moment-choice-summary strong { display: block; }
.moment-choice-summary strong { color: #194f30; font-size: 1.25rem; }
.moment-choice-summary p { margin: .2rem 0 0; color: #55705f; }
.moment-choice-field { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; margin: 1rem 0; padding: 1rem; border: 1px solid #decbb7; border-radius: 18px; background: #fff; }
.moment-choice-field legend { padding: 0 .35rem; font-weight: 900; }
.moment-choice-field button { min-height: 66px; padding: .7rem; border: 2px solid #d6c1aa; border-radius: 14px; background: #fffaf2; color: #57443b; font-weight: 800; }
.moment-choice-field button strong, .moment-choice-field button small { display: block; }
.moment-choice-field button small { margin-top: .2rem; font-weight: 400; }
.moment-choice-field button.is-selected { border-color: #542a63; background: #542a63; color: #fff; box-shadow: 0 0 0 4px rgba(84,42,99,.12); }
.review-card { margin: 1rem 0; padding: 1rem; border: 1px solid #decbb7; border-radius: 20px; background: #fff; box-shadow: 0 8px 24px rgba(65,40,30,.08); }
.review-card dl { margin: 0; }
.review-card dl > div { display: grid; grid-template-columns: 110px 1fr; gap: .8rem; padding: .85rem 0; border-bottom: 1px solid #eee1d3; }
.review-card dl > div:last-child { border-bottom: 0; }
.review-card dt { color: #78675e; font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.review-card dd { margin: 0; color: #3f2f28; font-weight: 800; }
.review-actions { display: grid; grid-template-columns: minmax(120px,.45fr) 1fr; gap: .7rem; margin: 1rem 0; }
.review-actions button { min-height: 58px; }
.menu-count, .invite-page-badge { display: inline-grid; place-items: center; min-width: 28px; height: 28px; padding: 0 .35rem; border-radius: 999px; background: #b3262d; color: #fff; font-weight: 900; }
.drawer .menu-count { float: right; margin-left: auto; }
.respect-invites { margin: .5rem 0 1rem; padding: 1rem; border-radius: 16px; background: #fff1dd; color: #66352f; text-align: center; }
.respect-invites p { margin: .25rem 0 0; font-size: .82rem; }
.invites-toolbar { display: grid; grid-template-columns: repeat(2,1fr); gap: .6rem; margin-bottom: 1rem; }
.invites-toolbar.three-tabs { grid-template-columns: repeat(3,1fr); }
.invites-toolbar button { min-height: 48px; border: 2px solid #d6c1aa; border-radius: 12px; background: #fff; font-weight: 900; }
.invites-toolbar button.is-selected { border-color: #542a63; background: #542a63; color: #fff; }
.your-invites-list { display: grid; gap: .85rem; }
.your-invite-card { position: relative; padding: 1rem; border: 1px solid #decbb7; border-radius: 18px; background: #fff; box-shadow: 0 7px 20px rgba(60,40,30,.07); }
.your-invite-card.is-new { border-left: 6px solid #b3262d; }
.your-invite-card header { display: flex; justify-content: space-between; gap: .7rem; }
.your-invite-card h2 { margin: 0; font-size: 1.08rem; }
.your-invite-card p { margin: .3rem 0; color: #6f6058; font-size: .84rem; }
.your-invite-card .invite-state { align-self: start; padding: .35rem .55rem; border-radius: 999px; background: #fff0db; color: #8b4c20; font-size: .7rem; font-weight: 900; }
.your-invite-card .invite-state.is-new { background: #b3262d; color: #fff; }
.invite-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .8rem; }
.invite-card-actions button { min-height: 48px; border: 0; border-radius: 11px; font-weight: 900; }
.invite-card-actions .yes { background: #267048; color: #fff; }
.invite-card-actions .no { background: #fff0dd; color: #743d2f; }
.your-invite-card.is-answered { opacity: .75; }
.decline-reason { margin: 1rem 0; padding: 1rem; border: 1px solid #decbb7; border-radius: 18px; background: #fff; }
.decline-reason[hidden] { display: none; }
.decline-reason h2 { margin: 0 0 .25rem; font-size: 1rem; }
.decline-reason p { margin: 0; color: #74665e; font-size: .82rem; }
.chat-to-invites { width: calc(100% - 1.5rem); min-height: 54px; margin: .5rem .75rem .75rem; }
.chat-conclusion-actions { display: grid; grid-template-columns: 1.25fr 1fr; gap: .55rem; margin: .5rem .75rem .75rem; }
.chat-conclusion-actions button { min-height: 56px; }
.agreement-summary { padding: 1rem; border: 1px solid #decbb7; border-radius: 18px; background: #fff; }
.agreement-summary h2 { margin: 0 0 .8rem; }
.agreement-summary dl, .agreement-summary dd { margin: 0; }
.agreement-summary dl > div { padding: .6rem 0; border-top: 1px solid #eee1d3; }
.agreement-summary dt { color: #75665e; font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.mutual-confirmation { display: grid; grid-template-columns: repeat(2,1fr); gap: .7rem; margin: 1rem 0; }
.mutual-confirmation > div { display: grid; justify-items: center; gap: .25rem; padding: 1rem; border-radius: 16px; background: #fff; }
.mutual-confirmation span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #e9f7ee; color: #267048; font-size: 1.5rem; font-weight: 900; }
.mutual-confirmation small { color: #75665e; }
.demo-confirm { margin-top: .65rem; }
.agreement-feedback { padding: .8rem; border-radius: 12px; background: #fff4d6; text-align: center; }
.planned-state { background: #e9f7ee !important; color: #267048 !important; }
.planned-actions { display: grid; grid-template-columns: 1fr 1.4fr; gap: .55rem; margin-top: .8rem; }
.planned-actions button { min-height: 48px; border: 0; border-radius: 11px; background: #542a63; color: #fff; font-weight: 900; }
.planned-actions button:last-child { background: #fff0dd; color: #733e30; }
.reschedule-panel { margin-top: 1rem; padding: 1rem; border: 2px solid #d58b42; border-radius: 18px; background: #fffaf2; }
.reschedule-panel h2 { margin-top: 0; }
.reschedule-actions { display: grid; grid-template-columns: 1.4fr 1fr; gap: .6rem; }
.archive-search { display: grid; gap: .35rem; margin-bottom: 1rem; color: #5f4d44; font-weight: 800; }
.archive-search input { min-height: 48px; padding: .75rem; border: 1px solid #cdb9a5; border-radius: 12px; font: inherit; }
.archive-list { display: grid; gap: .8rem; }
.archive-person-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; padding: 1rem; border: 1px solid #decbb7; border-radius: 18px; background: #fff; box-shadow: 0 7px 20px rgba(60,40,30,.07); }
.archive-profile-photo { display: grid; place-items: center; width: 70px; height: 70px; overflow: hidden; border: 3px solid #fff; border-radius: 50%; background: linear-gradient(145deg,#ffe0bd,#e5dcff); box-shadow: 0 3px 12px rgba(60,40,30,.14); font-size: 2.25rem; }
.archive-person-copy { min-width: 0; }
.archive-person-copy h2 { margin: 0; font-size: 1rem; }
.archive-person-copy p { margin: .2rem 0; color: #706058; font-size: .8rem; }
.archive-person-copy .archive-last-message { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #453630; }
.archive-person-copy small { color: #8a7a72; }
.archive-person-card > button, .archive-card-actions button { min-height: 44px; padding: .6rem .75rem; border: 0; border-radius: 11px; background: #542a63; color: #fff; font-weight: 900; }
.archive-card-actions { display: grid; gap: .4rem; }
.archive-card-actions .remove-favorite { background: #fff0dd; color: #733e30; }
.archive-empty { padding: 1.5rem 1rem; border: 2px dashed #d8c5b0; border-radius: 18px; background: #fff; text-align: center; }
.archive-empty p { color: #74645b; }
.profile-completion { display: grid; gap: .65rem; padding: 1rem; border-radius: 16px; background: #fff4d6; }
.authenticity-slogan { display: grid; gap: .2rem; margin: 0 0 1rem; padding: 1rem; border: 0; border-left: 6px solid #542a63; border-radius: 0 16px 16px 0; background: linear-gradient(135deg,#f5edf7,#fff8e8); color: #542a63; }
.authenticity-slogan strong { font-size: 1.22rem; }
.authenticity-slogan span { color: #5f4f59; }
.profile-completion strong, .profile-completion small { display: block; }
.profile-completion small { margin-top: .2rem; color: #6f6058; }
.completion-track { height: 12px; overflow: hidden; border-radius: 999px; background: #ead9c4; }
.completion-track span { display: block; width: 25%; height: 100%; border-radius: inherit; background: #267048; transition: width .2s ease; }
.profile-mode-tabs { display: grid; grid-template-columns: repeat(2,1fr); gap: .6rem; margin: 1rem 0; }
.profile-mode-tabs button { min-height: 52px; border: 2px solid #d6c1aa; border-radius: 12px; background: #fff; color: #542a63; font-weight: 900; }
.profile-mode-tabs button.is-selected { border-color: #542a63; background: #542a63; color: #fff; }
.profile-editor { display: grid; gap: 1rem; }
.profile-photo-editor { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 1rem; padding: 1rem; border-radius: 18px; background: #fff; }
.profile-photo-editor h2, .profile-photo-editor p { margin: .2rem 0; }
.profile-photo-large { display: grid; place-items: center; width: 120px; height: 120px; overflow: hidden; border: 4px solid #fff; border-radius: 50%; background: linear-gradient(145deg,#ffe0bd,#e5dcff); box-shadow: 0 6px 18px rgba(60,40,30,.15); }
.profile-photo-large img { width: 100%; height: 100%; object-fit: cover; }
.profile-photo-large span { font-size: 4.4rem; }
.photo-upload { display: inline-grid; place-items: center; margin-top: .55rem; cursor: pointer; }
.profile-form-grid textarea { width: 100%; padding: .75rem; border: 1px solid #cdb9a5; border-radius: 12px; font: inherit; resize: vertical; }
.visibility-select { display: grid; gap: .3rem; margin-top: .65rem; color: #66564e; font-size: .76rem; font-weight: 800; }
.visibility-select select { min-height: 42px; padding: .55rem; border: 1px solid #ccb9a5; border-radius: 10px; background: #fff; }
.optional-profile-fields { display: grid; gap: .75rem; }
.optional-profile-fields .section-heading { margin-bottom: 0; }
.profile-field-card { display: grid; grid-template-columns: minmax(0,1fr) minmax(180px,.42fr); gap: .7rem; align-items: end; padding: .85rem; border: 1px solid #decbb7; border-radius: 15px; background: #fff; }
.profile-field-card label { display: grid; gap: .35rem; font-weight: 800; }
.profile-field-card input, .profile-field-card textarea, .profile-field-card select { width: 100%; min-height: 44px; padding: .7rem; border: 1px solid #cdb9a5; border-radius: 11px; background: #fff; font: inherit; }
.profile-field-card textarea { resize: vertical; }
.profile-field-card > select { background: #fff8ee; color: #5c4840; font-size: .78rem; font-weight: 800; }
.profile-field-card.sensitive-field { border-color: #d58b42; background: #fffaf2; }
.photo-book-editor { padding: 1rem; border: 1px solid #decbb7; border-radius: 18px; background: #fff; }
.photo-book-editor .section-heading { align-items: center; margin-bottom: .7rem; }
.photo-book-editor h2, .photo-book-editor p { margin: .15rem 0; }
.photo-safety-note { margin-bottom: .8rem; padding: .65rem; border-radius: 10px; background: #fff4d6; color: #665449; font-size: .76rem; }
.photo-book-motto { margin: 0 0 .7rem; padding: .65rem; border-radius: 10px; background: #f5edf7; color: #542a63; font-size: .8rem; font-weight: 800; text-align: center; }
.photo-book-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; }
.photo-book-card, .preview-photo-book figure { position: relative; display: grid; gap: .4rem; margin: 0; padding: .55rem; border: 1px solid #decbb7; border-radius: 14px; background: #fffaf2; }
.photo-book-card img, .preview-photo-book img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 10px; }
.photo-book-card input, .photo-book-card select { min-width: 0; width: 100%; padding: .5rem; border: 1px solid #cdb9a5; border-radius: 8px; background: #fff; font-size: .72rem; }
.photo-book-card button { min-height: 36px; border: 0; border-radius: 8px; background: #fff0dd; color: #733e30; font-size: .7rem; font-weight: 900; }
.preview-audience { display: grid; gap: .35rem; padding: .75rem; border-radius: 12px; background: #f5edf7; color: #542a63; font-weight: 900; }
.preview-audience select { min-height: 44px; padding: .6rem; border: 1px solid #bba8c0; border-radius: 10px; background: #fff; }
.preview-photo-book h3 { margin-bottom: .55rem; }
.preview-photo-book figure figcaption { color: #64534b; font-size: .75rem; }
.photo-authenticity-badge { display: block; width: fit-content; max-width: 120px; margin: .35rem auto 0; padding: .25rem .4rem; border-radius: 999px; background: #542a63; color: #fff; font-size: .58rem; font-weight: 900; text-align: center; }
.photo-authenticity-badge[hidden] { display: none; }
.moments-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; margin-bottom: 1rem; }
.moments-summary.four-items { grid-template-columns: repeat(4,1fr); }
.moments-summary > div { display: grid; justify-items: center; gap: .15rem; padding: .85rem .4rem; border-radius: 14px; background: #fff; box-shadow: 0 5px 16px rgba(60,40,30,.07); }
.moments-summary strong { color: #542a63; font-size: 1.4rem; }
.moments-summary span { color: #706058; font-size: .72rem; font-weight: 800; }
.moments-tabs { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; margin-bottom: 1rem; }
.moments-tabs.four-tabs { grid-template-columns: repeat(4,1fr); }
.moments-tabs button { min-height: 50px; border: 2px solid #d6c1aa; border-radius: 11px; background: #fff; color: #542a63; font-size: .75rem; font-weight: 900; }
.moments-tabs button.is-selected { border-color: #542a63; background: #542a63; color: #fff; }
.moments-list { display: grid; gap: .8rem; }
.moment-dashboard-card { padding: 1rem; border: 1px solid #decbb7; border-radius: 18px; background: #fff; box-shadow: 0 7px 20px rgba(60,40,30,.07); }
.moment-dashboard-card header { display: flex; justify-content: space-between; gap: .7rem; }
.moment-dashboard-card h2, .moment-dashboard-card p { margin: .2rem 0; }
.moment-dashboard-card header span { align-self: start; padding: .35rem .5rem; border-radius: 999px; background: #fff0dd; color: #733e30; font-size: .65rem; font-weight: 900; }
.moment-log { padding: .55rem; border-radius: 9px; background: #fff8ee; color: #68574f; font-size: .75rem; }
.moment-dashboard-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: .45rem; margin-top: .8rem; }
.moment-dashboard-actions button { min-height: 44px; border: 0; border-radius: 10px; background: #542a63; color: #fff; font-size: .72rem; font-weight: 900; }
.moment-dashboard-actions button:nth-child(2) { background: #fff0dd; color: #733e30; }
.moment-dashboard-actions .danger { background: #fff; color: #a3262e; border: 1px solid #d9a8aa; }
.moment-dashboard-actions.history-actions { grid-template-columns: repeat(4,1fr); }
.moment-outcome.vissuto { background: #e9f7ee !important; color: #267048 !important; }
.moment-outcome.annullato { background: #f1eee9 !important; color: #655b54 !important; }
.moment-outcome.non-realizzato { background: #fff0dd !important; color: #8b4c20 !important; }
.private-note-preview { padding: .6rem; border-radius: 10px; background: #f5edf7; color: #542a63; font-size: .78rem; }
.moment-change-panel { margin-top: 1rem; padding: 1rem; border: 2px solid #d58b42; border-radius: 18px; background: #fffaf2; }
.moment-change-panel h2 { margin-top: 0; }
.moment-change-panel[hidden] { display: none; }
.private-note-panel { margin-top: 1rem; padding: 1rem; border: 2px solid #bba8c0; border-radius: 18px; background: #fdf9ff; }
.private-note-panel[hidden] { display: none; }
.private-note-panel h2 { margin-top: 0; }
.private-note-panel textarea { width: 100%; margin-bottom: .7rem; padding: .75rem; border: 1px solid #bba8c0; border-radius: 11px; font: inherit; resize: vertical; }
.events-tabs { display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-bottom:1rem}.events-tabs button{min-height:50px;border:2px solid #d6c1aa;border-radius:11px;background:#fff;color:#542a63;font-weight:900}.events-tabs button.is-selected{border-color:#542a63;background:#542a63;color:#fff}.my-events-list{display:grid;gap:.85rem}.event-booking-card{padding:1rem;border:1px solid #decbb7;border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(60,40,30,.07)}.event-booking-card header{display:flex;justify-content:space-between;gap:.7rem}.event-booking-card h2,.event-booking-card p{margin:.2rem 0}.event-booking-card header>span{align-self:start;padding:.35rem .5rem;border-radius:999px;background:#fff0dd;color:#733e30;font-size:.64rem;font-weight:900}.event-cost-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:.8rem 0}.event-cost-strip span{display:grid;gap:.15rem;padding:.55rem;border-radius:10px;background:#fff8ee;color:#6e5c52;font-size:.7rem}.event-cost-strip strong{color:#542a63;font-size:.9rem}.event-detail-panel{margin-top:1rem;padding:1rem;border:2px solid #bba8c0;border-radius:18px;background:#fff}.event-detail-panel[hidden]{display:none}.event-detail-list{margin:0}.event-detail-list>div{padding:.65rem 0;border-top:1px solid #eee1d3}.event-detail-list dt{color:#75665e;font-size:.7rem;font-weight:900;text-transform:uppercase}.event-detail-list dd{margin:.2rem 0 0}.event-options{padding:.8rem;border-radius:12px;background:#fff8ee}.event-options label{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;padding:.55rem 0;border-top:1px solid #ead9c4}.event-total{display:flex;justify-content:space-between;margin:.8rem 0;padding:1rem;border-radius:12px;background:#542a63;color:#fff}.event-total strong{font-size:1.3rem}.event-deadlines{padding:.8rem;border-radius:12px;background:#fff4d6}.event-user-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:.8rem}.event-user-actions button{min-height:46px;border:0;border-radius:10px;background:#542a63;color:#fff;font-weight:900}.event-user-actions .danger{background:#fff0dd;color:#a3262e}.event-user-actions button:disabled{opacity:.45}
.moment-change-actions { display: grid; grid-template-columns: 1.3fr 1fr; gap: .6rem; }
.profile-visibility-choice { display: flex; gap: .55rem; align-items: center; padding: .8rem; border-radius: 12px; background: #fff; }
.verification-card { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .8rem; padding: 1rem; border: 1px solid #decbb7; border-radius: 16px; background: #fff; }
.verification-card p { margin: .25rem 0 0; color: #71625a; font-size: .78rem; }
.verification-card button { min-height: 44px; border: 0; border-radius: 11px; background: #fff0dd; color: #733e30; font-weight: 900; }
.public-profile-preview { display: grid; gap: 1rem; padding: 1.1rem; border: 1px solid #decbb7; border-radius: 22px; background: #fff; box-shadow: 0 10px 28px rgba(60,40,30,.1); }
.public-profile-preview[hidden] { display: none; }
.public-profile-head { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 1rem; }
.public-profile-head h2, .public-profile-head p { margin: .2rem 0; }
.unverified-badge { display: inline-block; padding: .35rem .55rem; border-radius: 999px; background: #f1eee9; color: #6b6058; font-size: .7rem; font-weight: 900; }
.profile-area-line { margin: 0; color: #6f6058; font-weight: 800; }
.profile-bio { margin: 0; padding: .85rem; border-radius: 12px; background: #fff8ee; line-height: 1.5; }
.profile-public-details { margin: 0; }
.profile-public-details > div { padding: .7rem 0; border-top: 1px solid #eee1d3; }
.profile-public-details dt { color: #75665e; font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.profile-public-details dd { margin: .2rem 0 0; }
.invite-card-open { width: 100%; min-height: 46px; margin-top: .65rem; border: 2px solid #542a63; border-radius: 11px; background: #fff; color: #542a63; font-weight: 900; }
.invite-detail-profile { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .9rem; padding: 1.2rem 1rem; border-radius: 18px; background: #fff; }
.detail-avatar { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 50%; background: #ffe0bd; font-size: 2.5rem; }
.invite-detail-profile h1 { margin: 0; font-size: 1.35rem; }
.invite-detail-profile p { margin: .15rem 0; color: #71625a; }
.invite-detail-profile span:last-child { display: inline-block; margin-top: .25rem; padding: .3rem .5rem; border-radius: 999px; background: #e9f7ee; color: #267048; font-size: .72rem; font-weight: 900; }
.invite-detail-card { margin: 1rem 0; padding: 1rem; border: 1px solid #decbb7; border-radius: 18px; background: #fff; }
.invite-detail-card h2 { margin: .2rem 0 .8rem; font-size: 1.6rem; }
.invite-detail-card dl { margin: 0; }
.invite-detail-card dl > div { padding: .65rem 0; border-top: 1px solid #eee1d3; }
.invite-detail-card dt { color: #76675f; font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.invite-detail-card dd { margin: .2rem 0 0; color: #3f3029; }
.detail-main-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; margin: 1rem 0; }
.detail-main-actions button { min-height: 58px; border: 0; border-radius: 12px; font-weight: 900; }
.detail-main-actions .yes { background: #267048; color: #fff; }
.detail-main-actions .talk { background: #542a63; color: #fff; }
.detail-main-actions .no { background: #fff0dd; color: #733e30; }
.detail-safety-actions { display: flex; justify-content: flex-end; gap: .45rem; margin: .6rem 0 1rem; }
.detail-safety-actions button { padding: .4rem .6rem; border: 1px solid #ccb8a4; border-radius: 9px; background: transparent; color: #765e54; font-size: .7rem; }
@media (max-width: 620px) { .detail-main-actions { grid-template-columns: 1fr; } .invites-toolbar.three-tabs, .chat-conclusion-actions { grid-template-columns: 1fr; } }
@media (max-width: 440px) { .emoji-grid { grid-template-columns: repeat(6,1fr); } }
@media (max-width: 520px) { .archive-person-card { grid-template-columns: auto 1fr; } .archive-person-card > button, .archive-card-actions { grid-column: 1 / -1; width: 100%; } }
@media (max-width: 520px) { .profile-photo-editor, .public-profile-head, .verification-card { grid-template-columns: 1fr; justify-items: center; text-align: center; } .profile-mode-tabs { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .profile-field-card { grid-template-columns: 1fr; } .photo-book-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) { .moments-summary.four-items { grid-template-columns: repeat(2,1fr); } .moments-tabs.four-tabs { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px) { .moments-tabs, .moment-dashboard-actions, .moment-dashboard-actions.history-actions { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .carried-activity { grid-template-columns: auto 1fr; } .carried-activity button { grid-column: 1 / -1; width: 100%; } }
@media (max-width: 620px) { .moment-choice-field { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .review-card dl > div { grid-template-columns: 1fr; gap: .25rem; } .review-actions { grid-template-columns: 1fr; } }
@media (max-width: 620px) {
  .start-chat-card { grid-template-columns: auto 1fr; }
  .start-chat-card button { grid-column: 1 / -1; width: 100%; }
  .person-search-row { grid-template-columns: 1fr; }
  .person-search-row button { width: 100%; }
  .decide-together { grid-template-columns: 1fr; }
  .decide-together > p { grid-column: auto; }
}
@media (max-width: 620px) {
  .path-choice-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .wide { grid-column: auto; }
  .person-result { grid-template-columns: auto 1fr; }
  .person-result > button { grid-column: 1 / -1; width: 100%; }
}
.official-events-grid{display:grid;gap:1rem}.official-event-card{overflow:hidden;border:1px solid #decbb7;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(60,40,30,.09)}.event-card-cover,.event-gallery-visual{position:relative;display:grid;place-items:center;min-height:155px;background:linear-gradient(135deg,#ffd6a5,#9d5c63);font-size:4rem}.event-card-cover small,.event-gallery-visual b{position:absolute;left:.6rem;bottom:.6rem;padding:.35rem .5rem;border-radius:8px;background:rgba(255,255,255,.93);color:#4d344f;font-size:.62rem;font-weight:900}.event-card-body{padding:1rem}.event-card-body h2,.event-card-body p{margin:.35rem 0}.event-card-status{display:inline-block;padding:.35rem .55rem;border-radius:999px;font-size:.68rem;font-weight:900}.event-card-status.available{background:#e9f7ee;color:#267048}.event-card-status.sold-out{background:#fff0dd;color:#8b4c20}.event-photo-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-bottom:1rem}.event-photo-gallery figure{margin:0;overflow:hidden;border-radius:14px;background:#fff;border:1px solid #decbb7}.event-gallery-visual{min-height:120px;font-size:3rem}.event-photo-gallery figcaption{padding:.65rem;color:#66564e;font-size:.72rem;line-height:1.35}.sunset{background:linear-gradient(135deg,#f7b267,#8d5a97)}.dinner,.food{background:linear-gradient(135deg,#ffd8a8,#c97a63)}.venue,.village{background:linear-gradient(135deg,#d9c7a2,#7fa5a0)}.walk{background:linear-gradient(135deg,#d7e9b9,#8ab17d)}.available-event-facts,.booking-options,.booking-conditions{margin:.9rem 0;padding:1rem;border:1px solid #decbb7;border-radius:16px;background:#fff}.available-event-facts dl{margin:0}.available-event-facts dl>div{padding:.6rem 0;border-top:1px solid #eee1d3}.available-event-facts dt{color:#75665e;font-size:.7rem;font-weight:900;text-transform:uppercase}.available-event-facts dd{margin:.2rem 0 0}.booking-options h2,.booking-options p{margin:.2rem 0 .7rem}.booking-options label{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;padding:.7rem 0;border-top:1px solid #eee1d3}.booking-total{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-radius:14px;background:#542a63;color:#fff}.booking-total strong{font-size:1.35rem}.booking-conditions>label{display:grid;grid-template-columns:auto 1fr;gap:.6rem;font-weight:800}.force-majeure-notice{margin-top:.8rem;padding:.8rem;border-left:4px solid #d58b42;border-radius:10px;background:#fff8ee}.force-majeure-notice p{margin:.35rem 0;line-height:1.45}.force-majeure-notice small{color:#7b5b42;font-weight:800}.booking-payment-choice{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;margin:.8rem 0}.booking-payment-choice[hidden]{display:none}.booking-payment-choice button{min-height:58px;border:2px solid #542a63;border-radius:12px;background:#fff;color:#542a63;font-weight:900}.booking-payment-choice button.is-selected{background:#542a63;color:#fff}.button-block:disabled{opacity:.45}
@media (max-width:620px){.event-photo-gallery,.booking-payment-choice{grid-template-columns:1fr}}
.header-actions{display:flex;align-items:center;gap:.45rem}.notification-bell{position:relative;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:#fff0dd;font-size:1.15rem}.notification-bell span{position:absolute;right:-2px;top:-3px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 4px;border:2px solid #fff;border-radius:999px;background:#a3262e;color:#fff;font-size:.65rem;font-weight:900}.notifications-summary{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem;padding:1rem;border-radius:16px;background:#542a63;color:#fff}.notifications-summary div{display:grid}.notifications-summary strong{font-size:1.8rem}.notifications-summary span{font-size:.75rem}.notifications-summary button{min-height:44px;border:1px solid #fff;border-radius:10px;background:transparent;color:#fff;font-weight:900}.notification-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-bottom:.7rem}.notification-tabs button{min-height:48px;border:2px solid #d6c1aa;border-radius:11px;background:#fff;color:#542a63;font-size:.7rem;font-weight:900}.notification-tabs button.is-selected{border-color:#542a63;background:#542a63;color:#fff}.unread-notification-toggle{display:flex;align-items:center;gap:.55rem;margin:.6rem 0 1rem;padding:.75rem;border-radius:11px;background:#fff8ee;font-weight:800}.notifications-list{display:grid;gap:.75rem}.notification-card{display:grid;grid-template-columns:auto 1fr;gap:.8rem;padding:1rem;border:1px solid #decbb7;border-radius:17px;background:#fff;opacity:.82}.notification-card.is-unread{border-left:6px solid #d58b42;opacity:1;box-shadow:0 7px 20px rgba(60,40,30,.08)}.notification-card.is-official{background:linear-gradient(135deg,#fff,#fbf7ff)}.notification-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff0dd;font-size:1.4rem}.notification-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.notification-meta time{color:#76675f;font-size:.7rem}.official-badge,.essential-badge{padding:.25rem .4rem;border-radius:999px;background:#542a63;color:#fff;font-size:.58rem;font-weight:900}.essential-badge{background:#fff0dd;color:#8b4c20}.notification-card h2,.notification-card p{margin:.3rem 0}.notification-card h2{font-size:1rem}.notification-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}.notification-actions button{min-height:42px;padding:.5rem .7rem;border:0;border-radius:9px;background:#542a63;color:#fff;font-size:.68rem;font-weight:900}.notification-actions button:last-child{border:1px solid #bba8c0;background:#fff;color:#542a63}.notification-preferences{margin-top:1rem;padding:1rem;border:1px solid #decbb7;border-radius:18px;background:#fff}.notification-preferences h2,.notification-preferences p{margin:.25rem 0 .75rem}.notification-preferences>label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.8rem;padding:.75rem 0;border-top:1px solid #eee1d3}.notification-preferences label span{display:grid}.notification-preferences label small{color:#76675f}.notification-preferences input{width:22px;height:22px}.official-message-explanation{padding:.8rem;border-radius:12px;background:#f5edf7;line-height:1.45}.official-message-explanation span{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:.3rem;border-radius:50%;background:#542a63;color:#fff;font-weight:900}
@media(max-width:700px){.notification-tabs{grid-template-columns:repeat(2,1fr)}.online-pill{display:none}}@media(max-width:460px){.notifications-summary{align-items:stretch;flex-direction:column}.notification-card{grid-template-columns:1fr}.notification-icon{width:42px;height:42px}}
.settings-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-bottom:1rem}.settings-tabs button{min-height:52px;border:2px solid #d6c1aa;border-radius:11px;background:#fff;color:#542a63;font-size:.7rem;font-weight:900}.settings-tabs button.is-selected{border-color:#542a63;background:#542a63;color:#fff}.settings-panel{display:grid;gap:.9rem}.settings-panel[hidden]{display:none}.settings-card,.respect-card,.danger-zone{padding:1rem;border:1px solid #decbb7;border-radius:18px;background:#fff}.settings-card h2,.settings-card p,.respect-card h2,.respect-card p,.danger-zone h2,.danger-zone p{margin:.25rem 0 .75rem}.settings-card>label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.8rem;padding:.8rem 0;border-top:1px solid #eee1d3}.settings-card label span{display:grid}.settings-card label small{color:#76675f}.settings-card input[type="checkbox"]{width:23px;height:23px}.settings-note{padding:.75rem;border-radius:11px;background:#fff8ee;color:#66564e;font-size:.76rem;line-height:1.45}.respect-card{border:2px solid #d58b42;background:#fffaf2}.respect-card h2{color:#542a63}.respect-card summary,.settings-card summary{cursor:pointer;padding:.75rem;border-radius:10px;background:#f5edf7;color:#542a63;font-weight:900}.respect-card li{margin:.55rem 0;line-height:1.4}.settings-heading{display:flex;justify-content:space-between;align-items:start;gap:.7rem}.settings-heading span{display:grid;place-items:center;min-width:34px;height:34px;border-radius:50%;background:#542a63;color:#fff;font-weight:900}.blocked-person-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.75rem 0;border-top:1px solid #eee1d3}.blocked-person-row>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#ffe0bd;font-size:1.35rem}.blocked-person-row div{display:grid}.blocked-person-row small{color:#76675f}.blocked-person-row button,.settings-action{min-height:44px;padding:.6rem .8rem;border:2px solid #542a63;border-radius:10px;background:#fff;color:#542a63;font-weight:900}.report-status-list article,.support-request-row{padding:.8rem;border-radius:12px;background:#fff8ee}.report-status-list article div,.support-request-row div{display:grid}.report-status-list small,.support-request-row small{color:#76675f}.report-status-list span,.support-request-row>span{display:inline-block;margin:.45rem 0;padding:.3rem .45rem;border-radius:999px;background:#fff0dd;color:#8b4c20;font-size:.65rem;font-weight:900}.report-status-list p,.support-request-row p{font-size:.75rem;line-height:1.4}.support-form label{display:grid;gap:.35rem;margin:.7rem 0}.support-form select,.support-form textarea{width:100%;padding:.75rem;border:1px solid #bba8c0;border-radius:11px;background:#fff;font:inherit}.support-request-row+ .support-request-row{margin-top:.6rem}.danger-zone{border:2px solid #d9a8aa;background:#fff9f8}.danger-zone>button,.danger-zone div button{min-height:46px;margin:.25rem;padding:.6rem .8rem;border:1px solid #a3262e;border-radius:10px;background:#fff;color:#a3262e;font-weight:900}.danger-zone div{margin-top:.7rem;padding:.8rem;border-radius:12px;background:#fff}.danger-zone div[hidden]{display:none}.danger-zone div label{display:flex;gap:.6rem;line-height:1.4}.danger-zone div input{width:22px;height:22px}.danger-zone button:disabled{opacity:.45}
@media(max-width:650px){.settings-tabs{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.blocked-person-row{grid-template-columns:auto 1fr}.blocked-person-row button{grid-column:1/-1;width:100%}}
.account-access-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-bottom:1rem}.account-access-tabs button{min-height:52px;border:2px solid #d6c1aa;border-radius:11px;background:#fff;color:#542a63;font-size:.7rem;font-weight:900}.account-access-tabs button.is-selected{border-color:#542a63;background:#542a63;color:#fff}.account-access-panel[hidden],.auth-card[hidden]{display:none}.auth-card,.identity-access-card,.respect-first{padding:1rem;border:1px solid #decbb7;border-radius:18px;background:#fff}.auth-card h2,.auth-card p,.identity-access-card h2,.identity-access-card p{margin:.25rem 0 .75rem}.auth-card>label,.registration-grid label{display:grid;gap:.35rem;margin:.7rem 0}.auth-card input:not([type="checkbox"]),.registration-grid input{width:100%;min-height:46px;padding:.7rem;border:1px solid #bba8c0;border-radius:10px;font:inherit}.password-field{display:grid;grid-template-columns:1fr auto}.password-field input{border-radius:10px 0 0 10px!important}.password-field button{padding:.5rem .7rem;border:1px solid #542a63;border-radius:0 10px 10px 0;background:#542a63;color:#fff;font-size:.68rem;font-weight:900}.inline-auth-choice{display:flex!important;align-items:center;gap:.5rem}.inline-auth-choice input,.mandatory-consents input,.optional-consents input{width:22px;height:22px}.auth-text-action{display:block;margin:.8rem auto 0;border:0;background:transparent;color:#542a63;font-weight:900;text-decoration:underline}.respect-first{margin-bottom:.8rem;border:2px solid #d58b42;background:#fffaf2}.respect-first strong{color:#542a63;font-size:1.05rem}.respect-first p{line-height:1.45}.respect-first button{min-height:42px;border:1px solid #542a63;border-radius:9px;background:#fff;color:#542a63;font-weight:900}.registration-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 .7rem}.registration-grid .wide{grid-column:1/-1}.registration-grid small{color:#76675f}.mandatory-consents,.optional-consents{margin:.8rem 0;padding:.8rem;border-radius:12px;background:#fff8ee}.optional-consents{background:#f5edf7}.mandatory-consents label,.optional-consents label{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.55rem;margin:.55rem 0;line-height:1.4}.registration-feedback{min-height:24px;padding:.65rem;border-radius:10px}.registration-feedback:empty{display:none}.registration-feedback.is-error{background:#fff0f0;color:#a3262e;font-weight:800}.registration-feedback.is-success{background:#e9f7ee;color:#267048;font-weight:800}.identity-access-card{display:grid;gap:.7rem}.identity-shield{display:grid;place-items:center;width:70px;height:70px;border-radius:50%;background:#542a63;color:#fff;font-size:2rem;font-weight:900}.identity-access-card ol{padding-left:1.4rem}.identity-access-card li{margin:.55rem 0}.session-list{display:grid;gap:.6rem;margin:.8rem 0}.session-list article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.8rem;border-radius:12px;background:#fff8ee}.session-list article>span{font-size:1.45rem}.session-list article div{display:grid}.session-list article small{color:#76675f}.session-list article b{padding:.3rem .45rem;border-radius:999px;background:#e9f7ee;color:#267048;font-size:.62rem}.session-list article button{min-height:40px;border:1px solid #a3262e;border-radius:9px;background:#fff;color:#a3262e;font-weight:900}
@media(max-width:620px){.account-access-tabs,.registration-grid{grid-template-columns:repeat(2,1fr)}.registration-grid .wide{grid-column:1/-1}}@media(max-width:460px){.session-list article{grid-template-columns:auto 1fr}.session-list article button,.session-list article b{grid-column:1/-1;text-align:center}}
.digital-event-ticket{margin-bottom:1rem;padding:1rem;border:2px solid #542a63;border-radius:20px;background:linear-gradient(145deg,#fff,#f7effa);box-shadow:0 10px 28px rgba(60,40,70,.12)}.official-ticket-label{display:inline-block;padding:.35rem .55rem;border-radius:999px;background:#542a63;color:#fff;font-size:.65rem;font-weight:900}.ticket-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;margin:.8rem 0}.ticket-head h3,.ticket-head p{margin:.25rem 0}.demo-qr{display:grid;grid-template-columns:repeat(3,16px);grid-template-rows:repeat(3,16px);gap:3px;padding:8px;border:3px solid #3c123f;background:#fff}.demo-qr span{background:#3c123f}.demo-qr span:nth-child(2),.demo-qr span:nth-child(4),.demo-qr span:nth-child(8){background:#fff}.digital-event-ticket dl{margin:0}.digital-event-ticket dl>div{padding:.55rem 0;border-top:1px dashed #bba8c0}.digital-event-ticket dt{color:#75665e;font-size:.68rem;font-weight:900;text-transform:uppercase}.digital-event-ticket dd{margin:.15rem 0 0}.ticket-safety{padding:.65rem;border-radius:10px;background:#fff0dd;color:#733e30;font-size:.75rem;font-weight:800}.event-service-request,.event-review{margin-top:.8rem;padding:1rem;border:2px solid #d58b42;border-radius:16px;background:#fffaf2}.event-service-request[hidden]{display:none}.event-service-request h3,.event-service-request p,.event-review h3,.event-review p{margin:.25rem 0 .7rem}.event-service-request label,.event-review label{display:grid;gap:.35rem;margin:.65rem 0}.event-service-request select,.event-service-request textarea,.event-review textarea{width:100%;padding:.7rem;border:1px solid #bba8c0;border-radius:10px;background:#fff;font:inherit}.event-service-request .request-confirm{display:flex;align-items:start;gap:.55rem}.event-service-request .request-confirm input{width:22px;height:22px}.event-service-request>div{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.event-service-request>div button{min-height:45px;border:0;border-radius:10px;background:#542a63;color:#fff;font-weight:900}.event-service-request>div button:last-child{border:1px solid #542a63;background:#fff;color:#542a63}.rating-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem;margin:.7rem 0}.rating-buttons button{min-height:48px;border:2px solid #d6c1aa;border-radius:10px;background:#fff;color:#542a63;font-size:1rem;font-weight:900}.rating-buttons button.is-selected{border-color:#542a63;background:#542a63;color:#fff}
.event-request-types{display:grid;gap:.45rem;margin:.7rem 0;padding:.7rem;border:1px solid #d6c1aa;border-radius:12px;background:#fff}.event-request-types legend{padding:0 .35rem;color:#542a63;font-weight:900}.event-request-types label{display:flex;align-items:center;gap:.55rem;margin:0;padding:.55rem;border:1px solid #eadccf;border-radius:9px}.event-request-types input{width:20px;height:20px;flex:0 0 auto}
@media(max-width:480px){.ticket-head{grid-template-columns:1fr}.demo-qr{justify-self:start}.event-service-request>div{grid-template-columns:1fr}}

/* BLOCCO 18 — INDICATORE COLLEGAMENTO ADMIN */
.admin-bridge-badge{position:fixed;right:14px;bottom:14px;z-index:9999;display:grid;gap:.12rem;max-width:310px;padding:.7rem .85rem;border-radius:12px;background:#fff6d8;border:1px solid #d9bd65;box-shadow:0 8px 25px rgba(0,0,0,.14);font-size:.68rem}
.admin-bridge-badge strong{color:#5a3c73}.admin-bridge-badge span{color:#6a604e}
@media(max-width:650px){.admin-bridge-badge{left:10px;right:10px;bottom:10px;max-width:none}}

/* BLOCCO 21 — STATO CONFIGURAZIONE ADMIN */
[data-admin-disabled="true"]{opacity:.48!important;filter:grayscale(.2);cursor:not-allowed!important}
.admin-config-note{margin:.55rem 0 0;padding:.5rem .65rem;border-radius:10px;background:#fff6d8;border:1px solid #ead487;color:#695a39;font-size:.67rem;font-weight:800}

/* BLOCCO 22 — STATO ACCOUNT ADMIN → APP */
.account-admin-test-card{max-width:560px;margin:2rem auto;padding:1.3rem;border:1px solid #ded4df;border-radius:18px;background:#fff;text-align:center;box-shadow:0 10px 30px rgba(68,42,75,.08)}
.account-admin-test-icon{font-size:2rem}.account-admin-test-card h1{margin:.45rem 0;color:#5a3c73}.account-admin-test-card>p{color:#6e6670;line-height:1.45}
.account-admin-status{display:inline-block;margin:.7rem 0;padding:.45rem .75rem;border-radius:999px;font-weight:950;font-size:.75rem}
.account-admin-status[data-status="active"]{background:#e7f5eb;color:#2f7148}.account-admin-status[data-status="limited"]{background:#fff2cc;color:#8b6418}.account-admin-status[data-status="suspended"]{background:#ffe3ca;color:#9b541e}.account-admin-status[data-status="blocked"]{background:#ffe1e5;color:#a23344}

/* BLOCCO 24 — SEGNALAZIONE APP → ADMIN */
.report-modal label{display:grid;gap:.35rem;margin:.75rem 0;text-align:left}.report-modal label span{font-size:.68rem;font-weight:900;color:#5a3c73}
.report-modal select,.report-modal textarea{width:100%;box-sizing:border-box;border:1px solid #d9d0da;border-radius:10px;padding:.7rem;background:#fff;font:inherit}

/* BLOCCO 24 FIX — FINESTRA SEGNALAZIONE VISIBILE */
#reportInviteDialog{position:fixed;inset:0;z-index:12000;background:rgba(36,24,39,.62);padding:18px;align-items:center;justify-content:center}
#reportInviteDialog[hidden]{display:none!important}
#reportInviteDialog.is-open{display:flex!important}
#chatAssistanceDialog{position:fixed;inset:0;z-index:12000;background:rgba(36,24,39,.62);padding:18px;align-items:center;justify-content:center}
#chatAssistanceDialog[hidden]{display:none!important}
#chatAssistanceDialog.is-open{display:flex!important}
#chatAssistanceDialog .assistance-modal{display:block;width:min(520px,100%);max-height:88vh;overflow:auto;box-sizing:border-box;background:#fff;border:2px solid #6f4b82;border-radius:18px;padding:1.2rem;box-shadow:0 22px 60px rgba(0,0,0,.28);text-align:left}
#chatAssistanceDialog .assistance-modal h2{margin:.2rem 0 .45rem;color:#563768}
#chatAssistanceDialog .assistance-modal>p{color:#6c626d;line-height:1.45}
#chatAssistanceDialog label{display:grid;gap:.35rem;margin:.8rem 0;color:#563768;font-weight:900}
#chatAssistanceDialog select,#chatAssistanceDialog textarea{width:100%;box-sizing:border-box;padding:.75rem;border:1px solid #bba8c0;border-radius:11px;background:#fff;font:inherit}
#chatAssistanceDialog .modal-actions{display:flex;gap:.65rem;justify-content:flex-end;margin-top:1rem}
#chatAssistanceDialog .primary-action,#chatAssistanceDialog .secondary-action{border-radius:10px;padding:.65rem .85rem;font-weight:900;cursor:pointer}
#chatAssistanceDialog .primary-action{border:1px solid #5d3d70;background:#5d3d70;color:#fff}
#chatAssistanceDialog .primary-action:disabled{opacity:.55}
#chatAssistanceDialog .secondary-action{border:1px solid #cfc3d3;background:#fff;color:#5d3d70}
.assistance-form-error{padding:.65rem;border-radius:9px;background:#fff0f0;color:#a3262e!important;font-weight:900}
.assistance-form-error[hidden],.assistance-send-confirmation[hidden]{display:none!important}
.assistance-send-confirmation{margin-top:.8rem;padding:.8rem;border:2px solid #6caf82;border-radius:11px;background:#edf9f1;color:#267048}
.assistance-send-confirmation p{margin:.3rem 0 0}
@media(max-width:600px){#chatAssistanceDialog{padding:10px}#chatAssistanceDialog .modal-actions{flex-direction:column-reverse}#chatAssistanceDialog .modal-actions button{width:100%}}
#reportInviteDialog .report-modal{display:block;width:min(520px,100%);max-height:88vh;overflow:auto;box-sizing:border-box;background:#fff;border:2px solid #6f4b82;border-radius:18px;padding:1.2rem;box-shadow:0 22px 60px rgba(0,0,0,.28);text-align:left}
#reportInviteDialog .report-modal h2{margin:.2rem 0 .45rem;color:#563768}
#reportInviteDialog .report-modal>p{color:#6c626d;line-height:1.45}
#reportInviteDialog .modal-actions{display:flex;gap:.65rem;justify-content:flex-end;margin-top:1rem}
#reportInviteDialog .primary-action,#reportInviteDialog .secondary-action{border-radius:10px;padding:.65rem .85rem;font-weight:900;cursor:pointer}
#reportInviteDialog .primary-action{border:1px solid #5d3d70;background:#5d3d70;color:#fff}
#reportInviteDialog .secondary-action{border:1px solid #cfc3d3;background:#fff;color:#5d3d70}
@media(max-width:600px){#reportInviteDialog{padding:10px}#reportInviteDialog .modal-actions{flex-direction:column-reverse}#reportInviteDialog .modal-actions button{width:100%}}

/* BLOCCO 24 FIX — CONFERMA INVIO VISIBILE */
.report-send-confirmation{margin:.9rem 0 .25rem;padding:.8rem;border:1px solid #9bc8a7;border-radius:12px;background:#edf8f0;color:#2f6940}
.report-send-confirmation[hidden]{display:none!important}
.report-send-confirmation strong{display:block;font-size:.78rem}.report-send-confirmation p{margin:.25rem 0 0;font-size:.7rem;line-height:1.4}
#sendInviteReport:disabled{opacity:.72;cursor:default}

/* BLOCCO 43B.3.3 — COMPOSIZIONE CHAT AMPIA */
#chatComposer{display:grid!important;grid-template-columns:auto auto auto 1fr auto!important;align-items:end!important}
#chatComposer #chatInput{display:block!important;grid-column:1/-1!important;grid-row:1!important;width:100%!important;min-width:100%!important;min-height:112px!important;max-height:220px!important;box-sizing:border-box!important;font-size:1rem!important;line-height:1.5!important}
#chatComposer .my-avatar-button{grid-column:1!important;grid-row:2!important}
#chatComposer .chat-attach{grid-column:2!important;grid-row:2!important}
#chatComposer .emoji-toggle{grid-column:3!important;grid-row:2!important}
#chatComposer .chat-send{grid-column:5!important;grid-row:2!important}
@media(max-width:480px){#chatComposer #chatInput{min-height:104px!important}#chatComposer .chat-send{padding:0 .75rem}}

/* BLOCCO 44 — RICERCA, PROFILI, NAVIGAZIONE E PARTECIPAZIONE */
body[data-route="vivilo"] .site-header,body[data-route="chat"] .site-header{display:grid}
body:not([data-route="home"]):not([data-route="cuore"]):not([data-route="accesso"]):not([data-route="inviti"]) .header-brand{visibility:hidden}
body:not([data-route="home"]) .site-header{grid-template-columns:44px 1fr auto}
body:not([data-route="home"]) .site-header .header-actions{grid-column:3}
.person-result{display:grid!important;grid-template-columns:1fr!important;gap:0!important;padding:.35rem!important;position:relative}
.person-result .person-summary-main{background:#fffaf3!important;color:#352b31!important;border:1px solid #eadfd3!important;border-radius:13px!important}.person-result .person-summary-main:hover,.person-result .person-summary-main:focus-visible{background:#f8f0e7!important;color:#2f2630!important;box-shadow:0 0 0 3px rgba(84,42,99,.12)}.person-result .person-summary-main .nickname,.person-result .person-summary-main .affinity-reason{color:#665a62!important}.person-result .person-summary-main .compatibility{color:#542a63!important}
.person-summary-main{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:.55rem;width:100%;min-height:68px;padding:.45rem 2.35rem .45rem .35rem;border:0;background:transparent;color:inherit;text-align:left}.person-summary-main .avatar-demo{width:44px;height:44px;font-size:1.3rem}.person-copy{display:grid;gap:.12rem}.person-copy>*{margin:0!important}.person-name-line{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.verified-mini{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#e8f6ed;color:#267048;font-weight:900}.result-tags{display:flex;flex-wrap:wrap;gap:.25rem}.result-tags small{padding:.12rem .32rem;border-radius:999px;background:#fff0dd}.compatibility{color:#542a63;font-weight:950}.online-state{font-size:.62rem;font-weight:900;white-space:nowrap}.is-online{color:#267048}.is-offline{color:#786f76}.result-summary-side{display:grid;justify-items:end;gap:.08rem;font-size:.64rem}.result-summary-side .compatibility{font-size:.9rem}.favorite-person{z-index:2}.filter-help,.filter-panel details p{color:#6d626c;font-size:.76rem;line-height:1.45}.location-consent{width:100%;min-height:46px;margin:.6rem 0;border:2px solid #542a63;border-radius:11px;background:#fff;color:#542a63;font-weight:900}.advanced-search{margin:.6rem 0;padding:.7rem;border:1px solid #decbb7;border-radius:12px;background:#fff}.advanced-search summary{cursor:pointer;color:#542a63;font-weight:900}
.person-profile-hero{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;padding:1rem;border-radius:18px;background:linear-gradient(135deg,#f5edf7,#fff0dd)}.person-profile-avatar{display:grid;place-items:center;width:82px;height:82px;border-radius:50%;background:#fff;font-size:2.4rem}.person-profile-hero h1,.person-profile-hero p{margin:.2rem 0}.status-pill{display:inline-block;padding:.3rem .5rem;border-radius:999px;background:#fff;font-size:.7rem;font-weight:900}.person-profile-affinity,.person-profile-details,.profile-demo-gallery,.participation-rules,.participation-benefits,.participation-transparency{margin:.8rem 0;padding:1rem;border:1px solid #decbb7;border-radius:16px;background:#fff}.person-profile-affinity strong{font-size:1.2rem;color:#542a63}.person-profile-affinity p{margin:.35rem 0}.person-profile-details{margin:0}.person-profile-details>div{padding:.65rem 0;border-top:1px solid #eee1d3}.person-profile-details>div:first-child{border-top:0}.person-profile-details dt{color:#75665e;font-size:.67rem;font-weight:900;text-transform:uppercase}.person-profile-details dd{margin:.2rem 0 0}.profile-demo-gallery div{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.profile-demo-gallery div span{display:grid;place-items:center;aspect-ratio:1;border-radius:12px;background:linear-gradient(145deg,#f5edf7,#fff0dd);color:#6d626c;font-size:.7rem}.person-profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.person-profile-actions button:first-child{grid-column:1/-1}
.chat-language-tools{display:grid;gap:.25rem;margin:.5rem 0;padding:.6rem;border-radius:11px;background:#f5edf7}.chat-language-tools button{min-height:40px;border:1px solid #542a63;border-radius:9px;background:#fff;color:#542a63;font-weight:900}.chat-language-tools small{color:#6d626c}.chat-voice{grid-column:2!important;grid-row:2!important}.chat-composer .emoji-toggle{grid-column:3!important}
.current-level-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem;padding:1rem;border-radius:18px;background:#fff0dd}.level-medal,.level-dot{display:grid;place-items:center;border-radius:50%;font-weight:950}.level-medal{width:76px;height:76px;font-size:1.7rem}.bronze{background:#b87952;color:#fff}.silver{background:#aeb5bd;color:#26303a}.gold{background:#e0b441;color:#4d3810}.platinum{background:#d8e1e5;color:#37454c}.current-level-card h2,.current-level-card p{margin:.2rem 0}.level-progress{height:14px;margin:.65rem 0 1rem;overflow:hidden;border-radius:999px;background:#eee1d3}.level-progress span{display:block;height:100%;background:#542a63}.participation-rules li{margin:.45rem 0}.levels-list{display:grid;gap:.55rem;padding:0;list-style:none}.levels-list li{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.65rem;padding:.75rem;border:1px solid #decbb7;border-radius:12px;background:#fff}.levels-list li.is-current{border:2px solid #b87952}.level-dot{width:42px;height:42px}.levels-list li div{display:grid}.levels-list small{color:#6d626c}.future-level{opacity:.78}.participation-benefits small{display:block;margin-top:.6rem;line-height:1.4}.participation-transparency summary{cursor:pointer;color:#542a63;font-weight:900}
.sapphire{background:#3868a8;color:#fff}.ruby{background:#a92f48;color:#fff}.emerald{background:#23815c;color:#fff}.diamond{background:linear-gradient(135deg,#d9f6ff,#a7d2e8);color:#244b60}.levels-direction{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.15rem .55rem;margin:1rem 0 .45rem;padding:.7rem;border-radius:12px;background:#f5edf7;color:#542a63}.levels-direction>span{grid-row:1/3;font-size:1.8rem;font-weight:950}.levels-direction small{color:#6d626c}.ascending-levels li:first-child{border:2px solid #90c7db;box-shadow:0 5px 16px rgba(61,111,132,.12)}
@media(max-width:560px){.person-summary-main{grid-template-columns:44px 1fr auto}.person-profile-actions{grid-template-columns:1fr}.person-profile-actions button:first-child{grid-column:auto}.profile-demo-gallery div{grid-template-columns:repeat(3,1fr)}.site-header{position:sticky;top:0}.header-brand{display:none!important}}

/* BLOCCO 44.2 — 16 PROFILI COMPATTI PER PAGINA */
.site-header{grid-template-columns:44px 1fr auto!important}.site-header .header-actions{grid-column:3!important}.compact-people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem!important}.compact-people-grid .person-result{min-width:0;padding:0!important;border:0!important;background:transparent!important}.compact-people-grid .person-summary-main{grid-template-columns:38px minmax(0,1fr) auto;gap:.4rem;min-height:58px;padding:.38rem!important;border:1px solid #eadfd3!important;border-radius:11px!important;background:#fffaf3!important}.compact-people-grid .avatar-demo{width:36px;height:36px;font-size:1.05rem}.compact-people-grid .person-copy{min-width:0}.compact-people-grid .person-name-line{flex-wrap:nowrap;gap:.2rem}.compact-people-grid .person-name-line strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.compact-people-grid .person-copy>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6d626c;font-size:.61rem}.compact-people-grid .compatibility{font-size:.72rem!important}.compact-people-grid .verified-mini{width:15px;height:15px;font-size:.55rem}.tiny-online{color:#267048;font-size:.55rem}.people-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.45rem;margin:.8rem 0}.people-pagination[hidden]{display:none}.people-pagination button{min-height:42px;padding:.45rem;border:1px solid #542a63;border-radius:9px;background:#fff;color:#542a63;font-size:.65rem;font-weight:900}.people-pagination button:last-child{justify-self:stretch}.people-pagination button:disabled{opacity:.4}.people-pagination strong{font-size:.7rem;white-space:nowrap}.results-heading{align-items:end}.results-heading small{max-width:58%;text-align:right}
@media(max-width:360px){.compact-people-grid{grid-template-columns:1fr}.compact-people-grid .person-summary-main{min-height:54px}.results-heading{align-items:start;flex-direction:column}.results-heading small{max-width:none;text-align:left}}

/* BLOCCO 44.3 — GALLERIA FOTOGRAFICA RESPONSIVE */
.compact-people-grid{grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:.35rem!important}.compact-people-grid .person-summary-main{position:relative;grid-template-columns:46% minmax(0,1fr)!important;grid-template-rows:1fr;align-items:stretch;gap:.3rem!important;width:100%;min-height:0!important;aspect-ratio:2/1;padding:.22rem!important;overflow:hidden}.compact-people-grid .avatar-demo{width:100%!important;height:100%!important;min-height:0;border-radius:8px!important;font-size:clamp(1rem,2.1vw,1.8rem)!important}.compact-people-grid .person-copy{align-self:center;gap:.05rem!important}.compact-people-grid .person-name-line strong{font-size:clamp(.5rem,.72vw,.68rem)!important}.compact-people-grid .person-copy>small{font-size:clamp(.43rem,.62vw,.57rem)!important}.compact-people-grid .compatibility{position:absolute;right:.18rem;top:.16rem;padding:.08rem .2rem;border-radius:999px;background:#542a63;color:#fff!important;font-size:.48rem!important}.compact-people-grid .verified-mini,.compact-people-grid .tiny-online{display:none}.people-pagination strong{font-size:.68rem}
@media(max-width:1100px){.compact-people-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}}
@media(max-width:700px){.compact-people-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.compact-people-grid .person-name-line strong{font-size:.54rem!important}.compact-people-grid .person-copy>small{font-size:.46rem!important}.results-heading{align-items:start;flex-direction:column}.results-heading small{max-width:none;text-align:left}}

/* BLOCCO 44.4 — PERSONA MANTENUTA NELLA PROPOSTA */
.compact-people-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}.target-person-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;margin:.7rem 0;padding:.8rem;border:2px solid #6caf82;border-radius:15px;background:#edf9f1}.target-person-banner[hidden]{display:none}.target-person-banner>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff;font-size:1.4rem}.target-person-banner div{display:grid}.target-person-banner small{color:#376747;font-weight:900}.target-person-banner p{margin:.2rem 0;color:#4d6254;font-size:.72rem}.target-person-banner button{min-height:40px;border:1px solid #542a63;border-radius:9px;background:#fff;color:#542a63;font-weight:900}
@media(max-width:900px){.compact-people-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:600px){.compact-people-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.target-person-banner{grid-template-columns:auto 1fr}.target-person-banner button{grid-column:1/-1}}

/* BLOCCO 44.5 — RICERCA AFFINI VISIBILE NEL PERCORSO DAL MOMENTO */
.affinity-search-button{min-height:58px;margin-top:.85rem;font-size:.9rem;letter-spacing:.025em;box-shadow:0 7px 18px rgba(84,42,99,.2)}
#peopleResultsSection[hidden]{display:none}

/* BLOCCO 44.6 — RICERCA IMMEDIATA DOPO MOMENTO E ZONA */
.quick-affinity-search{display:grid;gap:.65rem;margin:.85rem 0;padding:1rem;border:3px solid #542a63;border-radius:18px;background:linear-gradient(135deg,#fff0dd,#f5edf7);box-shadow:0 9px 24px rgba(84,42,99,.16)}
.quick-affinity-search h2,.quick-affinity-search p{margin:.15rem 0}.quick-affinity-search>div>small{color:#542a63;font-weight:950;text-transform:uppercase}.quick-affinity-search>small{color:#6d626c;text-align:center}.quick-affinity-search button{min-height:62px;font-size:1rem;letter-spacing:.025em}

/* BLOCCO 45 — PUNTI VIVILORA E REGOLE DI AVANZAMENTO */
.points-safety-notice{margin:.8rem 0;padding:1rem;border:2px solid #267048;border-radius:16px;background:#e9f7ee}.points-safety-notice strong{color:#205d3d}.points-safety-notice p{margin:.35rem 0 0;line-height:1.45}.points-table{display:grid;margin:.7rem 0;border:1px solid #decbb7;border-radius:12px;overflow:hidden}.points-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.7rem;border-top:1px solid #eadfd3}.points-row:first-child{border-top:0}.points-row strong{text-align:right;color:#542a63;font-size:.72rem}.points-head{background:#542a63;color:#fff}.points-head strong{color:#fff}.points-exclusion{padding:.75rem;border-radius:10px;background:#fff0dd;line-height:1.45}.points-history{margin:.8rem 0;padding:1rem;border:1px solid #decbb7;border-radius:16px;background:#fff}.points-history ol{display:grid;gap:.55rem;padding:0;list-style:none}.points-history li{display:grid;grid-template-columns:1fr auto;gap:.2rem .7rem;padding:.7rem;border-radius:11px;background:#fff8ee}.points-history li strong{color:#267048}.points-history li small{grid-column:1/-1;color:#6d626c}.points-history .button{margin-top:.75rem}@media(max-width:460px){.points-row{grid-template-columns:1fr}.points-row strong{text-align:left}.points-history .section-heading{align-items:start;flex-direction:column}}

/* BLOCCO 46 — VISTA, DIMENSIONE E NUMERO DEI RISULTATI */
.result-view-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:.75rem 0;padding:.7rem;border-radius:13px;background:#f5edf7}.result-view-controls label{display:grid;gap:.25rem}.result-view-controls span{color:#542a63;font-size:.65rem;font-weight:950;text-transform:uppercase}.result-view-controls select{width:100%;min-height:42px;padding:.45rem;border:1px solid #bba8c0;border-radius:9px;background:#fff;color:#352b31;font:inherit;font-weight:800}.compact-people-grid.view-grid.size-small{grid-template-columns:repeat(8,minmax(0,1fr))!important}.compact-people-grid.view-grid.size-medium{grid-template-columns:repeat(6,minmax(0,1fr))!important}.compact-people-grid.view-grid.size-large{grid-template-columns:repeat(4,minmax(0,1fr))!important}.compact-people-grid.view-list{grid-template-columns:1fr!important}.compact-people-grid.view-list .person-summary-main{aspect-ratio:auto!important;grid-template-columns:58px minmax(0,1fr) auto!important;min-height:72px!important}.compact-people-grid.view-list .avatar-demo{width:56px!important;height:56px!important}.compact-people-grid.view-list .person-name-line strong{font-size:.82rem!important}.compact-people-grid.view-list .person-copy>small{font-size:.7rem!important}@media(max-width:700px){.result-view-controls{grid-template-columns:1fr 1fr}.result-view-controls label:last-child{grid-column:1/-1}.compact-people-grid.view-grid.size-small{grid-template-columns:repeat(3,minmax(0,1fr))!important}.compact-people-grid.view-grid.size-medium{grid-template-columns:repeat(2,minmax(0,1fr))!important}.compact-people-grid.view-grid.size-large{grid-template-columns:1fr!important}}

/* BLOCCO 44.7 — PROFILI DIRETTAMENTE NELLA PAGINA 2 */
.selection-summary #continueMoment{min-height:58px;font-size:.82rem}.moment-people-results{margin:1rem 0;padding:1rem;border:2px solid #542a63;border-radius:18px;background:#fff}.moment-people-results[hidden]{display:none}.moment-people-results>.button{margin-top:.9rem}
.manifesto-home-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;margin:1rem auto;padding:1rem;border:2px solid #d5aa31;border-radius:16px;background:linear-gradient(135deg,#fff8df,#f7eef9)}.manifesto-home-card>span{display:grid;width:48px;height:48px;place-items:center;border-radius:50%;background:#542a63;color:#fff;font-size:1.35rem}.manifesto-home-card h2,.manifesto-home-card p{margin:.2rem 0}.manifesto-home-card small{color:#765900;font-weight:950}.signup-principles{margin:.8rem 0;padding:1rem;border:2px solid #d5aa31;border-radius:14px;background:#fff8df}.signup-principles p{margin:.3rem 0}.signup-principles ul{margin:.7rem 0;padding-left:1.2rem}.signup-principles li{margin:.4rem 0;line-height:1.4}.signup-principles button{width:100%;padding:.7rem;border:2px solid #542a63;border-radius:9px;background:#fff;color:#542a63;font-weight:950}.manifesto-consent{padding:.8rem;border:2px solid #542a63!important;border-radius:10px;background:#f7eef9;font-weight:900}@media(max-width:700px){.manifesto-home-card{grid-template-columns:auto 1fr}.manifesto-home-card button{grid-column:1/-1;width:100%}}
.compact-people-grid .compatibility{right:.18rem!important;top:.16rem!important;padding:.16rem .35rem!important;border:1px solid #bda8c4!important;border-radius:999px!important;background:#f5edf7!important;color:#542a63!important;font-size:.56rem!important;font-weight:950!important;white-space:nowrap;box-shadow:0 2px 5px rgba(84,42,99,.08)}.affinity-short{display:none}.compact-people-grid.view-list .affinity-full,.compact-people-grid.size-large .affinity-full,.compact-people-grid.size-medium .affinity-full{display:inline}.compact-people-grid.view-grid.size-small .affinity-full{display:none}.compact-people-grid.view-grid.size-small .affinity-short{display:inline}@media(max-width:700px){.compact-people-grid.view-grid .affinity-full{display:none}.compact-people-grid.view-grid .affinity-short{display:inline}.compact-people-grid.view-list .affinity-full{display:inline}.compact-people-grid.view-list .affinity-short{display:none}}
.support-user-reply{display:grid!important;margin-top:.7rem!important;padding:.7rem!important;border-left:4px solid #6caf82;border-radius:9px;background:#edf9f1}
.support-user-reply small{color:#376747!important;font-weight:800}
.support-user-reply strong{margin-top:.25rem;color:#245b38;line-height:1.4}
/* CORREZIONE 63 — ZONA REVOCABILE DALLA SCHERMATA MOMENTI */
.clear-area-button{margin-top:.55rem;padding:.42rem .65rem;border:1px solid #8a6a95;border-radius:8px;background:#fff;color:#5e2c68;font-size:.68rem;font-weight:900}.clear-area-button:hover{background:#f5edf7}
/* CORREZIONE 70 — GRUPPI SOCIALI VIVILORA */
.group-visual-filter{width:100%;margin:1rem 0}.group-visual-filter>strong{display:block;margin-bottom:.65rem;color:#2f1641;font-size:1.05rem}.group-visual-filter .activity-grid{grid-template-columns:repeat(5,1fr)}.group-visual-filter .activity-card{min-height:100px}.group-visual-filter .activity-card.is-selected{border-color:#50245f;background:#fff2a8;box-shadow:0 0 0 3px rgba(80,36,95,.14)}@media(max-width:700px){.group-visual-filter .activity-grid{grid-template-columns:repeat(2,1fr)}}
.group-category-picker{margin:.8rem 0 1rem;padding:0;border:0}.group-category-picker legend{margin-bottom:.65rem;color:#2f1641;font-size:1rem;font-weight:950}.group-category-picker .activity-grid{grid-template-columns:repeat(5,1fr)}.group-category-card{min-height:105px}.group-category-card.is-selected{border-color:#50245f;background:#fff2a8;box-shadow:0 0 0 3px rgba(80,36,95,.14)}@media(max-width:700px){.group-category-picker .activity-grid{grid-template-columns:repeat(2,1fr)}}
.group-safety-rule{margin:1rem 0;padding:1rem;border:3px solid #d7a72d;border-radius:14px;background:#fff8df;color:#6c571b}.group-safety-rule p{margin:.35rem 0 0;line-height:1.5}.group-page-actions{display:flex;align-items:end;justify-content:space-between;gap:.7rem;margin:1rem 0}.group-page-actions label{display:grid;gap:.3rem;color:#50245f;font-size:.75rem;font-weight:850}.group-page-actions select,.group-creator input,.group-creator select,.group-creator textarea{width:100%;padding:.72rem;border:1px solid #cbbdce;border-radius:10px;background:#fff}.group-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.group-list>article{display:grid;gap:.45rem;padding:1rem;border:1px solid #dfd2e2;border-radius:14px;background:#fff}.group-list header{display:grid;gap:.2rem}.group-list header span{color:#50245f;font-size:.63rem;font-weight:950;text-transform:uppercase}.group-list header strong{color:#2f1641;font-size:1.05rem}.group-list p{margin:0;line-height:1.45}.group-list small{color:#736875}.group-list button{margin-top:auto;padding:.6rem;border:1px solid #50245f;border-radius:9px;background:#fff;color:#50245f;font-weight:900}.group-creator{margin-top:1rem;padding:1rem;border:3px solid #50245f;border-radius:15px;background:#faf7fb}.group-creator .section-heading{display:flex;justify-content:space-between}.group-creator .section-heading button{width:36px;height:36px;border:0;border-radius:50%;background:#f4edf7;color:#50245f}.group-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.group-form-grid label{display:grid;gap:.35rem;color:#2f1641;font-size:.78rem;font-weight:850}.group-form-grid .wide{grid-column:1/-1}.group-rules-check{margin:.8rem 0;padding:.8rem;border-left:5px solid #b12e3b;border-radius:9px;background:#fff1f2}.group-rules-check label{display:flex;gap:.5rem;margin:.45rem 0;line-height:1.45}.group-rules-check input{width:auto}.group-rules-check p{margin:.35rem 0 0;color:#8f1d2a;font-size:.75rem}.group-form-feedback{min-height:1.2rem;color:#286542;font-weight:800}.group-form-feedback.is-error{color:#9a2630}@media(max-width:700px){.group-list,.group-form-grid{grid-template-columns:1fr}.group-form-grid .wide{grid-column:auto}.group-page-actions{align-items:stretch;flex-direction:column}.group-page-actions>*{width:100%}}
.group-preview-live-banner{margin:0 0 1rem;padding:1rem;border:3px solid #6b2d83;border-radius:14px;background:#fff1b8;color:#431c53}.group-preview-live-banner strong{display:block;font-size:.85rem}.group-preview-live-banner p{margin:.35rem 0 0;line-height:1.45}.group-preview-fixed-badge{position:fixed;z-index:9999;right:16px;bottom:16px;padding:.7rem 1rem;border-radius:999px;background:#6b2d83;color:#fff;font-size:.72rem;font-weight:950;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.maintenance-full-overlay{position:fixed;z-index:20000;inset:0;display:grid;place-items:center;padding:1.2rem;background:linear-gradient(145deg,#fff7cf,#f6eaff)}.maintenance-full-overlay>div{width:min(560px,100%);padding:2rem;border:3px solid #6b2d83;border-radius:24px;background:#fff;text-align:center;box-shadow:0 18px 50px rgba(67,28,83,.22)}.maintenance-full-overlay span{display:block;font-size:3rem}.maintenance-full-overlay b{display:block;margin:.7rem 0;color:#a12147}.maintenance-full-overlay h1{color:#431c53}.maintenance-full-overlay p{font-size:1rem;line-height:1.6}.maintenance-full-overlay small,.maintenance-full-overlay em{display:block;margin-top:.8rem;color:#66586a}.maintenance-full-overlay button{margin-top:1rem;padding:.75rem 1rem;border:0;border-radius:10px;background:#6b2d83;color:#fff;font-weight:900}.maintenance-partial-banner{position:relative;z-index:9000;padding:.8rem 1rem;background:#fff1b8;border-bottom:3px solid #6b2d83;color:#431c53;text-align:center}.maintenance-partial-banner b{display:block;color:#a12147}.maintenance-partial-banner strong{display:block}.maintenance-partial-banner p{margin:.25rem 0}.maintenance-partial-banner small{font-weight:800}
.group-structured-area{display:block!important;padding:.9rem;border:1px solid #d8c9dd;border-radius:12px;background:#fffdf5}.group-structured-area>strong{display:block;color:#431c53}.group-structured-area>p{margin:.3rem 0 .75rem;color:#6f6473;font-size:.76rem;line-height:1.45}.group-area-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.group-area-fields label{display:grid;gap:.3rem}.group-area-fields select,.group-area-fields input{width:100%;padding:.72rem;border:1px solid #cbbdce;border-radius:10px;background:#fff}@media(max-width:650px){.group-area-fields{grid-template-columns:1fr}}
/* BLOCCO 79 — CHAT DEI GRUPPI */
.group-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.group-card-actions button{flex:1 1 150px}.group-chat-button{border:2px solid var(--purple,#6e3678)!important;background:#fff!important;color:var(--purple,#6e3678)!important}.group-chat-dialog{width:min(680px,calc(100% - 1rem));max-height:92vh;padding:0;border:0;border-radius:18px;box-shadow:0 18px 55px rgba(25,12,30,.32)}.group-chat-dialog::backdrop{background:rgba(24,12,30,.68)}.group-chat-dialog>section{display:grid;grid-template-rows:auto auto minmax(220px,1fr) auto;max-height:92vh}.group-chat-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem;background:#f5edf7}.group-chat-dialog header small{color:#6e3678;font-weight:900}.group-chat-dialog h2{margin:.2rem 0;color:#4d2457}.group-chat-dialog header button{width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:#6e3678;font-weight:900}.group-chat-reminder{margin:0;padding:.75rem 1rem;border-bottom:1px solid #e2d7e5;background:#fff8df;color:#6c571b;font-size:.78rem;line-height:1.45}.group-chat-messages{display:grid;align-content:start;gap:.55rem;min-height:240px;padding:1rem;overflow:auto;background:#faf8fb}.group-chat-messages article{justify-self:start;max-width:82%;padding:.65rem .75rem;border-radius:12px 12px 12px 3px;background:#fff;box-shadow:0 2px 9px rgba(40,20,48,.08)}.group-chat-messages article.is-mine{justify-self:end;border-radius:12px 12px 3px 12px;background:#eee1f2}.group-chat-messages article p{margin:.25rem 0;line-height:1.4}.group-chat-messages article small{color:#75677a;font-size:.65rem}.group-chat-empty{display:grid;justify-items:center;gap:.25rem;padding:2rem;text-align:center;color:#75677a}.group-chat-empty span{font-size:2rem}.group-chat-dialog form{display:grid;grid-template-columns:1fr auto;gap:.55rem;padding:.8rem;border-top:1px solid #e2d7e5;background:#fff}.group-chat-dialog textarea{width:100%;padding:.7rem;border:1px solid #cbbdce;border-radius:10px;resize:none}.group-chat-dialog form button{padding:.65rem .85rem;border:0;border-radius:9px;background:#6e3678;color:#fff;font-weight:900}@media(max-width:520px){.group-chat-dialog form{grid-template-columns:1fr}.group-chat-dialog form button{width:100%}}
.admin-activity-count-badge{display:flex;justify-content:space-between;gap:.7rem;align-items:center;margin:0 0 1rem;padding:.75rem 1rem;border:2px solid #6f337d;border-radius:12px;background:#f5edf7;color:#3e164c}.admin-activity-count-badge span{font-size:.75rem;color:#6d5a72}@media(max-width:650px){.admin-activity-count-badge{display:grid}}

/* B138: dedicate the full row to the personal code. */
.personal-code-display.copy-row { display: flex; flex-direction: column; align-items: stretch; }
.personal-code-display #inviteCode { display: block; box-sizing: border-box; width: 100%; flex: none; min-height: 3.2rem; font: 700 1.15rem/1.5 ui-monospace, monospace; overflow-wrap: anywhere; white-space: normal; }
.personal-code-display > button { align-self: flex-start; }
.personal-code-choice .personal-code-input { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.personal-code-input #registerPersonalCode { box-sizing: border-box; width: 100%; min-width: 0; min-height: 3.2rem; padding: .65rem .5rem; font: 700 1.05rem/1.5 ui-monospace, monospace; }
.personal-code-choice .copy-row:not(.personal-code-input) { flex-wrap: wrap; }

/* B139: readable instructions without changing signup navigation. */
.signup-instructions { line-height: 1.55; }
.registration-grid > h3.wide { grid-column: 1 / -1; margin: .8rem 0 0; }
.registration-grid label > small { display: block; line-height: 1.45; margin-top: .35rem; }
.profile-personal-code { margin: 1rem 0; }
.profile-personal-link { box-sizing: border-box; display: block; width: 100%; min-width: 0; padding: .8rem; margin: .5rem 0; }

/* B141 optional two-step simulation */
.two-step-warning { padding: .8rem; border: 2px solid #b58a20; border-radius: 10px; background: #fff8df; }
.two-step-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
.two-step-dialog { width: min(34rem, calc(100% - 2rem)); max-height: 85vh; box-sizing: border-box; overflow-y: auto; padding: 1.4rem; border: 2px solid var(--violet-950); border-radius: 16px; }
.two-step-dialog::backdrop { background: #21152a99; }
.two-step-dialog button, .two-step-dialog label, .two-step-dialog details { margin: .65rem 0; }
.two-step-dialog label { display: block; }
#twoStepInput { display: block; width: 100%; box-sizing: border-box; padding: .85rem; font: 700 1.2rem monospace; }
#twoStepDemoCode { display: block; padding: .7rem; font: 700 1.5rem monospace; }
#twoStepRecoveryCodes { white-space: pre-wrap; font: 700 1.1rem/1.6 monospace; }

#reportInviteDialog .report-modal .moderation-preview-notice { padding: .8rem; border: 2px solid #8f6812; border-radius: 10px; background: #fff5ce; color: #543b00; font-weight: 800; }
#reportInviteDialog button:disabled { opacity: .65; cursor: not-allowed; }

/* B149: only the assistance writing area and access summary. */
[data-settings-content="support"] #supportForm{display:block;grid-column:1/-1;width:100%;max-width:none;min-width:0;box-sizing:border-box}
#supportForm label{display:block;width:100%;max-width:none}
#supportForm label>span{display:block;margin-bottom:.4rem}
#supportForm #supportMessage{display:block;width:100%;max-width:none;min-height:200px;resize:vertical;box-sizing:border-box;font-size:1rem;line-height:1.5}
#myAccessCard{grid-column:1/-1}#myAccessState{font-weight:800}#myAccessSimulation{color:#654a20}
.direct-proposal-card{position:relative;overflow:hidden;margin:1rem 0;padding:1.35rem;border:1px solid rgba(98,52,145,.18);border-radius:24px;background:linear-gradient(145deg,#fffdf5 0%,#fff4c9 58%,#f4eaff 100%);box-shadow:0 14px 35px rgba(74,39,112,.12);text-align:center}.direct-proposal-card::before{content:"";position:absolute;right:-45px;top:-55px;width:140px;height:140px;border-radius:50%;background:rgba(255,205,49,.26)}.direct-proposal-person{position:relative;display:flex;align-items:center;gap:.75rem;text-align:left}.direct-proposal-avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff;border:2px solid #f2c94c;font-size:1.7rem;box-shadow:0 5px 14px rgba(74,39,112,.12)}.direct-proposal-person small{display:block;color:#6b5a77;font-size:.72rem;letter-spacing:.08em}.direct-proposal-person strong{display:block;color:#492567;font-size:1.08rem}.direct-proposal-activity-icon{display:block;margin:.7rem auto .15rem;font-size:2.8rem}.direct-proposal-card h2{margin:.15rem 0 1rem;color:#492567;font-size:1.55rem}.direct-proposal-card label{display:block;text-align:left}.direct-proposal-card label>span{display:block;margin-bottom:.45rem;color:#492567;font-weight:700}.direct-proposal-card label small{font-weight:400;color:#786c80}.direct-proposal-card textarea{box-sizing:border-box;width:100%;min-height:104px;padding:.85rem 1rem;border:1px solid #d8c6e5;border-radius:15px;background:rgba(255,255,255,.92);font:inherit;resize:vertical}.direct-proposal-card textarea:focus{outline:3px solid rgba(126,73,168,.18);border-color:#7e49a8}.direct-proposal-card .button{margin-top:1rem;border-radius:999px}.direct-proposal-reminder{margin:.85rem 0 0;color:#665c6c;font-size:.88rem}
.direct-proposal-person-area{display:block;margin-top:.12rem;color:#6b5a77;font-size:.82rem}
.support-request-row>summary{display:flex;align-items:center;justify-content:space-between;gap:.7rem;cursor:pointer;list-style:none}.support-request-row>summary::-webkit-details-marker{display:none}.support-request-row>summary::after{content:"›";color:#542a63;font-size:1.5rem;font-weight:900}.support-request-row[open]>summary::after{transform:rotate(90deg)}.support-request-row>summary span{display:inline-block;padding:.3rem .45rem;border-radius:999px;background:#fff0dd;color:#8b4c20;font-size:.65rem;font-weight:900}.compact-rules p{margin:.55rem 0;padding-left:1rem;position:relative;line-height:1.4}.compact-rules p::before{content:"•";position:absolute;left:0;color:#7a3c89;font-weight:900}
.quick-presence-toggle{border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(255,255,255,.18);color:inherit;padding:.45rem .65rem;font-size:.72rem;font-weight:800;white-space:nowrap;cursor:pointer}
.is-do-not-disturb .quick-presence-toggle{background:#f4f0ff;color:#5b2b82;border-color:#8d6eaa}
@media(max-width:420px){.quick-presence-toggle{font-size:.64rem;padding:.4rem .5rem}}
.group-search{display:grid;gap:.45rem;margin:1rem 0;padding:1rem;border:2px solid #6f258f;border-radius:14px;background:#faf7fb}.group-search>label{color:#50245f;font-weight:950}.group-search>div{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:.55rem}.group-search input{width:100%;min-height:46px;padding:.72rem;border:1px solid #cbbdce;border-radius:10px;background:#fff}.group-search p{margin:0;color:#665b63;font-size:.8rem}@media(max-width:700px){.group-search>div{grid-template-columns:1fr}}
.group-search header h2{margin:0;color:#431c53}.group-search header p{margin:.25rem 0 0;line-height:1.45}.group-search>.group-visual-filter{display:block;grid-template-columns:none;margin:.9rem 0}.group-search>.group-search-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.group-search-fields label{display:grid;gap:.3rem;color:#50245f;font-size:.78rem;font-weight:850}.group-search-fields input,.group-search-fields select{width:100%;min-height:46px;padding:.72rem;border:1px solid #cbbdce;border-radius:10px;background:#fff}.group-search>.group-search-actions{display:flex;grid-template-columns:none;flex-wrap:wrap;gap:.6rem}.group-search-actions button{flex:1 1 190px}@media(max-width:700px){.group-search>.group-search-fields{grid-template-columns:1fr}.group-search>.group-search-actions{display:grid;grid-template-columns:1fr}.group-search>.group-visual-filter .activity-grid{grid-template-columns:repeat(2,1fr)}}
.events-saving-banner small{font-size:.98rem;line-height:1.4}
.direct-proposal-reminder{margin:1rem 0 0;padding:.9rem 1rem;border:2px solid #efbd45;border-radius:14px;background:#fff;color:#492567;font-size:1rem;font-weight:900;line-height:1.4;box-shadow:0 6px 16px rgba(74,39,112,.08)}

/* B389 — ricerca Classic, una persona alla volta */
#peopleResultsSection .people-swipe-help{margin:.4rem 0 .8rem;color:#5b4a60;font-size:.82rem}
#peopleResults.compact-people-grid{display:block!important;max-width:650px;margin:0 auto 1rem}
#peopleResults .person-result{position:relative;width:100%;min-height:280px;padding:1rem!important;border:1px solid #dfcbdc!important;border-radius:20px;background:#fffaf6!important;box-shadow:0 10px 28px rgba(59,32,69,.1);touch-action:pan-x}
#peopleResults .person-summary-main{display:grid!important;grid-template-columns:minmax(130px,42%) minmax(0,1fr)!important;gap:1rem!important;align-items:center!important;width:100%;min-height:250px!important;aspect-ratio:auto!important;padding:0!important;border:0!important;background:transparent!important;overflow:visible!important}
#peopleResults .avatar-demo{display:grid!important;place-items:center;width:100%!important;height:245px!important;min-height:245px!important;max-height:none!important;border:0;border-radius:15px!important;background:#eedfee!important;color:#542a63;font-size:clamp(3rem,12vw,6rem)!important;cursor:pointer}
#peopleResults .avatar-demo:focus-visible{outline:3px solid #542a63;outline-offset:3px}
#peopleResults .person-copy{display:grid!important;align-content:center;gap:.65rem!important;min-width:0;padding-right:.4rem}
#peopleResults .person-name-line strong{font-size:clamp(1.05rem,2.5vw,1.5rem)!important;white-space:normal!important}
#peopleResults .person-copy>small{font-size:.83rem!important;white-space:normal!important;overflow:visible!important}
#peopleResults .person-preview-bio{display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden!important}
#peopleResults .person-photo-hint{color:#542a63!important;font-weight:900}
#peopleResults .compatibility{position:static!important;display:inline-block!important;width:max-content;max-width:100%;font-size:.7rem!important}
#peopleResults .favorite-person{position:absolute;right:.7rem;top:.7rem;z-index:2}
#peopleResultsSection .people-pagination{max-width:650px;margin:.7rem auto 1rem}
@media(max-width:560px){#peopleResults .person-result{min-height:0;padding:.7rem!important}#peopleResults .person-summary-main{grid-template-columns:42% minmax(0,1fr)!important;gap:.65rem!important;min-height:220px!important}#peopleResults .avatar-demo{height:210px!important;min-height:210px!important}#peopleResults .person-copy>small{font-size:.72rem!important}#peopleResults .person-name-line strong{font-size:1rem!important}}
