:root {
  --wertia-bg: #160f0a;
  --wertia-surface: #21160f;
  --wertia-card: #2a1c13;
  --wertia-gold: #c8a45d;
  --wertia-gold-soft: #e0c27a;
  --wertia-cream: #f4e8d0;
  --wertia-muted: #b8a98f;
  --wertia-border: rgba(200, 164, 93, 0.22);
  --wertia-danger: #b85c5c;
  --wertia-success: #70a36b;
  --wertia-warning: #c89b3c;
  --shadow: 0 20px 44px rgba(12, 8, 5, 0.18);
  --sidebar-width: 408px;
  --detail-left: 420px;
  --wertia-page-bg: #f7f3ec;
  --wertia-page-fg: #2d2923;
  --wertia-panel-bg: #f7f1e7;
  --wertia-panel-border: #e6dccb;
  --wertia-topbar-bg: #f7f1e7;
  --wertia-inner-bg: #f5efe4;
  --wertia-inner-border: #eadfce;
  --wertia-panel-blur: 0px;
  --wertia-card-transition: 0s;
  --wertia-card-hover-bg: var(--wertia-panel-bg);
  --wertia-card-hover-border: var(--wertia-panel-border);
  --wertia-accent: #aa8747;
  --wertia-accent-dark: #765a21;
  --wertia-accent-hover: rgba(200, 164, 93, 0.08);
  --wertia-button-radius: 10px;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--wertia-page-fg);
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 400;
  letter-spacing: 0.2px;
  background: var(--wertia-page-bg);
}

body.login-active {
  background: #160f0a;
  overflow: hidden;
}
body.login-active .workspace {
  padding: 0;
}
body.login-active .main-panel {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

body.is-resizing {
  cursor: col-resize;
  user-select: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  min-height: 40px;
  border: 1px solid var(--wertia-border);
  border-radius: 8px;
  color: inherit;
  background: var(--wertia-panel-bg);
  cursor: pointer;
}

svg {
  width: 20px;
  height: 20px;
  stroke-width: 2;
}

.app-shell {
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
  min-height: 100vh;
}

.app-shell:not(.sidebar-collapsed) {
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
}

.app-shell.sidebar-collapsed {
  --sidebar-width: 86px;
}

.workspace {
  grid-column: 2;
  min-width: 0;
  padding: 28px;
}

.sidebar {
  grid-column: 1;
  grid-row: 1;
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  height: 100vh;
  padding: 0;
  color: var(--wertia-cream);
  background:
    radial-gradient(circle at top, color-mix(in srgb, var(--wertia-gold) 8%, transparent), transparent 55%),
    var(--wertia-bg);
  border-right: 1px solid var(--wertia-border);
  overflow: hidden;
  user-select: none;
}

.app-shell:not(.sidebar-collapsed) .sidebar {
  padding: 0;
}

.brand {
  display: grid;
  justify-items: center;
  gap: 0;
  padding: 14px 20px 16px;
  border-bottom: 1px solid var(--wertia-border);
}

.brand-logo {
  width: 90px;
  height: 76px;
  object-fit: contain;
  filter: drop-shadow(0 8px 22px rgba(0, 0, 0, 0.4)) drop-shadow(0 0 14px rgba(200, 164, 93, 0.18));
}

.brand strong,
.brand span {
  display: block;
}

.brand strong {
  color: var(--wertia-gold-soft);
  font-size: 15px;
}

.brand span,
.sidebar-footer small {
  color: var(--wertia-muted);
  font-size: 12px;
}

.app-shell:not(.sidebar-collapsed) .brand {
  justify-items: center;
  padding-left: 20px;
}

.app-shell:not(.sidebar-collapsed) .brand-logo {
  width: 90px;
  height: 76px;
  object-position: center;
}

.collapse-btn {
  display: none;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-height: 48px;
  margin: 16px 18px 0;
  padding: 0 14px;
  color: var(--wertia-cream);
  background: color-mix(in srgb, var(--wertia-cream) 5%, transparent);
}

.sidebar-footer {
  display: none;
}

.sound-settings {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 10px;
  margin-bottom: 6px;
  border-bottom: 1px solid var(--wertia-border);
}

.sound-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--wertia-border);
  border-radius: 8px;
  background: transparent;
  color: var(--wertia-muted);
  cursor: pointer;
  transition: background 140ms, color 140ms;
  flex-shrink: 0;
}
.sound-toggle:hover {
  background: color-mix(in srgb, var(--wertia-gold) 12%, transparent);
  color: var(--wertia-gold-soft);
}
.sound-toggle.muted {
  color: color-mix(in srgb, var(--wertia-cream) 30%, transparent);
}
.sound-toggle svg {
  width: 16px;
  height: 16px;
}

.sound-select {
  flex: 1;
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid var(--wertia-border);
  border-radius: 8px;
  background: transparent;
  color: var(--wertia-cream);
  font-size: 12px;
  font-family: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23c8a45d' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  padding-right: 24px;
}
.sound-select:hover {
  border-color: var(--wertia-gold);
}
.sound-select:focus {
  outline: none;
  border-color: #c8a45d;
}
.sound-select option {
  background: var(--wertia-bg);
  color: var(--wertia-cream);
}

.nav-item {
  position: relative;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 40px;
  padding: 0 16px 0 14px;
  color: var(--wertia-muted);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0.2px;
  text-align: left;
  transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}

.app-shell:not(.sidebar-collapsed) .nav-item {
  grid-template-columns: 22px minmax(0, 1fr) auto;
  place-items: center start;
  justify-items: start;
  gap: 11px;
  padding: 0 16px 0 14px;
}

.nav-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 12px 12px;
  overflow-y: auto;
}

.nav-group + .nav-group {
  margin-top: 10px;
}

.nav-item:hover {
  color: var(--wertia-cream);
  background: color-mix(in srgb, var(--wertia-cream) 4%, transparent);
  border-color: var(--wertia-border);
}

.nav-item.active {
  color: var(--wertia-cream);
  background: color-mix(in srgb, var(--wertia-cream) 6%, transparent);
  border-color: var(--wertia-border);
  font-weight: 600;
}

.nav-icon,
.collapse-icon {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  color: currentColor;
}

.nav-icon svg {
  stroke-width: 1.6;
}

.nav-item.active .nav-icon {
  color: #fffaf1;
}

.nav-item.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, var(--wertia-gold-soft), var(--wertia-gold));
  box-shadow: 0 0 12px rgba(200, 164, 93, 0.45);
}

.nav-section {
  margin: 0 0 8px 20px;
  color: color-mix(in srgb, var(--wertia-cream) 34%, transparent);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2.8px;
  text-transform: uppercase;
}

.nav-label {
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-resizer {
  position: absolute;
  top: 0;
  right: 0;
  width: 9px;
  height: 100%;
  cursor: col-resize;
  z-index: 3;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--wertia-gold) 10%, transparent));
}

.sidebar-resizer::after {
  content: "";
  position: absolute;
  top: 28%;
  right: 2px;
  width: 4px;
  height: 44%;
  border-radius: 999px;
  background:
    linear-gradient(180deg, var(--wertia-gold-soft), var(--wertia-gold), var(--wertia-gold-soft));
  box-shadow:
    0 0 0 1px rgba(255, 246, 210, 0.35),
    0 0 14px rgba(200, 164, 93, 0.5);
}

.sidebar-resizer::before {
  content: "";
  position: absolute;
  top: 43%;
  right: 3px;
  width: 1px;
  height: 14%;
  border-radius: 999px;
  background: rgba(26, 18, 8, 0.6);
  box-shadow:
    -2px 0 0 rgba(26, 18, 8, 0.4),
    2px 0 0 rgba(26, 18, 8, 0.4);
}

.sidebar-resizer:hover::after {
  background:
    linear-gradient(180deg, #fff4c9, var(--wertia-gold-soft), #fff4c9);
  box-shadow:
    0 0 0 1px rgba(255, 246, 210, 0.6),
    0 0 20px rgba(200, 164, 93, 0.65);
}

.app-shell.sidebar-icon-only .brand {
  padding: 18px 10px;
}

.app-shell.sidebar-icon-only .brand-logo {
  width: 54px;
  height: 54px;
}

.app-shell.sidebar-icon-only .brand div,
.app-shell.sidebar-icon-only .nav-section,
.app-shell.sidebar-icon-only .nav-label,
.app-shell.sidebar-icon-only .collapse-label,
.app-shell.sidebar-icon-only .sidebar-footer div {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.app-shell.sidebar-icon-only .nav-list {
  gap: 8px;
  padding: 22px 10px 18px;
}

.app-shell.sidebar-icon-only .nav-item,
.app-shell.sidebar-icon-only .collapse-btn {
  grid-template-columns: 1fr;
  justify-items: center;
  min-height: 52px;
  padding: 0;
}

.app-shell.sidebar-icon-only .nav-item.active::before {
  left: 0;
  top: 10px;
  bottom: 10px;
  height: auto;
}

.app-shell.sidebar-icon-only .sidebar-footer {
  grid-template-columns: 1fr;
  justify-items: center;
  padding: 12px 0;
}

/* Sidebar mobile sempre compatta: la larghezza resta icon-only in tutte le
   viste, indipendentemente dallo stato desktop state.collapsed. */
@media (max-width: 760px) {
  .app-shell:not(.sidebar-collapsed) {
    --sidebar-width: 64px !important;
  }
  .app-shell:not(.sidebar-collapsed) .brand {
    padding: 18px 10px;
  }
  .app-shell:not(.sidebar-collapsed) .brand-logo {
    width: 44px;
    height: 44px;
  }
  .app-shell:not(.sidebar-collapsed) .brand div,
  .app-shell:not(.sidebar-collapsed) .nav-section,
  .app-shell:not(.sidebar-collapsed) .nav-label,
  .app-shell:not(.sidebar-collapsed) .collapse-label,
  .app-shell:not(.sidebar-collapsed) .sidebar-footer div {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .app-shell:not(.sidebar-collapsed) .nav-list {
    gap: 8px;
    padding: 16px 6px;
  }
  .app-shell:not(.sidebar-collapsed) .nav-item,
  .app-shell:not(.sidebar-collapsed) .collapse-btn {
    grid-template-columns: 1fr;
    justify-items: center;
    min-height: 46px;
    padding: 0;
  }
  .app-shell:not(.sidebar-collapsed) .nav-item.active::before {
    left: 0;
    top: 10px;
    bottom: 10px;
    height: auto;
  }
  .app-shell:not(.sidebar-collapsed) .sidebar-footer {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 12px 0;
  }
  .app-shell.sidebar-collapsed {
    --sidebar-width: 64px !important;
  }
  .app-shell.sidebar-collapsed .brand {
    padding: 18px 10px;
  }
  .app-shell.sidebar-collapsed .brand-logo {
    width: 44px;
    height: 44px;
  }
  .app-shell.sidebar-collapsed .brand div,
  .app-shell.sidebar-collapsed .nav-section,
  .app-shell.sidebar-collapsed .nav-label,
  .app-shell.sidebar-collapsed .collapse-label,
  .app-shell.sidebar-collapsed .sidebar-footer div {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .app-shell.sidebar-collapsed .nav-list {
    gap: 8px;
    padding: 16px 6px;
  }
  .app-shell.sidebar-collapsed .nav-item,
  .app-shell.sidebar-collapsed .collapse-btn {
    grid-template-columns: 1fr;
    justify-items: center;
    min-height: 46px;
    padding: 0;
  }
  .app-shell.sidebar-collapsed .nav-item.active::before {
    left: 0;
    top: 10px;
    bottom: 10px;
    height: auto;
  }
  .app-shell.sidebar-collapsed .sidebar-footer {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 12px 0;
  }
}

/* Topbar/profilo mobile: compatta invece di lasciare traboccare la riga.
   Nasconde solo testo secondario (eyebrow decorativo, saluto, mese/anno
   della data) — avatar, nome e azioni (campanella, menu profilo) restano
   sempre presenti e funzionanti, solo più compatti. */
@media (max-width: 760px) {
  .topbar {
    gap: 8px;
    padding: 8px 10px;
  }
  .topbar-title .eyebrow {
    display: none;
  }
  .topbar-title h1 {
    font-size: 19px;
  }
  .topbar-utils {
    gap: 6px;
  }
  .topbar-clock {
    padding: 6px 10px;
  }
  .date-month,
  .date-year {
    display: none;
  }
  .topbar-bell {
    width: 36px;
    height: 36px;
    min-height: 36px;
  }
  .profile-trigger {
    gap: 6px;
    padding: 3px 8px 3px 3px;
    min-height: 36px;
  }
  .profile-avatar {
    width: 28px;
    height: 28px;
    font-size: 11px;
  }
  .profile-greet small {
    display: none;
  }
  .profile-greet strong {
    max-width: 72px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .profile-chevron {
    width: 14px;
    height: 14px;
  }
}

/* Sotto i 480px anche l'orologio, la data e il nome per esteso diventano
   superflui rispetto allo spazio: restano cliccabili/accessibili (avatar,
   aria-label, title) ma il testo visivo si nasconde per eliminare
   l'overflow orizzontale residuo. */
@media (max-width: 480px) {
  .topbar-clock,
  .topbar-date {
    display: none;
  }
  .profile-greet {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .profile-trigger {
    padding: 3px;
    gap: 0;
  }
}

.status-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--wertia-success);
  box-shadow: 0 0 0 4px rgba(112, 163, 107, 0.18);
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 14px;
  padding: 10px 18px;
  border: 1px solid var(--wertia-border);
  border-radius: 14px;
  background: var(--wertia-topbar-bg);
  box-shadow: none;
  position: relative;
  z-index: 100;
}

.topbar-title {
  min-width: 0;
}

.topbar-utils {
  display: flex;
  align-items: center;
  gap: 18px;
}

.topbar-clock {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--wertia-border);
  border-radius: 10px;
  background: var(--wertia-bg);
  color: var(--wertia-gold-soft);
}

.clock-time {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 1px;
  color: var(--wertia-gold-soft);
}

.topbar-date {
  display: flex;
  align-items: baseline;
  gap: 6px;
  color: #6b5d48;
  font-size: 13px;
}

.date-day {
  font-weight: 800;
  font-size: 16px;
  color: #2a2118;
}

.date-month {
  font-weight: 600;
  text-transform: capitalize;
}

.date-year {
  font-weight: 600;
  color: #8a7d63;
}

.topbar-bell {
  position: relative;
  width: 42px;
  height: 42px;
  min-height: 42px;
  border: 1px solid rgba(200, 164, 93, 0.24);
  border-radius: 11px;
  background: var(--wertia-panel-bg);
  color: var(--wertia-gold);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease;
}

.topbar-bell svg {
  width: 19px;
  height: 19px;
}

.topbar-bell:hover {
  background: #fbf3e2;
  border-color: var(--wertia-gold);
}

.bell-count {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--wertia-gold-soft), var(--wertia-gold));
  color: #1a1208;
  font-size: 11px;
  font-weight: 800;
  box-shadow: 0 0 0 2px var(--wertia-panel-bg), 0 0 12px rgba(200, 164, 93, 0.5);
}

.topbar-profile {
  position: relative;
}

.profile-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 4px 12px 4px 4px;
  border: 1px solid rgba(200, 164, 93, 0.22);
  border-radius: 999px;
  background: var(--wertia-panel-bg);
  cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease;
}

.profile-trigger:hover {
  background: var(--wertia-inner-bg);
  border-color: var(--wertia-gold);
}

.profile-avatar {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  color: #1a1208;
  font-weight: 800;
  font-size: 13px;
}

.profile-greet {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  text-align: left;
}

.profile-greet small {
  color: var(--wertia-muted);
  font-size: 11px;
}

.profile-greet strong {
  color: var(--wertia-page-fg);
  font-size: 13px;
  font-weight: 700;
}

.profile-chevron {
  width: 16px;
  height: 16px;
  color: var(--wertia-gold);
  transition: transform 180ms ease;
}

.profile-trigger[aria-expanded="true"] .profile-chevron {
  transform: rotate(180deg);
}

.profile-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 200px;
  padding: 8px;
  border: 1px solid rgba(200, 164, 93, 0.22);
  border-radius: 12px;
  background: var(--wertia-panel-bg);
  box-shadow: 0 18px 40px rgba(60, 42, 20, 0.18);
  z-index: 200;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.profile-menu[hidden] {
  display: none;
}

.profile-menu button {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 0 12px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--wertia-page-fg);
  font-size: 14px;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  transition: background 140ms ease;
}

.profile-menu button:hover {
  background: var(--wertia-inner-bg);
}

.profile-menu button svg {
  width: 18px;
  height: 18px;
  color: var(--wertia-gold);
}

.profile-menu-sep {
  height: 1px;
  margin: 4px 8px;
  background: rgba(200, 164, 93, 0.18);
}

.profile-logout {
  color: var(--wertia-danger) !important;
}

.profile-logout svg {
  color: var(--wertia-danger) !important;
}

.eyebrow,
.kicker {
  margin: 0 0 8px;
  color: var(--wertia-gold);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 0;
  font-size: 30px;
}

h2 {
  margin-bottom: 0;
  font-size: 28px;
}

h3 {
  margin-bottom: 8px;
  font-size: 18px;
}

.icon-btn {
  display: inline-grid;
  place-items: center;
  min-width: 42px;
  padding: 0;
  font-weight: 800;
}

.primary-btn,
.gold-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 42px;
  padding: 0 16px;
  border-color: var(--wertia-gold);
  color: var(--wertia-bg);
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  font-weight: 800;
}
.outline-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 14px;
  color: #6c5732;
  background: var(--wertia-panel-bg);
}

.content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  align-items: start;
}

.main-panel,
.panel-card,
.metric-card,
.client-card,
.identity-card {
  border: 1px solid var(--wertia-panel-border);
  border-radius: 14px;
  background: var(--wertia-panel-bg);
  box-shadow: var(--shadow);
  backdrop-filter: blur(var(--wertia-panel-blur));
  -webkit-backdrop-filter: blur(var(--wertia-panel-blur));
  transition: background var(--wertia-card-transition), border-color var(--wertia-card-transition);
}

.main-panel:hover,
.panel-card:hover,
.metric-card:hover,
.client-card:hover,
.identity-card:hover {
  background: var(--wertia-card-hover-bg);
  border-color: var(--wertia-card-hover-border);
}

.main-panel {
  min-height: calc(100vh - 132px);
  padding: 14px;
  box-shadow: none;
}
.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.section-head.compact {
  margin-bottom: 14px;
}

.page-stack {
  display: grid;
  gap: 12px;
}

.metric-card {
  padding: 18px;
  box-shadow: none;
}

.metric-inline {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  flex: 1;
}
.metric-inline .metric-ico {
  display: flex;
  align-items: center;
  color: #c89b3c;
}
.metric-inline .metric-ico svg {
  width: 20px;
  height: 20px;
}
.metric-inline .metric-text {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.metric-inline .metric-text span {
  color: #76664d;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.metric-inline .metric-text strong {
  color: #2a2117;
  font-size: 20px;
  margin-top: 0;
}

.metric-card span {
  color: #76664d;
  font-size: 13px;
  font-weight: 700;
}

.metric-card strong {
  display: block;
  margin-top: 10px;
  color: #2a2117;
  font-size: 25px;
}

.panel-card {
  padding: 14px;
  box-shadow: none;
}

.kunden-search-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid var(--wertia-panel-border);
  border-radius: 10px;
  background: var(--wertia-panel-bg);
}

.kunden-toolbar > div:first-child span,
.results-head span,
.form-hint {
  color: #806f58;
}

.kunden-actions,
.contact-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ai-plus-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 40px;
  padding: 0 16px;
  border-color: rgba(200, 164, 93, 0.42);
  color: var(--wertia-cream);
  background:
    linear-gradient(135deg, rgba(200, 164, 93, 0.28), rgba(42, 28, 19, 0.9)),
    var(--wertia-card);
  font-weight: 800;
}

/* Ricerca: nessuna cornice propria — vive dentro l'unico contenitore
   .kunden-search-card, non un secondo box annidato. */
.kunden-search {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 220px;
  color: var(--wertia-gold);
}

.kunden-search input {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 15px;
  min-height: 40px;
}

.kunden-results {
  display: grid;
  gap: 8px;
}

.results-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 2px;
}

.empty-results {
  grid-column: 1 / -1;
  padding: 20px;
  border: 1px dashed #d8c8ad;
  border-radius: 10px;
  color: #806f58;
  background: var(--wertia-panel-bg);
}

.recent-client-list {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--wertia-panel-border);
  border-radius: 10px;
  background: var(--wertia-panel-bg);
}

.recent-client-row {
  display: grid;
  grid-template-columns: 36px minmax(160px, 1.4fr) minmax(64px, auto) minmax(46px, auto) minmax(110px, 1fr) minmax(150px, 1.2fr) 36px;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 10px;
  border-bottom: 1px solid var(--wertia-inner-border);
}

.recent-client-row:last-child {
  border-bottom: 0;
}

.recent-client-row a {
  color: #6c5732;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Nome: stesso comportamento dell'icona occhio (identico data-client, un
   solo handler in JS), ma reso come testo — nessun bordo/box, solo un
   puntatore e un hover discreto. */
.rcr-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  padding: 4px 2px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.rcr-name:hover {
  color: var(--wertia-gold);
  text-decoration: underline;
}

.rcr-name:focus-visible {
  border-color: var(--wertia-gold);
  outline: none;
}

.rcr-phone,
.rcr-email {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
  color: #6c5732;
  text-decoration: none;
}

.rcr-phone:hover,
.rcr-email:hover {
  color: var(--wertia-gold);
}

.rcr-text-only {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Icona telefono/e-mail: visibile solo su mobile (vedi breakpoint 600px),
   dove sostituisce il testo completo. */
.rcr-icon-only {
  display: none;
  flex: none;
}

.rcr-icon-only svg {
  width: 16px;
  height: 16px;
}

.rcr-code,
.rcr-match {
  color: #a88945;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.2px;
  white-space: nowrap;
}

.rcr-match {
  color: #8a7b66;
  font-weight: 600;
}

.customer-code {
  display: inline-flex;
  align-items: center;
  margin-right: 8px;
  color: #a88945;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.4px;
}

.detail-code {
  margin-left: 2px;
  padding-top: 2px;
}

/* Icone: nessun box/bordo permanente — visibili solo su hover/focus, per
   evitare piccole caselle sempre accese nella lista. */
.eye-btn {
  display: grid;
  place-items: center;
  width: 32px;
  min-width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--wertia-gold);
  background: transparent;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.eye-btn:hover {
  background: var(--wertia-inner-bg);
}

.eye-btn:focus-visible {
  border-color: var(--wertia-gold);
  outline: none;
}

.row-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.danger-icon,
.danger-action {
  color: #9b3c3c;
}

.danger-icon:hover,
.danger-action:hover {
  border-color: rgba(184, 92, 92, 0.28);
  background: #fff6f1;
}

/* Tablet: riga a due livelli — [icona] [nome + Kunden-Nr.] / [telefon + e-mail] [icona].
   Ogni cella ha posizione esplicita (mai auto-flow misto a regole esplicite,
   per un risultato prevedibile). Match resta nascosto, non indispensabile
   quando lo spazio si riduce. */
@media (max-width: 900px) {
  .recent-client-row {
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    grid-template-rows: auto auto;
    row-gap: 3px;
    padding: 8px 10px;
  }
  .rcr-open   { grid-column: 1; grid-row: 1 / span 2; }
  .rcr-name   { grid-column: 2; grid-row: 1; }
  .rcr-code   { grid-column: 2; grid-row: 2; justify-self: start; }
  .rcr-match  { display: none; }
  .rcr-phone  { grid-column: 2; grid-row: 1; justify-self: end; font-size: 12.5px; }
  .rcr-email  { grid-column: 2; grid-row: 2; justify-self: end; font-size: 12.5px; max-width: 60%; }
  .rcr-delete { grid-column: 3; grid-row: 1 / span 2; }
}

/* Mobile: nome (+ Kunden-Nr. secondario) su una riga; telefono/e-mail
   diventano solo icone (tel:/mailto: reali) allineate con occhio/cestino
   sulla stessa riga — nessun testo completo, nessun overflow. */
@media (max-width: 600px) {
  .kunden-search-card {
    flex-direction: column;
    align-items: stretch;
  }
  .kunden-search { min-width: 0; }
  .kunden-actions { width: 100%; }
  .kunden-actions .gold-btn,
  .kunden-actions .ai-plus-btn {
    flex: 1;
  }
  .recent-client-row {
    grid-template-columns: 28px minmax(0, 1fr) 28px 28px 28px;
    grid-template-rows: auto auto;
    row-gap: 2px;
    padding: 8px;
  }
  .rcr-open   { grid-column: 1; grid-row: 1 / span 2; }
  .rcr-name   {
    grid-column: 2;
    grid-row: 1;
    max-width: 100%;
    font-weight: 500;
  }
  .rcr-code   { grid-column: 2; grid-row: 2; justify-self: start; font-weight: 400; }
  .rcr-match  { display: none; }
  .rcr-phone  { grid-column: 3; grid-row: 1 / span 2; justify-self: center; }
  .rcr-email  { grid-column: 4; grid-row: 1 / span 2; justify-self: center; }
  .rcr-delete { grid-column: 5; grid-row: 1 / span 2; }
  .rcr-icon-only { display: inline-flex; }
  .rcr-text-only { display: none; }
}

.client-card {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  overflow: hidden;
  box-shadow: none;
}

.id-thumb,
.id-one {
  color: #23332f;
  background:
    radial-gradient(circle at 72% 28%, rgba(184, 92, 92, 0.22), transparent 16%),
    linear-gradient(135deg, #a9d6cc, #eee0c6 48%, #c5dedf);
}

.id-thumb {
  display: grid;
  align-content: center;
  justify-items: center;
  min-height: 164px;
  padding: 14px;
}

.id-thumb span,
.id-one span {
  color: #0e9b72;
  font-weight: 900;
}

.id-thumb strong,
.id-one strong {
  font-size: 28px;
}

.id-thumb em {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin-top: 12px;
  border-radius: 999px;
  color: #fbf6ed;
  background: rgba(31, 28, 24, 0.58);
  font-style: normal;
  font-weight: 800;
}

.client-card-body {
  display: grid;
  gap: 14px;
  padding: 16px;
}

.client-card-body h3 {
  margin-bottom: 4px;
}

.client-card-body span,
.client-meta span {
  color: #7a6a55;
}

.client-meta {
  display: grid;
  gap: 5px;
  font-size: 13px;
}

.detail-main {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.client-detail-page {
  display: grid;
  gap: 24px;
}

.breadcrumb {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #8a806f;
  font-size: 17px;
}

.breadcrumb button {
  min-height: auto;
  padding: 0;
  border: 0;
  color: #7d725f;
  background: transparent;
  font-size: 17px;
}

.detail-grid {
  display: grid;
  grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.customer-form-grid {
  grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
  align-items: start;
}

.identity-card {
  padding: 18px;
  width: 100%;
  max-width: 340px;
  box-shadow: none;
}

.detail-column-resizer {
  display: none;
}

.insurance-column,
.detail-content {
  grid-column: 2;
}

.sticky-id {
  align-self: start;
}

.id-one {
  min-height: 0;
  padding: 18px;
  border: 1px solid #d9d0c0;
  border-radius: 12px;
  box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.32);
  aspect-ratio: 85.6 / 53.98;
  width: 100%;
  height: auto;
}

.id-one img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.id-one.has-preview {
  display: grid;
  place-items: center;
  padding: 0;
  overflow: hidden;
  background: var(--wertia-panel-bg);
}

.customer-id-placeholder {
  display: grid;
  align-content: space-between;
}

.id-upload-panel {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.id-upload-panel .outline-btn {
  width: 100%;
}

.id-upload-status {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid rgba(112, 163, 107, 0.28);
  border-radius: 8px;
  color: #2d602a;
  background: rgba(112, 163, 107, 0.12);
}

.id-upload-status.hidden {
  display: none;
}

.id-upload-status strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.id-upload-status svg {
  width: 16px;
  height: 16px;
}

.id-upload-status span {
  color: #52704d;
  font-size: 12px;
  font-weight: 800;
}

.client-action-bar {
  display: flex;
  flex-direction: row;
  gap: 6px;
  margin-top: 8px;
}

.client-action-bar .gold-btn,
.client-action-bar .outline-btn {
  min-height: 40px;
  padding: 0 10px;
  font-size: 12px;
}

.icon-only-btn {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid #d8c8a8;
  border-radius: 8px;
  background: var(--wertia-inner-bg);
  color: #806f58;
  cursor: pointer;
  position: relative;
}
.icon-only-btn:hover {
  background: #f0e6d0;
  color: #5a4a36;
}
.icon-only-btn.danger-action:hover {
  border-color: #c84a4a;
  color: #c84a4a;
}
.icon-only-btn[title] {
  position: relative;
}
.icon-only-btn[title]:hover::after {
  content: attr(title);
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  padding: 4px 8px;
  border-radius: 4px;
  background: #2c2823;
  color: #fffdf8;
  font-size: 11px;
  white-space: nowrap;
  z-index: 100;
  pointer-events: none;
}

.id-one > div {
  display: flex;
  align-items: center;
  gap: 18px;
}

.id-one p {
  margin: 10px 0 48px;
  color: #5d594f;
  font-size: 12px;
  font-weight: 800;
}

.id-one h3 {
  color: #1f1e1a;
  font-size: 22px;
}

.completion,
.barometer {
  height: 11px;
  overflow: hidden;
  border-radius: 999px;
  background: #eadfce;
}

.completion span,
.barometer span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--wertia-danger), var(--wertia-warning), var(--wertia-success));
}

.creation-context {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 20px;
  padding-top: 12px;
  border-top: 1px solid var(--wertia-inner-border);
  color: #8a7b66;
  font-size: 11px;
}

.identity-card .collapse-card {
  margin-top: 16px;
  box-shadow: none;
}

.identity-card .form-section-grid {
  grid-template-columns: 1fr;
}

.insurance-column {
  min-width: 0;
}

.insurance-status-card {
  padding: 28px;
  border: 1px solid var(--wertia-panel-border);
  border-radius: 14px;
  background: var(--wertia-panel-bg);
  box-shadow: 0 10px 30px rgba(54, 38, 23, 0.08);
}

.insurance-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.insurance-head h2 {
  color: #25211c;
  font-size: 28px;
}

.insurance-icons {
  display: grid;
  grid-template-columns: repeat(10, minmax(34px, 1fr));
  gap: 12px;
  margin: 14px 0 0;
  padding-bottom: 0;
}

.insurance-icon {
  display: grid;
  place-items: center;
  min-width: 0;
  height: 44px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #88817a;
  background: transparent;
  cursor: default;
  position: relative;
}
.insurance-icon { appearance: none; cursor: pointer; }
.insurance-icon-inactive { color: #aaa095; background: #f5f1ea; }
.insurance-icon-application { color: #c66f16; background: rgba(198, 111, 22, 0.12); border-color: rgba(198, 111, 22, 0.38); }
.insurance-icon-policy { color: #478a4d; background: rgba(71, 138, 77, 0.12); border-color: rgba(71, 138, 77, 0.38); }
.insurance-icon:focus-visible { outline: 3px solid rgba(199, 160, 60, 0.35); outline-offset: 2px; }

.insurance-icon::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  padding: 5px 9px;
  border-radius: 6px;
  background: #3a2c1c;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
  z-index: 20;
}

.insurance-icon:hover::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.insurance-icon svg {
  width: 31px;
  height: 31px;
  stroke-width: 1.3;
}

.insurance-icon.covered {
  color: #2f7a44;
  background: rgba(112, 163, 107, 0.13);
  border-color: rgba(112, 163, 107, 0.28);
}
.barometer-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.insurance-barometer-inline {
  grid-column: 1 / -1;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #ebe4d8;
}

.barometer-title strong {
  color: #d82424;
  font-size: 16px;
}

.barometer-title span {
  color: #8d8374;
  font-size: 11px;
}

.protection-line {
  position: relative;
  height: 7px;
  margin: 5px 0 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, #f2a1a1 0%, #f0b46f 42%, #f1df8c 62%, #93d39b 100%);
  box-shadow: inset 0 1px 2px rgba(80, 57, 34, 0.15);
}

.protection-pin {
  position: absolute;
  top: 50%;
  width: 9px;
  height: 9px;
  border: 1.5px solid #2c2823;
  border-radius: 999px;
  background: var(--wertia-panel-bg);
  transform: translate(-1px, -50%);
}

.protection-labels {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  color: #8f8578;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.protection-labels strong {
  color: #d82424;
}

.protection-labels span:nth-child(2) {
  text-align: center;
}

.protection-labels span:nth-child(3) {
  text-align: right;
}

.coverage-note {
  margin: 4px 0 0;
  color: #d82424;
  font-weight: 700;
  font-size: 11px;
}

.customer-work-card {
  margin-top: 18px;
  overflow: hidden;
  border: 1px solid var(--wertia-panel-border);
  border-radius: 14px;
  background: var(--wertia-panel-bg);
  box-shadow: 0 10px 30px rgba(54, 38, 23, 0.08);
}

.client-compliance-quickbar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 7px;
  width: 100%;
  margin: 12px 0 4px;
}

.client-compliance-shortcut {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 46px;
  padding: 4px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 10px;
  color: #7b7167;
  background: var(--wertia-inner-bg);
}

.client-compliance-shortcut span {
  overflow: hidden;
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
}

.client-compliance-shortcut:hover,
.client-compliance-shortcut:focus-visible {
  border-color: var(--wertia-gold);
  color: #2f251c;
}

.client-compliance-shortcut.is-present {
  border-color: #58b879;
  color: #176b39;
  background: #e8f7ed;
  box-shadow: inset 0 -3px 0 #2f9b59;
}

.customer-tabs {
  display: grid;
  grid-template-columns: repeat(7, minmax(64px, 1fr));
  overflow-x: auto;
  border-bottom: 1px solid var(--wertia-inner-border);
  background: var(--wertia-inner-bg);
}

.profile-unified-card { display: grid; gap: 18px; margin-bottom: 18px; }
.profile-unified-card fieldset { border: 1px solid var(--wertia-panel-border); border-radius: 12px; padding: 14px; margin: 0 0 12px; }
.profile-unified-card legend { padding: 0 8px; color: var(--wertia-gold); font-weight: 700; }
.profile-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.profile-unified-card fieldset { padding: 10px 12px; }
.profile-unified-card legend { display: flex; align-items: center; gap: 7px; font-size: 13px; }
.profile-unified-card legend svg { width: 16px; height: 16px; color: var(--wertia-gold); }
.profile-unified-card label { display: grid; gap: 4px; font-size: 12px; }
.profile-unified-card input, .profile-unified-card select { min-height: 36px; padding: 7px 9px; font-size: 14px; }
.profile-address-hint { grid-column: 1 / -1; color: var(--wertia-gold); min-height: 16px; }
.profile-form-grid label { display: grid; gap: 6px; color: var(--wertia-muted); font-size: 12px; font-weight: 700; }
.profile-form-grid input, .profile-form-grid select { width: 100%; min-height: 40px; border: 1px solid var(--wertia-inner-border); border-radius: 8px; padding: 8px 10px; background: var(--wertia-inner-bg); color: var(--wertia-page-fg); }
.profile-unified-actions, .profile-signature-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.danger-outline-btn { border: 1px solid var(--wertia-danger, #a85f4c); color: var(--wertia-danger, #a85f4c); background: transparent; border-radius: 9px; padding: 10px 14px; cursor: pointer; }
.danger-outline-btn:hover { background: color-mix(in srgb, var(--wertia-danger, #a85f4c) 10%, transparent); }
.profile-signature-qr-panel { display: grid; gap: 8px; justify-items: start; padding: 16px; border: 1px solid var(--wertia-panel-border); border-radius: 12px; background: var(--wertia-surface, #1d1b18); }
.profile-signature-qr-panel img { width: 220px; height: 220px; background: #fff; border-radius: 8px; padding: 8px; box-sizing: border-box; }
.profile-signature-qr-panel a { color: var(--wertia-gold); overflow-wrap: anywhere; }
.profile-signature-qr-dialog { width: min(420px, calc(100vw - 32px)); border: 1px solid var(--wertia-gold); border-radius: 16px; background: var(--wertia-panel, #171715); color: var(--wertia-text, #f3ead9); padding: 24px; text-align: center; }
.profile-signature-qr-dialog::backdrop { background: rgba(0,0,0,.72); }
.profile-signature-qr-dialog img { display: block; width: 260px; height: 260px; padding: 10px; margin: 16px auto; background: #fff; border-radius: 10px; box-sizing: border-box; }
.profile-signature-qr-dialog a { display: block; color: var(--wertia-gold); overflow-wrap: anywhere; margin-bottom: 12px; }
.profile-signature-qr-dialog .dialog-close-btn { position: absolute; top: 10px; right: 12px; background: transparent; border: 0; color: var(--wertia-gold); font-size: 26px; cursor: pointer; }
.settings-create-user { margin-top: 18px; }
.profile-signature-section { display: grid; gap: 10px; border-top: 1px solid var(--wertia-inner-border); padding-top: 16px; }
.profile-signature-section canvas { width: min(100%, 620px); height: 180px; border: 1px dashed var(--wertia-gold); border-radius: 10px; background: transparent; touch-action: none; }

.compliance-slot-grid {
  gap: 10px;
}

.compliance-doc-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}

.compliance-slot-placeholder {
  border-style: dashed;
}

.compliance-slot-mark,
.compliance-slot-code {
  color: var(--wertia-gold);
  font-weight: 700;
  letter-spacing: .08em;
}

.compliance-slot-placeholder .compliance-doc-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.customer-tab {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 6px;
  min-width: 110px;
  min-height: 78px;
  padding: 10px 8px;
  border: 0;
  border-right: 1px solid var(--wertia-inner-border);
  border-radius: 0;
  color: #7b7167;
  background: transparent;
  position: relative;
}

.customer-tab::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 5;
  transform: translate(-50%, -50%) translateY(3px);
  padding: 6px 10px;
  border-radius: 6px;
  background: #3a2c1c;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .08s ease, transform .08s ease;
}

.customer-tab:hover::after,
.customer-tab:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, -50%);
}

.customer-tab:last-child {
  border-right: 0;
}

.customer-tab svg {
  width: 22px;
  height: 22px;
  stroke-width: 1.9;
}

.customer-tab strong {
  max-width: 100%;
  overflow: hidden;
  font-size: 12px;
  line-height: 1.1;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.customer-tab:hover,
.customer-tab.active {
  color: #2f251c;
  background: var(--wertia-panel-bg);
}

.customer-tab.active {
  box-shadow: inset 0 -3px 0 var(--wertia-gold);
}

.customer-tab.active svg {
  color: var(--wertia-gold);
}

.customer-tab-panel {
  display: grid;
  gap: 18px;
  padding: 20px;
}

.tab-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.tab-panel-head h3 {
  margin-bottom: 0;
  color: #25211c;
  font-size: 20px;
}

.application-eye {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 8px;
  color: var(--wertia-gold);
  background: var(--wertia-panel-bg);
  text-decoration: none;
}

.application-eye.disabled {
  color: #c7bba8;
  background: #f2ede5;
}
.appt-status-pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
}
.appt-status-pill.appt-status-accepted {
  background: #e3f5e8;
  color: #2a8a4a;
}
.appt-status-pill.appt-status-pending {
  background: #fff4d8;
  color: #9a7a20;
}
.appt-status-pill.appt-status-submitted {
  background: #e8f0fb;
  color: #2c5ba8;
}
.appt-status-pill.appt-status-rejected {
  background: #fce8e8;
  color: #a82727;
}
.appt-status-pill.appt-status-cancelled {
  background: #f0f0f0;
  color: #666;
}

.application-medical-badge svg,
.application-medical-note.active svg {
  fill: currentColor;
  stroke: currentColor;
}

.application-medical-note.active {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #c22d2d;
  font-weight: 900;
}

.client-doc-grid {
  display: grid;
  gap: 10px;
}

.client-doc-slot {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 40px;
  align-items: center;
  gap: 12px;
  min-height: 62px;
  padding: 10px 12px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 10px;
  background: var(--wertia-inner-bg);
}

.client-doc-slot > span {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #e4d8c7;
  border-radius: 8px;
  color: #7b7167;
  background: var(--wertia-panel-bg);
}

.client-doc-slot div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.client-doc-slot small {
  color: #806f58;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-doc-slot.required {
  border-color: rgba(200, 164, 93, 0.5);
  background: #fff8e8;
}

.client-doc-slot.complete {
  border-color: rgba(112, 163, 107, 0.28);
  background: rgba(112, 163, 107, 0.1);
}

/* Compliance Document Lifecycle — estende il modulo Document Management (Doc. Kunde) */
.compliance-doc-section {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--wertia-inner-border);
}

.compliance-doc-row {
  grid-template-columns: 42px minmax(0, 1fr) auto;
}

.compliance-doc-actions {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 44px;
  grid-template-columns: none;
  align-items: center;
  gap: 6px;
  justify-content: end;
  width: max-content;
  max-width: none;
  justify-self: end;
}

.compliance-doc-actions .application-eye,
.compliance-doc-actions .compliance-icon-action {
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.compliance-doc-actions .application-eye svg,
.compliance-doc-actions .compliance-icon-action svg {
  width: 20px;
  height: 20px;
}

.readonly-field {
  min-height: 60px;
  padding: 10px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 10px;
  background: var(--wertia-inner-bg);
}

.readonly-field span {
  display: block;
  color: #7f705d;
  font-size: 12px;
  font-weight: 800;
}

.readonly-field strong {
  display: block;
  margin-top: 5px;
}

.creation-context span {
  display: inline-flex;
  align-items: center;
}

.creation-context span:not(:last-child)::after {
  content: "·";
  margin-left: 10px;
  color: #c4ab78;
}

.collapse-card {
  overflow: hidden;
  border: 1px solid var(--wertia-panel-border);
  border-radius: 14px;
  background: var(--wertia-panel-bg);
  box-shadow: 0 10px 30px rgba(54, 38, 23, 0.08);
}

.collapse-card summary {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 0 18px;
  color: #3a2e22;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}

.collapse-card summary::-webkit-details-marker {
  display: none;
}

.collapse-card[open] summary {
  border-bottom: 1px solid var(--wertia-inner-border);
}

.collapse-card summary svg {
  color: var(--wertia-gold);
}

.collapse-card summary.summary-actions {
  grid-template-columns: minmax(0, 1fr) auto;
}

.summary-title {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.summary-tools {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.summary-icon-btn {
  display: grid;
  place-items: center;
  min-width: 34px;
  width: 34px;
  height: 34px;
  min-height: 34px;
  padding: 0;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 8px;
  color: var(--wertia-gold);
  background: var(--wertia-panel-bg);
}

.summary-icon-btn svg {
  width: 16px;
  height: 16px;
}

.form-section-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 18px;
}

.field-control {
  min-width: 0;
}

.field-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.field-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  min-height: 40px;
  border: 1px solid #e4d8c7;
  border-radius: 8px;
  background: var(--wertia-panel-bg);
  overflow: hidden;
}

.field-row.has-suffix {
  grid-template-columns: 28px minmax(0, 1fr) auto;
}

.field-icon {
  display: grid;
  place-items: center;
  align-self: stretch;
}

.field-icon svg {
  width: 16px;
  height: 16px;
  color: var(--wertia-gold);
  stroke-width: 2.2;
}

.field-control input,
.field-control select {
  width: 100%;
  min-height: 40px;
  border: 0;
  border-left: 1px solid #eee3d2;
  border-radius: 0;
  background: transparent;
}

.personal-data-table {
  gap: 0;
  padding: 8px 14px 10px;
}

.identity-card .personal-data-table {
  grid-template-columns: 1fr;
}

.personal-data-table .field-pair {
  gap: 0;
}

.personal-data-table .field-control {
  border-bottom: 1px solid var(--wertia-inner-border);
}

.personal-data-table .field-row {
  min-height: 34px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.personal-data-table .field-icon {
  width: 26px;
}

.personal-data-table .field-icon svg {
  width: 15px;
  height: 15px;
}

.personal-data-table .field-control input,
.personal-data-table .field-control select {
  min-height: 34px;
  border-left: 0;
  padding: 3px 6px;
  color: #2d2923;
  font-size: 13px;
  font-weight: 400;
}

.personal-data-table .field-suffix {
  border-left: 0;
  font-size: 15px;
  font-weight: 400;
}

.contact-data-table {
  gap: 0;
  padding: 10px 16px 14px;
}

.identity-card .contact-data-table {
  grid-template-columns: 1fr;
}

.contact-data-table .field-control {
  border-bottom: 1px solid var(--wertia-inner-border);
}

.contact-data-table .field-row {
  min-height: 46px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.contact-data-table .field-icon {
  width: 30px;
}

.contact-data-table .field-icon svg {
  width: 18px;
  height: 18px;
}

.contact-data-table .field-control input,
.contact-data-table .field-control select {
  min-height: 46px;
  border-left: 0;
  padding: 6px 8px;
  color: #2d2923;
  font-size: 17px;
  font-weight: 400;
}

[data-client-editable-section].is-readonly input:disabled,
[data-client-editable-section].is-readonly select:disabled,
[data-client-editable-section].is-readonly textarea:disabled {
  color: var(--wertia-text);
  -webkit-text-fill-color: var(--wertia-text);
  background: transparent;
  cursor: default;
  opacity: 1;
}

[data-client-editable-section].is-editing {
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--wertia-gold) 78%, transparent);
}

.summary-icon-btn:disabled {
  cursor: default;
  opacity: 0.38;
}

.field-suffix {
  display: flex;
  align-items: center;
  align-self: stretch;
  padding: 0 10px;
  border-left: 1px solid #eee3d2;
  color: var(--wertia-gold);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.readonly-row strong {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 0 10px;
  border-left: 1px solid #eee3d2;
}

.contact-shortcuts {
  padding: 0 18px 18px;
}

.contact-shortcuts a,
.contact-shortcuts button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid #e4d8c7;
  border-radius: 8px;
  color: #6c5732;
  background: var(--wertia-inner-bg);
  text-decoration: none;
  font-weight: 800;
  cursor: pointer;
  font-size: inherit;
}

.form-hint {
  margin: -4px 18px 18px;
  font-size: 13px;
}

.compliance-badge.ok {
  color: #2d602a;
  background: rgba(112, 163, 107, 0.18);
}

.compliance-panel .section-head > span {
  color: #8c3030;
  font-weight: 900;
}

.percent {
  color: var(--wertia-gold);
  font-size: 30px;
}

.coverage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.coverage-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 10px;
  background: var(--wertia-inner-bg);
}

.ok-text {
  color: #497a45;
}

.warn-text {
  color: #9a6b20;
}

.danger-text {
  color: #9b3c3c;
}

.muted-text {
  color: #918572;
}

.data-groups {
  display: grid;
  gap: 18px;
}

.data-group {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.data-group h3 {
  grid-column: 1 / -1;
  margin-bottom: 0;
  color: #3a2e22;
}

.data-group div {
  min-height: 62px;
  padding: 10px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 10px;
  background: var(--wertia-inner-bg);
}

.data-group span {
  display: block;
  color: #7f705d;
  font-size: 12px;
}

.data-group strong {
  display: block;
  margin-top: 5px;
}

dialog {
  width: min(720px, calc(100vw - 28px));
  padding: 0;
  border: 0;
  background: transparent;
}

#applicationDialog {
  width: min(980px, calc(100vw - 28px));
}

#idCropDialog {
  width: min(980px, calc(100vw - 28px));
}

#userDialog {
  width: min(440px, calc(100vw - 28px));
}

/* Bug pre-esistente trovato durante la verifica del Customer Ownership Model
   (2026-07-26): il form interno usa .wide-modal (980px) ma #advisorDialog ricadeva
   sulla regola generica `dialog` (720px), causando overflow orizzontale del contenuto.
   Stesso pattern di override già usato sopra per #applicationDialog/#idCropDialog. */
#advisorDialog {
  width: min(980px, calc(100vw - 28px));
}

/* La regola generica `dialog` sopra azzera background/padding/border: senza
   queste regole il visualizzatore allegati Mail (già esistente, mai
   stilizzato) è invisibile — solo il contenuto interno galleggia senza box. */
#mailAttachmentPreviewDialog {
  width: min(720px, calc(100vw - 28px));
  max-height: calc(100vh - 56px);
  border-radius: 12px;
  background: var(--wertia-panel-bg);
  box-shadow: 0 20px 48px rgba(22,15,10,.28);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.mail-attachment-preview-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--wertia-panel-border);
}
.mail-attachment-preview-title { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mail-attachment-preview-title strong { font-size: 14px; color: var(--wertia-text); overflow-wrap: anywhere; }
.mail-attachment-preview-title small { font-size: 11px; color: var(--wertia-muted); }
.mail-attachment-preview-body {
  flex: 1;
  min-height: 200px;
  max-height: 70vh;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--wertia-inner-bg);
}
.mail-attachment-preview-body img { max-width: 100%; max-height: 70vh; object-fit: contain; }
.mail-attachment-preview-body object,
.mail-attachment-preview-body iframe { width: 100%; height: 70vh; border: 0; }
.mail-attachment-preview-unsupported { padding: 32px; color: var(--wertia-muted); font-size: 13px; }
.mail-attachment-preview-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid var(--wertia-panel-border);
}

dialog::backdrop {
  background: rgba(22, 15, 10, 0.55);
}

.modal {
  padding: 20px;
  border: 1px solid var(--wertia-panel-border);
  border-radius: 14px;
  background: var(--wertia-panel-bg);
}

.wide-modal {
  width: min(980px, calc(100vw - 28px));
}

.id-crop-modal {
  width: min(940px, calc(100vw - 28px));
}

.modal-head,
.modal-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 18px 0;
}

.form-wide {
  grid-column: 1 / -1;
}

.ia-fill-status {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(112, 163, 107, 0.28);
  border-radius: 8px;
  color: #2d602a;
  background: rgba(112, 163, 107, 0.12);
  font-size: 12px;
  font-weight: 800;
}

.ia-fill-status.hidden {
  display: none;
}

.start-choice-field {
  display: grid;
  gap: 8px;
}

.start-choice-field > strong {
  color: #74644f;
  font-size: 13px;
}

.start-choice-grid {
  display: grid;
  gap: 8px;
}

.lead-source-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.two-choice-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.start-choice-btn {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 10px;
  border: 1px solid #e4d8c7;
  border-radius: 8px;
  color: #4d4134;
  background: var(--wertia-panel-bg);
  text-align: left;
}

.start-choice-btn span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 7px;
  color: var(--wertia-gold);
  background: var(--wertia-inner-bg);
}

.start-choice-btn svg {
  width: 15px;
  height: 15px;
}

.start-choice-btn strong {
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.start-choice-btn.active {
  border-color: var(--wertia-gold);
  color: var(--wertia-bg);
  background: linear-gradient(135deg, #fff8e8, #f2dfaa);
}

.start-choice-btn.active span {
  color: #fffdf8;
  background: var(--wertia-gold);
}

.application-stepper button.active {
  border-color: var(--wertia-gold);
  color: #2d2923;
  background: #fff8e8;
}

.coach-field.hidden,
.hidden {
  display: none !important;
}

.application-block.hidden,
.coach-field.hidden,
.application-rest.hidden {
  display: none !important;
}

.application-block-head .kicker {
  margin-bottom: 2px;
}
.compliance-group .kicker { margin-bottom: 8px; }
.doc-source-btn.active {
  border-color: var(--wertia-gold);
  background: var(--wertia-panel-bg);
  box-shadow: 0 0 0 1px rgba(200, 164, 93, 0.28) inset;
}
.doc-source-btn.active .doc-source-icon,
.doc-source-btn.active strong {
  color: var(--wertia-gold);
}
.doc-source-btn.card-option.active { background: var(--wertia-cream); }
.doc-source-btn.card-option.active .card-option-icon {
  background: var(--wertia-gold);
  border-color: var(--wertia-gold);
  color: #fff;
}
.doc-source-buttons.segbar .doc-source-btn.active {
  background: var(--wertia-gold);
  box-shadow: none;
}
.doc-source-buttons.segbar .doc-source-btn.active strong { color: #fff; }
.doc-source-buttons.segbar .doc-source-btn.active svg { color: #fff; }

/* Footer del Wizard a icone (Wizard V2, 2026-07-27) — sostituisce i bottoni
   testuali Abbrechen/Zurück/Weiter/Antrag Speichern. La navigazione
   all'indietro passa dal click su uno step già raggiunto nel mini-stepper. */
.wizard-icon-footer .icon-btn-sq,
.wizard-icon-footer .wizard-mini-stepper button,
.wizard-icon-footer .icon-btn-primary {
  position: relative;
}
.wizard-icon-footer [title]:hover::after {
  content: attr(title);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 10px;
  border-radius: 6px;
  background: #2c2823;
  color: #fffdf8;
  font-size: 11px;
  z-index: 100;
  white-space: nowrap;
  pointer-events: none;
}
.icon-btn-sq {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  border: 1px solid var(--wertia-panel-border);
  background: var(--wertia-panel-bg);
  color: #6f604e;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: border-color 160ms ease, color 160ms ease;
}
.icon-btn-sq:hover { border-color: var(--wertia-gold); color: #2f2623; }
.icon-btn-sq svg { width: 18px; height: 18px; }
.wizard-mini-stepper { display: flex; align-items: center; gap: 8px; }
.wizard-mini-stepper button {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1.5px solid var(--wertia-inner-border);
  background: var(--wertia-panel-bg);
  color: #b8a98f;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}
.wizard-mini-stepper button svg { width: 16px; height: 16px; }
.wizard-mini-stepper button.active {
  background: var(--wertia-gold);
  border-color: var(--wertia-gold);
  color: #fff;
}
.wizard-mini-stepper button:not(.active):not(:disabled) {
  border-color: var(--wertia-gold-soft);
  color: var(--wertia-gold);
}
.wizard-mini-stepper button:disabled { opacity: 0.45; cursor: not-allowed; }
.mini-connector { width: 22px; height: 1px; background: var(--wertia-inner-border); }
.icon-btn-primary {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  border: none;
  background: var(--wertia-gold);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.icon-btn-primary svg { width: 20px; height: 20px; }
.icon-btn-primary:disabled { opacity: 0.45; cursor: not-allowed; }
.icon-btn-primary:hover:not(:disabled) { background: var(--wertia-gold-soft); }
.doc-source-choice.hidden { display: none; }


.hidden-file-input {
  display: none;
}

.document-import-panel.hidden {
  display: none;
}

.id-crop-body {
  display: grid;
  gap: 12px;
}

.id-crop-guide {
  position: relative;
  display: grid;
  place-items: center;
  padding: 18px;
  border: 1px solid rgba(200, 164, 93, 0.36);
  border-radius: 0;
  background:
    linear-gradient(45deg, rgba(200, 164, 93, 0.08) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(200, 164, 93, 0.08) 25%, transparent 25%),
    var(--wertia-inner-bg);
  background-size: 22px 22px;
}

.id-crop-guide::after {
  content: "";
  position: absolute;
  inset: 18px;
  border: 3px solid rgba(200, 164, 93, 0.78);
  border-radius: 0;
  pointer-events: none;
}

#idCropCanvas {
  width: min(100%, 856px);
  aspect-ratio: 85.6 / 53.98;
  border: 1px solid rgba(42, 28, 19, 0.18);
  border-radius: 0;
  background: var(--wertia-panel-bg);
  box-shadow: 0 14px 28px rgba(54, 38, 23, 0.16);
}

.id-crop-corner {
  position: absolute;
  width: 58px;
  height: 58px;
  border-color: var(--wertia-gold);
  border-style: solid;
  pointer-events: none;
  z-index: 1;
}

.id-crop-corner.top-left {
  top: 18px;
  left: 18px;
  border-width: 3px 0 0 3px;
  border-top-left-radius: 0;
}

.id-crop-corner.top-right {
  top: 18px;
  right: 18px;
  border-width: 3px 3px 0 0;
  border-top-right-radius: 0;
}

.id-crop-corner.bottom-left {
  bottom: 18px;
  left: 18px;
  border-width: 0 0 3px 3px;
  border-bottom-left-radius: 0;
}

.id-crop-corner.bottom-right {
  right: 18px;
  bottom: 18px;
  border-width: 0 3px 3px 0;
  border-bottom-right-radius: 0;
}

#idCropHint {
  margin: 0;
  color: #756550;
  font-size: 13px;
}

.id-crop-controls {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto auto;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 10px;
  background: var(--wertia-panel-bg);
}

.id-crop-controls label,
.id-crop-rotate-actions {
  display: grid;
  gap: 8px;
  color: #6f604e;
  font-size: 12px;
  font-weight: 500;
}

.id-crop-controls input[type="range"] {
  width: 100%;
  min-height: 28px;
  padding: 0;
  accent-color: var(--wertia-gold);
}

.id-crop-rotate-actions {
  grid-template-columns: repeat(2, minmax(74px, 1fr));
}

.id-crop-nudge-actions {
  display: grid;
  grid-template-rows: repeat(3, 40px);
  gap: 6px;
  min-width: 96px;
}

.id-crop-nudge-actions div {
  display: grid;
  grid-template-columns: repeat(2, minmax(42px, 1fr));
  gap: 6px;
}

.id-crop-nudge-actions .outline-btn {
  min-height: 40px;
  padding: 0;
  font-size: 20px;
}

.id-crop-controls .outline-btn {
  min-height: 40px;
}

.start-id-upload-field {
  display: grid;
  gap: 8px;
}

.id-source-main-btn {
  justify-content: center;
  min-height: 52px;
  gap: 10px;
  border-style: dashed;
}

.id-source-main-btn svg {
  width: 22px;
  height: 22px;
}

.start-id-upload-field small {
  color: #806f58;
  font-size: 12px;
}

.skip-id-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #8a7d63;
  cursor: pointer;
  padding: 8px 0;
}
.skip-id-checkbox input {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: #c89b3c;
}
.skip-id-checkbox span {
  user-select: none;
}

.id-source-modal {
  width: min(680px, calc(100vw - 32px));
}

.id-source-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.id-source-option {
  display: grid;
  justify-items: start;
  gap: 8px;
  min-height: 132px;
  padding: 16px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 12px;
  background: #fffaf0;
  color: var(--wertia-ink);
  text-align: left;
  cursor: pointer;
}

.id-source-option span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #f2e2c1;
  color: #8b6423;
}

.id-source-option svg {
  width: 22px;
  height: 22px;
}

.id-source-option strong {
  font-size: 16px;
}

.id-source-option em {
  color: #756550;
  font-style: normal;
  font-size: 13px;
}

.id-source-option:hover {
  border-color: var(--wertia-gold);
  box-shadow: 0 10px 24px rgba(97, 69, 26, 0.12);
}

.id-source-qr {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 12px;
  background: var(--wertia-panel-bg);
}

.id-source-qr-code {
  display: grid;
  place-items: center;
  width: 190px;
  height: 190px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 12px;
  background: white;
}

.id-source-qr-code img {
  width: 180px;
  height: 180px;
}

.id-source-qr span,
.id-source-qr a {
  display: block;
  margin-top: 8px;
  color: #756550;
  overflow-wrap: anywhere;
}

#qrUploadPanel {
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
}

.termination-flag.hidden {
  display: none;
}

.product-components-preview.hidden {
  display: none;
}
.commission-record-warning.hidden { display: none; }

.commission-actions-panel.hidden {
  display: none;
}

.identified-products-table.hidden {
  display: none;
}

/* Pilota Groupe Mutuel — righe di contratto Krankenkasse indipendenti */
.gm-rows-editor.hidden { display: none; }

#gmAddRowBtn { margin-top: 8px; }
.adt-annual-auto-btn.hidden {
  display: none;
}

/* Fix 2026-07-30: Startdatum/Enddatum senza icona calendario e senza stile
   a "box" — solo testo modificabile, come una cella Excel. Nessuna logica
   toccata: stesso input#antragRowStart/#antragRowEnd, stesso valore, stesso
   salvataggio/validazione — solo presentazione visiva. */
#antragRowStart,
#antragRowEnd {
  margin: 0;
  padding: 9px 10px;
  border: none;
  border-radius: 0;
  background: transparent;
  width: 100%;
}

#antragRowStart::-webkit-calendar-picker-indicator,
#antragRowEnd::-webkit-calendar-picker-indicator {
  display: none;
  -webkit-appearance: none;
}

.adt-row-error.hidden { display: none; }

.antragsdaten-preview .outline-btn {
  margin-top: 8px;
}

/* Step 3 (2026-07-30): campi legacy duplicati dalla tabella Antragsdaten —
   nascosti SOLO visivamente. ID, funzioni JS (toggleField, updateApplication-
   Calculation/-ModelFields, saveApplication) e attributi restano invariati e
   continuano a leggerli/scriverli normalmente; !important garantisce che
   restino invisibili anche quando toggleField() rimuove la propria classe
   .hidden dinamica in base a categoria/modello. */
.legacy-hidden-permanent { display: none !important; }

.gm-commission-rows.hidden { display: none; }

.provider-list-item.active {
  background: #fbf4e7;
  box-shadow: inset 4px 0 0 var(--provider-accent);
}

label {
  display: grid;
  gap: 6px;
  color: #74644f;
  font-size: 13px;
  font-weight: 700;
}

input,
select,
textarea {
  min-height: 40px;
  border: 1px solid #e4d8c7;
  border-radius: 8px;
  padding: 8px 10px;
  background: var(--wertia-panel-bg);
}

body {
  font-weight: 400;
}

strong,
b {
  font-weight: 600;
}

button,
label,
.nav-item,
.nav-item.active,
.kicker,
.application-field > span,
.vorsorge-three-cols span,
.customer-tab strong,
.tab-data-row strong,
.application-row small,
.application-row em,
.readonly-field span,
.termination-flag span,
.provider-rule-header,
.provider-rule-total,
.provider-rule-row input:nth-child(3) {
  font-weight: 500;
}

h1,
h2,
h3,
h4,
.metric-card strong,
.vorsorge-three-cols strong,
.provider-card h3,
.provider-product h4 {
  font-weight: 600;
}

@media (max-width: 1180px) {
  .content-grid,
  .detail-grid{
    grid-template-columns: 1fr;
  }

  .detail-column-resizer {
    display: none;
  }

  .insurance-column,
  .detail-content {
    grid-column: auto;
  }
  .document-grid,
  .company-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  dialog,
  #applicationDialog,
  #idCropDialog {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
  }

  .modal,
  .wide-modal,
  .id-crop-modal {
    width: 100%;
    max-height: calc(100dvh - 16px);
    overflow-y: auto;
    padding: 14px;
  }

  .modal-head,
  .modal-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .modal-actions button {
    width: 100%;
  }

  .id-crop-guide {
    padding: 10px;
  }

  #idCropCanvas {
    width: 100%;
    max-height: 42dvh;
    object-fit: contain;
  }

  .id-crop-controls {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .id-crop-rotate-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .id-crop-nudge-actions {
    grid-template-rows: repeat(3, 44px);
    min-width: 0;
  }

  .id-source-actions,
  .id-source-qr {
    grid-template-columns: 1fr;
  }

  .application-stepper {
    grid-template-columns: 1fr;
  }

  .id-source-option {
    min-height: 96px;
  }

  .id-source-qr-code {
    justify-self: center;
  }

  .id-crop-controls input[type="range"] {
    min-height: 34px;
  }

  .app-shell,
  .app-shell:not(.sidebar-collapsed) {
    grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
  }

  .workspace {
    padding: 16px;
  }

  .topbar,
  .section-head,
  .kunden-search-card {
    align-items: stretch;
    flex-direction: column;
  }

  .kunden-search-card {
    grid-template-columns: 1fr;
  }

  .search {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  .metrics-grid,
  .coverage-grid,
  .customer-tabs,
  .application-form-grid,
  .commission-table,
  .identified-products-table,
  .vorsorge-three-cols,
  .method-choice,
  .data-group,
  .document-grid,
  .company-grid,
  .form-grid,
  .identified-data-grid,
  .identified-identity-row {
    grid-template-columns: 1fr;
  }

  .identified-data-grid .application-field,
  .identified-identity-row .application-field {
    grid-template-columns: 1fr;
    align-items: start;
    border-right: none;
  }
}

.customer-acquired-banner {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid rgba(112, 163, 107, 0.36);
  border-radius: 10px;
  color: #214f23;
  background: #eaf6e8;
  box-shadow: 0 12px 28px rgba(31, 78, 35, 0.12);
}

.customer-acquired-banner > svg {
  width: 28px;
  height: 28px;
  padding: 10px;
  border-radius: 10px;
  color: #1f6b31;
  background: white;
}

.customer-acquired-banner strong {
  display: block;
  font-size: 20px;
}

.customer-acquired-banner span {
  display: block;
  margin-top: 3px;
  color: #3b6b3b;
}

.client-doc-stack {
  display: grid;
  gap: 12px;
}

.client-id-document-card {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(112, 163, 107, 0.34);
  border-radius: 10px;
  background: #edf8eb;
}

.client-id-document-card > span {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 10px;
  color: #1f6b31;
  background: white;
}

.client-id-document-card small {
  display: block;
  margin-top: 4px;
  color: #4f744c;
  overflow-wrap: anywhere;
}

/* ID document success state remains readable in the dark luxury theme. */
html[data-theme="dark-luxury"] .client-id-document-card {
  background: #1d3023;
  border-color: #6e9674;
  color: var(--wertia-cream);
}
html[data-theme="dark-luxury"] .client-id-document-card > span {
  background: #263d2b;
  color: #8fc39a;
}
html[data-theme="dark-luxury"] .client-id-document-card strong { color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .client-id-document-card small { color: #b9d1bc; }
html[data-theme="dark-luxury"] .client-id-document-card .outline-btn {
  color: #c6d8b8;
  border-color: #8ea66f;
  background: transparent;
}
html[data-theme="dark-luxury"] .client-id-document-card .outline-btn:hover {
  background: rgba(142, 166, 111, .14);
}

/* User preference: keep interface copy light, avoid heavy bold text. */
strong,
b,
.application-row small,
.application-row em,
.tab-data-row strong,
.metric-card strong,
.coverage-row strong,
.data-group strong,
.document-folder strong,
.field-suffix,
[data-readonly],
.application-stepper strong,
.document-import-panel strong,
.vorsorge-three-cols strong,
.component-preview-row span,
.component-preview-row strong,
.customer-acquired-banner strong,
.client-id-document-card strong,
.client-doc-slot strong,
.provider-list-item strong,
.provider-card strong {
  font-weight: 500;
}

.application-field > span,
.field-label,
.kicker,
.eyebrow,
.application-status-label,
.application-medical-note.active,
.application-accept-btn,
.application-accept-badge,
.application-medical-btn,
.application-medical-badge,
.component-preview-row input {
  font-weight: 500;
}

body,
button,
input,
select,
textarea {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 300;
}

strong,
b,
small,
em,
label,
span,
p,
button,
input,
select,
textarea,
.field-label,
.kicker,
.eyebrow {
  font-weight: 300;
}

h1,
h2,
h3 {
  font-weight: 400;
}
.mandate-client-info .customer-code {
  font-size: 12px;
  color: #a0917a;
}

.contracts-tab.active {
  color: #3a2c1c;
  border-bottom-color: var(--wertia-gold);
}

.contracts-filters .field-control {
  flex: 1;
  min-width: 140px;
}

.action-summary-grid .field-label {
  color: #8a7d63;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.contracts-actions .eye-btn {
  width: 30px;
  height: 30px;
}

.provvigioni-actions .outline-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(200, 164, 93, 0.4);
  border-radius: 10px;
  background: var(--wertia-panel-bg);
  color: var(--wertia-gold);
  font-weight: 700;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}

.provvigioni-actions .outline-btn:hover {
  background: #fbf3e2;
  border-color: var(--wertia-gold);
}

.provvigioni-actions .outline-btn svg {
  width: 17px;
  height: 17px;
}

.provvigioni-filters .field-control {
  flex: 1;
  min-width: 140px;
}

@media (max-width: 900px) {
  .prov-kpi-row { grid-template-columns: repeat(2, 1fr); }
}

/* CHAT WIDGET */
.chat-widget {
  position: fixed;
  bottom: 22px;
  right: 22px;
  z-index: 400;
  font-family: inherit;
}

.chat-fab {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  border: none;
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  color: #1a1208;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(60, 42, 20, 0.28), 0 0 0 1px rgba(255, 246, 210, 0.3);
  transition: transform 180ms ease;
  position: relative;
}

.chat-fab:hover { transform: translateY(-2px) scale(1.04); }

.chat-fab svg { width: 26px; height: 26px; stroke-width: 1.8; }

.chat-fab-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #a82727;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 0 0 2px var(--wertia-panel-bg);
}

.chat-panel {
  position: absolute;
  bottom: 74px;
  right: 0;
  width: 380px;
  height: 540px;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(200, 164, 93, 0.28);
  border-radius: 16px;
  background: var(--wertia-panel-bg);
  box-shadow: 0 24px 60px rgba(40, 28, 14, 0.32);
  overflow: hidden;
}

.chat-panel[hidden] { display: none; }

.chat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: linear-gradient(135deg, #1a1310, #2a1c13);
  color: #f4e8d0;
  border-bottom: 1px solid rgba(200, 164, 93, 0.2);
}

.chat-head-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.chat-head-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  color: #1a1208;
  font-weight: 800;
}

.chat-head-info strong { display: block; font-size: 14px; }
.chat-head-info small { display: block; color: var(--wertia-gold-soft); font-size: 11px; }

.chat-head-actions { display: flex; gap: 6px; }

.chat-head-btn {
  width: 32px;
  height: 32px;
  min-height: 32px;
  border: none;
  border-radius: 8px;
  background: rgba(244, 232, 208, 0.08);
  color: var(--wertia-gold-soft);
  display: grid;
  place-items: center;
  cursor: pointer;
}

.chat-head-btn:hover { background: rgba(244, 232, 208, 0.16); }
.chat-head-btn svg { width: 16px; height: 16px; }

.chat-body {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #faf4e8;
}

.chat-attach-preview {
  padding: 8px 12px;
  border-top: 1px solid rgba(200, 164, 93, 0.18);
  background: #fbf3e2;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.chat-attach-preview[hidden] { display: none; }

.chat-input-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid rgba(200, 164, 93, 0.18);
  background: var(--wertia-panel-bg);
}

.chat-attach-btn,
.chat-send-btn {
  width: 38px;
  height: 38px;
  min-height: 38px;
  border: 1px solid rgba(200, 164, 93, 0.28);
  border-radius: 10px;
  background: var(--wertia-panel-bg);
  color: var(--wertia-gold);
  display: grid;
  place-items: center;
  cursor: pointer;
  flex-shrink: 0;
}

.chat-attach-btn:hover, .chat-send-btn:hover {
  background: #fbf3e2;
  border-color: var(--wertia-gold);
}

.chat-attach-btn svg, .chat-send-btn svg { width: 18px; height: 18px; }

.chat-send-btn {
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  border-color: var(--wertia-gold);
  color: #1a1208;
}

#chatTextInput {
  flex: 1;
  min-height: 40px;
  border: 1px solid rgba(200, 164, 93, 0.28);
  border-radius: 10px;
  padding: 0 14px;
  background: var(--wertia-panel-bg);
  color: #2a2118;
  font-size: 14px;
  outline: none;
}

#chatTextInput:focus { border-color: var(--wertia-gold); }

@media (max-width: 480px) {
  .chat-panel { width: calc(100vw - 44px); height: 70vh; }
}

.aufg-actions .summary-icon-btn {
  width: 30px;
  height: 30px;
  min-height: 30px;
}

.prov-level-chip.active {
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  border-color: var(--wertia-gold);
  color: #1a1208;
}

#userDialog {
  width: min(440px, calc(100vw - 28px));
  max-width: 440px;
  overflow: hidden;
}

#userDialog .modal {
  padding: 16px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

#userDialog #userDialogBody {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  box-sizing: border-box;
}

#userDialog .modal-head {
  margin-bottom: 10px;
}

#userDialog .modal-head h2 {
  font-size: 18px;
}

#userDialog .modal-actions {
  margin-top: 12px;
}

#userDialog .modal-actions button {
  min-height: 38px;
  font-size: 13px;
}

.profile-menu-user {
  padding: 4px 8px 6px;
}

.profile-switch-label {
  margin: 0 4px 6px;
  color: var(--wertia-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.profile-switch-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.profile-switch-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--wertia-page-fg);
  font-size: 13px;
  text-align: left;
  cursor: pointer;
  transition: background 140ms ease;
}

.profile-switch-btn:hover { background: var(--wertia-inner-bg); }
.profile-switch-btn.active {
  background: var(--wertia-inner-bg);
  border-color: var(--wertia-gold);
}

.profile-switch-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  color: #1a1208;
  font-size: 12px;
  font-weight: 800;
  flex-shrink: 0;
}
.profile-switch-avatar-photo,
.profile-avatar-photo,
.profile-page-avatar-photo {
  width: 100%; height: 100%; display: block; object-fit: cover; border-radius: 50%;
}
.profile-photo-upload { display: inline-flex; margin-top: 8px; width: fit-content; font-size: 12px; padding: 6px 10px; }
.profile-photo-save { margin-top: 8px; margin-left: 6px; font-size: 12px; padding: 6px 10px; }
.profile-photo-input { display: block; max-width: 220px; margin-top: 8px; color: var(--wertia-muted); font-size: 11px; }
.profile-photo-message { display: block; margin-top: 6px; color: var(--wertia-muted); }

.profile-switch-name { flex: 1; font-weight: 600; }
.profile-switch-btn small {
  color: var(--wertia-muted);
  font-size: 11px;
}

#coachLabel.hidden { display: none; }

/* USER FORM COMPACT */
.user-form-compact {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.finma-seg-btn.active {
  border-color: var(--wertia-gold);
  background: var(--wertia-gold);
  color: #fff;
}

@media (max-width: 900px) {
  .roles-grid { grid-template-columns: 1fr; }
  .prov-level-grid { grid-template-columns: repeat(3, 1fr); }
}

.fa-proj-card .kicker {
  margin: 0 0 4px;
}

@media (max-width: 900px) {
  .fa-lcharts, .fa-scenario-detail, .fa-two-col, .fa-proj-grid { grid-template-columns: 1fr; }
}
.fa-wizard-head .kicker { margin: 0; }

.fa-step-dot.active {
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  color: #1a1208;
}

.fa-step-dot.active .fa-step-num { background: #1a1208; color: var(--wertia-gold-soft); }

.fa-pick-btn.active, .fa-pick-btn:hover {
  background: #fbf3e2;
  border-color: var(--wertia-gold);
}
.fa-client-row.active { border-color: var(--wertia-gold); background: #fbf3e2; }

.fa-client-row .profile-avatar { width: 30px; height: 30px; font-size: 11px; }

.fa-wizard-nav .primary-btn, .fa-wizard-nav .outline-btn {
  min-height: 38px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  font-size: 13px;
}

@media (max-width: 700px) {
  .fa-client-list, .fa-summary-grid { grid-template-columns: 1fr; }
  .fa-wizard-page { max-width: 100%; }
}

.prov-status-chip.active.prov-paid {
  background: #eaf3e2;
  border-color: #2f6b24;
  color: #2f6b24;
}

.prov-status-chip.active.prov-partial {
  background: #fce8d8;
  border-color: #b85c5c;
  color: #b85c5c;
}

.prov-status-chip.active.prov-pending {
  background: #fbf3e2;
  border-color: #c89b3c;
  color: #c89b3c;
}

.prov-status-chip.active.prov-outstanding {
  background: #fce4e4;
  border-color: #a82727;
  color: #a82727;
}

.prov-status-chip.active.prov-storno {
  background: #f0f0f0;
  border-color: #888;
  color: #555;
}

/* ===== Animazioni generali ===== */

@keyframes viewIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-20px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.94); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes popIn {
  0%   { opacity: 0; transform: scale(0.8); }
  60%  { opacity: 1; transform: scale(1.04); }
  100% { transform: scale(1); }
}

@keyframes shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}

@keyframes pulseSoft {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.06); }
}

@keyframes countUp {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes toastIn {
  from { opacity: 0; transform: translateY(20px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes barGrow {
  from { transform: scaleY(0); }
  to   { transform: scaleY(1); }
}

/* Vista principale: ingresso ad ogni render */
.main-panel {
  animation: viewIn 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Carte client / metriche: ingresso scalonato */
.client-card,
.metric-card,
.panel-card,
.identity-card{
  animation: slideUp 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.client-card:nth-child(1)  { animation-delay: 0.02s; }
.client-card:nth-child(2)  { animation-delay: 0.06s; }
.client-card:nth-child(3) { animation-delay: 0.10s; }
.client-card:nth-child(4) { animation-delay: 0.14s; }
.client-card:nth-child(5) { animation-delay: 0.18s; }
.client-card:nth-child(6) { animation-delay: 0.22s; }
.client-card:nth-child(7) { animation-delay: 0.26s; }
.client-card:nth-child(8) { animation-delay: 0.30s; }

/* Dialoghi: scale-in fluido */
dialog {
  animation: scaleIn 0.24s cubic-bezier(0.22, 1, 0.36, 1);
}

dialog::backdrop {
  animation: fadeIn 0.2s ease;
}

/* Sidebar nav items — fissi, no animazione */
.nav-item {
  transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}

/* Topbar */
.topbar {
  animation: fadeIn 0.4s ease both;
}

/* Pulsanti: press feedback */
button:not(:disabled):active {
  transform: scale(0.97);
}

/* Outline / primary btn hover lift */
.outline-btn,
.primary-btn{
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.outline-btn:hover,
.primary-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(54, 38, 23, 0.12);
}

/* Riduci animazioni per chi preferisce meno movimento */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 720px) {
  .budget-row {
    grid-template-columns: 24px 120px 1fr 24px;
    row-gap: 2px;
  }
}
.cn-btn.active { background: var(--wertia-bg); color: #fff7e6; border-color: var(--wertia-bg); }
@media (max-width: 720px) { .courtage-two-col { grid-template-columns: 1fr; } }

/* ===== Bell dropdown (topbar) ===== */
.bell-dropdown {
  position: fixed;
  z-index: 9999;
  width: 340px;
  max-height: 400px;
  overflow-y: auto;
  background: var(--wertia-panel-bg);
  border: 1px solid var(--wertia-panel-border);
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(22,15,10,0.18);
  display: none;
  padding: 8px;
}
.bell-dropdown.open {
  display: block;
  animation: slideUp 0.2s ease;
}
.bell-empty {
  padding: 20px; text-align: center; color: #8a7d63; font-size: 13px;
}
.bell-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px;
  border-radius: 8px;
  margin-bottom: 4px;
  border: 1px solid transparent;
  transition: background 140ms;
}
.bell-item:hover { background: #faf6ee; }
.bell-item.bell-today {
  background: linear-gradient(90deg, rgba(200,164,93,0.1), transparent);
  border-color: #e0c27a;
}
.bell-item.bell-tomorrow {
  border-color: #efe8da;
}
.bell-item-info { display: flex; align-items: center; gap: 8px; min-width: 0; }
.bell-item-avatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: #f4e8d0; color: #8a6d3b;
  font-size: 11px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.bell-item.bell-today .bell-item-avatar { background: #c89b3c; color: #fff; }
.bell-item-info strong { display: block; font-size: 13px; color: #2a2118; }
.bell-item-info small { font-size: 11px; color: #c89b3c; font-weight: 600; }
.bell-item-actions { display: flex; gap: 3px; flex-shrink: 0; }
.bell-action {
  width: 28px; height: 28px;
  border: none; border-radius: 6px;
  background: transparent; color: #8a7d63;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 140ms, color 140ms;
}
.bell-action:hover { background: #f4e8d0; color: #c89b3c; }
.bell-action svg { width: 14px; height: 14px; }

@media (max-width: 600px) {
}
.detail-tab.active {
  color: var(--wertia-bg);
  border-bottom-color: var(--wertia-gold);
  font-weight: 600;
}
@media (max-width: 900px) {
  .user-detail-grid { grid-template-columns: 1fr; }
}
.form-field-row .field-label { color: #8a7d63; }
.cal-view-tab.active {
  background: var(--wertia-gold);
  color: #1d130b;
}
.cal-bottom-stats .metric-card {
  flex: 0;
  white-space: nowrap;
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid #e8dfc8;
  background: #faf7f0;
}
.cal-bottom-stats .metric-card span { font-size: 11px; }
.cal-bottom-stats .metric-card strong { font-size: 18px; margin-top: 2px; }

/* MODAL → ora wizard, vedi sezione WIZARD sotto */

/* RESPONSIVE */
@media (max-width: 1100px) {
  .cal-layout { grid-template-columns: 1fr; }
  .cal-sidebar { position: static; }
  .cal-stats-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .cal-cells { grid-template-columns: repeat(7, minmax(0, 1fr)); overflow-x: auto; }
  .cal-week-grid { grid-template-columns: 1fr; }
  .cal-week-day { min-height: auto; border-right: none; border-bottom: 1px solid #f0e8d6; }
}
.cal-wizard-step.active .cal-wizard-step-num {
  border-color: var(--wertia-gold);
  background: var(--wertia-gold);
  color: #1d130b;
}
.cal-wizard-step:not(.active) .cal-wizard-step-text { opacity: 0.65; }
.cal-type-btn.active,
.cal-prio-btn.active { color: #2f2623; font-weight: 700; }
.cal-wizard-nav .cal-delete-btn { margin-right: auto; }

@media (max-width: 760px) {
  .cal-wizard-body { grid-template-columns: 1fr; }
  .cal-wizard-step-text { display: none; }
  .cal-wizard-step { justify-content: center; }
}

/* KALENDER EVENT DIALOG — overrides */
#calEventDialog .modal-actions { display: none; }
#calEventDialog .modal { padding: 20px 28px; }
#calEventDialog .modal-head { margin-bottom: 10px; }
#calEventDialog .icon-btn { min-width: 34px; min-height: 34px; font-size: 18px; }
.cal-share-btn.active {
  border-color: var(--wertia-gold);
  background: rgba(200,164,93,0.14);
  color: #2f2623;
}

.cal-delete-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(184,92,92,0.4);
  background: rgba(184,92,92,0.1);
  color: var(--wertia-danger);
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
  min-height: auto;
  height: 36px;
  padding: 0 14px;
  font-size: 13px;
}
.cal-delete-btn:hover { background: rgba(184,92,92,0.2); }
.cal-delete-btn svg { width: 14px; height: 14px; }
.chat-conv-item.active { background: rgba(200,164,93,0.14); border-left: 3px solid var(--wertia-gold); }
@media (max-width: 900px) {
  .chat-page .chat-layout { grid-template-columns: 1fr; height: calc(100vh - 120px); }
  .chat-sidebar-col { max-height: 220px; border-right: none; border-bottom: 1px solid #e6dccb; }
}

/* ===== MAIL CENTER ===== */

.mail-center { padding: 0; }
.mail-layout {
  display: grid;
  grid-template-columns: var(--mail-sidebar-w, 260px) 5px var(--mail-list-w, 380px) 5px 1fr;
  height: calc(100vh - 120px);
  border: 1px solid var(--wertia-border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--wertia-panel-bg);
}
.mail-drawer-overlay { display: none; }

/* Bottom nav: solo mobile (≤900px), nascosta su desktop. Colori neutri,
   nessun gradiente — "+" è l'unico elemento leggermente evidenziato. */
.mail-bottom-nav {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  align-items: stretch;
  justify-content: space-around;
  gap: 2px;
  padding: 6px 6px calc(6px + env(safe-area-inset-bottom));
  background: var(--wertia-panel-bg);
  border-top: 1px solid var(--wertia-inner-border);
  box-shadow: 0 -2px 10px rgba(26, 18, 8, 0.06);
}
.mail-bottom-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  flex: 1 1 0;
  min-height: 44px;
  min-width: 44px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #8a7d63;
  font-size: 10px;
  font-weight: 600;
}
.mail-bottom-nav-item svg { width: 20px; height: 20px; }
.mail-bottom-nav-item.active { background: #efe6d3; color: #3a2f22; font-weight: 700; }
.mail-bottom-nav-compose .mail-bottom-nav-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 99px;
  background: var(--wertia-gold);
  color: #fff;
}
.mail-bottom-nav-compose .mail-bottom-nav-icon svg { width: 18px; height: 18px; }
.mail-bottom-nav-compose { color: #6c5732; }

/* SIDEBAR */
.mail-sidebar {
  border-right: 1px solid #e6dccb;
  display: flex;
  flex-direction: column;
  background: #faf6ee;
  overflow-y: auto;
}
.mail-new-btn {
  margin: 12px 14px;
  height: 38px;
  border: none;
  border-radius: 8px;
  background: var(--wertia-gold);
  color: #1d130b;
  font-weight: 800;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  min-height: auto;
  transition: background 140ms;
}
.mail-new-btn:hover { background: var(--wertia-gold-soft); }
.mail-new-btn svg { width: 16px; height: 16px; }

.mail-sidebar-section { padding: 4px 10px 12px; }
.mail-sidebar-label {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--wertia-gold);
  padding: 8px 8px 4px;
  margin: 0;
}
.mail-folder {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 7px 10px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #2f2623;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
  transition: background 120ms;
  min-height: auto;
}
.mail-folder:hover { background: rgba(200,164,93,0.12); }
.mail-folder.active { background: rgba(200,164,93,0.2); color: var(--wertia-gold); font-weight: 800; }
.mail-folder-icon { width: 18px; height: 18px; display: grid; place-items: center; flex-shrink: 0; }
.mail-folder-icon svg { width: 16px; height: 16px; }
.mail-folder-label { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-folder-badge {
  min-width: 18px; height: 18px; border-radius: 99px;
  background: var(--wertia-gold); color: #1d130b;
  font-size: 10px; font-weight: 800;
  display: grid; place-items: center; padding: 0 5px;
}
.mail-folder-count { font-size: 11px; color: #8a7d63; font-weight: 600; }

.mail-sidebar-account {
  margin-top: auto;
  padding: 12px 14px;
  border-top: 1px solid var(--wertia-panel-border);
  display: flex;
  align-items: center;
  gap: 8px;
}
.mail-account-info { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.mail-account-icon { width: 32px; height: 32px; border-radius: 8px; background: rgba(200,164,93,0.14); color: var(--wertia-gold); display: grid; place-items: center; flex-shrink: 0; }
.mail-account-icon svg { width: 16px; height: 16px; }
.mail-account-info > div { min-width: 0; }
.mail-account-email { display: block; font-size: 12px; color: #2f2623; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-account-status { font-size: 11px; }
.mail-account-status.ok { color: var(--wertia-success); }
.mail-account-status.err { color: var(--wertia-danger); }
.mail-sync-btn {
  width: 32px; height: 32px;
  border: 1px solid #d4c9b3;
  border-radius: 8px;
  background: var(--wertia-panel-bg);
  color: var(--wertia-gold);
  cursor: pointer;
  display: grid;
  place-items: center;
  min-height: auto;
}
.mail-sync-btn svg { width: 16px; height: 16px; }
.mail-sync-btn:hover { background: rgba(200,164,93,0.12); }

/* LIST */
.mail-list-col {
  border-right: 1px solid #e6dccb;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.mail-list-toolbar {
  padding: 10px 14px;
  border-bottom: 1px solid var(--wertia-panel-border);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mail-list-toolbar-top {
  display: flex;
  align-items: center;
  gap: 8px;
}
.mail-drawer-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--wertia-gold);
  cursor: pointer;
  min-height: auto;
}
.mail-drawer-toggle:hover { background: var(--wertia-inner-bg); }
.mail-drawer-toggle svg { width: 18px; height: 18px; }
.mail-reader-back {
  display: none;
}
.mail-search-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
  height: 36px;
  padding: 0 12px;
  border: 1px solid #d4c9b3;
  border-radius: 8px;
  background: var(--wertia-panel-bg);
}
.mail-search-wrap svg { width: 16px; height: 16px; color: #8a7d63; flex-shrink: 0; }
.mail-search-clear { display: flex; align-items: center; justify-content: center; border: none; background: none; padding: 0; cursor: pointer; flex-shrink: 0; }
.mail-search-clear[hidden] { display: none; }
.mail-search-clear:hover svg { color: var(--wertia-gold); }
.mail-search-highlight { background: var(--wertia-gold-soft, #f0dfa8); color: inherit; border-radius: 2px; padding: 0 1px; }
.mail-search-input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  color: #2f2623;
  font-size: 13px;
}
.mail-filter-pills { display: flex; gap: 6px; }
.mail-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 30px;
  padding: 0 10px;
  border: 1px solid #d4c9b3;
  border-radius: 99px;
  background: var(--wertia-panel-bg);
  color: #8a7d63;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  min-height: auto;
  transition: all 120ms;
}
.mail-pill svg { width: 13px; height: 13px; }
.mail-pill.active { border-color: var(--wertia-gold); background: rgba(200,164,93,0.16); color: var(--wertia-gold); font-weight: 800; }
.mail-pill:hover { border-color: var(--wertia-gold); }

.mail-list {
  flex: 1;
  overflow-y: auto;
}
.mail-row {
  display: flex;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid #f0e8d6;
  cursor: pointer;
  transition: background 100ms;
}
.mail-row:hover { background: #faf6ee; }
.mail-row.selected { background: rgba(200,164,93,0.14); border-left: 3px solid var(--wertia-gold); }
.mail-row.unread .mail-row-from { font-weight: 600; }
.mail-row.unread .mail-row-subject { font-weight: 600; }
.mail-row-check {
  width: 16px;
  height: 16px;
  margin: 1px 0 0;
  flex: 0 0 16px;
  accent-color: var(--wertia-gold);
  cursor: pointer;
}
.mail-row-star {
  width: 18px; height: 18px; flex-shrink: 0;
  display: grid; place-items: center;
  color: #d4c9b3; cursor: pointer;
  padding: 0; border: 0; background: transparent; min-height: 0;
}
.mail-row-star svg { width: 16px; height: 16px; }
.mail-row-star:hover { color: var(--wertia-gold); }
.mail-row-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mail-row-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.mail-row-from { font-size: 13px; color: #2f2623; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-row-date { font-size: 11px; color: #8a7d63; flex-shrink: 0; }
.mail-row-subject { font-size: 13px; color: #2f2623; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-row-snippet { font-size: 12px; color: #8a7d63; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-row-tags { display: flex; gap: 4px; margin-top: 2px; flex-wrap: wrap; }
.mail-tag {
  font-size: 10px; font-weight: 700;
  padding: 1px 7px; border-radius: 99px;
  background: rgba(200,164,93,0.12); color: var(--wertia-gold);
  display: inline-flex; align-items: center; gap: 3px;
}
.mail-tag svg { width: 10px; height: 10px; }
.mail-tag.crm { background: rgba(112,163,107,0.14); color: var(--wertia-success); }
.mail-tag.unknown { background: rgba(184,89,89,0.1); color: var(--wertia-danger); }
.mail-tag.attach { background: rgba(37,99,235,0.1); color: #2563EB; }
.mail-empty { text-align: center; padding: 40px; color: #8a7d63; font-size: 14px; }
/* Infinite scroll: nessun bottone, solo un piccolo stato passivo in fondo
   alla lista (spinner in caricamento, testo a fine lista, errore + retry). */
.mail-load-more-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  color: #8a7d63;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}
.mail-load-more-status.mail-load-more-error { color: var(--wertia-danger); }
.mail-load-more-retry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 50%;
  background: var(--wertia-panel-bg);
  color: inherit;
  cursor: pointer;
}
.mail-load-more-btn:hover { border-color: var(--wertia-gold); color: var(--wertia-gold); }
.mail-load-more-btn:disabled { opacity: 0.6; cursor: default; }
/* Infinite scroll: nessun bottone, solo un piccolo stato passivo in fondo
   alla lista (spinner in caricamento, testo a fine lista, errore + retry). */
.mail-load-more-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  color: #8a7d63;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}
.mail-load-more-status.mail-load-more-error { color: var(--wertia-danger); }
.mail-load-more-retry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 50%;
  background: var(--wertia-panel-bg);
  color: inherit;
  cursor: pointer;
}
.mail-load-more-retry:hover { border-color: var(--wertia-gold); color: var(--wertia-gold); }
.mail-load-more-retry svg { width: 13px; height: 13px; }

/* READER */
.mail-reader-col {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.mail-reader {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow-y: auto;
}
.mail-reader-empty {
  flex: 1;
  display: grid;
  place-items: center;
  color: #8a7d63;
}
.mail-reader-empty-icon svg { width: 48px; height: 48px; opacity: 0.3; }
.mail-reader-empty p { margin-top: 12px; font-size: 14px; }

.mail-reader-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 20px 14px;
  border-bottom: 1px solid var(--wertia-panel-border);
}
.mail-reader-subject { margin: 0; font-size: 20px; font-weight: 800; color: #2f2623; line-height: 1.3; width: 100%; }
.mail-reader-actions { display: flex; align-items: center; gap: 4px; }
.mail-action-btn {
  width: 34px; height: 34px;
  border: 1px solid #d4c9b3;
  border-radius: 7px;
  background: var(--wertia-panel-bg);
  color: #8a7d63;
  cursor: pointer;
  display: grid;
  place-items: center;
  min-height: auto;
  transition: all 120ms;
}
.mail-action-btn svg { width: 16px; height: 16px; }
.mail-action-btn:hover { border-color: var(--wertia-gold); color: var(--wertia-gold); }
.mail-action-btn.active { color: var(--wertia-gold); border-color: var(--wertia-gold); }
.mail-action-sep { width: 1px; height: 24px; background: #e6dccb; margin: 0 2px; }
.mail-bulk-actions {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 38px;
}
.mail-bulk-count {
  display: inline-grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(200,164,93,0.18);
  color: var(--wertia-gold-dark);
  font-size: 11px;
  font-weight: 800;
}

.mail-reader-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px;
  border-bottom: 1px solid #f0e8d6;
}
.mail-reader-from-info { display: flex; align-items: center; gap: 10px; }
.mail-reader-avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, var(--wertia-gold-soft), #8a6d3b);
  color: #1d130b; font-weight: 800; font-size: 14px;
  display: grid; place-items: center;
}
.mail-reader-from-info strong { font-size: 14px; color: #2f2623; display: block; }
.mail-reader-email { font-size: 12px; color: #8a7d63; }
.mail-reader-meta-right { text-align: right; display: flex; flex-direction: column; gap: 2px; }
.mail-reader-date { font-size: 12px; color: #2f2623; font-weight: 600; }
.mail-reader-to { font-size: 11px; color: #8a7d63; }

.mail-recognized { padding: 8px 20px; }
.mail-recognized-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  border-radius: 99px;
  background: rgba(112,163,107,0.14);
  border: 1px solid rgba(112,163,107,0.3);
  color: var(--wertia-success);
  font-size: 12px;
  font-weight: 700;
}
.mail-recognized-badge svg { width: 13px; height: 13px; }
.mail-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  border-radius: 99px;
  border: 1px solid var(--wertia-gold);
  background: rgba(200,164,93,0.1);
  color: var(--wertia-gold);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  min-height: auto;
}
.mail-link-btn svg { width: 13px; height: 13px; }

.mail-reader-body {
  padding: 52px 20px 20px;
  font-size: 14px;
  line-height: 1.6;
  color: #2f2623;
}
.mail-reader-body a { color: var(--wertia-gold); text-decoration: underline; word-break: break-word; cursor: pointer; }
.mail-reader-body a:hover { color: var(--wertia-gold-soft); }
.mail-reader-body-panel { position: relative; flex: 1; min-width: 0; }
.mail-html-frame { display: block; width: 100%; min-height: 300px; border: 0; background: #fff; color-scheme: light; }
.mail-translation-tools { position: absolute; top: 8px; right: 12px; z-index: 4; display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.mail-translate-btn { display: inline-flex; width: 40px; min-width: 40px; height: 40px; min-height: 40px; padding: 0; align-items: center; justify-content: center; border: 1px solid var(--wertia-inner-border); border-radius: 9px; background: transparent; color: #665847; box-shadow: none; cursor: pointer; }
.mail-translate-btn:hover:not(:disabled), .mail-translate-btn:focus-visible { border-color: var(--wertia-accent); background: var(--wertia-accent-hover); color: var(--wertia-accent-dark); }
.mail-translate-btn:disabled { opacity: .65; cursor: wait; }
.mail-translate-btn svg { width: 17px; height: 17px; }
.mail-translate-spinner { width: 15px; height: 15px; border: 2px solid rgba(112,81,13,.22); border-top-color: var(--wertia-accent-dark); border-radius: 50%; animation: spin .8s linear infinite; }
.mail-translation-menu { position: absolute; top: 44px; right: 0; display: grid; width: 170px; padding: 6px; border: 1px solid var(--wertia-inner-border); border-radius: 10px; background: var(--wertia-panel-bg); box-shadow: 0 10px 24px rgba(44,34,23,.14); }
.mail-translation-menu button { min-height: 36px; padding: 7px 10px; border: 0; border-radius: 7px; background: transparent; color: #4b4033; text-align: left; cursor: pointer; }
.mail-translation-menu button:hover, .mail-translation-menu button.active { background: var(--wertia-accent-hover); color: var(--wertia-accent-dark); }
.mail-translation-toggle { display: inline-flex; padding: 2px; border: 1px solid var(--wertia-inner-border); border-radius: 8px; background: var(--wertia-panel-bg); }
.mail-translation-toggle button { min-height: 32px; padding: 0 9px; border: 0; border-radius: 6px; background: transparent; color: #756957; font-size: 11px; font-weight: 700; cursor: pointer; }
.mail-translation-toggle button.active { background: var(--wertia-accent-hover); color: var(--wertia-accent-dark); }
.mail-translation-status { margin: 8px 64px 0 20px; color: #756957; font-size: 12px; }
.mail-translation-status.error { color: #9a5714; }

@media (max-width: 640px) {
  .mail-reader-body { padding: 54px 14px 16px; }
  .mail-translation-tools { right: 8px; }
  .mail-translation-toggle button { padding-inline: 7px; }
  .mail-translation-status { margin-left: 14px; }
}

.mail-reader-attachments {
  padding: 0 20px 16px;
}
.mail-attachments-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.mail-attachments-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--wertia-gold);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 5px;
}
.mail-attachments-label svg { width: 14px; height: 14px; }
.mail-download-all-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 6px 10px; border: 1px solid var(--wertia-gold); border-radius: 7px; background: transparent; color: var(--wertia-gold); font-size: 11px; font-weight: 700; cursor: pointer; }
.mail-download-all-btn:hover:not(:disabled) { background: var(--wertia-accent-hover); }
.mail-download-all-btn:disabled { opacity: .55; cursor: wait; }
.mail-download-all-btn svg { width: 14px; height: 14px; }
.mail-attach-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 8px;
}
.mail-attach-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--wertia-panel-border);
  border-radius: 8px;
  background: var(--wertia-panel-bg);
}
.mail-attach-icon { color: var(--wertia-gold); flex-shrink: 0; }
.mail-attach-icon svg { width: 20px; height: 20px; }
.mail-attach-info { flex: 1; min-width: 0; }
.mail-attach-info strong { display: block; font-size: 12px; color: #2f2623; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-attach-info small { font-size: 11px; color: #8a7d63; }
.mail-attach-actions { display: flex; gap: 4px; }
.mail-attach-btn {
  width: 28px; height: 28px;
  border: 1px solid #d4c9b3;
  border-radius: 6px;
  background: var(--wertia-panel-bg);
  color: #8a7d63;
  cursor: pointer;
  display: grid;
  place-items: center;
  min-height: auto;
}
.mail-attach-btn:hover { border-color: var(--wertia-gold); color: var(--wertia-gold); }
.mail-attach-btn svg { width: 14px; height: 14px; }
.mail-attach-item.mail-attach-calendar {
  grid-column: span 2;
  border-color: rgba(200, 154, 69, .55);
  background: linear-gradient(110deg, rgba(224, 194, 122, .16), var(--wertia-panel-bg) 54%);
}
.mail-attach-item.mail-attach-calendar.calendar-stored {
  border-color: rgba(46, 139, 87, .45);
  background: rgba(46, 139, 87, .08);
}
.mail-calendar-add-btn {
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid var(--wertia-gold);
  border-radius: 7px;
  background: transparent;
  color: var(--wertia-gold);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: inherit;
  font-size: 11px;
  font-weight: 750;
  white-space: nowrap;
}
.mail-calendar-add-btn:hover { background: var(--wertia-accent-hover); }
.mail-calendar-add-btn.stored { border-color: #2e8b57; color: #26794d; cursor: default; }
.mail-calendar-add-btn svg { width: 14px; height: 14px; }

.mail-audit-trail {
  margin: 0 20px 16px;
  padding: 10px 14px;
  border: 1px solid #f0e8d6;
  border-radius: 8px;
  background: #faf6ee;
}
.mail-audit-label {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--wertia-muted);
  margin: 0 0 6px;
}
.mail-audit-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 3px 0;
  font-size: 11px;
  color: #8a7d63;
}
.mail-audit-row span { font-weight: 600; color: #2f2623; }
.mail-audit-row small { margin-left: auto; }

.mail-comp-att-list { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.mail-comp-att-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border: 1px solid #d4c9b3;
  border-radius: 99px;
  background: var(--wertia-panel-bg);
  font-size: 12px;
  color: #2f2623;
}
.mail-comp-att-chip svg { width: 13px; height: 13px; color: var(--wertia-gold); }
.mail-comp-att-chip button {
  border: none;
  background: none;
  color: var(--wertia-danger);
  font-size: 14px;
  cursor: pointer;
  min-height: auto;
  padding: 0;
}
.mail-comp-att-chip .mail-comp-att-preview {
  display: inline-flex;
  align-items: center;
  color: #8a7d63;
}
.mail-comp-att-chip .mail-comp-att-preview svg { width: 12px; height: 12px; }
.mail-comp-att-chip .mail-comp-att-preview:hover { color: var(--wertia-gold); }
.mail-comp-att-add {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 32px;
  padding: 0 12px;
  border: 1px dashed #d4c9b3;
  border-radius: 8px;
  background: transparent;
  color: #8a7d63;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  min-height: auto;
}
.mail-comp-att-add:hover { border-color: var(--wertia-gold); color: var(--wertia-gold); }
.mail-comp-att-add svg { width: 14px; height: 14px; }

/* Rich text editor toolbar */
.mc-toolbar {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 5px 8px;
  background: #f5f0e8;
  border: 1px solid #d4c9b3;
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  flex-wrap: wrap;
}
.mc-tb-btn {
  width: 28px; height: 28px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  cursor: pointer;
  color: #4a3c38;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: all 0.12s;
}
.mc-tb-btn:hover { background: var(--wertia-panel-bg); border-color: #c9a84c; color: #c9a84c; }
.mc-tb-btn.active { background: var(--wertia-gold); color: #fff; border-color: var(--wertia-gold); }
.mc-tb-btn svg { pointer-events: none; }
.mc-tb-sep { width: 1px; height: 18px; background: #d4c9b3; margin: 0 3px; flex-shrink: 0; }
.mc-font-sel {
  height: 26px; padding: 0 5px;
  border: 1px solid #d4c9b3; border-radius: 5px;
  background: var(--wertia-panel-bg); color: #4a3c38;
  font-size: 11px; cursor: pointer; outline: none; max-width: 90px;
}
.mc-font-sel:focus { border-color: var(--wertia-gold); }
.mc-color-wrap { position: relative; display: flex; align-items: center; }
.mc-tb-color-btn {
  position: relative;
  flex-direction: column;
  gap: 1px;
  height: 30px;
  padding-bottom: 2px;
}
.mc-color-bar {
  display: block;
  width: 14px; height: 3px;
  border-radius: 2px;
  pointer-events: none;
  flex-shrink: 0;
}
.mc-color-pop {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 1000;
  background: var(--wertia-panel-bg);
  border: 1px solid #d4c9b3;
  border-radius: 10px;
  padding: 8px;
  display: grid;
  grid-template-columns: repeat(5, 16px);
  gap: 5px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.14);
}
.mc-color-pop[hidden] { display: none; }
.mc-color-swatch {
  width: 16px; height: 16px;
  min-width: 16px; min-height: 16px;
  border-radius: 50%;
  border: 1.5px solid rgba(0,0,0,0.15);
  cursor: pointer;
  padding: 0;
  box-sizing: border-box;
  transition: transform 0.12s, box-shadow 0.12s;
}
.mc-color-swatch:hover { transform: scale(1.3); box-shadow: 0 2px 6px rgba(0,0,0,0.25); }
.mc-color-swatch[data-color="#ffffff"] { border-color: #c0b8a8; }
.mc-hl-remove { background: #fff; border-color: #c0b8a8; position: relative; overflow: hidden; }
.mc-hl-remove::after { content: "✕"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 8px; color: #e87171; line-height: 1; }
.mc-editor {
  min-height: 90px;
  padding: 10px 12px;
  border: 1px solid #d4c9b3;
  border-radius: 0 0 8px 8px;
  font-size: 14px;
  font-family: Arial, sans-serif;
  color: #2f2623;
  outline: none;
  background: var(--wertia-panel-bg);
  line-height: 1.6;
  overflow-y: auto;
}
.mc-editor:focus { border-color: var(--wertia-gold); }
.mc-editor:empty:before { content: attr(data-placeholder); color: #b0a090; pointer-events: none; }
.mc-editor font[face="EB Garamond"] { font-family: 'EB Garamond', Garamond, serif; }
.mc-editor font[face="Cinzel Decorative"] { font-family: 'Cinzel Decorative', serif; }
.mc-editor font[face="Cinzel"] { font-family: 'Cinzel', serif; }
.mc-editor font[face="Helvetica Neue"] { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; }
.mc-editor font[size="1"] { font-size: 11px; }
.mc-editor font[size="2"] { font-size: 13px; }
.mc-editor font[size="3"] { font-size: 15px; }
.mc-editor font[size="4"] { font-size: 18px; }
.mc-editor font[size="5"] { font-size: 22px; }
.mc-editor font[size="6"] { font-size: 28px; }
.mc-editor a { color: #1565c0; text-decoration: underline; }
.mc-editor ul, .mc-editor ol { padding-left: 22px; margin: 6px 0; }
.mc-editor li { margin: 2px 0; }

.mail-footer-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.mail-fv-btn {
  padding: 4px 12px;
  border: 1.5px solid #d4c9b3;
  border-radius: 20px;
  background: var(--wertia-panel-bg);
  color: #7a6a5a;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.mail-fv-btn:hover { border-color: var(--wertia-gold); color: var(--wertia-gold); }
.mail-fv-btn.active { background: var(--wertia-gold); border-color: var(--wertia-gold); color: #fff; }
.mail-footer-preview {
  margin-top: 8px;
  border: 1px solid var(--wertia-panel-border);
  border-radius: 8px;
  padding: 4px 8px;
  background: #faf7f2;
  max-height: 140px;
  overflow-y: auto;
  font-size: 12px;
  transform: scale(0.88);
  transform-origin: top left;
  width: calc(100% / 0.88);
}

@media (max-width: 1100px) {
  .mail-layout { grid-template-columns: 200px 320px 1fr; }
}

/* Mobile/tablet stretto: la sidebar diventa un drawer overlay, la lista
   occupa tutta la larghezza, il reader si apre a piena pagina SOLO quando
   contiene un messaggio (rilevato via :has(.mail-reader) — stessa
   condizione già usata da renderMailCenter per decidere cosa disegnare,
   nessuna nuova logica JS, solo presentazione). */
@media (max-width: 900px) {
  .mail-layout {
    display: block;
    position: relative;
    height: calc(100vh - 120px - 58px);
    overflow: hidden;
    margin-bottom: 58px;
  }
  .mail-col-resizer {
    display: none;
  }
  .mail-sidebar {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 260px;
    max-height: none;
    z-index: 20;
    transform: translateX(-100%);
    transition: transform 200ms ease;
    box-shadow: 8px 0 24px rgba(26, 18, 8, 0.18);
  }
  .mail-layout.mail-drawer-open .mail-sidebar {
    transform: translateX(0);
  }
  .mail-drawer-overlay {
    display: block;
    position: absolute;
    inset: 0;
    background: rgba(26, 18, 8, 0.25);
    z-index: 15;
    opacity: 0;
    pointer-events: none;
    transition: opacity 200ms ease;
  }
  .mail-layout.mail-drawer-open .mail-drawer-overlay {
    opacity: 1;
    pointer-events: auto;
  }
  .mail-list-col {
    width: 100%;
    height: 100%;
    max-height: none;
  }
  .mail-drawer-toggle {
    display: inline-flex;
    width: 44px;
    height: 44px;
  }
  .mail-sidebar .mail-new-btn { margin: 8px 10px; height: 36px; }
  .mail-sidebar-section { padding: 2px 10px 8px; }
  .mail-sidebar .mail-folder { min-height: 44px; }
  .mail-reader-col {
    display: none;
  }
  .mail-layout:has(.mail-reader) .mail-reader-col {
    display: flex;
    position: absolute;
    inset: 0;
    z-index: 10;
    height: 100%;
    overflow-y: auto;
    background: var(--wertia-panel-bg);
  }
  .mail-layout:has(.mail-reader) .mail-list-col {
    display: none;
  }
  .mail-reader-back {
    display: inline-flex;
  }
  .mail-compose-grid { grid-template-columns: 1fr; }
  .mail-bottom-nav { display: flex; }

  /* Rimuove le cornici doppie: .main-panel e .mail-layout sono due box
     bordati/arrotondati annidati (padding 14px + border + radius ciascuno),
     più il .topbar sopra con la sua stessa cornice — su mobile diventano
     un unico livello. Scoped via .mail-view-active (classe JS su .workspace,
     vedi render() in app.js) così le altre viste (Kunden, Anträge, ecc.)
     restano invariate. Stesso background (var(--wertia-panel-bg)) su
     main-panel e mail-layout: rimuovendo i bordi i due riquadri si fondono
     senza cuciture. */
  .main-panel.mail-view-active {
    padding: 8px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  /* Mail mobile: nessun elemento CRM visibile — non più solo compattati
     (padding ridotto), ma rimossi dal flusso. La sidebar CRM (.sidebar,
     diversa da .mail-sidebar che è il pannello cartelle di Mail) e il
     .topbar occupavano spazio anche su mobile, causando la sovrapposizione
     con .mail-bottom-nav segnalata dall'utente. */
  .workspace.mail-view-active .topbar {
    display: none;
  }
  .app-shell:has(.workspace.mail-view-active) {
    grid-template-columns: 1fr;
  }
  .app-shell:has(.workspace.mail-view-active) .sidebar {
    display: none;
  }
  /* .workspace ha grid-column:2 fisso (per stare accanto a .sidebar) — con
     una sola colonna esplicita sopra, senza questo reset finirebbe in una
     colonna implicita quasi a larghezza zero. */
  .workspace.mail-view-active {
    grid-column: 1;
  }
  .mail-layout {
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  /* E-Mail-Einstellungen: stessa shell mobile di mail-center (sidebar/topbar
     nascosti sopra, via .mail-view-active — vedi render() in app.js, ora
     attivata anche per state.view === "mail-settings"), qui solo il layout
     interno della pagina impostazioni a una colonna. */
  .mail-settings-page {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 8px 8px 16px;
    box-sizing: border-box;
    overflow-x: hidden;
  }
  .mail-settings-page .module-header {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .mail-settings-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border: 1px solid var(--wertia-border);
    border-radius: 50%;
    background: var(--wertia-panel-bg);
    color: inherit;
  }
  .mail-settings-page .module-header > div:not(.mail-settings-back) {
    flex: 1;
    min-width: 0;
  }
  .mail-settings-page .module-header h1 {
    font-size: 18px;
    overflow-wrap: anywhere;
  }
  .mail-settings-page .module-header p {
    display: none;
  }
  .mail-settings-page .module-header .primary-action {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .mail-settings-page .module-header .primary-action span {
    display: none;
  }
  .mail-set-acc-head {
    flex-wrap: wrap;
  }
  .mail-set-acc-info {
    min-width: 0;
  }
  .mail-set-acc-info strong,
  .mail-set-detail-row strong {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .mail-set-acc-actions {
    width: 100%;
    justify-content: flex-start;
  }
  .mail-set-detail-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
}

@media (max-width: 600px) {
  .mail-row-snippet { display: none; }
  .mail-row-tags { margin-top: 0; }
  .mail-reader-actions { flex-wrap: wrap; }
}

/* ===== MAIL CENTER FIXES ===== */

/* 1. Compose dialog a piena altezza schermo */
dialog#mailComposeDialog {
  overflow: hidden;
  padding: 0;
  border-radius: 14px;
  border: none;
  width: min(940px, calc(100vw - 20px));
  height: 92dvh;
  max-height: 92dvh;
}
#mailComposeDialog form.modal {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 14px 18px 12px;
  box-sizing: border-box;
}

/* Mobile: occupa tutto lo schermo */
@media (max-width: 600px) {
  dialog#mailComposeDialog {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    margin: 0;
    top: 0;
    left: 0;
  }
  #mailComposeDialog form.modal {
    padding: 10px 12px 8px;
  }
  .mc-hlabel { width: 52px; min-width: 52px; font-size: 9px; }
  .mc-hrow input { font-size: 13px; }
  /* Composer mobile essenziale: niente toolbar di formattazione, niente
     Vorlage/Signaturstil — solo An/Cc/Bcc/Betreff/corpo/allegati. Il footer
     resta comunque incluso nell'invio reale (sendRealEmail, app.js) con la
     variante predefinita di state.mailComposeDraft.footerVariant ("light"),
     semplicemente senza selettore né anteprima visibili qui. */
  .mc-toolbar,
  .mc-footer-preview-wrap {
    display: none;
  }
  /* .mc-hrow-meta ha anche la classe .mc-hrow, la cui regola base
     (display:flex, definita più sotto in questo file) ha la stessa
     specificità di un singolo .mc-hrow-meta e vince per ordine di
     cascata — serve il selettore composto per avere priorità reale. */
  .mc-hrow.mc-hrow-meta {
    display: none;
  }
}
#mailComposeDialog #mailComposeBody {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}
#mailComposeDialog .modal-actions { padding-top: 8px; flex-shrink: 0; }

.mail-send-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 132px;
}

.mail-send-button svg {
  width: 18px;
  height: 18px;
}

.mail-send-button.is-sending svg {
  animation: mail-plane-sending 0.9s ease-in-out infinite;
}

.mail-send-button.is-sent {
  background: #278552 !important;
  border-color: #278552 !important;
  color: #fff !important;
}

@keyframes mail-plane-sending {
  0% { transform: translateX(-3px) rotate(-8deg); opacity: 0.65; }
  50% { transform: translateX(5px) translateY(-2px) rotate(4deg); opacity: 1; }
  100% { transform: translateX(-3px) rotate(-8deg); opacity: 0.65; }
}

.mail-sent-confirmation {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 10020;
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 300px;
  padding: 16px 18px;
  border: 1px solid #76bd91;
  border-radius: 14px;
  background: #f5fbf7;
  color: #183a25;
  box-shadow: 0 18px 45px rgba(20, 52, 31, 0.24);
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.mail-sent-confirmation.visible {
  opacity: 1;
  transform: translateY(0);
}

.mail-sent-confirmation strong,
.mail-sent-confirmation small {
  display: block;
}

.mail-sent-confirmation small {
  margin-top: 2px;
  color: #54715e;
}

/* mc-layout: contenitore principale flex colonna */
.mc-layout {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  gap: 0;
}

/* mc-header-table: tabella compatta Von/An/CC/BCC/Betreff */
.mc-header-table {
  border: 1px solid #d4c9b3;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  margin-bottom: 10px;
  width: 100%;
  box-sizing: border-box;
}
.mc-hrow {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #ede5d8;
  min-height: 38px;
}
.mc-hrow:last-child { border-bottom: none; }
.mc-hlabel {
  width: 64px;
  min-width: 64px;
  font-size: 10px;
  font-weight: 700;
  color: #8a7560;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-right: 1px solid #ede5d8;
  padding: 0 10px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  background: #f5f0e8;
}
.mc-hlabel.mc-hlabel-mid {
  border-left: 1px solid #ede5d8;
}
.mc-hval {
  flex: 1;
  padding: 0 12px;
  font-size: 13px;
  color: #4a3c38;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
}
.mc-hrow input {
  flex: 1;
  border: none;
  background: transparent;
  padding: 8px 12px;
  font-size: 13.5px;
  color: #2f2623;
  outline: none;
  min-width: 0;
  align-self: stretch;
}
.mc-hrow input:focus { background: var(--wertia-panel-bg); }
.mc-hrow input::placeholder { color: #bbb0a0; }

/* Meta row (Vorlage + Footer) */
.mc-hrow-meta { align-items: center; }
.mc-meta-sel {
  width: 140px;
  min-width: 0;
  flex-shrink: 0;
  border: none;
  background: transparent;
  font-size: 12.5px;
  color: #2f2623;
  height: 38px;
  padding: 0 6px;
  outline: none;
  cursor: pointer;
}
.mc-footer-inline {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 8px;
}

/* mc-body-area: editor che occupa tutto lo spazio disponibile */
.mc-body-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.mc-editor {
  flex: 1 !important;
  min-height: 0 !important;
  overflow-y: auto;
}

/* Footer preview */
.mc-footer-preview-wrap {
  flex-shrink: 0;
  max-height: 100px;
  overflow: hidden;
}

/* mc-att-row: allegati compatti */
.mc-att-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0 2px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.mc-att-row .mail-comp-att-list { margin-bottom: 0; }

#mailComposeDialog .modal-actions { padding-top: 8px; }

/* 2. Icone azione con etichette */
.mail-action-btn {
  position: relative;
  width: auto;
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
}
.mail-action-btn .mail-action-label {
  display: inline;
}
.mail-reader-actions {
  flex-wrap: wrap;
  gap: 3px;
}

/* 3. Resizer colonne */
.mail-col-resizer {
  width: 5px;
  cursor: col-resize;
  background: transparent;
  position: relative;
  z-index: 10;
  flex-shrink: 0;
}
.mail-col-resizer:hover,
.mail-col-resizer.dragging {
  background: var(--wertia-gold);
}
.mail-col-resizer::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: -2px; right: -2px;
}
.mail-action-btn.danger:hover { color: var(--wertia-danger); border-color: var(--wertia-danger); }
.mail-action-btn { width: 34px; height: 34px; }

/* Stella attiva = riempita */
.mail-action-btn.active svg { fill: var(--wertia-gold); stroke: var(--wertia-gold); }
.mail-row-star svg[fill="currentColor"], .mail-row-star[style*="gold"] svg { fill: var(--wertia-gold); }

/* Neue E-Mail solo icona */
.mail-new-btn {
  width: 38px; height: 38px;
  margin: 10px 14px 6px;
  padding: 0;
  display: grid;
  place-items: center;
  gap: 0;
}
.mail-new-btn svg { width: 18px; height: 18px; }

/* Stella nella lista - attiva */
.mail-row-star[data-starred="true"] svg { fill: var(--wertia-gold); stroke: var(--wertia-gold); }

/* ===== LOGIN PAGE ===== */

.login-page {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100vh;
  background:
    radial-gradient(circle at center, rgba(5,3,2,0.55) 0%, rgba(5,3,2,0.82) 65%, rgba(5,3,2,0.92) 100%),
    url('./wertia-login-bg.png'),
    radial-gradient(circle at top left, rgba(87,58,31,0.18), transparent 40%),
    linear-gradient(135deg, #160f0a 0%, #0a0705 60%, #050302 100%);
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
  background-size: cover, cover, cover, cover;
  background-position: center, center, center, center;
  padding: 20px;
}
.login-page::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  filter: blur(0.6px);
  will-change: transform, opacity;
  background-repeat: no-repeat;
  background-image:
    radial-gradient(1.5px 1.5px at 5% 10%, rgba(249,222,144,0.5), transparent 60%),
    radial-gradient(1px 1px at 12% 22%, rgba(200,164,93,0.35), transparent 60%),
    radial-gradient(2px 2px at 8% 40%, rgba(244,232,208,0.4), transparent 60%),
    radial-gradient(1.2px 1.2px at 4% 60%, rgba(200,164,93,0.3), transparent 60%),
    radial-gradient(1.6px 1.6px at 10% 78%, rgba(249,222,144,0.45), transparent 60%),
    radial-gradient(1px 1px at 18% 88%, rgba(200,164,93,0.3), transparent 60%),
    radial-gradient(1.4px 1.4px at 92% 8%, rgba(249,222,144,0.4), transparent 60%),
    radial-gradient(1px 1px at 88% 20%, rgba(200,164,93,0.3), transparent 60%),
    radial-gradient(1.8px 1.8px at 95% 38%, rgba(244,232,208,0.45), transparent 60%),
    radial-gradient(1.2px 1.2px at 90% 55%, rgba(200,164,93,0.3), transparent 60%),
    radial-gradient(1.5px 1.5px at 85% 72%, rgba(249,222,144,0.4), transparent 60%),
    radial-gradient(1px 1px at 93% 90%, rgba(200,164,93,0.3), transparent 60%),
    radial-gradient(1.3px 1.3px at 25% 6%, rgba(200,164,93,0.35), transparent 60%),
    radial-gradient(1px 1px at 45% 8%, rgba(244,232,208,0.3), transparent 60%),
    radial-gradient(1.4px 1.4px at 65% 5%, rgba(249,222,144,0.35), transparent 60%),
    radial-gradient(1px 1px at 78% 12%, rgba(200,164,93,0.25), transparent 60%),
    radial-gradient(1.3px 1.3px at 30% 92%, rgba(200,164,93,0.3), transparent 60%),
    radial-gradient(1px 1px at 50% 95%, rgba(244,232,208,0.25), transparent 60%),
    radial-gradient(1.5px 1.5px at 70% 90%, rgba(249,222,144,0.35), transparent 60%),
    radial-gradient(1px 1px at 22% 50%, rgba(200,164,93,0.18), transparent 60%),
    radial-gradient(1px 1px at 78% 48%, rgba(249,222,144,0.18), transparent 60%);
  animation: wertia-dust-drift 60s ease-in-out infinite alternate;
}
@keyframes wertia-dust-drift {
  0%   { transform: translate3d(0, 0, 0); opacity: 0.55; }
  50%  { transform: translate3d(4px, -16px, 0); opacity: 0.85; }
  100% { transform: translate3d(-3px, -28px, 0); opacity: 0.5; }
}
@property --wertia-login-sheen-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}
.login-card {
  position: relative;
  z-index: 2;
  overflow: hidden;
  --wertia-login-gold: #c7a03c;
  --wertia-login-gold-dark: #584827;
  --wertia-login-gold-light: #f9de90;
  --wertia-login-bg: #2d230f;
  --wertia-login-text: #f4e8d0;
  --wertia-login-text-muted: #cdb488;
  width: 100%;
  max-width: 420px;
  border-radius: 20px;
  background: linear-gradient(165deg, rgba(50,38,17,0.55), rgba(36,27,11,0.42) 55%, rgba(20,14,7,0.55));
  -webkit-backdrop-filter: blur(22px) saturate(140%);
  backdrop-filter: blur(22px) saturate(140%);
  padding: 40px 34px;
  text-align: center;
  box-shadow:
    0 20px 50px rgba(0,0,0,0.5),
    0 0 20px rgba(199,160,60,0.14),
    inset 0 1px 0 rgba(249,222,144,0.14),
    inset 0 0 40px rgba(0,0,0,0.18);
}
.login-card > * {
  position: relative;
  z-index: 2;
}
.login-card::before,
.login-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  padding: 2.5px;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: wertia-login-sheen-rotate 8s linear infinite;
}
/* Cometa 1 — parte dall'angolo superiore sinistro (~315deg) */
.login-card::before {
  z-index: -2;
  background: conic-gradient(from var(--wertia-login-sheen-angle),
    transparent 0deg, transparent 255deg,
    rgba(199,160,60,0) 255deg,
    rgba(199,160,60,0.25) 277deg,
    rgba(249,222,144,0.7) 295deg,
    rgba(255,244,214,1) 313deg,
    transparent 315deg,
    transparent 360deg);
  filter: blur(0.8px) drop-shadow(0 0 4px rgba(249,222,144,0.35));
}
/* Cometa 2 — stessa forma/ciclo, delay -4s = mezza durata di 8s, quindi
   parte sempre a 180deg di distanza (angolo inferiore destro), intensità
   ridotta rispetto alla cometa 1 */
.login-card::after {
  z-index: -1;
  animation-delay: -4s;
  background: conic-gradient(from var(--wertia-login-sheen-angle),
    transparent 0deg, transparent 255deg,
    rgba(199,160,60,0) 255deg,
    rgba(199,160,60,0.15) 277deg,
    rgba(249,222,144,0.45) 295deg,
    rgba(255,244,214,0.7) 313deg,
    transparent 315deg,
    transparent 360deg);
  filter: blur(0.8px) drop-shadow(0 0 3px rgba(249,222,144,0.22));
}
@keyframes wertia-login-sheen-rotate {
  to { --wertia-login-sheen-angle: 360deg; }
}
@media (max-width: 760px) {
  .login-card {
    -webkit-backdrop-filter: blur(12px) saturate(120%);
    backdrop-filter: blur(12px) saturate(120%);
    box-shadow:
      0 14px 34px rgba(0,0,0,0.45),
      0 0 12px rgba(199,160,60,0.10),
      inset 0 1px 0 rgba(249,222,144,0.10),
      inset 0 0 28px rgba(0,0,0,0.16);
  }
  .login-page::before {
    filter: none;
    opacity: 0.7;
    background-image:
      radial-gradient(1.2px 1.2px at 5% 10%, rgba(249,222,144,0.35), transparent 60%),
      radial-gradient(1.5px 1.5px at 8% 40%, rgba(244,232,208,0.28), transparent 60%),
      radial-gradient(1.2px 1.2px at 10% 78%, rgba(249,222,144,0.32), transparent 60%),
      radial-gradient(1px 1px at 92% 8%, rgba(249,222,144,0.28), transparent 60%),
      radial-gradient(1.4px 1.4px at 95% 38%, rgba(244,232,208,0.32), transparent 60%),
      radial-gradient(1.1px 1.1px at 85% 72%, rgba(249,222,144,0.28), transparent 60%),
      radial-gradient(1px 1px at 25% 6%, rgba(200,164,93,0.24), transparent 60%),
      radial-gradient(1.1px 1.1px at 65% 5%, rgba(249,222,144,0.24), transparent 60%),
      radial-gradient(1px 1px at 30% 92%, rgba(200,164,93,0.2), transparent 60%),
      radial-gradient(1.2px 1.2px at 70% 90%, rgba(249,222,144,0.24), transparent 60%);
  }
  .login-card::before {
    filter: blur(0.5px) drop-shadow(0 0 2px rgba(249,222,144,0.22));
    background: conic-gradient(from var(--wertia-login-sheen-angle),
      transparent 0deg, transparent 275deg,
      rgba(199,160,60,0) 275deg,
      rgba(199,160,60,0.18) 292deg,
      rgba(249,222,144,0.5) 305deg,
      rgba(255,244,214,0.75) 313deg,
      transparent 315deg,
      transparent 360deg);
  }
  .login-card::after {
    filter: blur(0.5px) drop-shadow(0 0 2px rgba(249,222,144,0.14));
    background: conic-gradient(from var(--wertia-login-sheen-angle),
      transparent 0deg, transparent 275deg,
      rgba(199,160,60,0) 275deg,
      rgba(199,160,60,0.10) 292deg,
      rgba(249,222,144,0.3) 305deg,
      rgba(255,244,214,0.5) 313deg,
      transparent 315deg,
      transparent 360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .login-page::before {
    animation: none;
    opacity: 0.4;
  }
  .login-card::before,
  .login-card::after {
    animation: none;
    filter: none;
  }
  .login-card::before {
    background: conic-gradient(from var(--wertia-login-sheen-angle),
      transparent 0deg, transparent 270deg,
      rgba(199,160,60,0) 270deg,
      rgba(249,222,144,0.35) 300deg,
      rgba(255,244,214,0.5) 313deg,
      transparent 315deg,
      transparent 360deg);
  }
  .login-card::after {
    --wertia-login-sheen-angle: 180deg;
    background: conic-gradient(from var(--wertia-login-sheen-angle),
      transparent 0deg, transparent 270deg,
      rgba(199,160,60,0) 270deg,
      rgba(249,222,144,0.25) 300deg,
      rgba(255,244,214,0.35) 313deg,
      transparent 315deg,
      transparent 360deg);
  }
}
#devBypassBadge {
  position: fixed;
  top: 8px;
  right: 8px;
  z-index: 99999;
  background: #b02a2a;
  color: #fff;
  font-family: "Courier New", monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  padding: 4px 10px;
  border-radius: 6px;
  pointer-events: none;
  box-shadow: 0 2px 8px rgba(0,0,0,0.35);
}
.login-logo {
  margin: 0 auto 22px;
  width: 120px;
}
.login-logo img {
  width: 100%;
  height: auto;
  display: block;
}
.login-card h1 {
  margin: 0 0 6px;
  font-size: 26px;
  color: var(--wertia-login-text);
  font-weight: 800;
  letter-spacing: -0.5px;
}
.login-subtitle {
  margin: 0 0 26px;
  font-size: 13px;
  color: var(--wertia-login-text-muted);
}
.login-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  text-align: left;
}
.login-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.login-field label {
  font-size: 12px;
  font-weight: 700;
  color: var(--wertia-login-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.login-field input {
  height: 46px;
  padding: 0 14px;
  border: 1px solid rgba(199,160,60,0.35);
  border-radius: 10px;
  background: rgba(0,0,0,0.32);
  color: var(--wertia-login-text);
  font-size: 15px;
  outline: none;
  transition: border-color 140ms, box-shadow 140ms;
}
.login-field input::placeholder { color: rgba(244,232,208,0.4); }
.login-field input:focus { border-color: var(--wertia-login-gold); box-shadow: 0 0 0 3px rgba(199,160,60,0.18); }
.login-card .ms-pw-toggle { color: var(--wertia-login-text-muted); }
.login-card .ms-pw-toggle:hover { color: var(--wertia-login-gold-light); }
.login-error {
  color: #e08a8a;
  font-size: 13px;
  font-weight: 600;
  min-height: 18px;
  margin: 0;
}
.login-submit {
  height: 48px;
  border: none;
  border-radius: 10px;
  background: linear-gradient(180deg, var(--wertia-login-gold-light), var(--wertia-login-gold));
  color: #241b0b;
  font-weight: 800;
  font-size: 15px;
  cursor: pointer;
  min-height: auto;
  transition: filter 140ms;
}
.login-submit:hover { filter: brightness(1.06); }
.login-qr-link {
  align-self: center;
  margin-top: 4px;
  padding: 4px 10px;
  min-height: auto;
  border: none;
  background: none;
  color: var(--wertia-login-text-muted);
  font-size: 12px;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}
.login-qr-link:hover { color: var(--wertia-login-gold-light); }
.login-2fa-qr-box { display: flex; flex-direction: column; align-items: center; }

/* ===== TOTP provisioning (setup iniziale 2FA — mail dialog + login self-reset).
   Ordine: Authenticator > chiave manuale > QR secondario. Mai usato nella
   verifica di routine al login (solo campo codice), solo qui. ===== */
.totp-setup { display: flex; flex-direction: column; gap: 12px; margin-bottom: 14px; text-align: left; }
.totp-auth-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  border: 1px solid var(--wertia-gold);
  border-radius: 10px;
  background: var(--wertia-gold);
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  cursor: pointer;
}
.totp-auth-btn:hover { background: #b8924f; border-color: #b8924f; }
.totp-auth-btn svg { width: 16px; height: 16px; }
.totp-manual-section {
  padding: 10px 12px;
  border: 1px solid #d4c9b3;
  border-radius: 10px;
  background: rgba(200, 164, 93, 0.06);
}
.totp-manual-label { margin: 0 0 4px; font-size: 12px; font-weight: 700; color: #6c5732; }
.totp-manual-hint { margin: 0 0 8px; font-size: 11px; color: #8a7d63; }
.totp-manual-key-row { display: flex; align-items: center; gap: 8px; }
.totp-manual-key {
  flex: 1;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid #d4c9b3;
  border-radius: 8px;
  background: #fffdf8;
  font-size: 13px;
  letter-spacing: 0.04em;
  word-break: break-all;
  color: #2f2623;
}
.totp-mask-btn {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: 1px solid #d4c9b3;
  border-radius: 8px;
  background: #fffdf8;
  color: #8a7d63;
  display: grid;
  place-items: center;
  min-height: auto;
  cursor: pointer;
}
.totp-mask-btn svg { width: 16px; height: 16px; }
.totp-copy-btn {
  width: 100%;
  height: 38px;
  margin-top: 8px;
  border: 1px solid #d4c9b3;
  border-radius: 8px;
  background: #fffdf8;
  color: #6c5732;
  font-weight: 600;
  font-size: 12px;
  cursor: pointer;
}
.totp-qr-details summary {
  font-size: 12px;
  font-weight: 700;
  color: #8a7d63;
  cursor: pointer;
}
.totp-qr-box { text-align: center; margin-top: 10px; }
.totp-qr-img { width: 180px; height: 180px; border: 1px solid #e6dccb; border-radius: 10px; }
.totp-qr-hint { margin-top: 8px; font-size: 11px; color: #8a7d63; }
.totp-qr-missing { font-size: 12px; color: #8a7d63; }

@media (max-width: 640px) {
  .totp-qr-img { width: 140px; height: 140px; }
  .totp-manual-key { font-size: 12px; }
}

.login-card .settings-desc { color: var(--wertia-login-text-muted); }
.login-card code { color: var(--wertia-login-gold-light); background: rgba(0,0,0,0.3); padding: 1px 4px; border-radius: 4px; }
.login-footer {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(199,160,60,0.18);
  text-align: left;
}
.login-footer svg { width: 14px; height: 14px; color: var(--wertia-success); flex-shrink: 0; margin-top: 2px; }
.login-footer p { margin: 0; font-size: 11px; color: var(--wertia-login-text-muted); line-height: 1.5; }

/* ===== MAIL SETTINGS ===== */

.mail-settings-page { display: flex; flex-direction: column; gap: 16px; }
.mail-account-configuration-warning { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; border: 1px solid rgba(198,111,22,.35); border-radius: 10px; background: rgba(198,111,22,.08); color: #8f5318; }
.mail-account-configuration-warning svg { width: 18px; height: 18px; flex: 0 0 auto; }
.mail-account-configuration-warning .btn-secondary { margin-left: auto; }
/* Visibile solo nella shell mobile (vedi @media max-width:900px più sotto) —
   su desktop la navigazione avviene già dalla sidebar CRM. */
.mail-settings-back { display: none; }

.mail-set-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }

.mail-set-accounts { display: flex; flex-direction: column; gap: 12px; }
.mail-set-account-card {
  border: 1px solid var(--wertia-border);
  border-radius: 12px;
  background: linear-gradient(180deg, #fffdf8, #faf6ee);
  overflow: hidden;
}
.mail-set-account-card.default { border-color: var(--wertia-gold); box-shadow: 0 0 0 1px rgba(200,164,93,0.2); }
.mail-set-acc-head {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid #f0e8d6;
}
.mail-set-acc-icon {
  width: 40px; height: 40px;
  border-radius: 10px;
  background: rgba(200,164,93,0.14);
  color: var(--wertia-gold);
  display: grid; place-items: center;
  flex-shrink: 0;
}
.mail-set-acc-icon.ok { background: rgba(112,163,107,0.14); color: var(--wertia-success); }
.mail-set-acc-icon.err { background: rgba(184,92,92,0.14); color: var(--wertia-danger); }
.mail-set-acc-icon svg { width: 20px; height: 20px; }
.mail-set-acc-info { flex: 1; min-width: 0; }
.mail-set-acc-info strong { font-size: 15px; color: #2f2623; display: block; }
.mail-set-acc-provider { font-size: 12px; color: #8a7d63; }
.mail-set-acc-actions { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; flex-shrink: 0; }
.mail-set-status {
  font-size: 11px; font-weight: 700;
  padding: 3px 10px; border-radius: 99px;
  display: inline-flex; align-items: center; gap: 4px;
  background: rgba(200,164,93,0.12); color: #8a7d63;
}
.mail-set-status.ok { background: rgba(112,163,107,0.14); color: var(--wertia-success); }
.mail-set-status.err { background: rgba(184,92,92,0.14); color: var(--wertia-danger); }
.mail-set-status.syncing { background: rgba(200,164,93,0.14); color: var(--wertia-gold); }
.mail-set-status.syncing svg { animation: spin 1s linear infinite; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.mail-set-status svg { width: 12px; height: 12px; }
.mail-set-btn {
  display: inline-flex; height: 44px; min-height: 44px; padding: 0 16px;
  border: 1px solid #d4c9b3; border-radius: 6px;
  background: var(--wertia-panel-bg); color: #8a7d63;
  font-size: 12px; font-weight: 600; cursor: pointer;
  align-items: center; justify-content: center; gap: 8px;
  width: auto; min-width: max-content; flex-shrink: 0;
  white-space: nowrap; overflow: hidden;
}
.mail-set-btn-icon { width: 44px; min-width: 44px; padding: 0; }
.mail-set-btn-text { width: auto; min-width: max-content; padding-inline: 16px; }
.mail-set-btn svg { width: 14px; height: 14px; }
.mail-set-btn:hover { border-color: var(--wertia-gold); color: var(--wertia-gold); }
.mail-set-btn.danger:hover { border-color: var(--wertia-danger); color: var(--wertia-danger); }

@media (max-width: 700px) {
  .mail-set-acc-head { align-items: flex-start; flex-wrap: wrap; padding: 12px; }
  .mail-set-acc-info { flex: 1 1 calc(100% - 56px); }
  .mail-set-assigned-user { max-width: 100%; }
  .mail-set-acc-actions { width: 100%; justify-content: flex-start; }
}

.mail-set-acc-details { padding: 10px 18px; }
.mail-set-detail-row {
  display: flex; justify-content: space-between;
  padding: 5px 0; border-bottom: 1px solid #f7f0e4;
  font-size: 13px;
}
.mail-set-detail-row:last-child { border-bottom: none; }
.mail-set-detail-row span { color: #8a7d63; }
.mail-set-detail-row strong { color: #2f2623; }

.mail-set-acc-footer { padding: 10px 18px; border-top: 1px solid #f0e8d6; }
.mail-set-sync-btn {
  height: 32px; padding: 0 14px;
  border: 1px solid #d4c9b3; border-radius: 8px;
  background: var(--wertia-panel-bg); color: var(--wertia-gold);
  font-size: 12px; font-weight: 700; cursor: pointer;
  display: inline-flex; align-items: center; gap: 5px;
  min-height: auto;
}
.mail-set-sync-btn svg { width: 14px; height: 14px; }
.mail-set-sync-btn:hover { background: rgba(200,164,93,0.1); }

.mail-set-security-note {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 14px 18px;
  border: 1px solid var(--wertia-border); border-radius: 10px;
  background: rgba(112,163,107,0.06);
}
.mail-set-security-note > span { width: 32px; height: 32px; border-radius: 8px; background: rgba(112,163,107,0.14); color: var(--wertia-success); display: grid; place-items: center; flex-shrink: 0; }
.mail-set-security-note > span svg { width: 16px; height: 16px; }
.mail-set-security-note strong { font-size: 13px; color: #2f2623; display: block; margin-bottom: 4px; }
.mail-set-security-note p { margin: 0; font-size: 12px; color: #8a7d63; line-height: 1.5; }

/* MODAL FORM */
.mail-set-modal-form { display: flex; flex-direction: column; gap: 12px; margin: 14px 0; }
.mail-set-modal-form > label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 700; color: #2f2623; }
.ms-full { grid-column: 1 / -1; }
.mail-set-modal-form input,
.mail-set-modal-form select {
  height: 40px; padding: 0 12px;
  border: 1px solid #d4c9b3; border-radius: 8px;
  background: var(--wertia-panel-bg); color: #2f2623; font-size: 14px; outline: none;
}
.mail-set-modal-form input:focus,
.mail-set-modal-form select:focus { border-color: var(--wertia-gold); }

.ms-provider-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.ms-provider-btn {
  display: flex; flex-direction: column; gap: 2px;
  padding: 10px 14px;
  border: 1px solid #d4c9b3; border-radius: 10px;
  background: var(--wertia-panel-bg); color: #8a7d63;
  cursor: pointer; text-align: left;
  min-height: auto; transition: all 120ms;
}
.ms-provider-btn strong { font-size: 13px; }
.ms-provider-btn small { font-size: 11px; color: #8a7d63; }
.ms-provider-btn:hover { border-color: var(--wertia-gold); color: #2f2623; }
.ms-provider-btn.active { border-color: var(--wertia-gold); background: rgba(200,164,93,0.14); }

.mail-set-modal-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  border-top: 1px solid #f0e8d6; padding-top: 12px;
}
.mail-set-modal-grid > label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: #2f2623; }
.mail-set-modal-grid input,
.mail-set-modal-grid select {
  height: 38px; padding: 0 10px;
  border: 1px solid #d4c9b3; border-radius: 6px;
  background: var(--wertia-panel-bg); color: #2f2623; font-size: 13px; outline: none;
}
.mail-set-modal-grid input:focus,
.mail-set-modal-grid select:focus { border-color: var(--wertia-gold); }

.ms-pw-wrap { position: relative; }
.ms-pw-wrap input { width: 100%; padding-right: 40px; box-sizing: border-box; }
.ms-pw-toggle {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  background: none; border: none; cursor: pointer; padding: 4px; line-height: 0;
  color: #8a7d63; transition: color 120ms;
}
.ms-pw-toggle:hover { color: var(--wertia-gold); }
.ms-pw-toggle svg { width: 16px; height: 16px; }

.ms-toggle-row {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; border: 1px solid #e6dccb; border-radius: 8px;
  background: #faf6ee; cursor: pointer;
  font-size: 13px; font-weight: 600; color: #2f2623;
}
.ms-toggle-row input { width: 18px; height: 18px; accent-color: var(--wertia-gold); }

.mail-set-modal-info {
  padding: 14px; border: 1px solid #e6dccb; border-radius: 10px;
  background: #faf6ee; display: flex; flex-direction: column; gap: 12px;
  border-top: 1px solid #f0e8d6; padding-top: 12px;
}
.mail-set-modal-info p { margin: 0; font-size: 13px; color: #8a7d63; display: flex; align-items: center; gap: 6px; }
.mail-set-modal-info p svg { width: 16px; height: 16px; color: var(--wertia-gold); }
.mail-set-oauth-btn {
  height: 40px; padding: 0 18px;
  border: 1px solid var(--wertia-gold); border-radius: 10px;
  background: rgba(200,164,93,0.12); color: var(--wertia-gold);
  font-weight: 700; font-size: 14px; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  min-height: auto;
}
.mail-set-oauth-btn:hover { background: rgba(200,164,93,0.2); }
.mail-set-oauth-btn svg { width: 16px; height: 16px; }

@media (max-width: 760px) {
  .mail-set-stats { grid-template-columns: repeat(2,1fr); }
  .mail-set-modal-grid { grid-template-columns: 1fr; }
  .ms-provider-grid { grid-template-columns: 1fr; }
}

/* ===== PROFILO & IMPOSTAZIONI ===== */

.profile-page { display: flex; flex-direction: column; gap: 16px; }
.profile-header-card {
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 24px; border: 1px solid var(--wertia-border); border-radius: 14px;
  background: linear-gradient(135deg, #1a1310, #2a1c13);
}
.profile-header-left { display: flex; align-items: center; gap: 16px; }
.profile-header-avatar {
  width: 64px; height: 64px; border-radius: 50%;
  background: linear-gradient(135deg, var(--wertia-gold-soft), var(--wertia-gold));
  color: #1d130b; font-size: 24px; font-weight: 900;
  display: grid; place-items: center;
}
.profile-header-avatar:has(.profile-page-avatar-photo) { overflow: hidden; padding: 0; }
.profile-header-left h1 { margin: 4px 0 2px; font-size: 24px; color: var(--wertia-cream); }
.profile-header-left p { margin: 0; color: var(--wertia-muted); font-size: 14px; }
.profile-header-left .module-kicker { color: var(--wertia-gold); }
.profile-header-right { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.profile-role-badge {
  padding: 4px 14px; border-radius: 99px; font-size: 12px; font-weight: 800;
  background: rgba(200,164,93,0.2); color: var(--wertia-gold-soft); border: 1px solid var(--wertia-gold);
}
.profile-active-badge { padding: 4px 12px; border-radius: 99px; font-size: 11px; font-weight: 700; background: rgba(112,163,107,0.2); color: var(--wertia-success); }
.profile-inactive-badge { padding: 4px 12px; border-radius: 99px; font-size: 11px; font-weight: 700; background: rgba(184,92,92,0.2); color: var(--wertia-danger); }

.profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.profile-detail-list { display: flex; flex-direction: column; gap: 0; margin-top: 12px; }
.profile-detail-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 0; border-bottom: 1px solid #f0e8d6; font-size: 13px;
}
.profile-detail-row:last-child { border-bottom: none; }
.profile-detail-row span { color: #8a7d63; }
.profile-detail-row strong { color: #2f2623; }
.text-success { color: var(--wertia-success); }
.text-danger { color: var(--wertia-danger); }

.settings-page { display: flex; flex-direction: column; gap: 16px; }
.settings-layout { display: grid; grid-template-columns: 220px 1fr; gap: 16px; align-items: flex-start; }
.settings-sidebar { display: flex; flex-direction: column; gap: 4px; }
.settings-nav-btn {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border: none; border-radius: 8px;
  background: transparent; color: #8a7d63;
  font-size: 14px; font-weight: 600; cursor: pointer;
  text-align: left; min-height: auto; transition: all 120ms;
}
.settings-nav-btn:hover { background: #faf6ee; color: #2f2623; }
.settings-nav-btn.active { background: rgba(200,164,93,0.14); color: var(--wertia-gold); font-weight: 800; }
.settings-nav-icon { width: 18px; height: 18px; display: grid; place-items: center; }
.settings-nav-icon svg { width: 16px; height: 16px; }

.settings-content {
  border: 1px solid var(--wertia-border); border-radius: 12px;
  background: var(--wertia-panel-bg); padding: 20px 24px; min-height: 400px;
}
.settings-section h3 { margin: 0 0 16px; font-size: 18px; color: #2f2623; }
.settings-desc { font-size: 13px; color: #8a7d63; margin: 0 0 16px; }
.settings-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 0; border-bottom: 1px solid #f0e8d6; gap: 16px;
}
.settings-row:last-child { border-bottom: none; }
.settings-row > div { display: flex; flex-direction: column; gap: 2px; }
.settings-row strong { font-size: 14px; color: #2f2623; }
.settings-row span { font-size: 12px; color: #8a7d63; }
.settings-row select { height: 36px; padding: 0 12px; border: 1px solid var(--wertia-inner-border); border-radius: 8px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); font-size: 13px; outline: none; min-width: 180px; }
.settings-row select:focus { border-color: var(--wertia-gold); }

.settings-toggle { position: relative; width: 44px; height: 24px; cursor: pointer; }
.settings-toggle input { opacity: 0; width: 0; height: 0; }
.settings-toggle span {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: #d4c9b3; border-radius: 99px; transition: 200ms;
}
.settings-toggle span::before {
  content: ""; position: absolute; width: 18px; height: 18px;
  left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: 200ms;
}
.settings-toggle input:checked + span { background: var(--wertia-gold); }
.settings-toggle input:checked + span::before { transform: translateX(20px); }

.settings-admin-reset { margin-top: 20px; padding-top: 20px; border-top: 1px solid #f0e8d6; }
.settings-admin-reset h4 { margin: 0 0 4px; font-size: 15px; color: #2f2623; }
.settings-admin-reset-error { margin-top: 10px; font-size: 13px; color: var(--wertia-danger); }
.settings-admin-reset-label { display: block; margin-bottom: 6px; color: #2f2623; font-size: 13px; font-weight: 700; }
.settings-admin-reset-row { display: flex; align-items: stretch; gap: 10px; }
.settings-admin-reset-row input,
.settings-admin-temp-password-row input {
  min-width: 0; height: 40px; padding: 0 14px; border: 1px solid #d4c9b3; border-radius: 8px;
  background: var(--wertia-panel-bg); color: #2f2623; font-size: 14px; outline: none;
}
.settings-admin-reset-row input { flex: 1; }
.settings-admin-reset-row input:focus,
.settings-admin-temp-password-row input:focus { border-color: var(--wertia-gold); }
.settings-admin-reset-success {
  margin-top: 12px; padding: 14px; border: 1px solid rgba(35, 134, 83, 0.3); border-radius: 10px;
  background: rgba(35, 134, 83, 0.07); color: #2f2623;
}
.settings-admin-reset-success > strong { font-size: 14px; }
.settings-admin-reset-success > p { margin: 5px 0 10px; color: #665c4b; font-size: 12px; }
.settings-admin-temp-password-row { display: flex; gap: 8px; }
.settings-admin-temp-password-row input { flex: 1; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.profile-password-action {
  display: flex; flex-direction: column; gap: 10px; margin-top: 16px; padding-top: 16px;
  border-top: 1px solid #f0e8d6;
}
.profile-password-target {
  display: flex; flex-direction: column; gap: 2px; padding: 10px 12px;
  border: 1px solid rgba(200, 164, 93, 0.35); border-radius: 8px; background: rgba(200, 164, 93, 0.08);
}
.profile-password-target span { color: #8a7d63; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.profile-password-target strong { color: #2f2623; font-size: 14px; overflow-wrap: anywhere; }
.settings-admin-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.settings-admin-contact-grid input {
  height: 40px; padding: 0 14px; border: 1px solid #d4c9b3; border-radius: 8px;
  background: var(--wertia-panel-bg); color: #2f2623; font-size: 14px; outline: none;
}
.settings-admin-contact-grid input:focus { border-color: var(--wertia-gold); }

.settings-role-card {
  border: 1px solid var(--wertia-panel-border); border-radius: 10px; padding: 14px 16px; margin-bottom: 10px;
}
.settings-role-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.settings-role-icon { color: var(--wertia-gold); display: grid; place-items: center; }
.settings-role-icon svg { width: 18px; height: 18px; }
.settings-role-perms { display: flex; flex-wrap: wrap; gap: 6px; }
.settings-user-directory { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--wertia-border); }
.settings-user-directory-row { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--wertia-border); }
.settings-user-directory-row:last-child { border-bottom: none; }
.settings-user-directory-row strong { color: var(--wertia-cream); font-size: 14px; }
.settings-user-directory-row span { color: var(--wertia-muted); font-size: 12px; text-align: right; }
.settings-perm {
  font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 99px;
  background: rgba(200,164,93,0.1); color: var(--wertia-gold);
}

@media (max-width: 760px) {
  .profile-grid { grid-template-columns: 1fr; }
  .settings-layout { grid-template-columns: 1fr; }
  .settings-sidebar { flex-direction: row; flex-wrap: wrap; }
  .settings-admin-reset-row,
  .settings-admin-temp-password-row { flex-direction: column; }
}

/* Sound selector nel menu profilo */
.profile-menu-sound {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 12px;
  min-height: 40px;
}
.profile-menu-sound svg { width: 18px; height: 18px; color: var(--wertia-muted); flex-shrink: 0; }
.profile-menu-sound select {
  flex: 1;
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 6px;
  background: var(--wertia-panel-bg);
  color: var(--wertia-page-fg);
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  appearance: none;
  outline: none;
}
.profile-menu-sound select:focus { border-color: var(--wertia-gold); }

/* ── WertiaModal Design System ────────────────────────────────────── */
#wertiaModalDialog {
  border: none;
  padding: 0;
  background: transparent;
  overflow: visible;
  max-width: 100vw;
  max-height: 100dvh;
}
#wertiaModalDialog::backdrop {
  background: rgba(22, 15, 10, 0.74);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.wm-card {
  position: relative;
  width: min(480px, calc(100vw - 32px));
  background: var(--wertia-panel-bg);
  border: 1px solid rgba(200, 164, 93, 0.28);
  border-radius: 18px;
  padding: 32px 28px 24px;
  box-shadow: 0 28px 72px rgba(12, 8, 5, 0.40), 0 4px 18px rgba(200, 164, 93, 0.10);
  animation: scaleIn 0.18s cubic-bezier(0.34, 1.2, 0.64, 1);
}
.wm-info    { border-top: 3px solid #c8a45d; }
.wm-icon-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}
.wm-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  font-size: 15px;
  font-weight: 800;
  flex-shrink: 0;
  letter-spacing: 0;
}
.wm-title {
  margin: 0 0 12px;
  font-size: 17px;
  font-weight: 700;
  color: #2d2923;
  letter-spacing: 0.01em;
}
.wm-icon-row .wm-title { margin: 0; }
.wm-message {
  margin: 0 0 22px;
  font-size: 14px;
  color: #74644f;
  line-height: 1.58;
  white-space: pre-wrap;
}
.wm-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 12px;
}
.wm-label {
  font-size: 11px;
  font-weight: 700;
  color: #9b8870;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.wm-input {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid rgba(200, 164, 93, 0.32);
  border-radius: 9px;
  background: var(--wertia-panel-bg);
  font-size: 14px;
  color: #2d2923;
  transition: border-color 0.15s, box-shadow 0.15s;
  outline: none;
}
.wm-input:focus {
  border-color: #c8a45d;
  box-shadow: 0 0 0 3px rgba(200, 164, 93, 0.16);
}
.wm-form-grid { margin: 8px 0 4px; }
.wm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 22px;
}
.wm-btn-cancel {
  padding: 9px 20px;
  min-height: 38px;
  border: 1.5px solid rgba(200, 164, 93, 0.30);
  border-radius: 9px;
  background: transparent;
  color: #74644f;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.14s, border-color 0.14s;
}
.wm-btn-cancel:hover { background: rgba(200, 164, 93, 0.07); border-color: rgba(200, 164, 93, 0.48); }
.wm-btn-confirm {
  padding: 9px 22px;
  min-height: 38px;
  border: none;
  border-radius: 9px;
  background: linear-gradient(135deg, #d4a843 0%, #c8a45d 55%, #b89040 100%);
  color: #160f0a;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(200, 164, 93, 0.28);
  transition: opacity 0.14s, transform 0.12s, box-shadow 0.14s;
}
.wm-btn-confirm:hover { opacity: 0.91; transform: translateY(-1px); box-shadow: 0 4px 14px rgba(200, 164, 93, 0.36); }
.wm-btn-confirm:active { transform: translateY(0); }
.wm-btn-confirm.wm-destructive {
  background: linear-gradient(135deg, #c95858 0%, #b85c5c 100%);
  box-shadow: 0 2px 8px rgba(184, 92, 92, 0.28);
  color: #fff;
}
.wm-btn-confirm.wm-destructive:hover { box-shadow: 0 4px 14px rgba(184, 92, 92, 0.36); }
@media (max-width: 480px) {
  .wm-card { padding: 24px 18px 18px; border-radius: 14px; }
  .wm-actions { flex-direction: column-reverse; gap: 8px; }
  .wm-btn-cancel, .wm-btn-confirm { width: 100%; justify-content: center; }
}

/* ══════════════════════════════════════════════════════════════════════
   THEME ENGINE
   ══════════════════════════════════════════════════════════════════════ */

html.theme-transitioning * {
  transition: background-color 250ms ease, border-color 250ms ease,
              color 250ms ease, box-shadow 250ms ease !important;
}

/* Theme dialog sizing */
#themeDialog {
  width: min(640px, calc(100vw - 28px));
}
.theme-dialog-modal {
  padding: 24px 24px 28px;
}
.theme-dialog-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #8a7d63;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 140ms ease;
}
.theme-dialog-close:hover { background: #f3ece0; }
.theme-dialog-close svg { width: 18px; height: 18px; }

/* Theme section */
.theme-section { margin-top: 20px; }

/* Theme cards grid */
.theme-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

/* Individual theme card */
.theme-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px;
  border: 2px solid #e4d8c7;
  border-radius: 12px;
  background: var(--wertia-panel-bg);
  cursor: pointer;
  text-align: left;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.theme-card:hover:not(:disabled) {
  border-color: var(--wertia-gold);
  box-shadow: 0 4px 16px rgba(200, 164, 93, 0.15);
}
.theme-card--selected {
  border-color: var(--wertia-gold);
  box-shadow: 0 0 0 3px rgba(200, 164, 93, 0.18);
}

/* Mini preview */
.tp-preview {
  width: 100%;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  border: 1px solid rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}
.tp-sidebar {
  width: 26px;
  padding: 8px 5px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.tp-sidebar span {
  display: block;
  height: 4px;
  border-radius: 2px;
  width: 100%;
}
.tp-content {
  flex: 1;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tp-card {
  border-radius: 5px;
  padding: 5px 6px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  border: 1px solid transparent;
}
.tp-line {
  height: 3px;
  border-radius: 2px;
  width: 100%;
}
.tp-btn {
  height: 10px;
  border-radius: 4px;
  width: 48%;
}

/* Card info */
.tp-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 2px;
}
.tp-info strong {
  font-size: 12px;
  font-weight: 700;
  color: #2a2118;
  line-height: 1.3;
}
.tp-info small {
  font-size: 10px;
  color: #8a7d63;
  line-height: 1.4;
}

/* Badges */
.tp-badge {
  display: inline-block;
  margin-top: 5px;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3px;
  align-self: flex-start;
}
.tp-badge--active {
  background: var(--wertia-gold);
  color: #fff;
}
.tp-badge--soon {
  background: #ece5d8;
  color: #8a7d63;
}

@media (max-width: 560px) {
  .theme-cards-grid { grid-template-columns: 1fr; }
}
@media (max-width: 960px) {
  .sim-body { grid-template-columns: 1fr; }
  .sim-selectors { flex-direction: column; }
  .sim-arrow { display: none; }
}
@media (max-width: 800px) { .sim-trace-wrap { grid-template-columns: 1fr; } }
.wv-app-row.active { border-color: var(--wertia-gold); background: rgba(200,164,93,0.08); }
.wv-status-dot.ok { background: #70a36b; box-shadow: 0 0 0 3px rgba(112,163,107,0.18); }
.wv-status-dot.err { background: #b85c5c; box-shadow: 0 0 0 3px rgba(184,92,92,0.18); }

/* ----- Multi-page: regole di stampa -----
   Il documento di riferimento è di una sola pagina: queste regole sono
   un'estrapolazione necessaria (non derivata letteralmente dal PDF) per
   coerenza professionale — vedi report, sezione Limitazioni. */
@page {
  size: A4;
  margin: 0;
}
@media print {
  html, body { margin: 0; padding: 0; background: #fff; }
  .doc-page {
    margin: 0;
    box-shadow: none;
    break-after: page;
    /* Altezza fissa (non min-height:0): garantisce che ogni pagina, anche
       quelle con poco contenuto (es. la sola tabella), occupi sempre
       l'intera altezza fisica A4 — condizione necessaria perché
       .doc-footer (margin-top:auto) resti ancorato in fondo alla stessa
       posizione su tutte le pagine. */
    height: var(--doc-page-height);
    min-height: var(--doc-page-height);
    overflow: hidden;
  }
  .doc-page:last-child { break-after: auto; }
  .doc-section-title { break-after: avoid; }
  .doc-bullet-list li { break-inside: avoid; }
  .doc-signature-block { break-inside: avoid; }
  .doc-information-box { break-inside: avoid; }
  .doc-two-column { break-inside: avoid; }
  .doc-checkbox-group { break-inside: avoid; }
  .doc-radio-group { break-inside: avoid; }
  .doc-table tr { break-inside: avoid; }
  .doc-editable-table { break-inside: avoid; }
  .doc-header { break-after: avoid; }
  .doc-footer { break-before: avoid; }
}
@media screen {
  .doc-page {
    box-shadow: 0 4px 24px rgba(45, 41, 35, 0.12);
    margin-bottom: 24px;
  }
}

/* ===== Workspace Framework — Bento Grid (sperimentale, /workspace-lab) ===== */

.workspace-lab .provvigioni-actions { display: flex; align-items: flex-end; gap: 10px; }

/* Responsive: sotto la soglia, la griglia bento collassa a singola colonna,
   ogni widget occupa tutta la larghezza in ordine DOM (y, poi x). */
@media (max-width: 720px) {
  .wl-grid { grid-template-columns: 1fr !important; }
  .wl-widget { grid-column: 1 / -1 !important; grid-row: auto !important; min-height: 220px; }
  /* In modalità stack il resize non ha senso (un solo widget per riga,
     larghezza sempre piena): niente maniglia, niente cursore. display:none
     rimuove l'elemento dall'hit-test, quindi il pointerdown già cablato in
     JS non può mai ricevere l'evento — nessuna guardia JS aggiuntiva serve. */
  .wl-widget-resize { display: none; }
}

/* ===== Mandat — Demo/Prototipo navigabile (vedi .ai/MANDAT_SPECIFICATION_DRAFT.md) =====
   Riusa la chrome di wizard già esistente (.fa-wizard-*, .start-choice-grid,
   .form-section-grid, .primary-btn/.outline-btn) — solo le parti realmente
   nuove (tipo mandato, tabella Policen, anteprima documento) hanno CSS proprio. */
.mandat-demo-type-grid { grid-template-columns: repeat(3, 1fr); }

/* Compliance Footer (scheda cliente) — punto di lavoro fisso, separato dal Menu
   Compliance esistente (gestione documentale, invariato). Vedi commento in app.js. */
.compliance-footer {
  position: fixed;
  bottom: 0;
  left: var(--sidebar-width);
  right: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 24px;
  background: #fffdf8;
  border-top: 1px solid var(--wertia-inner-border);
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.06);
}
/* Evita che il footer fisso (fratello di #appShell, sempre nel DOM) copra l'ultimo
   contenuto quando visibile — scoped via :has(), non serve toccare .client-detail-page
   ne' altre pagine: si applica solo quando #complianceFooterDemo e' display:flex. */
body:has(#complianceFooterDemo[style*="flex"]) .app-shell { padding-bottom: 56px; }

/* ===== GESELLSCHAFTEN ===== */
.ges-page, .ges-detail { display: flex; flex-direction: column; gap: 16px; }
.ges-panel {
  background: var(--wertia-panel-bg);
  border: 1px solid var(--wertia-panel-border);
  border-radius: 12px;
  padding: 16px 18px;
}
.ges-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.ges-panel-head h2 { margin: 0; font-size: 15px; font-weight: 700; color: var(--wertia-page-fg); }
.ges-panel-head-actions { display: flex; align-items: center; gap: 4px; }
.ges-delete-btn { min-width: 44px; min-height: 44px; color: #8a7d63; }
.ges-delete-btn:hover, .ges-delete-btn:focus-visible { color: var(--wertia-danger); }
.ges-back {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: none;
  background: none;
  color: #8a7d63;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 2px;
}
.ges-back:hover { color: var(--wertia-gold); }
.ges-back svg { width: 16px; height: 16px; }

.ges-table-wrap { overflow-x: auto; }
.ges-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ges-table th {
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #8a7d63;
  padding: 6px 8px;
  border-bottom: 1px solid var(--wertia-inner-border);
  white-space: nowrap;
}
.ges-table td {
  padding: 5px 8px;
  border-bottom: 1px solid var(--wertia-inner-border);
  color: var(--wertia-page-fg);
  vertical-align: middle;
}
.ges-table tr:last-child td { border-bottom: none; }
.ges-table input[type="text"],
.ges-table input[type="email"],
.ges-table input[type="number"],
.ges-table input[type="date"],
.ges-table select {
  width: 100%;
  border: 1px solid transparent;
  background: transparent;
  padding: 4px 6px;
  border-radius: 6px;
  font-size: 13px;
  color: var(--wertia-page-fg);
  font-family: inherit;
}
.ges-table input:hover, .ges-table select:hover { border-color: var(--wertia-inner-border); }
.ges-table input:focus, .ges-table select:focus {
  outline: none;
  border-color: var(--wertia-gold);
  background: var(--wertia-inner-bg);
}
.ges-td-num input { text-align: right; }
.ges-td-center { text-align: center; }
.ges-td-date input { min-width: 128px; }
.ges-td-actions { white-space: nowrap; text-align: right; }
.ges-td-logo { width: 1%; white-space: nowrap; padding-right: 4px; }
.ges-td-hauptkontakt { min-width: 160px; }
.ges-contact-link {
  border: none;
  background: none;
  padding: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--wertia-page-fg);
  cursor: pointer;
  text-align: left;
}
.ges-contact-link:hover, .ges-contact-link:focus-visible { color: var(--wertia-gold); text-decoration: underline; }
.ges-hauptkontakt-mobile-meta { display: none; }
.ges-logo-lg { display: block; height: 56px; width: auto; max-width: 180px; object-fit: contain; }
.ges-logo-open-btn {
  display: inline-flex;
  align-items: center;
  border: none;
  background: none;
  padding: 4px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 120ms;
}
.ges-logo-open-btn:hover { background: rgba(200,164,93,0.1); }
.ges-logo-open-btn:focus-visible { outline: 2px solid var(--wertia-gold); outline-offset: 2px; }
.ges-company-logo-frame {
  position: relative;
  width: 180px;
  height: 56px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 8px;
  background: var(--wertia-inner-bg);
  border: 1px solid var(--wertia-inner-border);
}
.ges-company-logo-frame .ges-company-logo-fallback {
  max-width: 100%;
  padding: 0 10px;
  overflow: hidden;
  color: var(--wertia-page-fg);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ges-company-logo-frame .ges-logo-lg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  padding: 6px 10px;
  object-fit: contain;
  background: var(--wertia-inner-bg);
}
.ges-company-logo-frame .ges-logo-lg[hidden] { display: none !important; }
.ges-logo-placeholder { display: inline-grid; place-items: center; width: 28px; height: 28px; color: #8a7d63; }
.ges-logo-placeholder-lg {
  display: flex;
  align-items: center;
  gap: 8px;
  width: auto;
  height: 56px;
  padding: 0 12px 0 6px;
  border-radius: 8px;
  background: var(--wertia-inner-bg);
  border: 1px solid var(--wertia-inner-border);
}
.ges-logo-placeholder-lg svg { width: 26px; height: 26px; flex-shrink: 0; }
.ges-logo-placeholder-name { font-size: 13px; font-weight: 700; color: #6b6154; white-space: nowrap; }
.ges-logo-placeholder svg, .ges-stamm-logo svg { width: 22px; height: 22px; }
.ges-table td.ges-td-name { font-size: 12px; color: #8a7d63; font-weight: 400; white-space: nowrap; }
.ges-empty { text-align: center; color: #8a7d63; padding: 16px 8px; }

.ges-status { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.ges-status.on { color: var(--wertia-success); background: rgba(112,163,107,0.12); }
.ges-status.off { color: #8a7d63; background: rgba(138,125,99,0.12); }

.ges-stamm-body { display: flex; gap: 18px; align-items: flex-start; }
.ges-stamm-logo {
  width: 140px;
  height: 64px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  color: #8a7d63;
  overflow: hidden;
}
.ges-stamm-logo img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; background: transparent; border: 0; box-shadow: none; filter: none; }
.ges-stamm-logo-col, .ges-stamm-logo-edit {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.ges-stamm-logo-label { font-size: 10px; color: #8a7d63; text-align: center; }
.ges-logo-upload-btn {
  font-size: 11px;
  font-weight: 600;
  color: var(--wertia-gold);
  cursor: pointer;
  padding: 2px 4px;
}
.ges-logo-upload-btn:hover { text-decoration: underline; }
.ges-logo-remove-btn {
  border: none;
  background: none;
  font-size: 11px;
  color: #8a7d63;
  cursor: pointer;
  padding: 0;
}
.ges-logo-remove-btn:hover { color: var(--wertia-danger); text-decoration: underline; }
.ges-stamm-data { flex: 1; min-width: 0; }
.ges-stamm-row { display: flex; align-items: center; gap: 8px; font-size: 16px; margin-bottom: 10px; }
.ges-muted { font-size: 13px; font-weight: 400; color: #8a7d63; }
.ges-stamm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px 20px; }
.ges-stamm-grid > div { display: flex; flex-direction: column; gap: 2px; }
.ges-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: #8a7d63; }
.ges-stamm-grid a { color: var(--wertia-gold); text-decoration: none; }
.ges-stamm-grid a:hover { text-decoration: underline; }
.ges-notes { margin: 12px 0 0; font-size: 13px; color: #6b6154; line-height: 1.5; }

.ges-form-grid { flex: 1; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px 16px; }
.ges-form-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: #8a7d63; }
.ges-form-wide { grid-column: 1 / -1; }
.ges-form-grid input, .ges-form-grid textarea {
  border: 1px solid var(--wertia-inner-border);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 13px;
  font-family: inherit;
  color: var(--wertia-page-fg);
  background: var(--wertia-panel-bg);
}
.ges-form-grid input:focus, .ges-form-grid textarea:focus { outline: none; border-color: var(--wertia-gold); }
.ges-form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px; }

@media (max-width: 760px) {
  .ges-panel { padding: 12px; }
  .ges-stamm-body { flex-direction: column; }
  .ges-panel-head { flex-wrap: wrap; }
  .ges-table-list .ges-col-phone,
  .ges-table-list .ges-col-email { display: none; }
  .ges-hauptkontakt-mobile-meta {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-top: 2px;
    font-size: 11px;
    color: #8a7d63;
  }
}

/* Stammdaten uses one fixed WERTIA surface for every Gesellschaft. */
.company-detail-stammdaten {
  background: #f7f1e7;
  border: 1px solid var(--wertia-panel-border, #e3d3b8);
  color: var(--wertia-page-fg, #2f2922);
  box-shadow: none;
}
.ges-stammdaten .ges-panel-head h2 { color: var(--wertia-page-fg, #2f2922); }
.ges-stammdaten .ges-panel-head .icon-btn {
  color: var(--wertia-page-fg, #2f2922);
  background: var(--wertia-cream, #f7f1e7);
  border-color: var(--wertia-inner-border, #e3d3b8);
}
.ges-stammdaten .ges-panel-head .icon-btn:hover {
  color: var(--wertia-page-fg, #2f2922);
  background: #efe4d2;
  border-color: var(--wertia-gold, #c7a03c);
}
.ges-stammdaten .ges-panel-head .icon-btn:focus-visible {
  outline: 2px solid var(--wertia-gold, #c7a03c);
  outline-offset: 2px;
}
.ges-stammdaten .ges-panel-head .ges-delete-btn:hover,
.ges-stammdaten .ges-panel-head .ges-delete-btn:focus-visible {
  color: #fff;
  background: var(--wertia-danger);
  border-color: var(--wertia-danger);
}
.ges-stammdaten .ges-stamm-row strong { color: var(--wertia-page-fg, #2f2922); }
.ges-stammdaten .ges-muted, .ges-stammdaten .ges-label, .ges-stammdaten .ges-notes { color: #766a58; }
.ges-stammdaten .ges-stamm-data span:not(.ges-label):not(.ges-status) { color: var(--wertia-page-fg, #2f2922); }
.ges-stammdaten .ges-stamm-grid a { color: #765a21; }
.ges-stammdaten .ges-status.on { color: #416b3f; background: rgba(82,132,77,.12); }
.ges-stammdaten .ges-status.off { color: #806b48; background: rgba(128,107,72,.12); }
.ges-stammdaten .ges-stamm-logo,
.ges-stammdaten .ges-stamm-logo-col .ges-stamm-logo,
.ges-stammdaten .ges-stamm-logo-edit .ges-stamm-logo {
  background: transparent;
  border: 0;
  box-shadow: none;
  color: #766a58;
}
.ges-stammdaten .ges-stamm-logo-label, .ges-stammdaten .ges-logo-remove-btn, .ges-stammdaten .ges-form-grid label { color: #766a58; }
.ges-stammdaten .ges-logo-upload-btn { color: #765a21; }
.ges-stammdaten .ges-form-grid input,
.ges-stammdaten .ges-form-grid textarea {
  background: #fffdf8;
  border-color: var(--wertia-inner-border, #e3d3b8);
  color: var(--wertia-page-fg, #2f2922);
}
.ges-stammdaten .ges-form-grid input:focus,
.ges-stammdaten .ges-form-grid textarea:focus { border-color: var(--wertia-gold, #c7a03c); }
.ges-stammdaten .outline-btn { border-color: var(--wertia-inner-border, #e3d3b8); color: var(--wertia-page-fg, #2f2922); background: transparent; }
.ges-stammdaten .outline-btn:hover { border-color: var(--wertia-gold, #c7a03c); color: var(--wertia-page-fg, #2f2922); }

.ges-doc-candidates { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ges-doc-candidates li { display: flex; align-items: center; gap: 8px; font-size: 13px; padding: 6px 0; border-bottom: 1px solid var(--wertia-inner-border); }
.ges-doc-candidates li:last-child { border-bottom: none; }
.ges-doc-candidates .ges-doc-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ges-doc-candidates .ges-doc-meta { font-size: 11px; color: #8a7d63; white-space: nowrap; }
.ges-doc-hint { margin: 8px 0 0; font-size: 11px; color: #8a7d63; }
.ges-doc-upload-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--wertia-gold);
  cursor: pointer;
  padding: 4px 6px;
}
.ges-doc-upload-btn:hover { text-decoration: underline; }
.ges-doc-upload-btn svg { width: 14px; height: 14px; }
.ges-doc-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ges-doc-list li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--wertia-inner-border); }
.ges-doc-list li:last-child { border-bottom: none; }
.ges-doc-icon { color: #8a7d63; flex-shrink: 0; }
.ges-doc-icon svg { width: 18px; height: 18px; }
.ges-doc-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.ges-doc-info strong { font-size: 13px; font-weight: 700; color: var(--wertia-page-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ges-doc-info .ges-doc-meta { font-size: 11px; color: #8a7d63; }

/* ===== DASHBOARD (Fase A) ===== */
.dashboard-page { display: flex; flex-direction: column; gap: 16px; }
.dash-panel {
  border-radius: 14px;
  padding: 20px 24px;
  cursor: pointer;
  transition: transform 0.14s, box-shadow 0.14s;
}
.dash-panel:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,0.12); }
.dash-panel:focus-visible { outline: 2px solid var(--wertia-gold); outline-offset: 2px; }
.dash-panel-orange {
  background: linear-gradient(135deg, #f7a44a 0%, #e8842a 100%);
  color: #2d1a04;
}
.dash-panel-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.dash-panel-head h3 { margin: 0; font-size: 16px; font-weight: 800; }
.dash-panel-icon svg { width: 22px; height: 22px; }
.dash-panel-metrics { display: flex; gap: 28px; flex-wrap: wrap; }
.dash-panel-metrics strong { display: block; font-size: 26px; font-weight: 800; line-height: 1.2; }
.dash-panel-metrics span { font-size: 12px; opacity: 0.85; }

/* ===== DASHBOARD KPI/GRAFICI (mockup master) ===== */
.dashboard-actions-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; }
.dashboard-filter-badges { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; }
.dashboard-filter-badges button,
.dashboard-filter-badges span { padding: 5px 9px; border: 1px solid #d6c39f; border-radius: 999px; background: #f7f1e7; color: #655640; font-size: 11px; }
.dashboard-filter-badges button { cursor: pointer; }
.dashboard-filter-badges button:hover { border-color: var(--wertia-gold); }
.dashboard-datenstand { display: flex; align-items: center; gap: 6px; color: #8a7d63; font-size: 11px; white-space: nowrap; }
.dashboard-datenstand .icon-btn { width: 28px; min-width: 28px; height: 28px; min-height: 28px; padding: 0; }
.dashboard-datenstand .icon-btn svg { width: 14px; height: 14px; }
.dashboard-link-btn { border: 0; background: none; padding: 0; color: #9a7a2e; font-size: 12px; font-weight: 700; cursor: pointer; }
.dashboard-link-btn:hover { text-decoration: underline; }

.dashboard-kpi-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.dashboard-kpi-card { padding: 14px 16px; border: 1px solid var(--wertia-panel-border); border-radius: 14px; background: var(--wertia-panel-bg); box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.dashboard-kpi-head { display: flex; align-items: center; gap: 8px; color: #776953; font-size: 11px; font-weight: 700; }
.dashboard-kpi-icon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: #f4e8d0; color: #a9822f; flex-shrink: 0; }
.dashboard-kpi-icon svg { width: 16px; height: 16px; }
.dashboard-kpi-value { font-size: 22px; font-weight: 800; color: var(--wertia-page-fg); line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-kpi-delta { font-size: 11px; font-weight: 700; display: flex; align-items: center; gap: 5px; }
.dashboard-kpi-delta small { color: #8a7d63; font-weight: 500; }
.dashboard-kpi-delta.positive { color: var(--wertia-success); }
.dashboard-kpi-delta.negative { color: var(--wertia-danger); }
.dashboard-kpi-sparkline-box { position: relative; width: 100%; height: 30px; flex-shrink: 0; }
.dashboard-kpi-sparkline-box canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }

.dashboard-charts-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; grid-auto-rows: minmax(0, auto); }
.dashboard-chart-panel { padding: 16px 18px; display: flex; flex-direction: column; min-width: 0; }
.dashboard-chart-panel .ges-panel-head { margin-bottom: 10px; }
.dashboard-chart-subhead { color: #8a7d63; font-size: 11px; }
.dashboard-chart-body { position: relative; height: 220px; }
.dashboard-chart-body canvas { max-width: 100%; }
.dashboard-activities-panel { grid-row: span 2; padding: 16px 18px; display: flex; flex-direction: column; min-width: 0; }
.dashboard-mini-calendar { display: flex; flex-direction: column; gap: 8px; min-height: 0; flex: 1; }
.dashboard-mini-calendar-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.dashboard-mini-calendar-head strong { font-size: 12px; font-weight: 800; color: var(--wertia-page-fg); text-transform: capitalize; }
.dashboard-mini-calendar-head .icon-btn { width: 26px; min-width: 26px; height: 26px; min-height: 26px; padding: 0; }
.dashboard-mini-calendar-head .icon-btn svg { width: 13px; height: 13px; }
.dashboard-mini-calendar-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); text-align: center; }
.dashboard-mini-calendar-weekdays span { font-size: 9px; font-weight: 700; color: #9a8e77; text-transform: uppercase; }
.dashboard-mini-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.dashboard-mini-calendar-cell { position: relative; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 8px; background: none; color: #655640; font-size: 11px; cursor: pointer; }
.dashboard-mini-calendar-cell.empty { cursor: default; }
.dashboard-mini-calendar-cell:not(.empty):hover { background: #fff8e8; }
.dashboard-mini-calendar-cell.today { font-weight: 800; box-shadow: inset 0 0 0 1px var(--wertia-gold); }
.dashboard-mini-calendar-cell.selected { background: var(--wertia-gold); color: #2d1a04; font-weight: 800; }
.dashboard-mini-calendar-dot { position: absolute; bottom: 3px; left: 50%; transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: #9a5714; }
.dashboard-mini-calendar-cell.selected .dashboard-mini-calendar-dot { background: #2d1a04; }
.dashboard-activities-list { display: flex; flex-direction: column; gap: 4px; overflow-y: auto; flex: 1; min-height: 0; }
.dashboard-activities-more { align-self: flex-start; margin-top: 2px; }
.dashboard-activity-row { display: grid; grid-template-columns: 52px 1fr auto; align-items: flex-start; gap: 10px; padding: 9px 4px; border-bottom: 1px solid var(--wertia-inner-border); cursor: pointer; border-radius: 8px; }
.dashboard-activity-row:hover, .dashboard-activity-row:focus-visible { background: #fff8e8; outline: 0; }
.dashboard-activity-time { color: #8a7d63; font-size: 11px; font-weight: 700; padding-top: 2px; }
.dashboard-activity-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.dashboard-activity-body strong { font-size: 12px; }
.dashboard-activity-body span { font-size: 11px; color: #776953; }
.dashboard-activity-body small { font-size: 10px; color: #9a8e77; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-activity-menu { width: 26px; min-width: 26px; height: 26px; min-height: 26px; padding: 0; }
.dashboard-new-appointment { margin-top: 10px; width: 100%; justify-content: center; }

.dashboard-donut-wrap { display: flex; align-items: center; gap: 16px; flex: 1; min-height: 220px; }
.dashboard-donut-canvas-box { position: relative; width: 140px; height: 140px; flex-shrink: 0; }
.dashboard-donut-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; pointer-events: none; }
.dashboard-donut-center strong { font-size: 17px; font-weight: 800; color: var(--wertia-page-fg); }
.dashboard-donut-center span { font-size: 10px; color: #8a7d63; }
.dashboard-donut-legend { display: flex; flex-direction: column; gap: 8px; min-width: 0; flex: 1; }
.dashboard-donut-legend-row { display: flex; align-items: flex-start; gap: 7px; font-size: 11px; color: #655640; }
.dashboard-donut-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; margin-top: 3px; }
.dashboard-donut-legend-label { flex: 1; min-width: 0; line-height: 1.3; }
.dashboard-donut-legend-value { font-weight: 700; color: var(--wertia-page-fg); white-space: nowrap; }

.dashboard-mini-kpi-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.dashboard-mini-kpi { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--wertia-panel-border); border-radius: 12px; background: var(--wertia-panel-bg); min-width: 0; }
.dashboard-mini-kpi > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dashboard-mini-kpi span { font-size: 10px; color: #8a7d63; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; }
.dashboard-mini-kpi strong { font-size: 16px; font-weight: 800; color: var(--wertia-page-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-mini-kpi small { font-size: 10px; font-weight: 700; display: flex; gap: 4px; }
.dashboard-mini-kpi small em { color: #8a7d63; font-weight: 500; font-style: normal; }
.dashboard-mini-kpi small.positive { color: var(--wertia-success); }
.dashboard-mini-kpi small.negative { color: var(--wertia-danger); }

.dashboard-filter-modal .core-application-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 1180px) {
  .dashboard-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-charts-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-activities-panel { grid-row: auto; }
  .dashboard-mini-kpi-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .dashboard-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-charts-row { grid-template-columns: 1fr; }
  .dashboard-mini-kpi-row { grid-template-columns: 1fr; }
  .dashboard-donut-wrap { flex-direction: column; align-items: stretch; }
  .dashboard-donut-canvas-box { align-self: center; }
  .dashboard-actions-row { flex-direction: column; align-items: stretch; }
  .dashboard-datenstand { justify-content: space-between; }
  .dashboard-filter-modal .core-application-form-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .dashboard-kpi-grid { grid-template-columns: 1fr; }
}

/* Micro-interazioni hover: solo su dispositivi con hover reale (mouse), mai
   su touch, e disattivate se l'utente ha richiesto prefers-reduced-motion. */
@media (hover: hover) and (pointer: fine) {
  .dashboard-kpi-card,
  .dashboard-chart-panel,
  .dashboard-activities-panel,
  .dashboard-mini-kpi {
    transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 220ms ease, border-color 220ms ease;
  }
  .dashboard-kpi-card:hover,
  .dashboard-chart-panel:hover,
  .dashboard-activities-panel:hover,
  .dashboard-mini-kpi:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(72, 52, 31, 0.1);
    border-color: rgba(200, 164, 93, 0.45);
  }

  .dashboard-activity-row,
  .dashboard-mini-calendar-cell:not(.empty) {
    transition: background-color 200ms ease, box-shadow 200ms ease;
  }
  .dashboard-activity-row:hover {
    box-shadow: inset 0 0 0 1px rgba(200, 164, 93, 0.3);
  }
  .dashboard-mini-calendar-cell:not(.empty):hover {
    box-shadow: inset 0 0 0 1px rgba(200, 164, 93, 0.35);
  }

  .dashboard-page .outline-btn,
  .dashboard-page .primary-btn,
  .dashboard-link-btn,
  .dashboard-filter-badges button,
  .dashboard-mini-calendar-head .icon-btn,
  .dashboard-activity-menu {
    transition: filter 200ms ease, transform 200ms ease;
  }
  .dashboard-page .outline-btn:hover,
  .dashboard-page .primary-btn:hover,
  .dashboard-link-btn:hover,
  .dashboard-filter-badges button:hover,
  .dashboard-mini-calendar-head .icon-btn:hover,
  .dashboard-activity-menu:hover {
    filter: brightness(1.05);
  }
  .dashboard-page .outline-btn:active,
  .dashboard-page .primary-btn:active,
  .dashboard-mini-calendar-head .icon-btn:active,
  .dashboard-activity-menu:active {
    transform: translateY(1px);
  }
  .dashboard-mini-calendar-head .icon-btn:hover svg {
    transition: transform 200ms ease;
    transform: translateX(1px);
  }
  .dashboard-mini-calendar-head .icon-btn[data-dashboard-cal-prev]:hover svg {
    transform: translateX(-1px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-kpi-card,
  .dashboard-chart-panel,
  .dashboard-activities-panel,
  .dashboard-mini-kpi,
  .dashboard-activity-row,
  .dashboard-mini-calendar-cell,
  .dashboard-page .outline-btn,
  .dashboard-page .primary-btn,
  .dashboard-link-btn,
  .dashboard-filter-badges button,
  .dashboard-mini-calendar-head .icon-btn,
  .dashboard-activity-menu {
    transition: none !important;
    transform: none !important;
  }
}

/* ===== ANTRÄGE (Fase A — tabella principale compatta) ===== */
.antraege-table-wrap { width: 100%; overflow-x: visible; }
.antraege-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 12px; }
.antraege-table th {
  text-align: left;
  padding: 7px 8px;
  border-bottom: 2px solid var(--wertia-panel-border);
  color: #8a7d63;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.antraege-table td { padding: 7px 8px; border-bottom: 1px solid var(--wertia-inner-border); white-space: nowrap; }
.antraege-table th:nth-child(1) { width: 18%; }
.antraege-table th:nth-child(2) { width: 14%; }
.antraege-table th:nth-child(3) { width: 13%; }
.antraege-table th:nth-child(4),
.antraege-table th:nth-child(5) { width: 9%; }
.antraege-table th:nth-child(6),
.antraege-table th:nth-child(7) { width: 10%; }
.antraege-table th:nth-child(8) { width: 11%; }
.antraege-table th:nth-child(9) { width: 6%; }
.antraege-table th.antraege-col-num,
.antraege-table td.antraege-col-num { text-align: right; font-variant-numeric: tabular-nums; }
.antraege-customer { max-width: 0; }
.antraege-customer > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.antraege-number,
.antraege-company { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.antraege-status { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.antraege-status > span { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.antraege-status-pending { color: #c66f16; }
.antraege-status-accepted { color: #478a4d; }
.antraege-status-rejected { color: #b64343; }
.antraege-actions { text-align: center; white-space: nowrap; }
.antraege-actions .icon-btn { width: 30px; height: 30px; min-width: 30px; padding: 5px; }
.antraege-empty { text-align: center; color: #9b8870; padding: 24px !important; white-space: normal; }
.client-application-filter { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; color: #776953; font-size: 12px; }
.client-antraege-table th:nth-child(1) { width: 8%; text-align: center; }
.client-antraege-table th:nth-child(2) { width: 15%; }
.client-antraege-table th:nth-child(3) { width: 13%; }
.client-antraege-table th:nth-child(4) { width: 12%; }
.client-antraege-table th:nth-child(5),
.client-antraege-table th:nth-child(6) { width: 9%; }
.client-antraege-table th:nth-child(7),
.client-antraege-table th:nth-child(8) { width: 11%; }
.client-antraege-table th:nth-child(9) { width: 12%; }

@media (max-width: 900px) {
  .antraege-table-wrap { overflow-x: auto; }
  .antraege-table { min-width: 820px; }
  .insurance-icon { min-width: 42px; min-height: 42px; }
}

.antraege-main-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.antraege-main-table :is(th, td) { padding-inline: 6px; }
.antraege-main-table th:nth-child(1) { width: 5%; text-align: center; }
.antraege-main-table th:nth-child(2) { width: 17%; }
.antraege-main-table th:nth-child(3) { width: 9%; }
.antraege-main-table th:nth-child(4) { width: 14%; }
.antraege-main-table th:nth-child(5) { width: 11%; }
.antraege-main-table th:nth-child(6),
.antraege-main-table th:nth-child(7) { width: 9%; }
.antraege-main-table th:nth-child(8) { width: 10%; }
.antraege-main-table th:nth-child(9),
.antraege-main-table th:nth-child(10) { width: 8%; }
.antraege-main-table :is(.antraege-customer, .antraege-number, .antraege-company, .antraege-category) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.antraege-clickable-row { cursor: pointer; transition: background-color 140ms ease; }
.antraege-clickable-row:hover { background: #f3eadc; }
.antraege-clickable-row:focus-visible { outline: 2px solid var(--wertia-gold); outline-offset: -2px; background: #f3eadc; }
.antraege-status-cell { text-align: center; }
.antraege-status-flag {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  vertical-align: middle;
}
.antraege-status-flag svg { width: 19px; height: 19px; stroke: currentColor; }
.antraege-status-pending { color: #c66f16; }
.antraege-status-accepted { color: #478a4d; }
.antraege-status-rejected { color: #b64343; }

@media (min-width: 701px) and (max-width: 900px) {
  .antraege-main-table { min-width: 940px; }
}
.application-completeness.complete { border-color: rgba(71, 138, 77, .3); background: #edf6ed; }
.antraege-mobile-list { display: none; }

.core-application-dialog:has(.application-row-dialog) {
  width: min(720px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow: hidden;
}
.application-row-dialog {
  width: 100%;
  max-width: none;
  max-height: calc(100vh - 32px);
  margin: 0;
  overflow-y: auto;
  box-sizing: border-box;
}
.application-row-summary { width: 100%; margin: 0; }
.application-row-summary > div {
  display: grid;
  grid-template-columns: minmax(130px, .8fr) minmax(0, 1.5fr);
  gap: 18px;
  padding: 10px 0;
  border-bottom: 1px solid var(--wertia-inner-border);
}
.application-row-summary dt { color: #776953; }
.application-row-summary dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.application-row-dialog-actions { width: 100%; flex-wrap: wrap; }
.application-row-dialog-actions > :is(button, label) { max-width: 100%; }

@media (max-width: 700px) {
  .antraege-main-table-wrap { display: none; }
  .antraege-mobile-list { display: grid; gap: 8px; }
  .antraege-mobile-row {
    padding: 12px;
    border: 1px solid var(--wertia-inner-border);
    border-radius: 10px;
    background: var(--wertia-panel-bg);
    cursor: pointer;
  }
  .antraege-mobile-row:hover,
  .antraege-mobile-row:focus-visible { background: #f3eadc; outline: 2px solid var(--wertia-gold); outline-offset: -2px; }
  .antraege-mobile-head,
  .antraege-mobile-meta,
  .antraege-mobile-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .antraege-mobile-meta { margin: 6px 0 10px; color: #776953; font-size: 12px; }
  .antraege-mobile-meta span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .antraege-mobile-foot { flex-wrap: wrap; justify-content: flex-start; font-size: 12px; }
  .antraege-mobile-foot span { display: inline-flex; gap: 4px; white-space: nowrap; }
  .application-row-summary > div { grid-template-columns: 1fr; gap: 3px; }
  .application-row-summary dd { text-align: left; }
  .core-application-dialog:has(.application-row-dialog) { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .application-row-dialog { max-height: calc(100dvh - 16px); padding: 14px; }
  .application-row-dialog-actions > :is(button, label) { flex: 1 1 100%; width: 100%; }
}

.core-application-dialog {
  width: min(920px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  padding: 0;
  border: 0;
  border-radius: 14px;
  background: var(--wertia-panel-bg);
  color: var(--wertia-page-fg);
  box-shadow: 0 24px 70px rgba(35, 25, 15, 0.28);
}
.core-application-dialog::backdrop { background: rgba(31, 23, 16, 0.52); }
.core-application-modal { padding: 22px; overflow: auto; }
.core-application-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.core-application-modal-head h2 { margin: 2px 0 0; font-size: 20px; }
.application-step-label { margin: 18px 0 10px; color: #8a7d63; font-size: 11px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.core-application-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.core-application-form-grid label { display: flex; flex-direction: column; gap: 5px; color: #776953; font-size: 12px; font-weight: 700; }
.core-application-form-grid input,
.core-application-form-grid select,
.core-application-form-grid textarea {
  width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid var(--wertia-inner-border);
  border-radius: 8px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); font: inherit;
}
.core-application-form-grid input:focus,
.core-application-form-grid select:focus,
.core-application-form-grid textarea:focus { outline: 2px solid rgba(199, 160, 60, 0.28); border-color: var(--wertia-gold); }
.core-application-form-grid textarea { resize: vertical; }
.core-application-form-grid select:disabled { opacity: 0.72; cursor: not-allowed; }
.core-application-wide { grid-column: 1 / -1; }
.core-application-checkbox { flex-direction: row !important; align-items: center; align-self: end; min-height: 40px; }
.core-application-checkbox input { width: 18px; min-height: 18px; }
.core-application-error { min-height: 20px; margin: 12px 0 0; color: var(--wertia-danger); font-size: 13px; font-weight: 600; }
.core-application-form-actions { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-top: 16px; }
.application-wizard { display: flex; flex-direction: column; max-height: calc(90vh - 32px); overflow: hidden; }
.application-wizard-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)); flex: 0 0 auto; gap: 8px; margin: 0 0 20px; }
.application-wizard-nav button { min-width: 0; min-height: 58px; border: 1px solid var(--wertia-inner-border); border-radius: 10px; background: transparent; color: #aa9d88; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 7px; }
.application-wizard-nav button svg { width: 19px; height: 19px; }
.application-wizard-nav button span { font-size: 11px; font-weight: 800; }
.application-wizard-nav button.reached { border-color: rgba(199, 160, 60, 0.48); color: var(--wertia-gold); }
.application-wizard-nav button.active { border-color: var(--wertia-gold); background: #fff8e8; color: #2d2923; box-shadow: 0 0 0 1px rgba(199, 160, 60, 0.18); }
.application-wizard-nav button.has-error { border-color: var(--wertia-danger); color: var(--wertia-danger); }
.application-wizard-nav button:disabled { opacity: 0.42; cursor: not-allowed; }
.application-wizard-step { min-height: 330px; overflow-y: auto; }
.application-wizard-step.has-error { outline: 1px solid color-mix(in srgb, var(--wertia-danger) 55%, transparent); outline-offset: 4px; border-radius: 8px; }
.application-wizard .core-application-form-actions { flex: 0 0 auto; padding-top: 12px; border-top: 1px solid var(--wertia-inner-border); background: var(--wertia-panel-bg); }
.application-category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.application-category-card { min-height: 104px; padding: 12px; border: 1px solid rgba(174, 128, 42, 0.34); border-radius: 12px; background: linear-gradient(145deg, var(--wertia-panel-bg), #fbf2df); color: #665637; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; font: inherit; font-size: 12px; font-weight: 700; text-align: center; box-shadow: 0 4px 12px rgba(80, 55, 24, 0.07); transition: transform 150ms ease, border-color 150ms ease, background 150ms ease, color 150ms ease, box-shadow 150ms ease; }
.application-category-card svg { width: 29px; height: 29px; color: var(--wertia-gold); transition: transform 150ms ease, color 150ms ease; }
.application-category-card:hover, .application-category-card:focus-visible { border-color: var(--wertia-gold); background: #fff6df; color: #2d2923; box-shadow: 0 8px 20px rgba(80, 55, 24, 0.13); transform: translateY(-2px); }
.application-category-card.active { border-color: var(--wertia-gold); background: linear-gradient(145deg, #fff8e8, #f3dfb1); color: #2d2923; box-shadow: 0 0 0 2px rgba(199, 160, 60, 0.2), 0 8px 20px rgba(80, 55, 24, 0.12); }
.application-category-card.active svg { color: #9a6b16; transform: scale(1.08); }
.application-category-card.selecting { animation: application-category-select 180ms ease both; }
.application-category-card:disabled { cursor: wait; }
@keyframes application-category-select { 0% { transform: scale(1); } 55% { transform: scale(0.96); } 100% { transform: scale(1.02); } }
@media (prefers-reduced-motion: reduce) { .application-category-card { transition: none; } .application-category-card.selecting { animation: none; } }
.application-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.application-review-grid > div { padding: 13px; border: 1px solid var(--wertia-inner-border); border-radius: 9px; display: flex; flex-direction: column; gap: 4px; }
.application-review-grid span { color: #8a7d63; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.health-contract-block { margin-bottom: 16px; padding: 16px; border: 1px solid var(--wertia-inner-border); border-radius: 11px; }
.health-component-identity { margin: 4px 0 0; color: #8a7d63; font-size: 11px; }
.health-premium-total { display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding: 14px 0; color: #776953; }
.health-premium-total strong { color: var(--wertia-page-fg); font-size: 18px; }
.health-needs { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--wertia-inner-border); }
.health-needs h3 { margin: 0 0 12px; }
.health-needs-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; margin-bottom: 14px; }
.health-needs-grid label { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; }
.health-needs > label, .health-notes-label { display: flex; flex-direction: column; gap: 6px; color: #776953; font-size: 12px; font-weight: 700; }
.health-needs select, .health-notes-label textarea { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid var(--wertia-inner-border); border-radius: 8px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); font: inherit; }
.health-notes-label { margin-top: 18px; }
.health-notes-label small { font-weight: 500; }
.health-summary-table { min-width: 720px; }
.health-document-row { display: grid; grid-template-columns: minmax(180px, 1fr) auto auto; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--wertia-inner-border); }
.health-document-row > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.health-document-row span { color: #8a7d63; font-size: 11px; overflow-wrap: anywhere; }
.health-document-row small { color: #9b907a; font-size: 10px; overflow-wrap: anywhere; }
.health-document-row .outline-btn { margin: 0; }
.health-upload-status { color: #8a7d63; font-size: 11px; }
.health-storage-notice { margin: 0 0 14px; color: #8a7d63; font-size: 11px; }
.health-cancellation-fields { margin-top: 12px; }
.vehicle-coverages-wrap { width: 100%; overflow-x: auto; }
.vehicle-coverages-table { width: 100%; min-width: 980px; border-collapse: collapse; font-size: 11px; }
.vehicle-coverages-table th { padding: 8px; border-bottom: 2px solid var(--wertia-panel-border); color: #8a7d63; text-align: left; }
.vehicle-coverages-table td { padding: 8px; border-bottom: 1px solid var(--wertia-inner-border); vertical-align: middle; }
.vehicle-coverages-table tr.fundamental { background: #fff9ea; }
.vehicle-coverages-table td:first-child strong, .vehicle-coverages-table td:first-child small { display: block; }
.vehicle-coverages-table td:first-child small { margin-top: 2px; color: #8a7d63; }
.vehicle-coverages-table input:not([type="checkbox"]) { width: 135px; min-height: 36px; padding: 6px 8px; border: 1px solid var(--wertia-inner-border); border-radius: 7px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); font: inherit; }
.vehicle-coverages-table input:disabled { opacity: .48; cursor: not-allowed; }
.dashboard-tasks-panel { padding: 16px 18px; }
.dashboard-task-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.dashboard-task-filters select { min-height: 36px; padding: 6px 30px 6px 10px; border: 1px solid var(--wertia-inner-border); border-radius: 7px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); }
.dashboard-task-list { display: grid; }
.dashboard-task-row { display: grid; grid-template-columns: minmax(220px, 1fr) auto auto auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--wertia-inner-border); }
.dashboard-task-row > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dashboard-task-row span, .dashboard-task-row small { color: #7f735e; font-size: 11px; }
.dashboard-task-row .outline-btn { min-height: 34px; margin: 0; }
.dashboard-task-due, .dashboard-task-priority { white-space: nowrap; }
.dashboard-task-overdue { border-left: 3px solid #b63b32; padding-left: 10px; }
.dashboard-task-overdue .dashboard-task-due { color: #b12d26; font-weight: 800; }
.dashboard-task-due-soon .dashboard-task-due { color: #aa6916; font-weight: 800; }
.quick-entry-choice-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 8px 0; }
.quick-entry-choice-button { min-height: 150px; padding: 20px; border: 1px solid var(--wertia-inner-border); border-radius: 12px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); cursor: pointer; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; text-align: left; font: inherit; }
.quick-entry-choice-button:hover { border-color: var(--wertia-gold); background: #fff9eb; }
.quick-entry-choice-button svg { width: 24px; height: 24px; color: var(--wertia-gold); }
.quick-entry-choice-button strong { font-size: 16px; }
.quick-entry-choice-button span { color: #81745f; font-size: 12px; line-height: 1.4; }
html[data-theme="dark-luxury"] .quick-entry-choice-button {
  background: var(--wertia-panel-bg);
  color: var(--wertia-cream);
}
html[data-theme="dark-luxury"] .quick-entry-choice-button:hover,
html[data-theme="dark-luxury"] .quick-entry-choice-button:focus-visible {
  background: var(--wertia-inner-bg);
  border-color: var(--wertia-gold);
  color: var(--wertia-cream);
}
html[data-theme="dark-luxury"] .quick-entry-choice-button span { color: var(--wertia-muted); }
.application-completeness { display: inline-flex; padding: 4px 8px; border: 1px solid var(--wertia-inner-border); border-radius: 999px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.application-completeness.partial { border-color: rgba(190, 112, 22, .4); color: #a76012; background: #fff7e7; }
.application-completeness.complete { color: #53734f; }
.application-complete-action { min-height: 32px; margin: 0; padding: 5px 9px; white-space: nowrap; }
.cancellation-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.cancellation-actions > span { color: #8a7d63; font-size: 11px; }
.health-vvg-list { display: grid; gap: 14px; margin-top: 16px; }
.health-company-choice { margin-top: 18px; }
.health-company-choice h3 { margin: 0 0 10px; font-size: 14px; }
.health-company-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 170px)); justify-content: start; gap: 8px; }
.health-company-card { position: relative; min-width: 0; min-height: 96px; max-height: 108px; padding: 16px 18px; border: 1px solid var(--wertia-inner-border); border-radius: 9px; background: var(--wertia-panel-bg); color: #776953; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; font: inherit; font-size: 11px; font-weight: 700; text-align: center; box-shadow: none; overflow: hidden; }
.health-company-card.has-logo img { display: block; width: 100%; max-width: 145px; height: 54px; max-height: 54px; object-fit: contain; }
.health-company-card.has-logo img[hidden] { display: none; }
.health-company-logo-fallback { display: flex; min-width: 0; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
.health-company-logo-fallback[hidden] { display: none; }
.health-company-name { line-height: 1.2; }
.health-company-card svg { width: 24px; height: 24px; }
.health-company-card:hover { border-color: #a98c4f; background: #fffaf0; color: #2d2923; }
.health-company-card.active { border-color: #70510d; background: #fff8e8; color: #2d2923; }
.health-company-initials { display: inline-flex; width: 42px; height: 34px; align-items: center; justify-content: center; border: 1px solid var(--wertia-inner-border); border-radius: 8px; background: #f4efe5; color: #705f43; font-size: 13px; font-weight: 800; letter-spacing: .04em; }
.health-company-selected { position: absolute; top: 7px; right: 7px; display: inline-flex; width: 20px; height: 20px; align-items: center; justify-content: center; border-radius: 50%; background: #70510d; color: #fff; }
.health-company-selected svg { width: 12px; height: 12px; }
.health-insurance-type-choice { margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--wertia-inner-border); }
.health-insurance-type-choice h3 { margin: 0 0 10px; font-size: 14px; }
.health-insurance-type-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.health-insurance-type-button { min-height: 46px; padding: 10px 14px; border: 1px solid var(--wertia-inner-border); border-radius: 9px; background: var(--wertia-panel-bg); color: #776953; cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; }
.health-insurance-type-button:hover, .health-insurance-type-button.active { border-color: var(--wertia-gold); background: #fff8e8; color: #2d2923; }
.health-type-hint { margin: 0; color: #8a7d63; font-size: 12px; }
.health-contract-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.health-vvg-action { min-height: 36px; margin: 0; padding: 7px 11px; }
.health-vvg-remove { color: #9a3e31; border-color: rgba(154, 62, 49, .32); }
.health-step-section + .health-step-section { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--wertia-inner-border); }
.health-commission-list { width: 100%; }
.health-commission-head, .health-commission-row { display: grid; grid-template-columns: .7fr 1.2fr 1fr 1fr 1fr .8fr; gap: 10px; align-items: center; padding: 10px 4px; border-bottom: 1px solid var(--wertia-inner-border); font-size: 12px; }
.health-commission-head { color: #8a7d63; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.health-commission-total { display: flex; justify-content: space-between; gap: 16px; padding: 16px 4px 4px; font-weight: 800; }
.health-overview section + section { margin-top: 18px; }
.health-overview h3 { margin: 0; padding-bottom: 7px; border-bottom: 1px solid var(--wertia-panel-border); font-size: 14px; }
.health-overview-row { display: flex; justify-content: space-between; gap: 24px; padding: 8px 0; border-bottom: 1px solid var(--wertia-inner-border); font-size: 12px; }
.health-overview-row span { color: #776953; }
.health-overview-row strong { max-width: 65%; text-align: right; overflow-wrap: anywhere; }
.health-overview-row label { display: grid; gap: 5px; min-width: 0; color: #776953; font-size: 12px; }
.health-overview-row label input { width: 150px; min-height: 34px; padding: 6px 8px; border: 1px solid var(--wertia-inner-border); border-radius: 7px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); font: inherit; }
.household-variant-choice { margin-top: 18px; }
.household-coverages { display: grid; gap: 18px; }
.household-coverages-table input { min-width: 112px; min-height: 38px; padding: 7px 8px; border: 1px solid var(--wertia-inner-border); border-radius: 7px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); font: inherit; }
.household-coverages-table input[type="checkbox"] { min-width: 20px; width: 20px; min-height: 20px; padding: 0; accent-color: var(--wertia-gold); }
.core-application-detail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.core-application-detail > div { min-width: 0; padding: 10px 12px; border: 1px solid var(--wertia-inner-border); border-radius: 9px; }
.core-application-detail dt { margin-bottom: 3px; color: #8a7d63; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.core-application-detail dd { margin: 0; overflow-wrap: anywhere; font-size: 13px; font-weight: 600; }
.application-coverages-editor,
.application-coverages-detail { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--wertia-inner-border); }
.application-coverages-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.application-coverages-head h3 { margin: 2px 0 0; font-size: 17px; }
.application-coverages-table-wrap { width: 100%; overflow-x: auto; }
.application-coverages-table { width: 100%; min-width: 1050px; border-collapse: collapse; font-size: 11px; }
.application-coverages-table th { padding: 7px; border-bottom: 2px solid var(--wertia-panel-border); color: #8a7d63; text-align: left; white-space: nowrap; }
.application-coverages-table td { padding: 7px; border-bottom: 1px solid var(--wertia-inner-border); vertical-align: top; white-space: nowrap; }
.application-commission-table-wrap { width: 100%; overflow-x: auto; }
.application-commission-table { width: 100%; min-width: 780px; border-collapse: collapse; font-size: 12px; }
.application-commission-table th { padding: 8px; border-bottom: 2px solid var(--wertia-panel-border); color: #8a7d63; text-align: left; white-space: nowrap; }
.application-commission-table td { padding: 8px; border-bottom: 1px solid var(--wertia-inner-border); vertical-align: top; }
.application-coverages-edit-table input { width: 125px; min-height: 36px; padding: 6px 8px; border: 1px solid var(--wertia-inner-border); border-radius: 7px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); font: inherit; }
.application-coverages-edit-table td:first-child input,
.application-coverages-edit-table td:nth-child(2) input,
.application-coverages-edit-table td:nth-child(3) input,
.application-coverages-edit-table td:nth-child(9) input { width: 160px; }
.application-coverage-summary { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 18px; margin-top: 10px; color: #776953; font-size: 12px; }
.application-coverage-warning { margin: 10px 0 0; padding: 9px 11px; border: 1px solid rgba(198, 111, 22, 0.35); border-radius: 8px; background: rgba(198, 111, 22, 0.09); color: #9a5714; font-size: 12px; font-weight: 600; }

@media (min-width: 681px) and (max-width: 1024px) {
  .health-company-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .core-application-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
  .core-application-modal { padding: 16px; }
  .core-application-form-grid,
  .core-application-detail { grid-template-columns: 1fr; }
  .application-wizard-nav { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 40px; overflow-x: auto; }
  .application-wizard-nav button { min-height: 44px; }
  .application-wizard-nav button span { display: none; }
  .application-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .application-review-grid { grid-template-columns: 1fr; }
  .health-needs-grid { grid-template-columns: 1fr; }
  .health-company-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .health-company-card { min-height: 84px; max-height: 94px; padding: 10px 12px; }
  .health-company-card.has-logo img { max-width: 125px; height: 48px; max-height: 48px; }
  .health-insurance-type-buttons { grid-template-columns: 1fr; }
  .health-contract-block .application-coverages-head { align-items: flex-start; flex-direction: column; }
  .health-contract-actions { width: 100%; justify-content: flex-start; }
  .health-contract-actions strong { margin-left: auto; }
  .health-overview-row { align-items: start; flex-wrap: wrap; }
  .health-overview-row label { flex: 1 1 100%; }
  .health-overview-row label input { width: 100%; }
  .health-document-row { grid-template-columns: 1fr; }
  .vehicle-coverages-wrap { overflow: visible; }
  .vehicle-coverages-table, .vehicle-coverages-table tbody, .vehicle-coverages-table tr, .vehicle-coverages-table td { display: block; min-width: 0; width: 100%; }
  .vehicle-coverages-table thead { display: none; }
  .vehicle-coverages-table tr { padding: 12px 0; border-bottom: 1px solid var(--wertia-inner-border); }
  .vehicle-coverages-table td { display: grid; grid-template-columns: 42% 1fr; gap: 8px; align-items: center; border: 0; padding: 5px 0; }
  .vehicle-coverages-table td::before { color: #8a7d63; font-size: 10px; font-weight: 700; }
  .vehicle-coverages-table td:nth-child(1)::before { content: "Leistung"; }
  .vehicle-coverages-table td:nth-child(2)::before { content: "Auswahl"; }
  .vehicle-coverages-table td:nth-child(3)::before { content: "Prämie jährlich"; }
  .vehicle-coverages-table td:nth-child(4)::before { content: "Prämie halbjährlich"; }
  .vehicle-coverages-table td:nth-child(5)::before { content: "Selbstbehalt"; }
  .vehicle-coverages-table td:nth-child(6)::before { content: "Notizen"; }
  .vehicle-coverages-table input:not([type="checkbox"]) { width: 100%; }
  .dashboard-task-row { grid-template-columns: 1fr auto; }
  .dashboard-task-row > div { grid-column: 1 / -1; }
  .quick-entry-choice-actions { grid-template-columns: 1fr; }
  .quick-entry-choice-button { min-height: 112px; }
  .health-commission-head { display: none; }
  .health-commission-row { grid-template-columns: 1fr; gap: 4px; padding: 12px 0; }
  .health-overview-row { align-items: flex-start; }
  .health-overview-row strong { max-width: 58%; }
}

/* ===== KONTAKTE (Wertia Mail — K1-K2) ===== */
.mailcontacts-layout { grid-template-columns: var(--mail-sidebar-w, 260px) 1fr; }
.mailcontacts-main { display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.mailcontacts-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #e6dccb;
}
.mailcontacts-search { flex: 1 1 360px; min-width: 220px; height: 36px; }
.mailcontacts-toolbar select,
.mailcontacts-filter {
  min-height: 36px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 8px;
  background: var(--wertia-panel-bg);
  font-size: 13px;
  flex: 0 1 180px;
  min-width: 0;
}
.mailcontacts-status-toggle { display: flex; gap: 4px; flex-wrap: wrap; }
.mailcontacts-table-wrap { flex: 1; overflow: auto; padding: 0 16px 16px; }
.mailcontacts-table { width: 100%; border-collapse: collapse; font-size: 13px; white-space: nowrap; }
.mailcontacts-table th {
  position: sticky;
  top: 0;
  background: var(--wertia-panel-bg);
  text-align: left;
  padding: 8px 10px;
  border-bottom: 2px solid var(--wertia-panel-border);
  color: #8a7d63;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.mailcontacts-table td { padding: 8px 10px; border-bottom: 1px solid var(--wertia-inner-border); }
.mailcontacts-table td a { color: var(--wertia-gold); text-decoration: none; }
.mailcontacts-table td a:hover { text-decoration: underline; }
.mailcontacts-td-actions { white-space: nowrap; }
.mailcontacts-empty { text-align: center; color: #9b8870; padding: 24px !important; white-space: normal; }

/* Toolbar restyle: neutral, uniform, single primary accent ("Neuer Kontakt") */
.mailcontacts-search,
.mailcontacts-toolbar select.mailcontacts-filter,
.mailcontacts-toolbar .mailcontacts-reset,
.mailcontacts-toolbar .mailcontacts-newbtn,
.mailcontacts-status-toggle {
  box-shadow: none;
}
.mailcontacts-search,
.mailcontacts-toolbar select.mailcontacts-filter,
.mailcontacts-toolbar .mailcontacts-reset {
  height: 38px;
  min-height: 38px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 8px;
  background: var(--wertia-panel-bg);
}
.mailcontacts-toolbar .mailcontacts-reset {
  color: #6c5732;
  font-weight: 600;
}
.mailcontacts-toolbar .mailcontacts-reset:hover {
  border-color: #cfc2a4;
  color: #4a3b22;
  background: var(--wertia-panel-bg);
}
.mailcontacts-toolbar .mailcontacts-newbtn {
  height: 38px;
  min-height: 38px;
  border: 1px solid var(--wertia-gold);
  border-radius: 8px;
  background: var(--wertia-gold);
  color: #fff;
  font-weight: 700;
}
.mailcontacts-toolbar .mailcontacts-newbtn:hover {
  background: #b8924f;
  border-color: #b8924f;
}
.mailcontacts-status-toggle {
  display: flex;
  align-items: center;
  height: 38px;
  padding: 3px;
  gap: 2px;
  border: 1px solid var(--wertia-inner-border);
  border-radius: 8px;
  background: var(--wertia-panel-bg);
}
.mailcontacts-status-toggle .mail-pill {
  height: 30px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #8a7d63;
  font-weight: 600;
}
.mailcontacts-status-toggle .mail-pill.active {
  border: none;
  background: #efe6d3;
  color: #3a2f22;
  font-weight: 700;
}
.mailcontacts-status-toggle .mail-pill:hover {
  border: none;
  background: #f3ece0;
  color: #4a3b22;
}

/* Tablet: search takes the first row, filters wrap below with uniform gap, no horizontal overflow */
@media (max-width: 760px) {
  .mailcontacts-search { flex: 1 1 100%; min-width: 0; }
  .mailcontacts-toolbar select.mailcontacts-filter { flex: 1 1 calc(50% - 6px); }
}

/* Mobile: filter bar stacks in a single column, all controls full-width and touch-friendly */
@media (max-width: 640px) {
  .mailcontacts-toolbar { display: flex; flex-direction: column; align-items: stretch; width: 100%; }
  .mailcontacts-search,
  .mailcontacts-reset,
  .mailcontacts-newbtn {
    width: 100%;
    flex: 0 0 auto;
    min-width: 0;
  }
  .mailcontacts-toolbar select.mailcontacts-filter {
    width: 100%;
    flex: 0 0 auto;
    min-width: 0;
    height: 44px;
    min-height: 44px;
  }
  .mailcontacts-search { height: 44px; }
  .mailcontacts-toolbar .mailcontacts-reset,
  .mailcontacts-toolbar .mailcontacts-newbtn { height: 44px; min-height: 44px; }
  .mailcontacts-status-toggle { width: 100%; height: 44px; }
  .mailcontacts-status-toggle .mail-pill { flex: 1 1 auto; height: 38px; min-height: 38px; }
}

/* Global WERTIA CRM button layer. Panel and card surfaces are intentionally excluded. */

body.crm-active :is(.btn-primary, .primary-btn, .gold-btn, .icon-btn-primary, .wm-btn-confirm:not(.wm-destructive), .mailcontacts-newbtn, .mail-new-btn, .chat-fab, .chat-send-btn) {
  color: #2d2923;
  background: var(--wertia-gold) !important;
  background-image: none !important;
  border-color: #aa8747;
  box-shadow: none;
}

body.crm-active :is(.btn-primary, .primary-btn, .gold-btn, .icon-btn-primary, .wm-btn-confirm:not(.wm-destructive), .mailcontacts-newbtn, .mail-new-btn, .chat-fab, .chat-send-btn):hover:not(:disabled) {
  color: #2d2923;
  background: #b99450 !important;
  border-color: #94723a;
  box-shadow: none;
}

body.crm-active :is(.btn-secondary, .btn-outline, .outline-btn, .wm-btn-cancel, .ges-doc-upload-btn, .ges-logo-upload-btn, .health-vvg-action, .mail-link-btn, .mail-load-more-btn, .mail-set-sync-btn, .mail-set-oauth-btn, .ai-plus-btn) {
  color: var(--wertia-accent-dark);
  background: transparent;
  background-image: none;
  border: 1px solid var(--wertia-accent);
  border-radius: var(--wertia-button-radius);
  box-shadow: none;
}

body.crm-active :is(.btn-secondary, .btn-outline, .outline-btn, .wm-btn-cancel, .ges-doc-upload-btn, .ges-logo-upload-btn, .health-vvg-action, .mail-link-btn, .mail-load-more-btn, .mail-set-sync-btn, .mail-set-oauth-btn, .ai-plus-btn):hover:not(:disabled) {
  color: var(--wertia-accent-dark);
  background: var(--wertia-accent-hover);
  border-color: var(--wertia-accent);
  box-shadow: none;
}

body.crm-active :is(.btn-icon, .icon-btn, .icon-btn-sq, .icon-only-btn, .summary-icon-btn, .application-eye, .mail-action-btn, .mail-sync-btn, .mail-attach-btn, .mail-set-btn-icon) {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  color: #4b4033;
  background: transparent;
  background-image: none;
  border: 1px solid var(--wertia-inner-border);
  border-radius: var(--wertia-button-radius);
  box-shadow: none;
}

body.crm-active :is(.btn-icon, .icon-btn, .icon-btn-sq, .icon-only-btn, .summary-icon-btn, .application-eye, .mail-action-btn, .mail-sync-btn, .mail-attach-btn, .mail-set-btn-icon):hover:not(:disabled) {
  color: #2d2923;
  background: var(--wertia-accent-hover);
  border-color: var(--wertia-accent);
  box-shadow: none;
}

body.crm-active :is(.btn-danger, .btn-icon-danger, .ges-delete-btn, .danger-action, .health-vvg-remove, .mail-set-btn.danger) {
  color: var(--wertia-danger);
  background: transparent;
  border-color: var(--wertia-danger);
  box-shadow: none;
}

body.crm-active :is(.btn-danger, .btn-icon-danger, .ges-delete-btn, .danger-action, .health-vvg-remove, .mail-set-btn.danger):hover:not(:disabled),
body.crm-active :is(.btn-danger, .btn-icon-danger, .ges-delete-btn, .danger-action, .health-vvg-remove, .mail-set-btn.danger):focus-visible {
  color: var(--wertia-danger);
  background: color-mix(in srgb, var(--wertia-danger) 8%, transparent);
  border-color: var(--wertia-danger);
  box-shadow: none;
}

body.crm-active .wm-btn-confirm.wm-destructive {
  color: #fff;
  background: var(--wertia-danger);
  background-image: none;
  border-color: var(--wertia-danger);
  box-shadow: none;
}

body.crm-active :is(.btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .btn-icon, .btn-danger, .primary-btn, .gold-btn, .outline-btn, .icon-btn):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--wertia-gold) 45%, transparent);
  outline-offset: 2px;
}

body.crm-active :is(.ges-stamm-logo, .ges-stamm-logo img, .health-company-card img) {
  background: transparent !important;
  background-image: none !important;
  border: 0;
  box-shadow: none;
  filter: none;
}

body.crm-active .company-detail-stammdaten {
  background: #f1e8d9;
  border: 1px solid var(--wertia-panel-border, #e3d3b8);
  color: var(--wertia-page-fg, #2f2922);
  box-shadow: none;
}

body.crm-active .company-detail-stammdaten :is(.ges-stamm-logo, .ges-stamm-logo img) {
  background: transparent;
  border: 0;
  box-shadow: none;
  filter: none;
}
.mail-attachment-preview-dialog {
  width: min(960px, calc(100vw - 32px));
  height: min(760px, calc(100vh - 32px));
  padding: 0;
  border: 1px solid var(--wertia-panel-border, #e3d3b8);
  border-radius: 12px;
  background: var(--wertia-cream, #faf7f1);
  overflow: hidden;
}

.mail-attachment-preview-dialog::backdrop { background: rgba(31, 24, 18, .58); }

.mail-calendar-invite-dialog {
  width: min(620px, calc(100vw - 32px));
  padding: 0;
  border: 1px solid var(--wertia-panel-border, #e3d3b8);
  border-radius: 14px;
  background: var(--wertia-cream, #faf7f1);
  color: var(--wertia-page-fg, #2f2922);
  box-shadow: 0 24px 70px rgba(31, 24, 18, .25);
}
.mail-calendar-invite-dialog::backdrop { background: rgba(31, 24, 18, .58); }
.mail-calendar-invite-card { padding: 22px; }
.mail-calendar-invite-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.mail-calendar-invite-head .eyebrow { margin: 0 0 5px; color: var(--wertia-gold); }
.mail-calendar-invite-head h2 { margin: 0; font-size: 20px; line-height: 1.25; }
.mail-calendar-invite-details { margin: 20px 0; display: grid; gap: 0; }
.mail-calendar-invite-details > div { display: grid; grid-template-columns: 145px minmax(0, 1fr); gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--wertia-inner-border, #eadfc9); }
.mail-calendar-invite-details dt { color: var(--wertia-muted, #8a7a63); font-weight: 750; }
.mail-calendar-invite-details dd { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.mail-calendar-invite-status { display: flex; align-items: center; gap: 7px; margin: 14px 0; padding: 10px 12px; border-radius: 8px; font-weight: 750; }
.mail-calendar-invite-status.success { border: 1px solid rgba(46, 139, 87, .35); background: rgba(46, 139, 87, .09); color: #26794d; }
.mail-calendar-invite-status.warning { border: 1px solid rgba(177, 74, 54, .32); background: rgba(177, 74, 54, .08); color: #a04434; }
.mail-calendar-invite-status svg { width: 16px; height: 16px; }
.mail-calendar-invite-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 4px; }

@media (max-width: 640px) {
  .mail-attach-item.mail-attach-calendar { grid-column: auto; align-items: flex-start; }
  .mail-attach-item.mail-attach-calendar .mail-attach-actions { flex-wrap: wrap; justify-content: flex-end; }
  .mail-calendar-add-btn span { display: none; }
  .mail-calendar-add-btn { width: 30px; padding: 5px; justify-content: center; }
  .mail-calendar-invite-card { padding: 16px; }
  .mail-calendar-invite-details > div { grid-template-columns: 1fr; gap: 3px; }
  .mail-calendar-invite-actions { flex-direction: column-reverse; }
  .mail-calendar-invite-actions button { width: 100%; }
}

.mail-attachment-preview-head {
  min-height: 52px;
  padding: 6px 10px 6px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--wertia-panel-border, #e3d3b8);
}

.mail-attachment-preview-title { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mail-attachment-preview-head strong,
.mail-attachment-preview-title small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mail-attachment-preview-title small { color: var(--wertia-muted, #8a7a63); font-size: 12px; }

.mail-attachment-preview-body { height: calc(100% - 104px); display: grid; place-items: center; }
.mail-attachment-preview-body iframe,
.mail-attachment-preview-body object { width: 100%; height: 100%; border: 0; background: #fff; }
.mail-attachment-preview-body img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.mail-calendar-source-preview { width: 100%; height: 100%; margin: 0; padding: 18px; overflow: auto; background: #fff; color: #2f2922; font: 12px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.mail-attachment-preview-unsupported { color: var(--wertia-muted, #8a7a63); font-size: 14px; padding: 24px; text-align: center; }

.mail-attachment-preview-foot {
  min-height: 52px;
  padding: 8px 16px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  border-top: 1px solid var(--wertia-panel-border, #e3d3b8);
}

@media (max-width: 640px) {
  .mail-attachment-preview-dialog { width: calc(100vw - 16px); height: calc(100vh - 16px); }
}
.courtage-table-wrap { overflow-x: auto; }
.courtage-table { width: 100%; min-width: 900px; table-layout: fixed; }
.courtage-table th,
.courtage-table td { padding: 10px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.courtage-table th { padding: 10px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.courtage-table th:nth-child(1) { width: 78px; }
.courtage-table th:nth-child(2) { width: 18%; }
.courtage-table th:nth-child(3) { width: 12%; }
.courtage-table th:nth-child(4) { width: 15%; }
.courtage-table th:nth-child(5) { width: 13%; }
.courtage-table th:nth-child(6),
.courtage-table th:nth-child(7),
.courtage-table th:nth-child(8) { width: 105px; }
.courtage-table .amount { text-align: right; font-variant-numeric: tabular-nums; }
.courtage-table th:nth-child(2),
.courtage-table td:nth-child(2),
.courtage-table th:nth-child(4),
.courtage-table td:nth-child(4),
.courtage-table th:nth-child(5),
.courtage-table td:nth-child(5),
.courtage-table th:nth-child(6),
.courtage-table td:nth-child(6) { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.courtage-table .antraege-status-cell { display: flex; align-items: center; gap: 6px; }
.courtage-expand-btn {
  width: 36px;
  min-width: 36px;
  min-height: 36px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--wertia-panel-border);
  background: transparent;
  color: var(--wertia-accent-dark);
}
.courtage-expand-btn svg { width: 16px; height: 16px; }
.courtage-breakdown-row td { padding: 14px 18px; background: var(--wertia-inner-bg); }
.courtage-breakdown-row:hover td { background: var(--wertia-inner-bg); }

@media (max-width: 768px) {
  .profile-form-grid { grid-template-columns: 1fr; }
  .profile-unified-card { padding: 14px; }
  .profile-signature-section canvas { height: 140px; }
  .courtage-table-wrap { margin-inline: -8px; padding-bottom: 8px; }
  .courtage-table { min-width: 900px; }
}

.pwa-install-dialog {
  width: min(560px, calc(100vw - 32px));
  padding: 0;
  border: 1px solid rgba(200, 154, 69, .6);
  border-radius: 22px;
  background: var(--panel, #fbf5e9);
  color: var(--text, #2f2a24);
  box-shadow: 0 28px 80px rgba(20, 12, 7, .3);
}

.pwa-install-dialog::backdrop {
  background: rgba(19, 13, 9, .66);
  backdrop-filter: blur(4px);
}

.pwa-install-card {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 20px;
  padding: 28px;
}

.pwa-install-icon {
  width: 82px;
  height: 82px;
  border-radius: 20px;
  object-fit: contain;
  background: #1b120c;
}

.pwa-install-copy h2 { margin: 3px 0 10px; }
.pwa-install-copy > p:last-of-type { margin: 0; color: var(--muted, #756b5d); line-height: 1.45; }
.pwa-ios-instructions { display: grid; gap: 5px; margin-top: 16px; padding: 13px 15px; border-radius: 12px; background: rgba(200, 154, 69, .13); }
.pwa-install-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 10px; margin-top: 4px; }

@media (max-width: 560px) {
  .pwa-install-card { grid-template-columns: 58px minmax(0, 1fr); gap: 14px; padding: 22px; }
  .pwa-install-icon { width: 58px; height: 58px; border-radius: 15px; }
  .pwa-install-actions { flex-direction: column-reverse; }
  .pwa-install-actions button { width: 100%; }
}

.application-wizard {
  background: linear-gradient(180deg, #fbf7ee 0%, #f5eddf 100%);
}
.application-wizard .core-application-modal-head {
  margin: -22px -22px 18px;
  padding: 20px 22px 18px;
  border-bottom: 1px solid rgba(126, 91, 31, .24);
  background: linear-gradient(110deg, #2f2418 0%, #4b3720 100%);
  color: #fff8eb;
}
.application-wizard .core-application-modal-head .eyebrow { color: #e0b85d; }
.application-wizard .core-application-modal-head .icon-btn { border-color: rgba(224,184,93,.55); color: #fff3d8; background: rgba(255,255,255,.06); }
.application-wizard-nav { padding: 10px; border: 1px solid rgba(126, 91, 31, .20); border-radius: 14px; background: rgba(255,255,255,.56); }
.application-wizard-nav button { background: #fffdf8; border-color: #d9c8aa; color: #8f8068; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.application-wizard-nav button.reached { background: #fff6df; color: #8b621e; }
.application-wizard-nav button.active { border-color: #3d2d1b; background: linear-gradient(145deg, #3a2a19, #594020); color: #ffe5a0; box-shadow: 0 8px 22px rgba(58,42,25,.22); transform: translateY(-1px); }
.application-wizard-step { padding: 4px 8px 18px; }
.health-insurance-type-choice { padding: 18px; border: 1px solid #d8c29a; border-radius: 15px; background: rgba(255,255,255,.60); }
.health-insurance-type-choice h3 { color: #3b2c1d; font-size: 15px; }
.health-insurance-type-button { min-height: 54px; border-color: #d5c09a; background: #fffdf8; color: #75654d; }
.health-insurance-type-button:hover { border-color: #b8862f; background: #fff3d4; color: #392a19; }
.health-insurance-type-button.active { border-color: #3a2a19; background: linear-gradient(145deg, #3a2a19, #62471f); color: #ffe4a0; box-shadow: 0 7px 18px rgba(58,42,25,.20); }
.application-ai-import { margin: 18px 0 22px; border: 1px solid #c59236; border-left: 6px solid #b67d1e; background: linear-gradient(115deg, #fff4d7 0%, #f3dfad 100%); box-shadow: 0 10px 26px rgba(115,78,21,.13); }
.application-ai-head h3 { color: #332315; font-size: 19px; }
.application-ai-head .eyebrow { color: #946414; font-weight: 900; }
.application-ai-actions .outline-btn { border-color: #8b621e; background: rgba(255,255,255,.65); color: #684812; }
.health-kvg-config, .health-contract-block { border: 1px solid #d5bd93; border-left: 5px solid #b78635; border-radius: 14px; background: #fffdf8; box-shadow: 0 8px 22px rgba(73,51,24,.08); }
.health-kvg-config { margin: 18px 0 10px; padding: 16px 18px; }
.health-contract-block { padding: 18px; }
.health-kvg-config h3, .health-contract-block h3 { color: #342619; font-size: 18px; }
.application-wizard .core-application-form-grid label { color: #5f503c; }
.application-wizard .core-application-form-grid input,
.application-wizard .core-application-form-grid select,
.application-wizard .core-application-form-grid textarea { border-color: #ccb890; background: #fffefa; box-shadow: inset 0 1px 2px rgba(73,51,24,.04); }
.health-premium-total { margin-top: 16px; padding: 15px 18px; border-radius: 12px; background: #3a2a19; color: #f1d28c; }
.health-premium-total strong { color: #fff8e8; }
.application-wizard .core-application-form-actions { margin: 0 -8px -18px; padding: 16px 8px 0; background: transparent; border-color: #d8c39e; }
@media (max-width: 768px) {
  .application-wizard .core-application-modal-head { margin: -16px -16px 14px; padding: 16px; }
  .application-wizard-step { padding-inline: 0; }
  .health-insurance-type-choice { padding: 14px; }
}

.provisionen-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.provisionen-filters label { display: grid; gap: 5px; color: #776953; font-size: 11px; }
.provisionen-filters :is(select, input) { width: 100%; min-height: 38px; padding: 6px 9px; border: 1px solid var(--wertia-panel-border); border-radius: 8px; background: var(--wertia-panel-bg); color: var(--wertia-text); }
.provisionen-table-wrap { max-width: 100%; overflow-x: auto; padding-bottom: 4px; }
.provisionen-table { min-width: 1120px; table-layout: fixed; }
.provisionen-table th,
.provisionen-table td { padding-inline: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.provisionen-table-without-adviser th:nth-child(1) { width: 145px; }
.provisionen-table-without-adviser th:nth-child(2) { width: 120px; }
.provisionen-table-without-adviser th:nth-child(3) { width: 145px; }
.provisionen-table-without-adviser th:nth-child(4),
.provisionen-table-without-adviser th:nth-child(5) { width: 112px; }
.provisionen-table-without-adviser th:nth-child(6) { width: 105px; }
.provisionen-table-without-adviser th:nth-child(n+7) { width: 112px; }
.provisionen-table-with-adviser { min-width: 1240px; }
.provisionen-table-with-adviser th:nth-child(1) { width: 125px; }
.provisionen-table-with-adviser th:nth-child(2) { width: 140px; }
.provisionen-table-with-adviser th:nth-child(3) { width: 115px; }
.provisionen-table-with-adviser th:nth-child(4) { width: 140px; }
.provisionen-table-with-adviser th:nth-child(5),
.provisionen-table-with-adviser th:nth-child(6) { width: 110px; }
.provisionen-table-with-adviser th:nth-child(7) { width: 105px; }
.provisionen-table-with-adviser th:nth-child(n+8) { width: 112px; }
.provisionen-table tfoot { position: sticky; bottom: 0; z-index: 2; }
.provisionen-table tfoot td { padding: 10px; border-top: 2px solid var(--wertia-panel-border); background: #f1e8d9; white-space: normal; }
.provisionen-totals { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px 18px; }
.provisionen-totals span { display: inline-flex; gap: 5px; white-space: nowrap; }
.provisionen-group td { padding: 9px 10px; background: #f5efe4; color: #5e4d37; font-weight: 700; }
.provisionen-status { display: inline-flex; align-items: center; min-height: 25px; padding: 2px 8px; border: 1px solid var(--wertia-panel-border); border-radius: 999px; background: #f5efe4; }
.provisionen-status-paid,
.provisionen-status-confirmed,
.provisionen-status-payable { border-color: #a9c9ad; background: #edf6ed; color: #356b3c; }
.provisionen-status-partial,
.provisionen-status-unconfirmed { border-color: #dfbd8d; background: #fbf0df; color: #99580f; }
.provisionen-status-storno { border-color: #deb1b1; background: #faecec; color: #a33b3b; }

@media (max-width: 700px) {
  .provisionen-filters { grid-template-columns: 1fr 1fr; }
  .provisionen-table { min-width: 1120px; }
  .provisionen-table-with-adviser { min-width: 1240px; }
  .provisionen-totals { justify-content: flex-start; }
}

.calendar-page {
  --cal-consultation-bg: #f7efd9; --cal-consultation-border: #d9c18c;
  --cal-followup-bg: #edf4f7; --cal-followup-border: #b9ced8;
  --cal-documents-bg: #f4eddf; --cal-documents-border: #d7c7a8;
  --cal-contract-bg: #eee8e2; --cal-contract-border: #c5b3a5;
  --cal-commission-bg: #edf3eb; --cal-commission-border: #b7c9b1;
  --cal-urgent-bg: #f8eaea; --cal-urgent-border: #d9acac;
  --cal-done-bg: #efede9; --cal-done-border: #c8c2ba;
  --cal-private-bg: #f1edf7; --cal-private-border: #c9bdd8;
  --cal-reminder-bg: #fbf5dc; --cal-reminder-border: #dfcf91;
}
.calendar-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr); gap: 14px; align-items: start; }
.calendar-main { min-width: 0; }
.calendar-side-panel { display: grid; gap: 14px; min-width: 0; }
.calendar-side-widget { padding: 16px; border: 1px solid var(--wertia-panel-border); border-radius: 12px; background: var(--wertia-panel-bg); color: var(--wertia-page-fg); }
.calendar-side-widget h3 { margin: 4px 0 16px; font-size: 18px; text-transform: capitalize; }
.calendar-side-stat { display: flex; align-items: baseline; gap: 8px; padding: 12px 0; border-top: 1px solid var(--wertia-inner-border); border-bottom: 1px solid var(--wertia-inner-border); }
.calendar-side-stat strong { font-size: 28px; color: var(--wertia-gold-soft); }
.calendar-side-stat span { color: var(--wertia-muted); font-size: 12px; }
.calendar-side-widget > .outline-btn { margin-top: 14px; width: 100%; }
.calendar-side-note textarea { width: 100%; min-height: 120px; resize: vertical; background: var(--wertia-inner-bg); color: var(--wertia-cream); border: 1px solid var(--wertia-inner-border); border-radius: 8px; padding: 10px; }
html[data-theme="dark-luxury"] .calendar-side-widget { background: var(--wertia-panel-bg); border-color: var(--wertia-panel-border); color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .calendar-side-widget h3 { color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .calendar-side-note textarea { background: var(--wertia-inner-bg); color: var(--wertia-cream); border-color: var(--wertia-inner-border); }
.calendar-toolbar { display: grid; grid-template-columns: minmax(180px,1fr) auto auto auto; gap: 12px; align-items: center; margin-bottom: 14px; }
.calendar-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.calendar-toolbar > div:first-child { flex: 1 1 220px; min-width: 0; }
.calendar-toolbar .calendar-nav,
.calendar-toolbar .calendar-view-tabs,
.calendar-toolbar > [data-cal-new] { flex: 0 0 auto; }
.calendar-toolbar > [data-cal-new] { margin-left: auto; }
.calendar-toolbar h2 { margin: 0 0 3px; }
.calendar-toolbar > div:first-child strong { color: #776953; text-transform: capitalize; }
.calendar-nav,.calendar-view-tabs { display: flex; align-items: center; gap: 6px; }
.calendar-view-tabs { padding: 3px; border: 1px solid var(--wertia-panel-border); border-radius: 10px; background: #f7f1e7; }
.calendar-view-tabs button { min-height: 36px; padding: 0 11px; border: 0; border-radius: 7px; background: transparent; color: #655640; cursor: pointer; }
.calendar-view-tabs button.active { background: #e8d9bc; color: #3f3426; }
.calendar-search-filters { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.calendar-search-filters > input { flex: 1; min-height: 42px; padding: 0 12px; border: 1px solid var(--wertia-panel-border); border-radius: 9px; background: var(--wertia-panel-bg); }
.calendar-search-filters details { position: relative; }
.calendar-search-filters summary { list-style: none; cursor: pointer; }
.calendar-filter-popover { position: absolute; right: 0; z-index: 12; width: min(620px, calc(100vw - 42px)); padding: 14px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; border: 1px solid var(--wertia-panel-border); border-radius: 12px; background: #faf7f1; box-shadow: 0 12px 30px rgba(67,53,36,.12); }
.calendar-filter-popover label { display: grid; gap: 4px; color: #776953; font-size: 11px; }
.calendar-filter-popover select { min-height: 38px; border: 1px solid var(--wertia-panel-border); border-radius: 8px; background: #f7f1e7; }
.calendar-filter-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.calendar-filter-badges button { padding: 5px 9px; border: 1px solid #d6c39f; border-radius: 999px; background: #f7f1e7; color: #655640; }
.calendar-grid { display: grid; border: 1px solid var(--wertia-panel-border); border-radius: 12px; overflow: hidden; background: #faf7f1; }
.calendar-grid-month { grid-template-columns: repeat(7,minmax(0,1fr)); }
.calendar-grid-week { grid-template-columns: repeat(7,minmax(130px,1fr)); overflow-x: auto; }
.calendar-grid-day { grid-template-columns: minmax(0,1fr); }
.calendar-day { min-height: 132px; padding: 7px; border-right: 1px solid var(--wertia-inner-border); border-bottom: 1px solid var(--wertia-inner-border); background: #faf7f1; }
.calendar-grid-week .calendar-day,.calendar-grid-day .calendar-day { min-height: 520px; }
.calendar-day.outside { background: #f5f1eb; color: #9a9185; }
.calendar-day.today { box-shadow: inset 0 0 0 1px #c7a75e; }
.calendar-day-label { width: 100%; padding: 1px 2px 6px; display: flex; justify-content: space-between; border: 0; background: transparent; color: #655640; cursor: pointer; }
.calendar-day-label span { font-size: 10px; text-transform: uppercase; }
.calendar-day-entries { display: grid; gap: 5px; }
.calendar-entry { position: relative; min-width: 0; padding: 6px 7px 8px; display: grid; gap: 1px; border: 1px solid; border-radius: 8px; color: #40382f; cursor: pointer; transition: filter 120ms ease,border-color 120ms ease; }
.calendar-entry:hover { filter: contrast(1.04); }
.calendar-entry:focus-visible { outline: 0; border-color: #b48b32; box-shadow: 0 0 0 1px #d5b971; }
.calendar-entry strong,.calendar-entry small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-entry-time { font-size: 9px; color: #6f6559; }
.calendar-entry-consultation { background: var(--cal-consultation-bg); border-color: var(--cal-consultation-border); }
.calendar-entry-followup { background: var(--cal-followup-bg); border-color: var(--cal-followup-border); }
.calendar-entry-documents { background: var(--cal-documents-bg); border-color: var(--cal-documents-border); }
.calendar-entry-contract { background: var(--cal-contract-bg); border-color: var(--cal-contract-border); }
.calendar-entry-commission { background: var(--cal-commission-bg); border-color: var(--cal-commission-border); }
.calendar-entry-urgent { background: var(--cal-urgent-bg); border-color: var(--cal-urgent-border); }
.calendar-entry-done { background: var(--cal-done-bg); border-color: var(--cal-done-border); }
.calendar-entry-private { background: var(--cal-private-bg); border-color: var(--cal-private-border); }
.calendar-entry-reminder { background: var(--cal-reminder-bg); border-color: var(--cal-reminder-border); }
.calendar-priority-low { box-shadow: inset 3px 0 #aaa298; }
.calendar-priority-medium { box-shadow: inset 3px 0 #c8aa6e; }
.calendar-priority-high { box-shadow: inset 3px 0 #c89579; }
.calendar-priority-urgent { box-shadow: inset 3px 0 #bd8388; }
.calendar-resize-handle { position: absolute; left: 20%; right: 20%; bottom: 1px; height: 4px; border-radius: 3px; background: rgba(76,63,48,.18); cursor: ns-resize; }
.calendar-list { display: grid; border: 1px solid var(--wertia-panel-border); border-radius: 12px; overflow: hidden; }
.calendar-list-row { display: grid; grid-template-columns: 145px 12px minmax(180px,1fr) minmax(150px,.8fr) 120px; gap: 10px; align-items: center; padding: 10px 12px; border-bottom: 1px solid var(--wertia-inner-border); cursor: pointer; }
.calendar-dot { width: 9px; height: 9px; border-radius: 50%; background: #c5b3a5; }
.calendar-dot-followup { background: #9fbeca; }.calendar-dot-commission { background: #9eb598; }.calendar-dot-urgent { background: #c99296; }.calendar-dot-done { background: #aaa298; }.calendar-dot-private { background: #b9a9c9; }.calendar-dot-reminder { background: #d8c374; }
.calendar-entry-form { width: min(820px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; }

.calendar-termin-form { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.calendar-form-header { flex: 0 0 auto; padding: 22px 26px 18px; border-bottom: 1px solid var(--wertia-panel-border); }
.calendar-form-header h2 { display: flex; align-items: center; gap: 9px; margin: 4px 0 0; }
.calendar-form-header h2 svg { width: 21px; height: 21px; color: var(--wertia-gold); }
.calendar-form-subtitle { margin: 6px 0 0; color: var(--wertia-muted); font-size: 13px; }
.calendar-form-section { margin: 0 26px; padding: 20px 0; border-bottom: 1px solid var(--wertia-panel-border); }
.calendar-form-section h3 { display: flex; align-items: center; gap: 9px; margin: 0 0 14px; color: var(--wertia-cream); font-size: 15px; }
.calendar-form-section h3 svg, .calendar-form-links summary svg { width: 18px; height: 18px; color: var(--wertia-gold); }
.calendar-form-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }
.calendar-form-section-grid .core-application-wide { grid-column: 1 / -1; }
.calendar-termin-form label { min-width: 0; }
.calendar-switch-field { position: relative; display: flex; align-items: center; gap: 10px; min-height: 40px; color: var(--wertia-cream); }
.calendar-switch-field input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.calendar-switch { width: 42px; height: 24px; margin-left: auto; border-radius: 999px; background: var(--wertia-inner-bg); border: 1px solid var(--wertia-inner-border); transition: background .18s ease, border-color .18s ease; }
.calendar-switch::after { content: ""; display: block; width: 18px; height: 18px; margin: 2px; border-radius: 50%; background: var(--wertia-muted); transition: transform .18s ease, background .18s ease; }
.calendar-switch-field input:checked + .calendar-switch { background: var(--wertia-gold-soft); border-color: var(--wertia-gold); }
.calendar-switch-field input:checked + .calendar-switch::after { transform: translateX(18px); background: var(--wertia-gold); }
.calendar-switch-field input:focus-visible + .calendar-switch { outline: 2px solid var(--wertia-gold); outline-offset: 2px; }
.calendar-form-links { margin: 18px 26px 0; border: 1px solid var(--wertia-panel-border); border-radius: 10px; background: var(--wertia-inner-bg); }
.calendar-form-links summary { display: flex; align-items: center; gap: 9px; padding: 13px 15px; cursor: pointer; list-style: none; color: var(--wertia-cream); font-weight: 700; }
.calendar-form-links summary::-webkit-details-marker { display: none; }
.calendar-links-chevron { margin-left: auto; color: var(--wertia-gold); transition: transform .18s ease; }
.calendar-form-links[open] .calendar-links-chevron { transform: rotate(180deg); }
.calendar-form-links > .calendar-form-section-grid { padding: 0 15px 15px; }
.calendar-form-footer { position: sticky; bottom: 0; z-index: 2; margin-top: 18px; padding: 15px 26px; background: var(--wertia-panel-bg); border-top: 1px solid var(--wertia-panel-border); }
.calendar-termin-form .core-application-error { margin: 14px 26px 0; }
.calendar-time-field[hidden] { display: none; }
@media (max-width: 640px) {
  .calendar-entry-form { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .calendar-form-header { padding: 18px 16px 15px; }
  .calendar-form-section { margin: 0 16px; padding: 16px 0; }
  .calendar-form-section-grid { grid-template-columns: 1fr; gap: 11px; }
  .calendar-form-links { margin: 14px 16px 0; }
  .calendar-form-footer { padding: 12px 16px; gap: 8px; }
  .calendar-form-footer button { flex: 1 1 auto; min-width: 0; }
  .calendar-termin-form .core-application-error { margin-inline: 16px; }
}
.client-calendar-overview { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.client-calendar-group { padding: 12px; border: 1px solid var(--wertia-inner-border); border-radius: 10px; background: #f7f1e7; }
.client-calendar-group h4 { margin: 0 0 8px; }
.client-calendar-group button { width: 100%; display: grid; grid-template-columns: 120px 1fr auto; gap: 8px; padding: 7px 0; border: 0; border-bottom: 1px solid var(--wertia-inner-border); background: transparent; color: #493f32; text-align: left; }
.client-calendar-group p { color: #8a7d63; }
html[data-theme="dark-luxury"] .client-calendar-group {
  background: var(--wertia-inner-bg);
  border-color: var(--wertia-inner-border);
  color: var(--wertia-cream);
}
html[data-theme="dark-luxury"] .client-calendar-group h4 { color: var(--wertia-gold-light); }
html[data-theme="dark-luxury"] .client-calendar-group button { color: var(--wertia-cream); border-color: var(--wertia-inner-border); }
html[data-theme="dark-luxury"] .client-calendar-group button strong { color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .client-calendar-group button small { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .client-calendar-group p { color: var(--wertia-muted); }

.client-history-timeline { display: grid; gap: 8px; }
.client-history-entry { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 68px; padding: 12px 14px; border: 1px solid var(--wertia-inner-border); border-radius: 12px; background: var(--wertia-inner-bg); }
.client-history-icon { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 10px; color: var(--wertia-gold); background: color-mix(in srgb,var(--wertia-gold) 10%,transparent); }
.client-history-icon svg { width: 20px; height: 20px; }
.client-history-entry > div { display: grid; gap: 2px; }
.client-history-entry small,.client-history-entry p,.client-history-entry time { margin: 0; color: var(--wertia-muted); }
.client-history-entry time { white-space: nowrap; text-align: right; }
.client-history-empty { padding: 42px 20px; color: var(--wertia-muted); text-align: center; }
@media(max-width:768px){.client-history-entry{grid-template-columns:38px minmax(0,1fr)}.client-history-entry time{grid-column:2;text-align:left}}

.client-detail-page,
.client-detail-page * {
  font-size: 10pt !important;
}

.client-detail-page input::placeholder,
.client-detail-page textarea::placeholder {
  font-size: 10pt !important;
}

.client-detail-page :is(
  small,
  .field-label,
  .kicker,
  .form-hint,
  .compliance-badge,
  .appt-status-pill,
  .customer-code,
  .detail-code,
  .barometer-title span,
  .protection-labels,
  .coverage-note,
  .client-doc-slot small,
  .client-compliance-shortcut span
),
.client-detail-page [data-tooltip]::before,
.client-detail-page [data-tooltip]::after {
  font-size: 8pt !important;
}
@media(max-width:900px){.calendar-toolbar{grid-template-columns:1fr auto}.calendar-view-tabs{grid-column:1/-1;overflow-x:auto}.calendar-toolbar>[data-cal-new]{justify-self:end}.calendar-grid-month{min-width:840px}.calendar-grid{overflow-x:auto}.client-calendar-overview{grid-template-columns:1fr}}
@media(max-width:900px){.calendar-layout{grid-template-columns:1fr}.calendar-side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
  .workspace:has(.calendar-page) { padding: 6px; }
  .main-panel:has(.calendar-page) { padding: 4px; border-radius: 10px; }
  .calendar-page,
  .calendar-layout,
  .calendar-main,
  .calendar-page .ges-panel { min-width: 0; width: 100%; max-width: 100%; }
  .calendar-page .ges-panel { padding: 8px; overflow: hidden; }
  .calendar-toolbar { display: flex; grid-template-columns: none; gap: 8px; }
  .calendar-toolbar > div:first-child { flex: 1 0 100%; }
  .calendar-toolbar .calendar-nav { flex: 1 1 100%; justify-content: center; }
  .calendar-toolbar .calendar-view-tabs { flex: 1 1 100%; width: 100%; justify-content: stretch; overflow: visible; }
  .calendar-view-tabs button { flex: 1 1 0; min-width: 0; padding-inline: 5px; }
  .calendar-toolbar > [data-cal-new] { width: 100%; margin-left: 0; justify-self: stretch; }
  .calendar-search-filters { align-items: stretch; gap: 6px; }
  .calendar-search-filters > input { min-width: 0; width: 0; }
  .calendar-search-filters details { flex: 0 0 auto; }
  .calendar-filter-popover { right: 0; width: min(310px, calc(100vw - 82px)); grid-template-columns: 1fr; }
  .calendar-grid-month { min-width: 0; width: 100%; overflow: hidden; }
  .calendar-grid-month .calendar-day { min-width: 0; min-height: 76px; padding: 3px 2px; }
  .calendar-grid-month .calendar-day-label { padding: 1px 1px 4px; gap: 2px; }
  .calendar-grid-month .calendar-day-label span { font-size: 8px; font-weight: 700; }
  .calendar-grid-month .calendar-day-label strong { font-size: 13px; font-weight: 700; }
  html[data-theme="dark-luxury"] .calendar-grid-month .calendar-day-label strong { color: var(--wertia-gold-light); }
  html[data-theme="dark-luxury"] .calendar-grid-month .calendar-day.outside .calendar-day-label strong { color: var(--wertia-muted); }
  .calendar-grid-month .calendar-day-entries { gap: 2px; }
  .calendar-grid-month .calendar-entry { min-height: 6px; padding: 0; border-radius: 3px; font-size: 0; }
  .calendar-grid-month .calendar-entry > * { display: none; }
  .calendar-list-row { grid-template-columns: 1fr 12px 1fr; }
  .calendar-list-row span:last-child { grid-column: 3; }
  .calendar-entry-form { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .calendar-page .calendar-side-panel { display: none; }
}
@media(max-width:640px){.calendar-side-panel{grid-template-columns:1fr}}
.client-calendar-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
@media(max-width:640px){.client-calendar-head-actions{width:100%;justify-content:stretch}.client-calendar-head-actions>*{flex:1 1 180px}}

/* WERTIA dark luxury preset: applied only after selecting it in Aspetto. */
html[data-theme="dark-luxury"] body.crm-active { background: var(--wertia-page-bg); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .workspace, html[data-theme="dark-luxury"] .content-grid, html[data-theme="dark-luxury"] .main-panel { background: var(--wertia-page-bg); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .sidebar { background: linear-gradient(180deg, #11100e 0%, #0b0b0a 100%); }
html[data-theme="dark-luxury"] .nav-item:hover { background: #24211c; }
html[data-theme="dark-luxury"] .nav-item.active { background: linear-gradient(90deg, rgba(200,154,69,.28), rgba(143,104,40,.16)); border-color: rgba(224,184,107,.42); color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .nav-icon, html[data-theme="dark-luxury"] .brand-logo, html[data-theme="dark-luxury"] .topbar-title h1, html[data-theme="dark-luxury"] .ges-panel-head h2 { color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .topbar, html[data-theme="dark-luxury"] .ges-panel, html[data-theme="dark-luxury"] .main-panel, html[data-theme="dark-luxury"] .customer-work-card, html[data-theme="dark-luxury"] .kpi-card, html[data-theme="dark-luxury"] .stat-card, html[data-theme="dark-luxury"] .dashboard-card, html[data-theme="dark-luxury"] .card, html[data-theme="dark-luxury"] .panel, html[data-theme="dark-luxury"] .surface { background: var(--wertia-panel-bg); border-color: var(--wertia-panel-border); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .topbar { box-shadow: 0 12px 28px rgba(0,0,0,.22); }
html[data-theme="dark-luxury"] .ges-panel:hover, html[data-theme="dark-luxury"] .kpi-card:hover, html[data-theme="dark-luxury"] .stat-card:hover, html[data-theme="dark-luxury"] .dashboard-card:hover { border-color: var(--wertia-card-hover-border); box-shadow: 0 12px 28px rgba(0,0,0,.2); transform: translateY(-2px); transition: transform 210ms ease, border-color 210ms ease, box-shadow 210ms ease; }
html[data-theme="dark-luxury"] .ges-stammdaten, html[data-theme="dark-luxury"] .company-detail-stammdaten { background: #1d1b18; border-color: rgba(224,184,107,.2); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] input, html[data-theme="dark-luxury"] select, html[data-theme="dark-luxury"] textarea { background: #1d1b18; border-color: var(--wertia-inner-border); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] input::placeholder, html[data-theme="dark-luxury"] textarea::placeholder { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] input:focus, html[data-theme="dark-luxury"] select:focus, html[data-theme="dark-luxury"] textarea:focus { border-color: #e0b86b; box-shadow: 0 0 0 2px rgba(200,154,69,.14); outline: none; }
html[data-theme="dark-luxury"] .primary-btn, html[data-theme="dark-luxury"] .gold-btn, html[data-theme="dark-luxury"] .btn-primary { background: var(--wertia-gold); border: 1px solid #8f6828; color: #17120b; box-shadow: none; background-image: none; }
html[data-theme="dark-luxury"] .primary-btn:hover, html[data-theme="dark-luxury"] .gold-btn:hover, html[data-theme="dark-luxury"] .btn-primary:hover { background: #b88737; border-color: var(--wertia-gold-soft); box-shadow: 0 6px 16px rgba(200,154,69,.16); transform: translateY(-2px); }
html[data-theme="dark-luxury"] .outline-btn, html[data-theme="dark-luxury"] .secondary-btn, html[data-theme="dark-luxury"] .btn-secondary, html[data-theme="dark-luxury"] .btn-outline, html[data-theme="dark-luxury"] .ghost-btn { background: transparent; border-color: var(--wertia-gold); color: var(--wertia-gold-soft); background-image: none; box-shadow: none; }
html[data-theme="dark-luxury"] .outline-btn:hover, html[data-theme="dark-luxury"] .secondary-btn:hover, html[data-theme="dark-luxury"] .btn-secondary:hover, html[data-theme="dark-luxury"] .btn-outline:hover, html[data-theme="dark-luxury"] .ghost-btn:hover { background: rgba(200,154,69,.08); border-color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .icon-btn, html[data-theme="dark-luxury"] .btn-icon { background: transparent; border-color: var(--wertia-border); color: var(--wertia-gold-soft); }

/* Settings readability: keep the dark-luxury surfaces, but use light text. */
html[data-theme="dark-luxury"] .settings-page .settings-nav-btn {
  color: var(--wertia-muted);
}
html[data-theme="dark-luxury"] .settings-page .settings-nav-btn:hover {
  background: rgba(224, 194, 122, 0.08);
  color: var(--wertia-cream);
}
html[data-theme="dark-luxury"] .settings-page .settings-nav-btn.active {
  color: var(--wertia-gold-soft);
}
html[data-theme="dark-luxury"] .settings-page .settings-content,
html[data-theme="dark-luxury"] .settings-page .settings-section,
html[data-theme="dark-luxury"] .settings-page .settings-role-card {
  color: var(--wertia-cream);
}
html[data-theme="dark-luxury"] .settings-page .module-header h1,
html[data-theme="dark-luxury"] .settings-page .module-header p,
html[data-theme="dark-luxury"] .settings-page .settings-role-head strong {
  color: var(--wertia-cream);
}
html[data-theme="dark-luxury"] .settings-page .module-header .module-kicker {
  color: var(--wertia-gold-soft);
}
html[data-theme="dark-luxury"] .settings-page .settings-section h3,
html[data-theme="dark-luxury"] .settings-page .settings-admin-reset h4,
html[data-theme="dark-luxury"] .settings-page .settings-row strong,
html[data-theme="dark-luxury"] .settings-page .settings-admin-reset-label,
html[data-theme="dark-luxury"] .settings-page .settings-admin-reset-success,
html[data-theme="dark-luxury"] .settings-page .settings-admin-reset-success > strong {
  color: var(--wertia-cream);
}
html[data-theme="dark-luxury"] .settings-page .settings-desc,
html[data-theme="dark-luxury"] .settings-page .settings-row span,
html[data-theme="dark-luxury"] .settings-page .settings-admin-reset-success > p {
  color: var(--wertia-muted);
}
html[data-theme="dark-luxury"] .settings-page .settings-row,
html[data-theme="dark-luxury"] .settings-page .settings-admin-reset,
html[data-theme="dark-luxury"] .settings-page .profile-password-action {
  border-color: var(--wertia-border);
}
html[data-theme="dark-luxury"] .settings-page input,
html[data-theme="dark-luxury"] .settings-page select,
html[data-theme="dark-luxury"] .settings-page textarea {
  color: var(--wertia-cream);
  background: #1d1b18;
  border-color: var(--wertia-inner-border);
}
html[data-theme="dark-luxury"] .settings-page input::placeholder,
html[data-theme="dark-luxury"] .settings-page textarea::placeholder {
  color: var(--wertia-muted);
}
html[data-theme="dark-luxury"] .settings-page .settings-admin-reset-error {
  color: #d48670;
}
html[data-theme="dark-luxury"] .icon-btn:hover, html[data-theme="dark-luxury"] .btn-icon:hover { background: rgba(200,154,69,.1); border-color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] table, html[data-theme="dark-luxury"] .appt-table, html[data-theme="dark-luxury"] .antraege-table, html[data-theme="dark-luxury"] .policen-table { background: var(--wertia-panel-bg); color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] th { background: #11100e; color: var(--wertia-gold-soft); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] td { border-color: rgba(224,184,107,.1); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] tbody tr:nth-child(even) { background: rgba(255,255,255,.018); }
html[data-theme="dark-luxury"] tbody tr:hover { background: rgba(200,154,69,.09); }
html[data-theme="dark-luxury"] .core-application-modal, html[data-theme="dark-luxury"] dialog, html[data-theme="dark-luxury"] .modal-content { background: #171715; color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); box-shadow: 0 24px 70px rgba(0,0,0,.5); }
html[data-theme="dark-luxury"] .calendar-entry-form { background: var(--wertia-panel-bg); color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .calendar-entry-form .core-application-form-grid label { color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .calendar-entry-form .core-application-form-grid input,
html[data-theme="dark-luxury"] .calendar-entry-form .core-application-form-grid select,
html[data-theme="dark-luxury"] .calendar-entry-form .core-application-form-grid textarea { background: var(--wertia-inner-bg); color: var(--wertia-cream); border-color: var(--wertia-inner-border); }
html[data-theme="dark-luxury"] .calendar-entry-form .core-application-form-grid select option { background: var(--wertia-inner-bg); color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .calendar-entry-form .core-application-modal-head h2 { color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .calendar-entry-form .core-application-error { color: #e0a08e; }
html[data-theme="dark-luxury"] .theme-dialog-modal, html[data-theme="dark-luxury"] .theme-card { background: #171715; color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] .theme-dialog-close { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .theme-dialog-close:hover { background: #24211c; }
html[data-theme="dark-luxury"] .calendar-page, html[data-theme="dark-luxury"] .calendar-page .ges-panel, html[data-theme="dark-luxury"] .calendar-grid { background: #171715; color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] .calendar-day { background: #1d1b18; border-color: rgba(224,184,107,.1); }
html[data-theme="dark-luxury"] .calendar-day.today { box-shadow: inset 0 0 0 1px var(--wertia-gold); }
html[data-theme="dark-luxury"] .calendar-day-label { color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .calendar-day.outside .calendar-day-label { color: var(--wertia-muted); }
 .calendar-time-grid { width: 100%; overflow: auto; background: var(--wertia-panel-bg); border: 1px solid var(--wertia-panel-border); border-radius: 12px; }
.calendar-time-header, .calendar-time-body { display: grid; grid-template-columns: 64px repeat(var(--calendar-days, 7), minmax(130px, 1fr)); min-width: 720px; }
.calendar-time-grid-day .calendar-time-header, .calendar-time-grid-day .calendar-time-body { --calendar-days: 1; }
.calendar-time-grid-week .calendar-time-header, .calendar-time-grid-week .calendar-time-body { --calendar-days: 7; }
.calendar-time-gutter { border-right: 1px solid var(--wertia-panel-border); background: var(--wertia-inner-bg); }
.calendar-time-day-label { min-height: 58px; border: 0; border-right: 1px solid var(--wertia-panel-border); border-bottom: 1px solid var(--wertia-panel-border); background: var(--wertia-inner-bg); color: var(--wertia-page-fg); display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; font: inherit; cursor: pointer; }
.calendar-time-day-label span { color: var(--wertia-muted); text-transform: uppercase; font-size: 11px; letter-spacing: .08em; }
.calendar-time-day-label strong { color: var(--wertia-cream); font-size: 18px; }
.calendar-time-day-label.today { color: var(--wertia-gold-light); box-shadow: inset 0 -2px 0 var(--wertia-gold); }
.calendar-time-axis { position: relative; height: calc(var(--calendar-hours) * 72px); background: var(--wertia-inner-bg); border-right: 1px solid var(--wertia-panel-border); }
.calendar-time-axis span { position: absolute; right: 9px; transform: translateY(-50%); color: var(--wertia-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.calendar-time-columns { display: grid; grid-template-columns: repeat(var(--calendar-days, 7), minmax(130px, 1fr)); min-width: 0; }
.calendar-time-column { position: relative; height: calc(var(--calendar-hours) * 72px); border-right: 1px solid var(--wertia-panel-border); background: var(--wertia-panel-bg); }
.calendar-time-column.today { background: color-mix(in srgb, var(--wertia-gold) 4%, var(--wertia-panel-bg)); }
.calendar-time-lines, .calendar-time-lines span { position: absolute; inset: 0; pointer-events: none; }
.calendar-time-lines span { display: block; height: 1px; background: var(--wertia-border); }
.calendar-time-column .calendar-entry { position: absolute; left: 7px; right: 7px; z-index: 1; min-height: 30px; overflow: hidden; }
html[data-theme="dark-luxury"] .calendar-view-tabs { background: var(--wertia-inner-bg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] .calendar-view-tabs button { color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .calendar-view-tabs button.active { background: rgba(200,154,69,.18); color: var(--wertia-gold-light); border-color: var(--wertia-gold); }
html[data-theme="dark-luxury"] .calendar-entry-selected, html[data-theme="dark-luxury"] .calendar-entry:focus-visible { border-color: var(--wertia-gold-soft); box-shadow: 0 0 0 1px var(--wertia-gold); }
html[data-theme="dark-luxury"] .mail-layout,
html[data-theme="dark-luxury"] .mail-sidebar,
html[data-theme="dark-luxury"] .mail-list-col,
html[data-theme="dark-luxury"] .mail-reader-col,
html[data-theme="dark-luxury"] .mail-reader,
html[data-theme="dark-luxury"] .mail-list { background: #171715; color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] .mail-folder,
html[data-theme="dark-luxury"] .mail-row,
html[data-theme="dark-luxury"] .mail-search-input,
html[data-theme="dark-luxury"] .mail-pill,
html[data-theme="dark-luxury"] .mail-sync-btn,
html[data-theme="dark-luxury"] .mail-action-btn,
html[data-theme="dark-luxury"] .mail-attach-btn { background: transparent; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mail-folder:hover,
html[data-theme="dark-luxury"] .mail-row:hover { background: #24211c; }
html[data-theme="dark-luxury"] .mail-folder.active,
html[data-theme="dark-luxury"] .mail-row.selected { background: rgba(200,154,69,.18); color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .mail-sidebar-account,
html[data-theme="dark-luxury"] .mail-reader-meta,
html[data-theme="dark-luxury"] .mail-reader-head { border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mail-account-email,
html[data-theme="dark-luxury"] .mail-row-from,
html[data-theme="dark-luxury"] .mail-row-subject,
html[data-theme="dark-luxury"] .mail-reader-subject,
html[data-theme="dark-luxury"] .mail-reader-from-info strong,
html[data-theme="dark-luxury"] .mail-reader-date,
html[data-theme="dark-luxury"] .mail-attach-info strong,
html[data-theme="dark-luxury"] .mail-audit-row span { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .mail-row-date,
html[data-theme="dark-luxury"] .mail-row-snippet,
html[data-theme="dark-luxury"] .mail-account-status,
html[data-theme="dark-luxury"] .mail-reader-email,
html[data-theme="dark-luxury"] .mail-reader-to,
html[data-theme="dark-luxury"] .mail-attach-info small,
html[data-theme="dark-luxury"] .mail-empty,
html[data-theme="dark-luxury"] .mail-folder-count { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .mail-reader-body,
html[data-theme="dark-luxury"] .mail-audit-trail,
html[data-theme="dark-luxury"] .mail-attach-item { background: #1d1b18; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mail-reader-body a { color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .mail-translation-menu,
html[data-theme="dark-luxury"] .mail-translation-toggle { background: #171715; border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mail-translation-menu button,
html[data-theme="dark-luxury"] .mail-translation-toggle button { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .mail-translation-menu button:hover,
html[data-theme="dark-luxury"] .mail-translation-menu button.active,
html[data-theme="dark-luxury"] .mail-translation-toggle button.active { background: rgba(200,154,69,.14); color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .client-detail-page,
html[data-theme="dark-luxury"] .detail-grid,
html[data-theme="dark-luxury"] .identity-card,
html[data-theme="dark-luxury"] .insurance-column,
html[data-theme="dark-luxury"] .detail-content { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .breadcrumb,
html[data-theme="dark-luxury"] .breadcrumb button,
html[data-theme="dark-luxury"] .creation-context,
html[data-theme="dark-luxury"] .barometer-title span,
html[data-theme="dark-luxury"] .protection-labels { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .id-one,
html[data-theme="dark-luxury"] .id-one.has-preview,
html[data-theme="dark-luxury"] .insurance-status-card,
html[data-theme="dark-luxury"] .customer-work-card,
html[data-theme="dark-luxury"] .identity-card .collapse-card { background: #171715; border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] .id-one h3,
html[data-theme="dark-luxury"] .id-one p,
html[data-theme="dark-luxury"] .id-one span,
html[data-theme="dark-luxury"] .id-one strong,
html[data-theme="dark-luxury"] .insurance-head h2,
html[data-theme="dark-luxury"] .customer-tab-panel h3,
html[data-theme="dark-luxury"] .customer-tab-panel h4,
html[data-theme="dark-luxury"] .customer-tab-panel strong { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .id-one span { color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .id-one em { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .completion,
html[data-theme="dark-luxury"] .barometer { background: #302c25; }
html[data-theme="dark-luxury"] .insurance-icon-inactive { color: #8d867a; background: #24211c; }
html[data-theme="dark-luxury"] .insurance-icon-application { color: #d49a68; background: rgba(201,155,88,.13); }
html[data-theme="dark-luxury"] .insurance-icon-policy { color: #91b592; background: rgba(126,165,127,.14); }
html[data-theme="dark-luxury"] .customer-tabs { background: #11100e; border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .customer-tab { color: var(--wertia-muted); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .customer-tab:hover,
html[data-theme="dark-luxury"] .customer-tab.active { background: rgba(200,154,69,.12); color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .client-doc-slot,
html[data-theme="dark-luxury"] .client-doc-slot.required,
html[data-theme="dark-luxury"] .client-doc-slot.complete { background: #1d1b18; border-color: var(--wertia-border); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .client-doc-slot > span { background: #171715; border-color: var(--wertia-border); color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .client-doc-slot small { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .personal-data-table .field-control input,
html[data-theme="dark-luxury"] .personal-data-table .field-control select,
html[data-theme="dark-luxury"] .contact-data-table .field-control input,
html[data-theme="dark-luxury"] .contact-data-table .field-control select { color: var(--wertia-page-fg); background: transparent; }
html[data-theme="dark-luxury"] .personal-data-table .field-control,
html[data-theme="dark-luxury"] .contact-data-table .field-control { border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] dialog#mailComposeDialog,
html[data-theme="dark-luxury"] #mailComposeDialog form.modal,
html[data-theme="dark-luxury"] #mailComposeDialog .mc-layout { background: #171715; color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] .mc-header-table,
html[data-theme="dark-luxury"] .mc-body-area,
html[data-theme="dark-luxury"] .mc-footer-preview-wrap,
html[data-theme="dark-luxury"] .mc-att-row { background: #171715; border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mc-hrow { border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mc-hlabel { background: #24211c; color: var(--wertia-gold-soft); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mc-hval,
html[data-theme="dark-luxury"] .mc-hrow input,
html[data-theme="dark-luxury"] .mc-meta-sel { color: var(--wertia-page-fg); background: transparent; }
html[data-theme="dark-luxury"] .mc-hrow input::placeholder { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .mc-toolbar,
html[data-theme="dark-luxury"] .mc-editor { background: #1d1b18; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mc-toolbar { border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mc-tb-btn,
html[data-theme="dark-luxury"] .mc-font-sel { background: #171715; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mc-tb-btn:hover,
html[data-theme="dark-luxury"] .mc-tb-btn.active { background: rgba(200,154,69,.16); color: var(--wertia-gold-soft); border-color: var(--wertia-gold); }
html[data-theme="dark-luxury"] .mc-tb-sep { background: var(--wertia-border); }
html[data-theme="dark-luxury"] .mc-editor:empty:before { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .mail-footer-preview { background: #1d1b18; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mail-comp-att-add,
html[data-theme="dark-luxury"] .mail-comp-att-chip { background: transparent; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .mail-footer-preview > div { background: #1d1b18 !important; color: var(--wertia-page-fg) !important; border-top-color: var(--wertia-gold) !important; }
html[data-theme="dark-luxury"] .mail-footer-preview > div p,
html[data-theme="dark-luxury"] .mail-footer-preview > div span { color: var(--wertia-page-fg) !important; }
html[data-theme="dark-luxury"] .mail-footer-preview > div a { color: var(--wertia-gold-soft) !important; }
html[data-theme="dark-luxury"] .mail-footer-preview > div td { border-color: var(--wertia-border) !important; }
html[data-theme="dark-luxury"] #mailComposeDialog .modal-actions { background: #171715; border-color: var(--wertia-border); }
html[data-theme-preset="cognac-leather"] body.crm-active,
html[data-theme-preset="cognac-leather"] .app-shell { background-color: #160b05; background-image: radial-gradient(circle at 18% 12%, rgba(232,157,60,.08) 0 1px, transparent 1.5px), radial-gradient(circle at 72% 68%, rgba(80,35,12,.18) 0 1px, transparent 1.5px); background-size: 7px 7px, 11px 11px; }
html[data-theme-preset="cognac-leather"] .sidebar,
html[data-theme-preset="cognac-leather"] .topbar,
html[data-theme-preset="cognac-leather"] .ges-panel,
html[data-theme-preset="cognac-leather"] .main-panel,
html[data-theme-preset="cognac-leather"] .customer-work-card,
html[data-theme-preset="cognac-leather"] .card,
html[data-theme-preset="cognac-leather"] .panel { background-image: radial-gradient(circle at 20% 20%, rgba(255,190,90,.035) 0 1px, transparent 1.4px), radial-gradient(circle at 80% 70%, rgba(45,15,4,.16) 0 1px, transparent 1.4px); background-size: 6px 6px, 9px 9px; }
html[data-theme-preset="cognac-leather"] .nav-item.active,
html[data-theme-preset="cognac-leather"] .primary-btn { box-shadow: inset 0 1px 0 rgba(255,215,130,.18), 0 5px 14px rgba(0,0,0,.24); }
html[data-theme-preset="cognac-leather"] .ges-panel:hover,
html[data-theme-preset="cognac-leather"] .kpi-card:hover,
html[data-theme-preset="cognac-leather"] .dashboard-card:hover { box-shadow: 0 12px 28px rgba(0,0,0,.32), inset 0 1px 0 rgba(240,182,90,.12); }
html[data-theme-preset="midnight-blue"] body.crm-active,
html[data-theme-preset="midnight-blue"] .app-shell { background-color: #061326; background-image: radial-gradient(circle at 22% 15%, rgba(92,138,190,.08) 0 1px, transparent 1.5px), radial-gradient(circle at 78% 72%, rgba(5,15,35,.2) 0 1px, transparent 1.5px); background-size: 8px 8px, 12px 12px; }
html[data-theme-preset="midnight-blue"] .sidebar,
html[data-theme-preset="midnight-blue"] .topbar,
html[data-theme-preset="midnight-blue"] .ges-panel,
html[data-theme-preset="midnight-blue"] .main-panel,
html[data-theme-preset="midnight-blue"] .customer-work-card,
html[data-theme-preset="midnight-blue"] .card,
html[data-theme-preset="midnight-blue"] .panel { background-image: linear-gradient(135deg, rgba(75,116,165,.035), transparent 42%); }
html[data-theme-preset="midnight-blue"] .nav-item.active,
html[data-theme-preset="midnight-blue"] .primary-btn { box-shadow: inset 0 1px 0 rgba(255,224,150,.2), 0 5px 14px rgba(0,6,18,.34); }
html[data-theme="dark-luxury"] .profile-trigger { background: var(--wertia-panel-bg); border-color: var(--wertia-border); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .profile-trigger:hover { background: var(--wertia-card-hover-bg); border-color: var(--wertia-gold); }
html[data-theme="dark-luxury"] .profile-greet small,
html[data-theme="dark-luxury"] .profile-switch-label,
html[data-theme="dark-luxury"] .profile-switch-btn small,
html[data-theme="dark-luxury"] .profile-menu-sound svg { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .profile-greet strong,
html[data-theme="dark-luxury"] .profile-menu button,
html[data-theme="dark-luxury"] .profile-switch-btn,
html[data-theme="dark-luxury"] .profile-menu-sound select { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .profile-menu { background: var(--wertia-panel-bg); border-color: var(--wertia-border); box-shadow: 0 18px 40px rgba(0,0,0,.42); }
html[data-theme="dark-luxury"] .profile-menu button:hover,
html[data-theme="dark-luxury"] .profile-switch-btn:hover,
html[data-theme="dark-luxury"] .profile-switch-btn.active { background: rgba(200,154,69,.14); color: var(--wertia-cream); }
html[data-theme="dark-luxury"] .profile-switch-name,
html[data-theme="dark-luxury"] .profile-switch-btn:not(.active) small,
html[data-theme="dark-luxury"] .profile-menu > button:not(.profile-logout),
html[data-theme="dark-luxury"] .profile-menu > button:not(.profile-logout) svg,
html[data-theme-preset="midnight-blue"] .profile-switch-name,
html[data-theme-preset="midnight-blue"] .profile-switch-btn:not(.active) small,
html[data-theme-preset="midnight-blue"] .profile-menu > button:not(.profile-logout),
html[data-theme-preset="midnight-blue"] .profile-menu > button:not(.profile-logout) svg { color: var(--wertia-page-fg) !important; }
html[data-theme="dark-luxury"] .profile-switch-btn:not(.active):hover,
html[data-theme-preset="midnight-blue"] .profile-switch-btn:not(.active):hover,
html[data-theme="dark-luxury"] .profile-menu > button:not(.profile-logout):hover,
html[data-theme-preset="midnight-blue"] .profile-menu > button:not(.profile-logout):hover { background: rgba(216,169,79,.14); color: var(--wertia-cream) !important; }
html[data-theme="dark-luxury"] .profile-menu-sound select { background: #171715; border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] #mail2FADialog,
html[data-theme="dark-luxury"] #mail2FADialog form.modal,
html[data-theme="dark-luxury"] #mail2FABody { background: var(--wertia-panel-bg); color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] #mail2FADialog h2,
html[data-theme="dark-luxury"] #mail2FADialog p,
html[data-theme="dark-luxury"] #mail2FADialog label { color: var(--wertia-page-fg) !important; }
html[data-theme="dark-luxury"] #mail2FADialog #mail2FAInput { background: #171715 !important; color: var(--wertia-page-fg) !important; border-color: var(--wertia-gold) !important; }
html[data-theme="dark-luxury"] #mail2FADialog #mail2FACancelBtn { background: transparent !important; color: var(--wertia-cream) !important; border-color: var(--wertia-border) !important; }
html[data-theme="dark-luxury"] #mail2FADialog #mail2FAVerifyBtn { background: var(--wertia-gold) !important; color: #17120b !important; }
html[data-theme="dark-luxury"] #mail2FADialog a { color: var(--wertia-gold-soft) !important; }
html[data-theme="dark-luxury"] .dashboard-filter-badges button,
html[data-theme="dark-luxury"] .dashboard-filter-badges span,
html[data-theme="dark-luxury"] .calendar-filter-badges button { background: #102847; color: var(--wertia-cream); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .dashboard-kpi-head,
html[data-theme="dark-luxury"] .dashboard-mini-kpi span,
html[data-theme="dark-luxury"] .dashboard-kpi-delta small,
html[data-theme="dark-luxury"] .dashboard-mini-kpi small em,
html[data-theme="dark-luxury"] .metric-card span,
html[data-theme="dark-luxury"] .metric-inline .metric-text span { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .dashboard-kpi-icon,
html[data-theme="dark-luxury"] .metric-ico { background: rgba(216,169,79,.16); color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .courtage-filters select,
html[data-theme="dark-luxury"] .courtage-filters input,
html[data-theme="dark-luxury"] .provvigioni-filters select,
html[data-theme="dark-luxury"] .provvigioni-filters input { background: #102847; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .courtage-kpi-card,
html[data-theme="dark-luxury"] .courtage-summary-card,
html[data-theme="dark-luxury"] .prov-kpi-card { background: #0a1d36; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme-preset="cognac-leather"] .dashboard-filter-badges button,
html[data-theme-preset="cognac-leather"] .dashboard-filter-badges span,
html[data-theme-preset="cognac-leather"] .calendar-filter-badges button,
html[data-theme-preset="cognac-leather"] .courtage-filters select,
html[data-theme-preset="cognac-leather"] .courtage-filters input,
html[data-theme-preset="cognac-leather"] .provvigioni-filters select,
html[data-theme-preset="cognac-leather"] .provvigioni-filters input { background: #321807; color: var(--wertia-cream); border-color: rgba(240,182,90,.38); }
html[data-theme-preset="cognac-leather"] .courtage-kpi-card,
html[data-theme-preset="cognac-leather"] .courtage-summary-card,
html[data-theme-preset="cognac-leather"] .prov-kpi-card { background: #2a1408; color: var(--wertia-page-fg); border-color: rgba(213,141,50,.28); }
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .dashboard-filter-badges button,
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .dashboard-filter-badges span,
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .calendar-filter-badges button,
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .courtage-filters select,
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .courtage-filters input,
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .provvigioni-filters select,
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .provvigioni-filters input { background: #171715; color: var(--wertia-page-fg); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .courtage-kpi-card,
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .courtage-summary-card,
html[data-theme="dark-luxury"]:not([data-theme-preset="midnight-blue"]) .prov-kpi-card { background: #171715; color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] .dashboard-filter-badges button,
html[data-theme="dark-luxury"] .dashboard-filter-badges span,
html[data-theme="dark-luxury"] .calendar-filter-badges button { border-radius: 10px; padding: 10px 14px; min-height: 44px; display: inline-flex; align-items: center; }
html[data-theme="dark-luxury"] .core-application-detail dt,
html[data-theme="dark-luxury"] .application-coverages-table th,
html[data-theme="dark-luxury"] .application-commission-table th,
html[data-theme="dark-luxury"] .health-overview-row span,
html[data-theme-preset="midnight-blue"] .core-application-detail dt,
html[data-theme-preset="midnight-blue"] .application-coverages-table th,
html[data-theme-preset="midnight-blue"] .application-commission-table th,
html[data-theme-preset="midnight-blue"] .health-overview-row span { color: var(--wertia-muted) !important; }
html[data-theme="dark-luxury"] .core-application-detail dd,
html[data-theme="dark-luxury"] .application-coverages-table td,
html[data-theme="dark-luxury"] .application-commission-table td,
html[data-theme-preset="midnight-blue"] .core-application-detail dd,
html[data-theme-preset="midnight-blue"] .application-coverages-table td,
html[data-theme-preset="midnight-blue"] .application-commission-table td { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .mail-set-account-card,
html[data-theme-preset="midnight-blue"] .mail-set-account-card { background: var(--wertia-panel-bg); border-color: var(--wertia-panel-border); color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .mail-set-acc-head,
html[data-theme="dark-luxury"] .mail-set-acc-footer,
html[data-theme="dark-luxury"] .mail-set-detail-row,
html[data-theme-preset="midnight-blue"] .mail-set-acc-head,
html[data-theme-preset="midnight-blue"] .mail-set-acc-footer,
html[data-theme-preset="midnight-blue"] .mail-set-detail-row { border-color: var(--wertia-inner-border); }
html[data-theme="dark-luxury"] .mail-set-acc-info strong,
html[data-theme="dark-luxury"] .mail-set-detail-row strong,
html[data-theme-preset="midnight-blue"] .mail-set-acc-info strong,
html[data-theme-preset="midnight-blue"] .mail-set-detail-row strong { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .mail-set-acc-provider,
html[data-theme="dark-luxury"] .mail-set-detail-row span,
html[data-theme="dark-luxury"] .mail-set-assigned-user,
html[data-theme-preset="midnight-blue"] .mail-set-acc-provider,
html[data-theme-preset="midnight-blue"] .mail-set-detail-row span,
html[data-theme-preset="midnight-blue"] .mail-set-assigned-user { color: var(--wertia-muted); }
html[data-theme="dark-luxury"] .mail-set-account-card.default,
html[data-theme-preset="midnight-blue"] .mail-set-account-card.default { border-color: var(--wertia-gold); }
html[data-theme="dark-luxury"] .mail-set-btn,
html[data-theme="dark-luxury"] .mail-set-sync-btn,
html[data-theme-preset="midnight-blue"] .mail-set-btn,
html[data-theme-preset="midnight-blue"] .mail-set-sync-btn { background: transparent; border-color: var(--wertia-border); color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .mail-set-btn:hover,
html[data-theme="dark-luxury"] .mail-set-sync-btn:hover,
html[data-theme-preset="midnight-blue"] .mail-set-btn:hover,
html[data-theme-preset="midnight-blue"] .mail-set-sync-btn:hover { background: rgba(216,169,79,.1); border-color: var(--wertia-gold); }
html[data-theme="dark-luxury"] .provisionen-table tfoot,
html[data-theme="dark-luxury"] .provisionen-table tfoot tr,
html[data-theme="dark-luxury"] .provisionen-table tfoot td { background: var(--wertia-panel-bg); color: var(--wertia-page-fg); border-color: var(--wertia-panel-border); }
html[data-theme="dark-luxury"] .provisionen-totals,
html[data-theme="dark-luxury"] .provisionen-totals strong { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .collapse-card summary { color: var(--wertia-page-fg); }
html[data-theme="dark-luxury"] .summary-icon-btn { border-left-color: var(--wertia-inner-border); color: var(--wertia-gold-soft); }
html[data-theme="dark-luxury"] .personal-data-table .field-suffix,
html[data-theme="dark-luxury"] .contact-data-table .field-suffix { color: var(--wertia-gold-soft); border-left-color: var(--wertia-inner-border); }
html[data-theme="dark-luxury"] .client-action-bar .icon-only-btn { background: #171715; color: var(--wertia-gold-soft); border-color: var(--wertia-border); }
html[data-theme="dark-luxury"] .client-action-bar .icon-only-btn.danger-action { color: var(--wertia-danger); border-color: var(--wertia-danger); }
@media (prefers-reduced-motion: reduce) { html[data-theme="dark-luxury"] *, html[data-theme="dark-luxury"] *::before, html[data-theme="dark-luxury"] *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }
/* Antrag wizard: optional, manually confirmed IA prefill */
.application-ai-import {
  margin-top: 22px;
  padding: 20px;
  border: 1px solid color-mix(in srgb, var(--wertia-gold) 46%, transparent);
  border-radius: 18px;
  background: color-mix(in srgb, var(--wertia-cream) 88%, white);
  display: grid;
  gap: 16px;
}
.application-ai-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.application-ai-head h3, .application-ai-head p { margin: 0; }
.application-ai-head > div:first-child { display: grid; gap: 5px; }
.application-ai-head > div:first-child > span, .application-ai-file, .application-ai-review-title span, .application-ai-qr span { color: var(--wertia-muted, #766b5d); }
.application-ai-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.application-ai-file { margin: 0; font-weight: 700; }
.application-ai-qr { display: flex; align-items: center; gap: 18px; padding: 16px; border-radius: 14px; background: #fff; }
.application-ai-qr img { width: 150px; height: 150px; object-fit: contain; }
.application-ai-qr > div { display: grid; gap: 8px; }
.application-ai-warning { display: grid; gap: 5px; padding: 14px; border: 1px solid #d7685d; border-radius: 12px; background: #fff2ef; color: #8e2e28; }
.application-ai-review { display: grid; gap: 8px; }
.application-ai-review-title { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.application-ai-review-row { display: grid; grid-template-columns: minmax(160px, .8fr) 1.2fr; gap: 14px; padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,.62); }
.application-ai-review-row.missing strong { color: #a3564f; font-style: italic; }
.application-ai-review-row.recognized { border-left: 3px solid var(--wertia-gold); }
.application-ai-review-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 8px; }
.application-ai-filled { outline: 2px solid color-mix(in srgb, var(--wertia-gold) 72%, #fff); outline-offset: 2px; background: #fff9df !important; }
.application-ai-filled-label::after { content: "Von IA erkannt"; display: inline-flex; width: max-content; margin-top: 5px; padding: 2px 7px; border-radius: 999px; background: #e8c96e; color: #38270c; font-size: 11px; font-weight: 800; }
@media (max-width: 768px) {
  .application-ai-head, .application-ai-qr, .application-ai-review-title { align-items: stretch; flex-direction: column; }
  .application-ai-actions, .application-ai-review-actions { display: grid; grid-template-columns: 1fr; }
  .application-ai-qr img { width: min(210px, 100%); height: auto; align-self: center; }
  .application-ai-review-row { grid-template-columns: 1fr; gap: 3px; }
}

.courtage-table-wrap { overflow-x: auto; }
.courtage-table { width: 100%; min-width: 900px; table-layout: fixed; }
.courtage-table th,
.courtage-table td { padding: 10px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.courtage-table th { padding: 10px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.courtage-table th:nth-child(1) { width: 78px; }
.courtage-table th:nth-child(2) { width: 18%; }
.courtage-table th:nth-child(3) { width: 12%; }
.courtage-table th:nth-child(4) { width: 15%; }
.courtage-table th:nth-child(5) { width: 13%; }
.courtage-table th:nth-child(6),
.courtage-table th:nth-child(7),
.courtage-table th:nth-child(8) { width: 105px; }
.courtage-table .amount { text-align: right; font-variant-numeric: tabular-nums; }
.courtage-table th:nth-child(2),
.courtage-table td:nth-child(2),
.courtage-table th:nth-child(4),
.courtage-table td:nth-child(4),
.courtage-table th:nth-child(5),
.courtage-table td:nth-child(5),
.courtage-table th:nth-child(6),
.courtage-table td:nth-child(6) { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.courtage-table .antraege-status-cell { display: flex; align-items: center; gap: 6px; }
.courtage-expand-btn {
  width: 36px;
  min-width: 36px;
  min-height: 36px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--wertia-panel-border);
  background: transparent;
  color: var(--wertia-accent-dark);
}
.courtage-expand-btn svg { width: 16px; height: 16px; }
.courtage-breakdown-row td { padding: 14px 18px; background: var(--wertia-inner-bg); }
.courtage-breakdown-row:hover td { background: var(--wertia-inner-bg); }

@media (max-width: 768px) {
  .courtage-table-wrap { margin-inline: -8px; padding-bottom: 8px; }
  .courtage-table { min-width: 900px; }
}

.provisionen-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.provisionen-filters label { display: grid; gap: 5px; color: var(--wertia-muted); font-size: 11px; }
.provisionen-filters :is(select, input) { width: 100%; min-height: 38px; padding: 6px 9px; border: 1px solid var(--wertia-panel-border); border-radius: 8px; background: var(--wertia-panel-bg); color: var(--wertia-text); }
.provisionen-table-wrap { max-width: 100%; overflow-x: auto; padding-bottom: 4px; }
.provisionen-table { min-width: 1120px; table-layout: fixed; }
.provisionen-table th,
.provisionen-table td { padding-inline: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.provisionen-table-without-adviser th:nth-child(1) { width: 145px; }
.provisionen-table-without-adviser th:nth-child(2) { width: 120px; }
.provisionen-table-without-adviser th:nth-child(3) { width: 145px; }
.provisionen-table-without-adviser th:nth-child(4),
.provisionen-table-without-adviser th:nth-child(5) { width: 112px; }
.provisionen-table-without-adviser th:nth-child(6) { width: 105px; }
.provisionen-table-without-adviser th:nth-child(n+7) { width: 112px; }
.provisionen-table-with-adviser { min-width: 1240px; }
.provisionen-table-with-adviser th:nth-child(1) { width: 125px; }
.provisionen-table-with-adviser th:nth-child(2) { width: 140px; }
.provisionen-table-with-adviser th:nth-child(3) { width: 115px; }
.provisionen-table-with-adviser th:nth-child(4) { width: 140px; }
.provisionen-table-with-adviser th:nth-child(5),
.provisionen-table-with-adviser th:nth-child(6) { width: 110px; }
.provisionen-table-with-adviser th:nth-child(7) { width: 105px; }
.provisionen-table-with-adviser th:nth-child(n+8) { width: 112px; }
.provisionen-table tfoot { position: sticky; bottom: 0; z-index: 2; }
.provisionen-table tfoot td { padding: 10px; border-top: 2px solid var(--wertia-panel-border); background: var(--wertia-inner-bg); white-space: normal; }
.provisionen-totals { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px 18px; }
.provisionen-totals span { display: inline-flex; gap: 5px; white-space: nowrap; }
.provisionen-group td { padding: 9px 10px; background: var(--wertia-inner-bg); color: var(--wertia-page-fg); font-weight: 700; }
.provisionen-status { display: inline-flex; align-items: center; min-height: 25px; padding: 2px 8px; border: 1px solid var(--wertia-panel-border); border-radius: 999px; background: var(--wertia-inner-bg); }
.provisionen-status-paid,
.provisionen-status-confirmed,
.provisionen-status-payable { border-color: #a9c9ad; background: #edf6ed; color: #356b3c; }
.provisionen-status-partial,
.provisionen-status-unconfirmed { border-color: #dfbd8d; background: #fbf0df; color: #99580f; }
.provisionen-status-storno { border-color: #deb1b1; background: #faecec; color: #a33b3b; }

@media (max-width: 700px) {
  .provisionen-filters { grid-template-columns: 1fr 1fr; }
  .provisionen-table { min-width: 1120px; }
  .provisionen-table-with-adviser { min-width: 1240px; }
  .provisionen-totals { justify-content: flex-start; }
}

/* Mandat workflow */
.mandate-toolbar,
.mandate-document-actions,
.mandate-request-link {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.mandate-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 800;
}

.mandate-document-actions {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 44px;
  grid-template-columns: none;
  align-items: center;
  justify-content: end;
  justify-self: end;
  width: max-content;
  max-width: none;
  gap: 6px;
}

.mandate-document-actions .application-eye {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
}

.mandate-status.green {
  color: #17663d;
  background: #dff4e7;
  border: 1px solid #89cfa3;
}

.mandate-status.yellow {
  color: #8a6514;
  background: #fff3cf;
  border: 1px solid #e3c76d;
}

.client-doc-slot.mandate-completed {
  border-color: #89cfa3;
  box-shadow: inset 4px 0 #3b9b62;
}

.mandate-request-dialog .core-application-modal {
  width: min(620px, 92vw);
}

.mandate-request-dialog [data-mandate-confirm]:disabled {
  cursor: wait;
  opacity: 0.72;
}

.gdz-place-field {
  display: grid;
  gap: 8px;
  margin: 22px 0;
  font-weight: 700;
  color: var(--wertia-text, #29251f);
}

.gdz-place-field input {
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid rgba(159, 120, 56, 0.45);
  border-radius: 10px;
  background: #fffaf1;
  font: inherit;
}

.mandate-request-dialog [data-mandate-confirm].is-loading svg {
  animation: mandate-request-spin 0.9s linear infinite;
}

@keyframes mandate-request-spin {
  to { transform: rotate(360deg); }
}

.mandate-request-result {
  display: grid;
  justify-items: center;
  gap: 12px;
  margin: 18px 0;
  padding: 20px;
  border: 1px solid #89cfa3;
  border-radius: 16px;
  background: rgba(72, 150, 95, 0.08);
  text-align: center;
}

.mandate-request-check {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  color: white;
  background: #278552;
  font-size: 30px;
  font-weight: 900;
}

.mandate-request-result > img {
  width: min(260px, 70vw);
  height: auto;
  padding: 8px;
  border-radius: 12px;
  background: white;
}

.mandate-request-link {
  width: 100%;
}

.mandate-request-link input {
  flex: 1 1 320px;
  min-width: 0;
}

.mandate-request-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  width: 100%;
}

.mandate-distributable {
  cursor: pointer;
}

.client-doc-slot.mandate-revoked {
  border-color: #c96060;
  background: rgba(188, 62, 62, 0.08);
}

.mandate-status.red {
  color: #a93636;
  background: #f8dddd;
  border-color: #df8e8e;
}

.mandate-distributable:hover,
.mandate-distributable:focus-visible {
  border-color: #48a86d;
  box-shadow: 0 0 0 3px rgba(39, 133, 82, 0.12);
  outline: none;
}

.mandate-distribution-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 20px;
}

.mandate-distribution-option {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 104px;
  padding: 18px;
  border: 1px solid var(--line, #dfd1b8);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.3);
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.mandate-distribution-option:hover:not(:disabled) {
  border-color: var(--wertia-gold, #c8a45d);
  background: rgba(200, 164, 93, 0.12);
}

.mandate-distribution-option:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.mandate-distribution-option > span {
  display: grid;
  place-items: center;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--wertia-gold, #c8a45d);
  color: #21170f;
}

.mandate-distribution-option strong,
.mandate-distribution-option small {
  display: block;
}

.mandate-distribution-option small {
  margin-top: 5px;
  color: var(--muted, #756b5d);
}

.mandate-policy-editor {
  display: grid;
  gap: 12px;
  margin: 20px 0 8px;
  padding: 16px;
  border: 1px solid var(--line, #dfd1b8);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.28);
}

.mandate-policy-editor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.mandate-policy-editor-head h3,
.mandate-policy-editor-head p {
  margin: 0;
}

.mandate-policy-editor-head p,
.mandate-policy-editor > small {
  color: var(--muted, #756b5d);
}

.mandate-policy-rows {
  display: grid;
  gap: 9px;
}

.mandate-policy-row {
  display: grid;
  grid-template-columns: 1.15fr 1.15fr 1.15fr 0.9fr auto;
  align-items: end;
  gap: 9px;
}

.mandate-policy-row label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.mandate-policy-row label > span {
  color: var(--muted, #756b5d);
  font-size: 12px;
  font-weight: 700;
}

.mandate-policy-row input {
  width: 100%;
  min-width: 0;
}

@media (max-width: 768px) {
  .mandate-toolbar,
  .mandate-request-link,
  .mandate-request-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .mandate-toolbar > *,
  .mandate-request-link > *,
  .mandate-request-actions > * {
    width: 100%;
  }

  .mandate-policy-editor-head {
    align-items: stretch;
    flex-direction: column;
  }

  .mandate-policy-row {
    grid-template-columns: 1fr;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line, #dfd1b8);
  }

  .mandate-policy-row .icon-only-btn {
    justify-self: end;
  }

  .mandate-distribution-options {
    grid-template-columns: 1fr;
  }
}

/* Scala tipografica globale CRM: gerarchia tramite peso, colore e spaziatura. */
.app-shell,
.app-shell * {
  font-size: 10pt !important;
}

.app-shell :is(
  small,
  th,
  label,
  .field-label,
  .kicker,
  .form-hint,
  .helper-text,
  .hint,
  .eyebrow,
  .nav-section,
  .status-pill,
  .appt-status-pill,
  .compliance-badge,
  .customer-code,
  .detail-code,
  .coverage-note,
  .protection-labels,
  .client-doc-slot small,
  .client-compliance-shortcut span
),
.app-shell input::placeholder,
.app-shell textarea::placeholder,
.app-shell [data-tooltip]::before,
.app-shell [data-tooltip]::after {
  font-size: 8pt !important;
}
.bp-request-dialog .core-application-modal {
  width: min(920px, 94vw);
  max-height: 88vh;
  overflow: auto;
}

.bp-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0;
}

.bp-form-grid label,
.bp-remarks {
  display: grid;
  gap: 7px;
  color: #6f6658;
  font-weight: 700;
}

.bp-form-grid input,
.bp-fieldset input[type="text"],
.bp-fieldset textarea,
.bp-remarks textarea {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid rgba(159, 120, 56, .38);
  border-radius: 10px;
  background: #fffaf1;
  color: #27231e;
  font: inherit;
}

.bp-fieldset {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid rgba(159, 120, 56, .28);
  border-radius: 14px;
  background: rgba(213, 169, 79, .07);
}

.bp-fieldset legend {
  padding: 0 8px;
  font-weight: 800;
  color: #805f25;
}

.bp-checkbox-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 12px;
}

.bp-check-option,
.bp-radio-row label {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid rgba(159, 120, 56, .24);
  border-radius: 9px;
  background: #fffaf1;
  cursor: pointer;
}

.bp-check-option input,
.bp-radio-row input {
  width: 18px;
  height: 18px;
  accent-color: #a8792f;
}

.bp-radio-row {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
}

.bp-inline-check { align-self: end; }
.bp-remarks { margin: 16px 0; }
.bp-remarks textarea { min-height: 90px; resize: vertical; }

@media (max-width: 768px) {
  .bp-form-grid,
  .bp-checkbox-grid { grid-template-columns: 1fr; }
  .bp-radio-row { display: grid; grid-template-columns: 1fr 1fr; }
}

[data-client-editable-section].is-readonly input:disabled,
[data-client-editable-section].is-readonly select:disabled,
[data-client-editable-section].is-readonly textarea:disabled {
  color: var(--wertia-text);
  -webkit-text-fill-color: var(--wertia-text);
  background: transparent;
  cursor: default;
  opacity: 1;
}

[data-client-editable-section].is-editing {
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--wertia-gold) 78%, transparent);
}

.summary-icon-btn:disabled {
  cursor: default;
  opacity: 0.38;
}

.nav-notification-badge {
  min-width: 20px;
  height: 20px;
  margin-left: auto;
  padding: 0 6px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--wertia-gold-soft, #e0c27a);
  color: var(--wertia-brown, #50351c);
  font-size: 8pt !important;
  font-weight: 800;
  line-height: 1;
}

.sidebar-icon-only .nav-notification-badge {
  position: absolute;
  top: 7px;
  right: 7px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
}

.admin-notification-page {
  display: grid;
  gap: 24px;
  padding: 28px;
}

.admin-notification-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px;
  border: 1px solid var(--line, #dfd1b8);
  border-radius: 22px;
  background: var(--panel, #fbf5e9);
}

.admin-notification-head h2,
.admin-notification-head p {
  margin: 0;
}

.admin-notification-head h2 {
  margin-bottom: 6px;
}

.admin-notification-total {
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(224, 194, 122, .32);
  color: var(--wertia-brown, #50351c);
  font-weight: 800;
}

.admin-notification-day {
  display: grid;
  grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

.admin-notification-day > h3 {
  position: sticky;
  top: 18px;
  margin: 4px 0 0;
  color: var(--muted, #756b5d);
  text-transform: capitalize;
}

.admin-notification-timeline {
  position: relative;
  display: grid;
  gap: 10px;
  padding-left: 24px;
}

.admin-notification-timeline::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: var(--line, #dfd1b8);
}

.admin-notification-item {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 15px 17px;
  border: 1px solid var(--line, #dfd1b8);
  border-radius: 16px;
  background: var(--panel, #fbf5e9);
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, opacity .18s ease, transform .18s ease;
}

.admin-notification-item::before {
  content: "";
  position: absolute;
  left: -22px;
  width: 10px;
  height: 10px;
  border: 3px solid var(--panel, #fbf5e9);
  border-radius: 50%;
  background: #9b8f7b;
  box-shadow: 0 0 0 1px var(--line, #dfd1b8);
}

.admin-notification-item.is-unread {
  border-color: rgba(224, 194, 122, .92);
  background: linear-gradient(100deg, rgba(224, 194, 122, .28), var(--panel, #fbf5e9) 44%);
  box-shadow: 0 8px 24px rgba(82, 55, 27, .08);
}

.admin-notification-item.is-unread::before {
  background: var(--wertia-gold-soft, #e0c27a);
}

.admin-notification-item.is-read {
  opacity: .7;
}

.admin-notification-item:hover {
  opacity: 1;
  border-color: var(--wertia-gold, #c89a45);
  transform: translateY(-1px);
}

.admin-notification-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(200, 154, 69, .13);
  color: var(--wertia-gold-deep, #8d6525);
}

.admin-notification-icon svg {
  width: 21px;
  height: 21px;
}

.admin-notification-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.admin-notification-meta {
  display: flex;
  justify-content: space-between;
  gap: 18px;
}

.admin-notification-meta time,
.admin-notification-copy small {
  color: var(--muted, #756b5d);
}

.admin-notification-copy b,
.admin-notification-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-notification-empty {
  padding: 48px 24px;
  border: 1px dashed var(--line, #dfd1b8);
  border-radius: 18px;
  color: var(--muted, #756b5d);
  text-align: center;
}

@media (max-width: 768px) {
  .admin-notification-page { padding: 16px; }
  .admin-notification-head { flex-direction: column; }
  .admin-notification-day { grid-template-columns: 1fr; gap: 10px; }
  .admin-notification-day > h3 { position: static; }
  .admin-notification-copy b,
  .admin-notification-copy small { white-space: normal; }
}
