/*
LegalMatters Vault / White Rabbit SOGo Login Theme
File: legalmatters-vault-login.css

Purpose:
- Restyles only the SOGo login screen.
- The companion JS moves the existing SOGo login form into a branded shell.
- Original SOGo inputs/buttons are preserved so authentication logic remains unchanged.
*/

:root {
  --lmv-navy-950: #061525;
  --lmv-navy-900: #0a1d30;
  --lmv-navy-850: #0d263d;
  --lmv-navy-800: #12304b;
  --lmv-blue-700: #174f73;
  --lmv-teal-600: #1b7c82;
  --lmv-teal-500: #21949a;
  --lmv-gold-600: #b98a42;
  --lmv-gold-500: #cba15d;
  --lmv-gold-300: #e4c27a;
  --lmv-ink: #0e1c2b;
  --lmv-muted: #687789;
  --lmv-line: rgba(10, 29, 48, 0.16);
  --lmv-panel: rgba(255, 255, 255, 0.94);
  --lmv-panel-solid: #ffffff;
  --lmv-field-bg: rgba(255,255,255,0.92);
  --lmv-shadow: 0 34px 90px rgba(3, 16, 31, 0.28);
  --lmv-font-ui: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --lmv-font-display: Georgia, "Times New Roman", serif;
}

html.lmv-login-theme,
html.lmv-login-theme body {
  min-height: 100%;
  background: #f5f7f9 !important;
}

body.lmv-login-applied {
  margin: 0 !important;
  min-height: 100vh !important;
  overflow: hidden !important;
  font-family: var(--lmv-font-ui) !important;
}

body.lmv-login-applied > *:not(.lmv-login-shell):not(script):not(style):not(link) {
  display: none !important;
}

.lmv-login-shell {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  grid-template-columns: minmax(520px, 1.05fr) minmax(460px, 0.95fr);
  min-height: 100vh;
  width: 100vw;
  color: var(--lmv-ink);
  background:
    radial-gradient(circle at 82% 18%, rgba(255,255,255,0.98) 0 0, rgba(255,255,255,0.92) 14%, rgba(242,247,250,0.88) 33%, rgba(9,30,49,0) 53%),
    linear-gradient(115deg, var(--lmv-navy-950) 0%, var(--lmv-navy-900) 42%, #eaf0f4 42.1%, #f9fbfc 100%);
}

.lmv-login-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(42px, 5vw, 78px);
  color: #fff;
  background:
    radial-gradient(circle at 45% 58%, rgba(38, 133, 158, 0.20), transparent 33%),
    radial-gradient(circle at 10% 82%, rgba(203, 161, 93, 0.16), transparent 24%),
    linear-gradient(145deg, rgba(6,21,37,0.98), rgba(9,32,54,0.94));
}

.lmv-login-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.44;
  background:
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(90deg, rgba(0,0,0,0.58), rgba(0,0,0,0.08));
}

.lmv-login-hero::after {
  content: "";
  position: absolute;
  width: 920px;
  height: 920px;
  left: 23%;
  top: 11%;
  opacity: 0.18;
  border-radius: 50%;
  border: 1px solid rgba(228, 194, 122, 0.38);
  box-shadow: inset 0 0 80px rgba(33,148,154,0.22);
}

.lmv-hero-inner {
  position: relative;
  z-index: 1;
  height: 100%;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 36px;
}

.lmv-brand-row {
  display: flex;
  align-items: center;
  gap: 22px;
}

.lmv-vault-mark {
  width: 84px;
  height: 84px;
  flex: 0 0 auto;
  filter: drop-shadow(0 16px 28px rgba(0,0,0,0.28));
}

.lmv-brand-title {
  margin: 0;
  font-family: var(--lmv-font-display);
  font-size: clamp(34px, 3.1vw, 58px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  font-weight: 600;
  color: #fff;
}

.lmv-brand-title .lmv-vault-word {
  color: var(--lmv-gold-300);
}

.lmv-brand-rule {
  display: block;
  width: 172px;
  height: 2px;
  margin-top: 12px;
  background: linear-gradient(90deg, var(--lmv-gold-300), transparent);
}

.lmv-brand-subtitle {
  margin: 12px 0 0;
  font-size: 18px;
  color: rgba(218,230,237,0.72);
  letter-spacing: 0.015em;
}

.lmv-hero-main {
  align-self: center;
  max-width: 620px;
}

.lmv-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--lmv-gold-300);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 24px;
}

.lmv-hero-kicker::before {
  content: "";
  width: 34px;
  height: 1px;
  background: currentColor;
}

.lmv-hero-heading {
  margin: 0;
  font-family: var(--lmv-font-display);
  font-size: clamp(40px, 4.7vw, 78px);
  line-height: 1.04;
  letter-spacing: -0.045em;
  font-weight: 600;
  color: #fff;
  text-wrap: balance;
}

.lmv-hero-copy {
  max-width: 500px;
  margin: 28px 0 0;
  font-size: clamp(16px, 1.25vw, 21px);
  line-height: 1.6;
  color: rgba(225,236,242,0.72);
}

.lmv-hero-proof {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 26px;
  align-items: end;
  min-height: 214px;
}

.lmv-ledgers {
  align-self: end;
  transform: translateY(8px);
}

.lmv-ledger {
  width: min(280px, 34vw);
  height: 45px;
  margin-top: -4px;
  border-radius: 8px;
  background: linear-gradient(180deg, #102a42, #071a2c);
  border: 1px solid rgba(228,194,122,0.32);
  box-shadow: 0 20px 30px rgba(0,0,0,0.28);
  display: flex;
  align-items: center;
  padding: 0 22px;
  color: var(--lmv-gold-300);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.095em;
  text-transform: uppercase;
}

.lmv-vault-visual {
  position: relative;
  min-height: 206px;
}

.lmv-safe {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 210px;
  height: 166px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 52% 50%, rgba(228,194,122,0.16), transparent 20%),
    linear-gradient(145deg, #142e47, #061525);
  border: 1px solid rgba(228,194,122,0.36);
  box-shadow:
    0 28px 60px rgba(0,0,0,0.40),
    inset 0 0 0 1px rgba(255,255,255,0.05);
}

.lmv-safe::before {
  content: "";
  position: absolute;
  width: 98px;
  height: 98px;
  border-radius: 50%;
  left: 56px;
  top: 34px;
  border: 8px solid rgba(203,161,93,0.86);
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,0.22),
    0 0 0 1px rgba(0,0,0,0.4);
}

.lmv-safe::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 80px;
  border-radius: 999px;
  right: 18px;
  top: 43px;
  background: linear-gradient(180deg, #ead39b, #a37331);
}

.lmv-folder {
  position: absolute;
  left: 232px;
  bottom: 10px;
  width: 230px;
  height: 140px;
  border-radius: 18px;
  background: linear-gradient(145deg, #102d47, #071a2b);
  border: 1px solid rgba(228,194,122,0.26);
  box-shadow: 0 28px 52px rgba(0,0,0,0.34);
}

.lmv-folder::before {
  content: "";
  position: absolute;
  width: 178px;
  height: 118px;
  left: 24px;
  bottom: 88px;
  border-radius: 10px 10px 4px 4px;
  background: linear-gradient(180deg, #f3eee5, #d8d0c2);
  transform: rotate(-2deg);
  box-shadow: 0 16px 24px rgba(0,0,0,0.23);
}

.lmv-folder::after {
  content: "§";
  position: absolute;
  left: 96px;
  bottom: 40px;
  color: var(--lmv-gold-300);
  font-family: var(--lmv-font-display);
  font-size: 44px;
}

.lmv-hero-footer {
  display: flex;
  align-items: center;
  gap: 14px;
  color: rgba(225,236,242,0.72);
  font-size: 14px;
}

.lmv-mini-shield {
  width: 34px;
  height: 34px;
  color: var(--lmv-gold-300);
}

.lmv-login-panel {
  position: relative;
  display: grid;
  place-items: center;
  padding: clamp(26px, 4vw, 70px);
}

.lmv-login-card {
  width: min(100%, 610px);
  border-radius: 32px;
  padding: clamp(34px, 4.8vw, 58px);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.97), rgba(255,255,255,0.91));
  border: 1px solid rgba(255,255,255,0.80);
  box-shadow: var(--lmv-shadow);
  backdrop-filter: blur(18px);
}

.lmv-card-header {
  text-align: center;
  margin-bottom: 34px;
}

.lmv-card-badge {
  display: inline-grid;
  place-items: center;
  width: 86px;
  height: 86px;
  margin-bottom: 18px;
  border-radius: 50%;
  color: var(--lmv-gold-300);
  background:
    radial-gradient(circle at 40% 28%, #173c5c, var(--lmv-navy-950));
  box-shadow:
    0 16px 30px rgba(7, 26, 43, 0.22),
    0 0 0 8px rgba(203,161,93,0.10),
    0 0 0 10px rgba(203,161,93,0.28);
}

.lmv-card-badge svg {
  width: 44px;
  height: 44px;
}

.lmv-card-title {
  margin: 0;
  font-family: var(--lmv-font-display);
  font-size: clamp(32px, 3vw, 48px);
  line-height: 1.06;
  letter-spacing: -0.035em;
  color: var(--lmv-navy-950);
}

.lmv-card-subtitle {
  margin: 12px 0 0;
  color: var(--lmv-muted);
  font-size: 17px;
}

/* Form normalization. These rules target both native markup and SOGo Angular Material markup. */
.lmv-form-host {
  color: var(--lmv-ink);
}

.lmv-form-host form,
.lmv-form-host .ng-pristine,
.lmv-form-host .ng-valid,
.lmv-form-host .ng-invalid,
.lmv-form-host .loginForm,
.lmv-form-host .login-form {
  width: 100% !important;
}

.lmv-form-host label,
.lmv-form-host md-input-container label,
.lmv-form-host .md-input-container label {
  color: #304157 !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  letter-spacing: 0.01em !important;
}

.lmv-form-host input,
.lmv-form-host select,
.lmv-form-host textarea,
.lmv-form-host .md-select-value {
  min-height: 54px !important;
  border: 1px solid rgba(10,29,48,0.18) !important;
  border-radius: 12px !important;
  background: var(--lmv-field-bg) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.9) !important;
  color: var(--lmv-ink) !important;
  font-family: var(--lmv-font-ui) !important;
  font-size: 16px !important;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease !important;
}

.lmv-form-host input {
  padding: 0 16px !important;
}

.lmv-form-host input:focus,
.lmv-form-host select:focus,
.lmv-form-host textarea:focus {
  outline: none !important;
  border-color: rgba(33,148,154,0.76) !important;
  box-shadow:
    0 0 0 4px rgba(33,148,154,0.14),
    inset 0 1px 0 rgba(255,255,255,0.9) !important;
}

.lmv-form-host md-input-container,
.lmv-form-host .md-input-container,
.lmv-form-host .form-group,
.lmv-form-host p {
  margin: 0 0 18px !important;
}

.lmv-form-host md-input-container .md-errors-spacer,
.lmv-form-host .md-errors-spacer {
  min-height: 0 !important;
}

.lmv-form-host md-checkbox,
.lmv-form-host .md-checkbox,
.lmv-form-host input[type="checkbox"] + label {
  color: #425167 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}

.lmv-form-host button,
.lmv-form-host input[type="submit"],
.lmv-form-host .md-button,
.lmv-form-host button.md-primary {
  width: 100% !important;
  min-height: 58px !important;
  border: none !important;
  border-radius: 12px !important;
  background:
    linear-gradient(135deg, var(--lmv-navy-950), var(--lmv-navy-800)) !important;
  color: #fff !important;
  font-family: var(--lmv-font-ui) !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  letter-spacing: 0.01em !important;
  box-shadow: 0 18px 34px rgba(6,21,37,0.22) !important;
  text-transform: none !important;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease !important;
}

.lmv-form-host button:hover,
.lmv-form-host input[type="submit"]:hover,
.lmv-form-host .md-button:hover {
  transform: translateY(-1px);
  filter: brightness(1.06);
  box-shadow: 0 22px 42px rgba(6,21,37,0.28) !important;
}

.lmv-form-host button:active,
.lmv-form-host input[type="submit"]:active,
.lmv-form-host .md-button:active {
  transform: translateY(0);
}

.lmv-form-host .md-button .material-icons,
.lmv-form-host .material-icons {
  color: inherit !important;
}

.lmv-card-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid rgba(10,29,48,0.12);
  color: #5f7084;
  font-weight: 650;
  font-size: 14px;
}

.lmv-powered {
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: rgba(6,21,37,0.58);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.lmv-powered strong {
  color: var(--lmv-teal-600);
  font-weight: 850;
}

.lmv-powered small {
  color: rgba(6,21,37,0.42);
  font-weight: 600;
}

.lmv-watermark {
  position: absolute;
  inset: auto 24px 20px auto;
  opacity: 0.08;
  width: 270px;
  height: 270px;
  pointer-events: none;
}

@media (max-width: 1080px) {
  .lmv-login-shell {
    grid-template-columns: 1fr;
    overflow: auto;
    position: fixed;
  }

  body.lmv-login-applied {
    overflow: auto !important;
  }

  .lmv-login-hero {
    min-height: 430px;
    padding: 34px;
  }

  .lmv-hero-proof {
    display: none;
  }

  .lmv-login-panel {
    padding: 28px 20px 74px;
  }

  .lmv-powered {
    position: fixed;
    bottom: 14px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,0.82);
    backdrop-filter: blur(12px);
  }
}

@media (max-width: 640px) {
  .lmv-login-hero {
    min-height: 330px;
    padding: 28px 22px;
  }

  .lmv-brand-row {
    gap: 14px;
  }

  .lmv-vault-mark {
    width: 58px;
    height: 58px;
  }

  .lmv-brand-title {
    font-size: 31px;
  }

  .lmv-brand-subtitle {
    font-size: 14px;
  }

  .lmv-hero-heading {
    font-size: 35px;
  }

  .lmv-login-card {
    border-radius: 24px;
    padding: 26px 20px;
  }
}


/* LMV_RESPONSIVE_R3_BEGIN */

/*
  R3 responsive/proportion pass:
  - Tames oversized desktop hero text.
  - Keeps login card centred and proportional.
  - Fixes SOGo button classification with the companion JS.
  - Adds proper tablet/mobile stacking.
*/

body.lmv-login-applied {
  overflow: auto !important;
}

.lmv-login-shell {
  min-height: 100dvh !important;
  overflow: auto !important;
}

@media (min-width: 1180px) {
  .lmv-login-shell {
    grid-template-columns: minmax(460px, 48vw) minmax(520px, 52vw) !important;
  }

  .lmv-login-hero {
    padding: clamp(38px, 4.4vw, 72px) clamp(46px, 5.6vw, 92px) !important;
  }

  .lmv-hero-inner {
    gap: clamp(22px, 3.4vh, 34px) !important;
  }

  .lmv-vault-mark {
    width: clamp(58px, 5vw, 78px) !important;
    height: clamp(58px, 5vw, 78px) !important;
  }

  .lmv-brand-title {
    font-size: clamp(34px, 3.3vw, 50px) !important;
    line-height: 1.02 !important;
  }

  .lmv-brand-subtitle {
    font-size: clamp(15px, 1.25vw, 18px) !important;
  }

  .lmv-hero-main {
    max-width: 680px !important;
  }

  .lmv-hero-heading {
    font-size: clamp(44px, 5.2vw, 70px) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.055em !important;
    max-width: 760px !important;
  }

  .lmv-hero-copy {
    margin-top: 24px !important;
    max-width: 590px !important;
    font-size: clamp(15px, 1.22vw, 20px) !important;
    line-height: 1.52 !important;
  }

  .lmv-hero-proof {
    min-height: clamp(150px, 22vh, 212px) !important;
    gap: 18px !important;
  }

  .lmv-ledger {
    height: 40px !important;
    width: min(250px, 28vw) !important;
    font-size: 11px !important;
  }

  .lmv-vault-visual {
    transform: scale(.86) !important;
    transform-origin: bottom left !important;
  }

  .lmv-login-panel {
    padding: clamp(30px, 5vh, 62px) clamp(28px, 4.4vw, 72px) 54px !important;
  }

  .lmv-login-card {
    width: min(100%, 545px) !important;
    padding: clamp(30px, 4.2vh, 46px) clamp(34px, 3.8vw, 48px) !important;
    border-radius: 30px !important;
  }

  .lmv-card-header {
    margin-bottom: 28px !important;
  }

  .lmv-card-badge {
    width: 70px !important;
    height: 70px !important;
    margin-bottom: 16px !important;
  }

  .lmv-card-badge svg {
    width: 36px !important;
    height: 36px !important;
  }

  .lmv-card-title {
    font-size: clamp(32px, 3.1vw, 44px) !important;
  }

  .lmv-card-subtitle {
    font-size: 16px !important;
  }
}

/* Normalize the SOGo Angular Material form inside the theme card. */
.lmv-form-host {
  width: 100% !important;
  max-width: 470px !important;
  margin: 0 auto !important;
}

.lmv-form-host form,
.lmv-form-host .loginForm,
.lmv-form-host .login-form {
  width: 100% !important;
}

.lmv-form-host md-input-container,
.lmv-form-host .md-input-container,
.lmv-form-host .form-group {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
}

.lmv-form-host md-input-container md-icon:first-child,
.lmv-form-host .md-input-container md-icon:first-child,
.lmv-form-host md-input-container > .material-icons:first-child,
.lmv-form-host .md-input-container > .material-icons:first-child {
  position: absolute !important;
  left: -36px !important;
  top: 34px !important;
  width: 24px !important;
  height: 24px !important;
  line-height: 24px !important;
  color: #07192b !important;
  opacity: .96 !important;
  background: transparent !important;
  z-index: 2 !important;
}

.lmv-form-host md-input-container label,
.lmv-form-host .md-input-container label,
.lmv-form-host label {
  position: static !important;
  display: block !important;
  transform: none !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  color: #23354d !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  letter-spacing: 0.005em !important;
}

.lmv-form-host md-input-container .md-placeholder,
.lmv-form-host md-input-container .md-input-message-animation {
  position: static !important;
}

.lmv-form-host input,
.lmv-form-host select,
.lmv-form-host textarea,
.lmv-form-host .md-select-value {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 52px !important;
  border-radius: 12px !important;
  padding: 0 15px !important;
  border: 1px solid rgba(7,25,43,.18) !important;
  background: rgba(255,255,255,.94) !important;
  color: #07192b !important;
  font-size: 15px !important;
  box-shadow: none !important;
}

.lmv-form-host .md-select-value {
  display: flex !important;
  align-items: center !important;
}

.lmv-form-host input:focus,
.lmv-form-host select:focus,
.lmv-form-host textarea:focus {
  border-color: rgba(33,148,154,.78) !important;
  box-shadow: 0 0 0 4px rgba(33,148,154,.12) !important;
}

.lmv-form-host .md-errors-spacer {
  min-height: 0 !important;
}

/* Reset generic buttons so the SOGo info/help icon is not converted into a giant submit bar. */
.lmv-form-host button,
.lmv-form-host input[type="submit"],
.lmv-form-host .md-button {
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #07192b !important;
  text-transform: none !important;
}

.lmv-form-host .lmv-hidden-info {
  display: none !important;
}

/* JS classifies the real login button. */
.lmv-form-host .lmv-submit-button,
.lmv-form-host input[type="submit"].lmv-submit-button {
  width: 100% !important;
  min-height: 56px !important;
  margin-top: 10px !important;
  padding: 0 20px !important;
  border-radius: 13px !important;
  background: linear-gradient(135deg, #061525, #12304b) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  font-size: 16px !important;
  font-weight: 850 !important;
  letter-spacing: .01em !important;
  box-shadow: 0 18px 34px rgba(6,21,37,.22) !important;
}

.lmv-form-host .lmv-submit-button:hover {
  filter: brightness(1.06) !important;
  transform: translateY(-1px) !important;
}

.lmv-submit-arrow {
  color: #e4c27a !important;
  font-size: 22px !important;
  line-height: 1 !important;
}

.lmv-card-trust {
  margin-top: 24px !important;
  padding-top: 22px !important;
}

/* Laptop/tablet: keep desktop feeling but reduce visual weight. */
@media (min-width: 841px) and (max-width: 1179px) {
  .lmv-login-shell {
    grid-template-columns: 44vw 56vw !important;
  }

  .lmv-login-hero {
    padding: 38px 34px !important;
  }

  .lmv-vault-mark {
    width: 54px !important;
    height: 54px !important;
  }

  .lmv-brand-title {
    font-size: clamp(28px, 3.4vw, 38px) !important;
  }

  .lmv-brand-subtitle {
    font-size: 14px !important;
  }

  .lmv-hero-kicker {
    font-size: 11px !important;
    margin-bottom: 16px !important;
  }

  .lmv-hero-heading {
    font-size: clamp(34px, 5.2vw, 54px) !important;
    line-height: 1.05 !important;
  }

  .lmv-hero-copy {
    font-size: 15px !important;
  }

  .lmv-hero-proof {
    display: none !important;
  }

  .lmv-login-panel {
    padding: 30px 28px 56px !important;
  }

  .lmv-login-card {
    max-width: 510px !important;
    padding: 32px 34px !important;
  }
}

/* Phone and narrow tablets: stack, make the hero a compact brand banner, and keep the form reachable. */
@media (max-width: 840px) {
  body.lmv-login-applied {
    overflow: auto !important;
  }

  .lmv-login-shell {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-height: 100dvh !important;
    background: linear-gradient(180deg, #07192b 0 0, #f5f8fa 310px, #f5f8fa 100%) !important;
  }

  .lmv-login-hero {
    min-height: 0 !important;
    padding: 24px 20px 28px !important;
    background: transparent !important;
  }

  .lmv-login-hero::before,
  .lmv-login-hero::after,
  .lmv-hero-proof {
    display: none !important;
  }

  .lmv-hero-inner {
    display: block !important;
  }

  .lmv-brand-row {
    gap: 14px !important;
  }

  .lmv-vault-mark {
    width: 48px !important;
    height: 48px !important;
  }

  .lmv-brand-title {
    font-size: clamp(28px, 8.2vw, 38px) !important;
  }

  .lmv-brand-rule {
    width: 112px !important;
  }

  .lmv-brand-subtitle {
    font-size: 14px !important;
    margin-top: 8px !important;
  }

  .lmv-hero-main {
    margin-top: 24px !important;
    max-width: none !important;
  }

  .lmv-hero-kicker {
    font-size: 10px !important;
    margin-bottom: 12px !important;
  }

  .lmv-hero-heading {
    font-size: clamp(30px, 9vw, 42px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
    max-width: 520px !important;
  }

  .lmv-hero-copy {
    display: none !important;
  }

  .lmv-login-panel {
    display: block !important;
    padding: 0 14px 72px !important;
  }

  .lmv-login-card {
    width: auto !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    padding: 24px 20px 26px !important;
    border-radius: 24px !important;
  }

  .lmv-card-header {
    margin-bottom: 22px !important;
  }

  .lmv-card-badge {
    width: 62px !important;
    height: 62px !important;
    margin-bottom: 14px !important;
  }

  .lmv-card-badge svg {
    width: 31px !important;
    height: 31px !important;
  }

  .lmv-card-title {
    font-size: clamp(30px, 8vw, 38px) !important;
  }

  .lmv-card-subtitle {
    font-size: 14px !important;
  }

  .lmv-form-host {
    max-width: none !important;
  }

  .lmv-form-host md-input-container md-icon:first-child,
  .lmv-form-host .md-input-container md-icon:first-child,
  .lmv-form-host md-input-container > .material-icons:first-child,
  .lmv-form-host .md-input-container > .material-icons:first-child {
    left: 12px !important;
    top: 33px !important;
    opacity: .58 !important;
  }

  .lmv-form-host input,
  .lmv-form-host select,
  .lmv-form-host textarea,
  .lmv-form-host .md-select-value {
    padding-left: 42px !important;
  }

  .lmv-powered {
    position: static !important;
    transform: none !important;
    justify-content: center !important;
    margin: 16px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }
}

@media (max-width: 420px) {
  .lmv-login-hero {
    padding: 20px 16px 24px !important;
  }

  .lmv-login-panel {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .lmv-login-card {
    padding: 22px 16px 24px !important;
    border-radius: 20px !important;
  }

  .lmv-card-trust {
    font-size: 12px !important;
  }
}

/* LMV_RESPONSIVE_R3_END */

/* LMV_FORM_POLISH_R4_BEGIN */

/*
  R4 form polish:
  - Make the right card more balanced.
  - Remove misaligned SOGo leading icons beside fields.
  - Keep labels cleanly above inputs.
  - Force the real Sign In button to full width.
  - Keep password eye button compact and aligned.
*/

@media (min-width: 1180px) {
  .lmv-login-panel {
    padding-top: clamp(34px, 5vh, 74px) !important;
    padding-bottom: 46px !important;
  }

  .lmv-login-card {
    width: min(100%, 610px) !important;
    max-width: 610px !important;
    min-height: auto !important;
    padding: 34px 56px 36px !important;
  }

  .lmv-card-header {
    margin-bottom: 24px !important;
  }

  .lmv-card-title {
    font-size: clamp(36px, 3.4vw, 48px) !important;
  }
}

.lmv-form-host {
  max-width: 500px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Desktop/tablet: hide the decorative stock SOGo icons that were causing label collisions. */
@media (min-width: 721px) {
  .lmv-form-host md-input-container md-icon:first-child,
  .lmv-form-host .md-input-container md-icon:first-child,
  .lmv-form-host md-input-container > .material-icons:first-child,
  .lmv-form-host .md-input-container > .material-icons:first-child {
    display: none !important;
  }
}

.lmv-form-host md-input-container,
.lmv-form-host .md-input-container,
.lmv-form-host .form-group {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  margin: 0 0 17px !important;
  padding: 0 !important;
  overflow: visible !important;
}

.lmv-form-host md-input-container label,
.lmv-form-host .md-input-container label,
.lmv-form-host label {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  display: block !important;
  transform: none !important;
  margin: 0 0 7px !important;
  padding: 0 !important;
  height: auto !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  color: #20314a !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  letter-spacing: .005em !important;
  pointer-events: none !important;
}

.lmv-form-host input,
.lmv-form-host select,
.lmv-form-host textarea,
.lmv-form-host .md-select-value {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 54px !important;
  height: 54px !important;
  margin: 0 !important;
  border-radius: 13px !important;
  padding: 0 16px !important;
  border: 1px solid rgba(7,25,43,.18) !important;
  background: rgba(255,255,255,.96) !important;
  color: #07192b !important;
  font-size: 15px !important;
  line-height: 54px !important;
}

.lmv-form-host .md-select-value {
  display: flex !important;
  align-items: center !important;
}

.lmv-form-host input[type="password"] {
  padding-right: 48px !important;
}

.lmv-form-host input:focus,
.lmv-form-host select:focus,
.lmv-form-host textarea:focus {
  border-color: rgba(33,148,154,.78) !important;
  box-shadow: 0 0 0 4px rgba(33,148,154,.12) !important;
}

.lmv-form-host .md-errors-spacer {
  display: none !important;
  min-height: 0 !important;
}

/* Password visibility button should stay compact, not inherit submit styling. */
.lmv-form-host .lmv-visibility-button,
.lmv-form-host button[aria-label*="password" i],
.lmv-form-host button[aria-label*="show" i],
.lmv-form-host button[aria-label*="hide" i] {
  position: absolute !important;
  right: 12px !important;
  bottom: 13px !important;
  top: auto !important;
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #07192b !important;
  display: grid !important;
  place-items: center !important;
}

/* Keep all non-submit buttons neutral. */
.lmv-form-host button:not(.lmv-submit-button),
.lmv-form-host .md-button:not(.lmv-submit-button) {
  background: transparent !important;
  box-shadow: none !important;
  color: #07192b !important;
}

.lmv-form-host .lmv-hidden-info {
  display: none !important;
}

/* Strong submit selector. Applies even if SOGo keeps extra Material classes. */
.lmv-form-host .lmv-submit-button,
.lmv-form-host button.lmv-submit-button,
.lmv-form-host .md-button.lmv-submit-button,
.lmv-form-host input[type="submit"].lmv-submit-button,
.lmv-form-host form button[type="submit"],
.lmv-form-host form input[type="submit"] {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 100% !important;
  height: 58px !important;
  min-height: 58px !important;
  margin: 10px 0 0 !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #061525, #12304b) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  font-size: 16px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  letter-spacing: .01em !important;
  text-align: center !important;
  box-shadow: 0 18px 34px rgba(6,21,37,.24) !important;
}

.lmv-form-host .lmv-submit-button md-icon,
.lmv-form-host .lmv-submit-button .material-icons {
  display: none !important;
}

.lmv-submit-arrow {
  display: inline-block !important;
  color: #e4c27a !important;
  font-size: 22px !important;
  line-height: 1 !important;
  transform: translateY(-1px) !important;
}

/* Remember row spacing. */
.lmv-form-host md-checkbox,
.lmv-form-host .md-checkbox,
.lmv-form-host .lmv-remember-row {
  display: flex !important;
  align-items: center !important;
  margin: 4px 0 18px !important;
  min-height: 30px !important;
  color: #20314a !important;
  font-size: 15px !important;
  font-weight: 650 !important;
}

.lmv-card-trust {
  margin-top: 22px !important;
  padding-top: 20px !important;
}

/* Medium screens. */
@media (min-width: 841px) and (max-width: 1179px) {
  .lmv-login-card {
    max-width: 545px !important;
    padding: 30px 40px 34px !important;
  }

  .lmv-form-host {
    max-width: 460px !important;
  }
}

/* Phone/narrow tablet. */
@media (max-width: 840px) {
  .lmv-login-card {
    max-width: 520px !important;
    padding: 24px 20px 28px !important;
  }

  .lmv-form-host input,
  .lmv-form-host select,
  .lmv-form-host textarea,
  .lmv-form-host .md-select-value {
    min-height: 52px !important;
    height: 52px !important;
    line-height: 52px !important;
  }

  .lmv-form-host md-input-container md-icon:first-child,
  .lmv-form-host .md-input-container md-icon:first-child,
  .lmv-form-host md-input-container > .material-icons:first-child,
  .lmv-form-host .md-input-container > .material-icons:first-child {
    display: none !important;
  }

  .lmv-form-host input,
  .lmv-form-host select,
  .lmv-form-host textarea,
  .lmv-form-host .md-select-value {
    padding-left: 15px !important;
  }

  .lmv-form-host .lmv-submit-button,
  .lmv-form-host button.lmv-submit-button,
  .lmv-form-host .md-button.lmv-submit-button,
  .lmv-form-host form button[type="submit"],
  .lmv-form-host form input[type="submit"] {
    height: 56px !important;
    min-height: 56px !important;
  }
}

/* LMV_FORM_POLISH_R4_END */

/* LMV_FORM_FORCE_R5_BEGIN */

/*
  R5 force pass:
  - Intentionally removes SOGo's stock left-side form icons from the login card.
  - Forces a clean label/input stack.
  - Forces the actual submit control full-width.
  - Uses a more compact card so desktop and phone proportions hold.
*/

.lmv-login-card {
  overflow: visible !important;
}

.lmv-form-host {
  max-width: 520px !important;
  width: 100% !important;
  margin: 0 auto !important;
}

/* Kill the left-side SOGo Material icons that keep colliding with labels. */
.lmv-form-host md-icon,
.lmv-form-host .material-icons,
.lmv-form-host svg:not(.lmv-mini-shield),
.lmv-form-host button[aria-label*="show" i],
.lmv-form-host button[aria-label*="hide" i],
.lmv-form-host button[aria-label*="password" i] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  pointer-events: none !important;
}

/* Neutralize Angular Material positioning inside the card. */
.lmv-form-host md-input-container,
.lmv-form-host .md-input-container,
.lmv-form-host .form-group,
.lmv-form-host .lmv-field-force {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  overflow: visible !important;
  transform: none !important;
}

.lmv-form-host md-input-container label,
.lmv-form-host .md-input-container label,
.lmv-form-host label,
.lmv-form-host .lmv-forced-label {
  display: block !important;
  position: static !important;
  float: none !important;
  clear: both !important;
  transform: none !important;
  inset: auto !important;
  margin: 0 0 7px !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
  color: #162741 !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  line-height: 1.22 !important;
  letter-spacing: .005em !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}

.lmv-form-host input,
.lmv-form-host select,
.lmv-form-host textarea,
.lmv-form-host .md-select-value {
  display: block !important;
  position: relative !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 54px !important;
  min-height: 54px !important;
  line-height: 54px !important;
  margin: 0 !important;
  padding: 0 17px !important;
  border: 1px solid rgba(7,25,43,.18) !important;
  border-radius: 13px !important;
  background: rgba(255,255,255,.97) !important;
  color: #07192b !important;
  font-size: 15px !important;
  box-shadow: none !important;
}

.lmv-form-host .md-select-value {
  display: flex !important;
  align-items: center !important;
}

.lmv-form-host input:focus,
.lmv-form-host select:focus,
.lmv-form-host textarea:focus {
  border-color: rgba(33,148,154,.78) !important;
  box-shadow: 0 0 0 4px rgba(33,148,154,.12) !important;
}

.lmv-form-host .md-errors-spacer {
  display: none !important;
  min-height: 0 !important;
}

/* Default all buttons back to neutral first. */
.lmv-form-host button,
.lmv-form-host .md-button,
.lmv-form-host input[type="submit"] {
  box-sizing: border-box !important;
  text-transform: none !important;
}

/* Strong submit styling; JS applies lmv-submit-button-force to the correct button. */
.lmv-form-host .lmv-submit-button-force,
.lmv-form-host button.lmv-submit-button-force,
.lmv-form-host .md-button.lmv-submit-button-force,
.lmv-form-host input[type="submit"].lmv-submit-button-force {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 100% !important;
  height: 58px !important;
  min-height: 58px !important;
  margin: 12px 0 0 !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #061525, #12304b) !important;
  color: #fff !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  font-size: 16px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  letter-spacing: .01em !important;
  text-align: center !important;
  box-shadow: 0 18px 34px rgba(6,21,37,.24) !important;
}

.lmv-form-host .lmv-submit-button-force * {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
}

.lmv-submit-arrow-force {
  color: #e4c27a !important;
  font-size: 22px !important;
  line-height: 1 !important;
  transform: translateY(-1px) !important;
}

/* Hide any non-submit help/info buttons inside the form. */
.lmv-form-host .lmv-form-button-hidden {
  display: none !important;
}

/* Remember username row. */
.lmv-form-host md-checkbox,
.lmv-form-host .md-checkbox,
.lmv-form-host .lmv-remember-force {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 2px 0 18px !important;
  min-height: 30px !important;
  color: #20314a !important;
  font-size: 15px !important;
  font-weight: 650 !important;
}

/* Refine desktop card proportions after form cleanup. */
@media (min-width: 1180px) {
  .lmv-login-card {
    width: min(100%, 620px) !important;
    max-width: 620px !important;
    padding: 32px 58px 36px !important;
  }

  .lmv-card-header {
    margin-bottom: 24px !important;
  }

  .lmv-card-badge {
    width: 70px !important;
    height: 70px !important;
  }

  .lmv-card-title {
    font-size: clamp(38px, 3.4vw, 50px) !important;
  }

  .lmv-card-subtitle {
    margin-top: 10px !important;
  }
}

@media (max-width: 840px) {
  .lmv-login-card {
    max-width: 520px !important;
    padding: 24px 20px 28px !important;
  }

  .lmv-form-host input,
  .lmv-form-host select,
  .lmv-form-host textarea,
  .lmv-form-host .md-select-value {
    height: 52px !important;
    min-height: 52px !important;
    line-height: 52px !important;
  }

  .lmv-form-host .lmv-submit-button-force {
    height: 56px !important;
    min-height: 56px !important;
  }
}

@media (max-width: 420px) {
  .lmv-login-card {
    padding: 22px 16px 24px !important;
  }

  .lmv-card-title {
    font-size: 31px !important;
  }
}

/* LMV_FORM_FORCE_R5_END */

/* LMV_HERO_DETAIL_R6_BEGIN */

/*
  R6 hero/detail scale pass:
  - Makes the left hero less oversized on desktop.
  - Preserves the vault/books/document details instead of clipping them at the bottom.
  - Keeps the right login card visually balanced.
  - CSS only. No nginx/SOGo template changes.
*/

@media (min-width: 1180px) {
  .lmv-login-shell {
    grid-template-columns: minmax(500px, 48vw) minmax(560px, 52vw) !important;
  }

  .lmv-login-hero {
    padding: clamp(30px, 3.6vw, 56px) clamp(42px, 5.2vw, 82px) clamp(20px, 2.6vw, 42px) !important;
  }

  .lmv-hero-inner {
    height: 100% !important;
    min-height: 0 !important;
    grid-template-rows: auto minmax(270px, .92fr) minmax(126px, .36fr) !important;
    gap: clamp(14px, 2.1vh, 26px) !important;
  }

  .lmv-brand-row {
    align-items: center !important;
    gap: 18px !important;
  }

  .lmv-vault-mark {
    width: clamp(52px, 4.1vw, 68px) !important;
    height: clamp(52px, 4.1vw, 68px) !important;
  }

  .lmv-brand-title {
    font-size: clamp(32px, 3.0vw, 46px) !important;
    line-height: 1.02 !important;
  }

  .lmv-brand-rule {
    width: 150px !important;
    margin-top: 10px !important;
  }

  .lmv-brand-subtitle {
    margin-top: 9px !important;
    font-size: clamp(14px, 1.08vw, 17px) !important;
  }

  .lmv-hero-main {
    align-self: center !important;
    max-width: 660px !important;
  }

  .lmv-hero-kicker {
    margin-bottom: clamp(12px, 1.8vh, 20px) !important;
    font-size: 12px !important;
    letter-spacing: .15em !important;
  }

  .lmv-hero-heading {
    font-size: clamp(40px, 4.55vw, 62px) !important;
    line-height: 1.055 !important;
    letter-spacing: -0.052em !important;
    max-width: 690px !important;
  }

  .lmv-hero-copy {
    margin-top: clamp(18px, 2.2vh, 24px) !important;
    max-width: 620px !important;
    font-size: clamp(14px, 1.08vw, 18px) !important;
    line-height: 1.52 !important;
  }

  .lmv-hero-proof {
    display: grid !important;
    grid-template-columns: minmax(200px, .92fr) minmax(300px, 1.08fr) !important;
    align-items: end !important;
    gap: 20px !important;
    min-height: 138px !important;
    max-height: 210px !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
  }

  .lmv-ledgers {
    align-self: end !important;
    transform: translateY(-2px) !important;
  }

  .lmv-ledger {
    width: min(246px, 26vw) !important;
    height: 35px !important;
    padding: 0 18px !important;
    font-size: 10px !important;
    letter-spacing: .105em !important;
    border-radius: 7px !important;
  }

  .lmv-vault-visual {
    min-height: 156px !important;
    transform: scale(.72) !important;
    transform-origin: bottom left !important;
  }

  .lmv-safe {
    width: 186px !important;
    height: 142px !important;
    border-radius: 20px !important;
  }

  .lmv-safe::before {
    width: 82px !important;
    height: 82px !important;
    left: 51px !important;
    top: 28px !important;
    border-width: 7px !important;
  }

  .lmv-safe::after {
    height: 68px !important;
    top: 38px !important;
  }

  .lmv-folder {
    left: 210px !important;
    bottom: 8px !important;
    width: 205px !important;
    height: 122px !important;
    border-radius: 16px !important;
  }

  .lmv-folder::before {
    width: 160px !important;
    height: 103px !important;
    left: 22px !important;
    bottom: 76px !important;
  }

  .lmv-folder::after {
    left: 86px !important;
    bottom: 32px !important;
    font-size: 38px !important;
  }

  .lmv-login-panel {
    padding: clamp(28px, 4.2vh, 58px) clamp(34px, 4.6vw, 76px) 48px !important;
  }

  .lmv-login-card {
    width: min(100%, 590px) !important;
    max-width: 590px !important;
    padding: 31px 54px 34px !important;
  }
}

/* Large-but-short laptop screens: prioritise visible hero detail and avoid bottom clipping. */
@media (min-width: 1180px) and (max-height: 850px) {
  .lmv-login-hero {
    padding-top: 28px !important;
    padding-bottom: 20px !important;
  }

  .lmv-hero-inner {
    grid-template-rows: auto minmax(245px, .88fr) minmax(116px, .30fr) !important;
    gap: 14px !important;
  }

  .lmv-brand-title {
    font-size: clamp(30px, 2.8vw, 42px) !important;
  }

  .lmv-vault-mark {
    width: 56px !important;
    height: 56px !important;
  }

  .lmv-hero-heading {
    font-size: clamp(38px, 4.25vw, 58px) !important;
  }

  .lmv-hero-copy {
    margin-top: 16px !important;
    font-size: 15px !important;
  }

  .lmv-vault-visual {
    transform: scale(.66) !important;
  }

  .lmv-ledger {
    height: 32px !important;
  }

  .lmv-login-card {
    padding-top: 28px !important;
    padding-bottom: 30px !important;
  }
}

/* Medium screens: hide lower detail rather than clipping badly. */
@media (min-width: 841px) and (max-width: 1179px) {
  .lmv-hero-heading {
    font-size: clamp(32px, 4.8vw, 48px) !important;
  }

  .lmv-hero-copy {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  .lmv-hero-proof {
    display: none !important;
  }
}

/* Phone: avoid oversized art; keep it a compact branded banner. */
@media (max-width: 840px) {
  .lmv-hero-heading {
    font-size: clamp(28px, 8.2vw, 40px) !important;
    max-width: 480px !important;
  }

  .lmv-hero-proof,
  .lmv-ledgers,
  .lmv-vault-visual {
    display: none !important;
  }
}

/* LMV_HERO_DETAIL_R6_END */

/* LMV_SUBMIT_WIDTH_R7_BEGIN */

/*
  R7 submit-width polish:
  - Forces the SOGo submit button row to use the same width as the inputs.
  - Leaves nginx config and SOGo templates untouched.
*/

.lmv-form-host .lmv-submit-row-force,
.lmv-form-host .lmv-submit-row-force > *,
.lmv-form-host form .lmv-submit-row-force {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.lmv-form-host .lmv-submit-button-force,
.lmv-form-host .lmv-submit-button,
.lmv-form-host button.lmv-submit-button-force,
.lmv-form-host button.lmv-submit-button,
.lmv-form-host .md-button.lmv-submit-button-force,
.lmv-form-host .md-button.lmv-submit-button,
.lmv-form-host input[type="submit"].lmv-submit-button-force,
.lmv-form-host input[type="submit"].lmv-submit-button {
  display: flex !important;
  position: relative !important;
  float: none !important;
  clear: both !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 100% !important;
  height: 58px !important;
  min-height: 58px !important;
  margin: 12px 0 0 !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #061525, #12304b) !important;
  color: #fff !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  font-size: 16px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
  letter-spacing: .01em !important;
  text-align: center !important;
  box-shadow: 0 18px 34px rgba(6,21,37,.24) !important;
  transform: none !important;
}

.lmv-form-host .lmv-submit-button-force span,
.lmv-form-host .lmv-submit-button span {
  display: inline-block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}

.lmv-form-host .lmv-submit-button-force:hover,
.lmv-form-host .lmv-submit-button:hover {
  filter: brightness(1.06) !important;
  transform: translateY(-1px) !important;
}

.lmv-submit-arrow-force,
.lmv-submit-arrow {
  color: #e4c27a !important;
  font-size: 22px !important;
  line-height: 1 !important;
  transform: translateY(-1px) !important;
}

/* When SOGo wraps the submit button in a flex row, force that flex row to full width. */
.lmv-form-host .layout-row:has(.lmv-submit-button-force),
.lmv-form-host .layout-row:has(.lmv-submit-button),
.lmv-form-host .layout-column:has(.lmv-submit-button-force),
.lmv-form-host .layout-column:has(.lmv-submit-button) {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important;
}

/* Keep the divider/trust text aligned under the full-width button. */
.lmv-card-trust {
  width: 100% !important;
}

/* LMV_SUBMIT_WIDTH_R7_END */

/* LMV_INPUT_CLICK_R8_BEGIN */

/*
  R8 clickability repair:
  - Ensures visible username/password/select controls sit above decorative/Angular overlays.
  - Makes labels/icons/containers click-through where they overlap controls.
  - Keeps real interactive controls clickable: input, select, md-select, checkbox, submit button.
  - Static CSS/JS only; no nginx or SOGo template edits.
*/

.lmv-login-shell,
.lmv-login-panel,
.lmv-login-card,
.lmv-form-host,
.lmv-form-host form {
  pointer-events: auto !important;
}

.lmv-form-host md-input-container,
.lmv-form-host .md-input-container,
.lmv-form-host .form-group,
.lmv-form-host .lmv-field-force {
  position: relative !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

/* Inputs/selects must receive the mouse click. */
.lmv-form-host input,
.lmv-form-host textarea,
.lmv-form-host select,
.lmv-form-host md-select,
.lmv-form-host .md-select-value,
.lmv-form-host .md-select-value *,
.lmv-form-host .md-select-icon,
.lmv-form-host button,
.lmv-form-host .md-button,
.lmv-form-host md-checkbox,
.lmv-form-host .md-checkbox,
.lmv-form-host .lmv-submit-button-force,
.lmv-form-host .lmv-submit-button {
  pointer-events: auto !important;
}

/* Put actual fields above any visual label/icon wrappers. */
.lmv-form-host input,
.lmv-form-host textarea,
.lmv-form-host select,
.lmv-form-host md-select,
.lmv-form-host .md-select-value {
  position: relative !important;
  z-index: 10 !important;
}

/* Labels and decorative elements must not steal mouse focus. */
.lmv-form-host label,
.lmv-form-host .lmv-forced-label,
.lmv-form-host md-icon,
.lmv-form-host .material-icons,
.lmv-form-host svg:not(.lmv-mini-shield),
.lmv-form-host .md-placeholder,
.lmv-form-host .md-input-message-animation,
.lmv-form-host .md-errors-spacer,
.lmv-form-host .md-char-counter,
.lmv-form-host .md-select-icon {
  pointer-events: none !important;
}

/* Keep submit/check boxes interactive. */
.lmv-form-host .lmv-submit-button-force,
.lmv-form-host .lmv-submit-button,
.lmv-form-host button.lmv-submit-button-force,
.lmv-form-host button.lmv-submit-button,
.lmv-form-host input[type="submit"],
.lmv-form-host input[type="checkbox"],
.lmv-form-host md-checkbox,
.lmv-form-host .md-checkbox {
  position: relative !important;
  z-index: 20 !important;
  pointer-events: auto !important;
}

/* Remove possible oversized transparent rows introduced by earlier force passes. */
.lmv-form-host .lmv-submit-row-force {
  pointer-events: none !important;
}

.lmv-form-host .lmv-submit-row-force .lmv-submit-button-force,
.lmv-form-host .lmv-submit-row-force .lmv-submit-button,
.lmv-form-host .lmv-submit-row-force button,
.lmv-form-host .lmv-submit-row-force input[type="submit"] {
  pointer-events: auto !important;
}

/* Avoid invisible hidden buttons covering fields. */
.lmv-form-host .lmv-form-button-hidden,
.lmv-form-host .lmv-hidden-info,
.lmv-form-host .lmv-visibility-button {
  display: none !important;
  pointer-events: none !important;
}

/* LMV_INPUT_CLICK_R8_END */

/* LMV_WEBMAIL_THEME_R39_BEGIN */
/*
  R39: Single clean webmail theme. Replaces all previous R9–R38 webmail blocks.
  Design intent: calm, professional, long-reading-session friendly.
  - No gradients in content areas
  - No green/teal in the reading surface
  - Dark charcoal toolbar (authoritative, not distracting)
  - Warm-neutral backgrounds (softer than pure white, easier than blue-tinted)
  - Colour only where it communicates: selected row, unread badge, security indicator
*/

/* ── Design tokens ─────────────────────────────────────────────────────── */
body:not(.lmv-login-applied) {
  --lmv-bg:        #f3f4f6;   /* page background */
  --lmv-surface:   #ffffff;   /* mail list, message pane */
  --lmv-sidebar:   #eef0f2;   /* folder panel */
  --lmv-nav:       #1e2a35;   /* top toolbar */
  --lmv-nav-sub:   #f8f9fa;   /* secondary toolbars */
  --lmv-text:      #1a2030;   /* primary reading text */
  --lmv-muted:     #6b7280;   /* timestamps, metadata */
  --lmv-line:      rgba(26,32,48,.08);  /* separators */
  --lmv-accent:    #4a6fa5;   /* interactive: unread, selected, focus */
  --lmv-hover:     rgba(74,111,165,.06);
  --lmv-selected:  rgba(74,111,165,.11);
  --lmv-unread-bg: rgba(74,111,165,.07);
}

/* ── Page shell ──────────────────────────────────────────────────────────── */
body:not(.lmv-login-applied) {
  background: var(--lmv-bg) !important;
  color: var(--lmv-text) !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

/* ── Top navigation toolbar ──────────────────────────────────────────────── */
body:not(.lmv-login-applied) md-toolbar:not(.sg-mail-list md-toolbar):not([class*="mail-list"] md-toolbar),
body:not(.lmv-login-applied) .sg-toolbar:not(.sg-mail-list .sg-toolbar) {
  background: var(--lmv-nav) !important;
  color: rgba(255,255,255,.92) !important;
  box-shadow: 0 1px 0 rgba(0,0,0,.22) !important;
}

body:not(.lmv-login-applied) md-toolbar:not(.sg-mail-list md-toolbar) md-icon,
body:not(.lmv-login-applied) md-toolbar:not(.sg-mail-list md-toolbar) .material-icons {
  color: rgba(255,255,255,.82) !important;
  fill: rgba(255,255,255,.82) !important;
}

body:not(.lmv-login-applied) md-toolbar:not(.sg-mail-list md-toolbar) .md-button,
body:not(.lmv-login-applied) md-toolbar:not(.sg-mail-list md-toolbar) button {
  color: rgba(255,255,255,.86) !important;
}

body:not(.lmv-login-applied) md-toolbar:not(.sg-mail-list md-toolbar) .md-button:hover,
body:not(.lmv-login-applied) md-toolbar:not(.sg-mail-list md-toolbar) button:hover {
  background: rgba(255,255,255,.08) !important;
}

/* ── Sidebar ─────────────────────────────────────────────────────────────── */
body:not(.lmv-login-applied) md-sidenav,
body:not(.lmv-login-applied) .md-sidenav-left,
body:not(.lmv-login-applied) .sg-left-panel {
  background: var(--lmv-sidebar) !important;
  border-right: 1px solid var(--lmv-line) !important;
  box-shadow: none !important;
}

body:not(.lmv-login-applied) md-sidenav md-toolbar,
body:not(.lmv-login-applied) .md-sidenav-left md-toolbar,
body:not(.lmv-login-applied) .sg-left-panel md-toolbar {
  background: var(--lmv-nav) !important;
  box-shadow: 0 1px 0 rgba(0,0,0,.18) !important;
}

/* Folder rows */
body:not(.lmv-login-applied) md-sidenav md-list-item,
body:not(.lmv-login-applied) .md-sidenav-left md-list-item,
body:not(.lmv-login-applied) .sg-left-panel md-list-item {
  border-radius: 6px !important;
  margin: 1px 6px !important;
  min-height: 34px !important;
  color: #2c3a4a !important;
}

body:not(.lmv-login-applied) md-sidenav md-list-item:hover,
body:not(.lmv-login-applied) .md-sidenav-left md-list-item:hover {
  background: rgba(0,0,0,.05) !important;
}

body:not(.lmv-login-applied) md-sidenav md-list-item.active,
body:not(.lmv-login-applied) md-sidenav md-list-item.md-focused,
body:not(.lmv-login-applied) .md-sidenav-left md-list-item.active {
  background: var(--lmv-selected) !important;
  color: var(--lmv-accent) !important;
  font-weight: 600 !important;
}

/* Folder icons */
body:not(.lmv-login-applied) md-sidenav md-icon,
body:not(.lmv-login-applied) .md-sidenav-left md-icon,
body:not(.lmv-login-applied) md-sidenav .material-icons,
body:not(.lmv-login-applied) .sg-folder-list md-icon {
  color: #7a8a9a !important;
  opacity: 1 !important;
}

body:not(.lmv-login-applied) md-sidenav md-list-item.active md-icon,
body:not(.lmv-login-applied) md-sidenav md-list-item.active .material-icons {
  color: var(--lmv-accent) !important;
}

/* Unread count badge */
body:not(.lmv-login-applied) .sg-folder-unread-count,
body:not(.lmv-login-applied) [class*="unread-count"] {
  background: var(--lmv-accent) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 1px 6px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
}

/* ── Mail list pane ──────────────────────────────────────────────────────── */
body:not(.lmv-login-applied) md-content,
body:not(.lmv-login-applied) .sg-content,
body:not(.lmv-login-applied) .sg-mailbox,
body:not(.lmv-login-applied) .sg-mail-list,
body:not(.lmv-login-applied) [class*="mailbox"] {
  background: var(--lmv-surface) !important;
}

body:not(.lmv-login-applied) .sg-mail-list,
body:not(.lmv-login-applied) [class*="message-list"],
body:not(.lmv-login-applied) [class*="mail-list"] {
  border-right: 1px solid var(--lmv-line) !important;
}

/* Mail list secondary toolbar (sort/filter bar, the one that shows dates) */
body:not(.lmv-login-applied) .sg-mail-list md-toolbar,
body:not(.lmv-login-applied) [class*="mail-list"] md-toolbar,
body:not(.lmv-login-applied) .sg-mail-list .md-toolbar-tools,
body:not(.lmv-login-applied) [class*="mail-list"] .md-toolbar-tools {
  background: var(--lmv-nav-sub) !important;
  color: var(--lmv-text) !important;
  border-bottom: 1px solid var(--lmv-line) !important;
  box-shadow: none !important;
  min-height: 42px !important;
}

body:not(.lmv-login-applied) .sg-mail-list md-toolbar md-icon,
body:not(.lmv-login-applied) [class*="mail-list"] md-toolbar md-icon,
body:not(.lmv-login-applied) .sg-mail-list md-toolbar .material-icons {
  color: #8a96a3 !important;
  opacity: 1 !important;
}

/* Date group subheaders — Today / Yesterday / Last Week */
body:not(.lmv-login-applied) md-list .md-subheader,
body:not(.lmv-login-applied) .md-subheader {
  background: transparent !important;
  box-shadow: none !important;
  color: var(--lmv-muted) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  padding: 14px 14px 4px !important;
  min-height: 26px !important;
}

/* Date bar (the element detected by markDateBar JS) */
html body .lmv-r34-date-bar {
  background: var(--lmv-nav-sub) !important;
  border-top: none !important;
  border-bottom: 1px solid var(--lmv-line) !important;
  box-shadow: none !important;
  min-height: 42px !important;
}

html body .lmv-r34-date-bar,
html body .lmv-r34-date-bar * {
  color: var(--lmv-text) !important;
  text-shadow: none !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
}

/* Mail list row */
body:not(.lmv-login-applied) .sg-mail-row,
body:not(.lmv-login-applied) [class*="mail-row"],
body:not(.lmv-login-applied) [class*="message-row"],
body:not(.lmv-login-applied) .sg-mail-list md-list-item {
  border-bottom: 1px solid var(--lmv-line) !important;
  transition: background .1s ease !important;
}

body:not(.lmv-login-applied) .sg-mail-row:hover,
body:not(.lmv-login-applied) [class*="mail-row"]:hover {
  background: var(--lmv-hover) !important;
}

/* Selected row */
body:not(.lmv-login-applied) .sg-mail-row.md-focused,
body:not(.lmv-login-applied) .sg-mail-row.sg-selected,
body:not(.lmv-login-applied) [class*="mail-row"].md-focused,
body:not(.lmv-login-applied) [class*="mail-row"][aria-selected="true"] {
  background: var(--lmv-selected) !important;
  border-left: 3px solid var(--lmv-accent) !important;
}

/* Unread row: slightly warmer bg + bold sender */
body:not(.lmv-login-applied) .sg-mail-row.sg-mail-unread,
body:not(.lmv-login-applied) [class*="mail-row"][class*="unread"] {
  background: var(--lmv-unread-bg) !important;
}

/* Sender / subject / date in rows */
body:not(.lmv-login-applied) .sg-mail-list strong,
body:not(.lmv-login-applied) [class*="mail-list"] strong,
body:not(.lmv-login-applied) .sg-mail-list b {
  color: var(--lmv-text) !important;
  font-weight: 660 !important;
}

body:not(.lmv-login-applied) .sg-mail-list small,
body:not(.lmv-login-applied) [class*="mail-list"] small,
body:not(.lmv-login-applied) .secondary,
body:not(.lmv-login-applied) .md-secondary {
  color: var(--lmv-muted) !important;
}

/* Mail list icons (avatar/person) */
body:not(.lmv-login-applied) .sg-mail-list md-icon,
body:not(.lmv-login-applied) [class*="mail-list"] md-icon {
  color: #b0bac5 !important;
  opacity: 1 !important;
}

/* ── Message reading pane ───────────────────────────────────────────────── */
body:not(.lmv-login-applied) .sg-mail-view,
body:not(.lmv-login-applied) [class*="message-view"],
body:not(.lmv-login-applied) [class*="mail-view"] {
  background: var(--lmv-surface) !important;
}

/* Message pane toolbar */
body:not(.lmv-login-applied) .sg-mail-view md-toolbar,
body:not(.lmv-login-applied) [class*="message-view"] md-toolbar,
body:not(.lmv-login-applied) [class*="mail-view"] md-toolbar {
  background: var(--lmv-nav-sub) !important;
  color: var(--lmv-text) !important;
  border-bottom: 1px solid var(--lmv-line) !important;
  box-shadow: none !important;
}

/* ── Compose: floating button ────────────────────────────────────────────── */
body:not(.lmv-login-applied) .md-fab,
body:not(.lmv-login-applied) button.md-fab {
  background: var(--lmv-accent) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(74,111,165,.35) !important;
}

body:not(.lmv-login-applied) .md-fab:hover,
body:not(.lmv-login-applied) button.md-fab:hover {
  filter: brightness(1.08) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 7px 20px rgba(74,111,165,.42) !important;
}

/* ── Menus and dropdowns ─────────────────────────────────────────────────── */
body:not(.lmv-login-applied) md-menu-content,
body:not(.lmv-login-applied) .md-open-menu-container md-menu-content {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.12) !important;
  border-radius: 8px !important;
}

body:not(.lmv-login-applied) md-menu-item,
body:not(.lmv-login-applied) .md-menu-item {
  color: var(--lmv-text) !important;
}

body:not(.lmv-login-applied) md-menu-item:hover,
body:not(.lmv-login-applied) .md-menu-item:hover {
  background: var(--lmv-hover) !important;
}

body:not(.lmv-login-applied) md-menu-item md-icon,
body:not(.lmv-login-applied) .md-menu-item md-icon {
  color: #8a96a3 !important;
}

/* ── Tabs (Calendar, Contacts, etc.) ────────────────────────────────────── */
body:not(.lmv-login-applied) md-tabs-wrapper,
body:not(.lmv-login-applied) .md-tabs-wrapper {
  background: var(--lmv-nav) !important;
  border-bottom: none !important;
}

body:not(.lmv-login-applied) md-tab-item,
body:not(.lmv-login-applied) .md-tab {
  color: rgba(255,255,255,.65) !important;
}

body:not(.lmv-login-applied) md-tab-item.md-active,
body:not(.lmv-login-applied) .md-tab.md-active,
body:not(.lmv-login-applied) ._md-nav-button.md-focused,
body:not(.lmv-login-applied) ._md-nav-button._md-nav-button-active {
  color: #fff !important;
}

body:not(.lmv-login-applied) md-ink-bar,
body:not(.lmv-login-applied) .md-tab-ink-bar {
  background: var(--lmv-accent) !important;
  color: var(--lmv-accent) !important;
}

/* ── Dialogs / modals ────────────────────────────────────────────────────── */
body:not(.lmv-login-applied) md-dialog {
  border-radius: 12px !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.18) !important;
}

body:not(.lmv-login-applied) md-dialog md-toolbar {
  background: var(--lmv-nav) !important;
  border-radius: 12px 12px 0 0 !important;
}

/* ── Buttons (general) ───────────────────────────────────────────────────── */
body:not(.lmv-login-applied) .md-button.md-primary,
body:not(.lmv-login-applied) button.md-primary {
  color: var(--lmv-accent) !important;
}

body:not(.lmv-login-applied) .md-button.md-raised.md-primary,
body:not(.lmv-login-applied) button.md-raised.md-primary {
  background: var(--lmv-accent) !important;
  color: #fff !important;
}

/* ── Focus rings ─────────────────────────────────────────────────────────── */
body:not(.lmv-login-applied) *:focus-visible {
  outline: 2px solid var(--lmv-accent) !important;
  outline-offset: 2px !important;
}

/* ── Scrollbars ──────────────────────────────────────────────────────────── */
body:not(.lmv-login-applied) ::-webkit-scrollbar {
  width: 5px !important;
  height: 5px !important;
}

body:not(.lmv-login-applied) ::-webkit-scrollbar-track {
  background: transparent !important;
}

body:not(.lmv-login-applied) ::-webkit-scrollbar-thumb {
  background: rgba(26,32,48,.16) !important;
  border-radius: 999px !important;
}

body:not(.lmv-login-applied) ::-webkit-scrollbar-thumb:hover {
  background: rgba(26,32,48,.28) !important;
}

/* ── Loading bar ─────────────────────────────────────────────────────────── */
body:not(.lmv-login-applied) md-progress-linear .md-bar {
  background: var(--lmv-accent) !important;
}

body:not(.lmv-login-applied) md-progress-linear .md-container {
  background: rgba(74,111,165,.14) !important;
}

/* LMV_WEBMAIL_THEME_R39_END */

/* LMV_MAIL_SECURITY_R25J_BEGIN */

/*
  R25J: Rabbit icon remains black; only ring/shadow changes.
  Bright high-contrast shadows survive the green SOGo header.
*/

.lmv-security-light,
.lmv-security-panel,
.lmv-mail-security-badge,
.lmv-security-trilights {
  display: none !important;
}

.lmv-security-avatar-icon {
  position: relative !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  overflow: visible !important;
  border-radius: 999px !important;
  color: transparent !important;
  fill: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transform: translateZ(0) scale(1.01) !important;
}

.lmv-security-avatar-icon::before {
  content: "" !important;
  position: absolute !important;
  inset: -1px !important;
  display: block !important;
  background: #06121e !important;
  -webkit-mask: url("/SOGo.woa/WebServerResources/lmv-login-theme/security-rabbit-avatar.png") center / contain no-repeat !important;
  mask: url("/SOGo.woa/WebServerResources/lmv-login-theme/security-rabbit-avatar.png") center / contain no-repeat !important;
  opacity: .98 !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.lmv-security-avatar-icon::after {
  content: "" !important;
  position: absolute !important;
  inset: -5px !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow:
    0 0 0 2px var(--lmv-security-ring, rgba(255, 214, 41, .70)),
    0 0 10px var(--lmv-security-glow-a, rgba(255, 214, 41, .90)),
    0 0 18px var(--lmv-security-glow-b, rgba(255, 214, 41, .48)) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

.lmv-security-avatar-icon[data-lmv-security-status="green"] {
  --lmv-security-ring: rgba(0, 255, 72, .78);
  --lmv-security-glow-a: rgba(0, 255, 72, .96);
  --lmv-security-glow-b: rgba(0, 255, 72, .58);
  filter: drop-shadow(0 0 7px rgba(0, 255, 72, .82)) !important;
}

.lmv-security-avatar-icon[data-lmv-security-status="amber"],
.lmv-security-avatar-icon[data-lmv-security-status="checking"] {
  --lmv-security-ring: rgba(255, 214, 41, .80);
  --lmv-security-glow-a: rgba(255, 214, 41, .98);
  --lmv-security-glow-b: rgba(255, 214, 41, .60);
  filter: drop-shadow(0 0 7px rgba(255, 214, 41, .84)) !important;
}

.lmv-security-avatar-icon[data-lmv-security-status="red"] {
  --lmv-security-ring: rgba(255, 48, 48, .80);
  --lmv-security-glow-a: rgba(255, 48, 48, .98);
  --lmv-security-glow-b: rgba(255, 48, 48, .60);
  filter: drop-shadow(0 0 7px rgba(255, 48, 48, .84)) !important;
}

.lmv-security-avatar-icon[data-lmv-security-status="checking"]::after {
  animation: lmvRabbitShadowPulse 1.1s ease-in-out infinite alternate;
}

@keyframes lmvRabbitShadowPulse {
  from { opacity: .74; }
  to { opacity: 1; }
}

.lmv-security-detail-panel {
  position: fixed;
  top: 92px;
  left: 18px;
  z-index: 10001;
  width: min(390px, calc(100vw - 30px));
  max-height: min(70vh, 520px);
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(16,32,51,.12);
  background: rgba(255,255,250,.97);
  box-shadow: 0 18px 46px rgba(7,25,43,.20);
  color: #102033;
  display: none;
  backdrop-filter: blur(10px);
}

.lmv-security-detail-panel[data-open="true"] { display: block; }
.lmv-security-detail-head { padding: 12px 14px; border-bottom: 1px solid rgba(16,32,51,.10); }
.lmv-security-detail-head strong { display:block; font-size:13.5px; line-height:1.25; color:#102033; }
.lmv-security-detail-head span { display:block; margin-top:3px; font-size:12px; color:#667789; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lmv-security-detail-body { max-height:430px; overflow:auto; padding:8px 12px 12px; }
.lmv-security-row { display:grid; grid-template-columns:22px 1fr; gap:8px; padding:7px 0; border-bottom:1px solid rgba(16,32,51,.06); }
.lmv-security-row:last-child { border-bottom:0; }
.lmv-security-row-icon { width:19px; height:19px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:900; background:#c8952d; }
.lmv-security-row[data-status="green"] .lmv-security-row-icon { background:#3d9c62; }
.lmv-security-row[data-status="red"] .lmv-security-row-icon { background:#b44d4d; }
.lmv-security-row strong { display:block; font-size:12.5px; line-height:1.25; color:#102033; }
.lmv-security-row span { display:block; margin-top:2px; font-size:11.6px; line-height:1.35; color:#667789; }
.lmv-security-error { padding:12px; color:#704848; font-size:12px; line-height:1.35; }

/* LMV_MAIL_SECURITY_R25J_END */

/* LMV_MAIL_SECURITY_R25K_BEGIN */
/*
  R25K: keep the rabbit icon black, enlarge it so it nearly meets the ring,
  and make the coloured ring/glow brighter and more readable.
*/

.lmv-security-avatar-icon {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
}

.lmv-security-avatar-icon::before {
  inset: -2px !important;
  background: #111111 !important;
  -webkit-mask: url("/SOGo.woa/WebServerResources/lmv-login-theme/security-rabbit-avatar.png") center / 88% 88% no-repeat !important;
  mask: url("/SOGo.woa/WebServerResources/lmv-login-theme/security-rabbit-avatar.png") center / 88% 88% no-repeat !important;
  opacity: 1 !important;
  z-index: 2 !important;
}

.lmv-security-avatar-icon::after {
  inset: -4px !important;
  background: transparent !important;
  opacity: 1 !important;
  box-shadow:
    0 0 0 2px var(--lmv-security-ring, rgba(255, 216, 74, .78)),
    0 0 11px var(--lmv-security-glow-a, rgba(255, 216, 74, .62)),
    0 0 20px var(--lmv-security-glow-b, rgba(255, 216, 74, .34)) !important;
}

.lmv-security-avatar-icon[data-lmv-security-status="green"] {
  --lmv-security-ring: rgba(56, 255, 109, .88);
  --lmv-security-glow-a: rgba(56, 255, 109, .68);
  --lmv-security-glow-b: rgba(56, 255, 109, .38);
  filter: none !important;
}

.lmv-security-avatar-icon[data-lmv-security-status="amber"],
.lmv-security-avatar-icon[data-lmv-security-status="checking"] {
  --lmv-security-ring: rgba(255, 209, 59, .86);
  --lmv-security-glow-a: rgba(255, 209, 59, .66);
  --lmv-security-glow-b: rgba(255, 209, 59, .36);
  filter: none !important;
}

.lmv-security-avatar-icon[data-lmv-security-status="red"] {
  --lmv-security-ring: rgba(255, 92, 92, .88);
  --lmv-security-glow-a: rgba(255, 92, 92, .68);
  --lmv-security-glow-b: rgba(255, 92, 92, .38);
  filter: none !important;
}
/* LMV_MAIL_SECURITY_R25K_END */


/* LMV_MAIL_SECURITY_R25N_BEGIN */
/*
  R25N: zero-gap avatar/ring fit.
  The image fills the avatar area; the ring starts at the same edge.
  No visible teal gap should remain between the black circle and status ring.
*/
html body .lmv-security-avatar-icon {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  border-radius: 999px !important;
  overflow: visible !important;
  transform: translateZ(0) scale(1) !important;
}

html body .lmv-security-avatar-icon::before {
  inset: 0 !important;
  border-radius: 999px !important;
  background: url("/SOGo.woa/WebServerResources/lmv-login-theme/security-rabbit-avatar.png") center / 100% 100% no-repeat !important;
  -webkit-mask: none !important;
  mask: none !important;
  opacity: 1 !important;
  z-index: 2 !important;
}

html body .lmv-security-avatar-icon::after {
  inset: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  opacity: 1 !important;
  box-shadow:
    0 0 0 2px var(--lmv-security-ring, rgba(255, 214, 41, .86)),
    0 0 10px var(--lmv-security-glow-a, rgba(255, 214, 41, .82)),
    0 0 18px var(--lmv-security-glow-b, rgba(255, 214, 41, .48)) !important;
  z-index: 3 !important;
  pointer-events: none !important;
}
/* LMV_MAIL_SECURITY_R25N_END */

/* LMV_SOGO_ENTITY_ACTION_UI_R34_BEGIN */
/*
  R34: legal usability shell polish + safe entity-action UI scaffold.
  CSS only; paired JS adds classes and draft-only action forms.
*/

/* Date/header strip: grey slab with pressed-in legal register look. */
.lmv-r34-date-bar {
  background: linear-gradient(180deg, #e7e9ec 0%, #cfd3d8 100%) !important;
  border-top: 1px solid rgba(255,255,255,.76) !important;
  border-bottom: 1px solid rgba(67,78,91,.24) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.75),
    inset 0 -1px 0 rgba(67,78,91,.14) !important;
}

.lmv-r34-date-bar,
.lmv-r34-date-bar * {
  color: #647181 !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.72),
    0 -1px 0 rgba(38,50,63,.22) !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
}

/* Search/action strip: tinted by current rabbit security status. */
.lmv-r34-search-bar {
  transition: background .18s ease, box-shadow .18s ease, border-color .18s ease !important;
  border-bottom: 1px solid rgba(7,25,43,.18) !important;
}

.lmv-r34-search-bar.lmv-r34-security-green {
  background: linear-gradient(180deg, rgba(56,255,109,.26), rgba(56,255,109,.12)) !important;
  box-shadow: inset 0 -1px 0 rgba(56,255,109,.38), 0 1px 8px rgba(56,255,109,.12) !important;
}

.lmv-r34-search-bar.lmv-r34-security-amber,
.lmv-r34-search-bar.lmv-r34-security-checking {
  background: linear-gradient(180deg, rgba(255,214,41,.26), rgba(255,214,41,.12)) !important;
  box-shadow: inset 0 -1px 0 rgba(255,214,41,.38), 0 1px 8px rgba(255,214,41,.12) !important;
}

.lmv-r34-search-bar.lmv-r34-security-red {
  background: linear-gradient(180deg, rgba(255,48,48,.22), rgba(255,48,48,.10)) !important;
  box-shadow: inset 0 -1px 0 rgba(255,48,48,.38), 0 1px 8px rgba(255,48,48,.12) !important;
}

.lmv-r34-search-bar input,
.lmv-r34-search-bar md-input-container,
.lmv-r34-search-bar .md-input {
  color: #102033 !important;
}




/* Modal shell for create agency/client scaffold. */
.lmv-r34-overlay {
  position: fixed;
  inset: 0;
  z-index: 22000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(3,12,22,.42);
  backdrop-filter: blur(4px);
}

.lmv-r34-overlay[data-open="true"] {
  display: flex;
}

.lmv-r34-dialog {
  width: min(520px, calc(100vw - 28px));
  max-height: min(680px, calc(100vh - 38px));
  overflow: hidden;
  border-radius: 18px;
  background: #fffefa;
  border: 1px solid rgba(16,32,51,.15);
  box-shadow: 0 24px 70px rgba(3,12,22,.28);
  color: #102033;
}

.lmv-r34-dialog-head {
  padding: 16px 18px;
  background: linear-gradient(180deg, #f6f3ea, #e8e2d2);
  border-bottom: 1px solid rgba(16,32,51,.10);
  display: flex;
  align-items: center;
  gap: 10px;
}

.lmv-r34-dialog-head strong {
  font-size: 16px;
  line-height: 1.2;
}

.lmv-r34-dialog-head span {
  display: block;
  color: #667789;
  font-size: 12px;
  margin-top: 2px;
}

.lmv-r34-dialog-body {
  padding: 16px 18px 12px;
  overflow: auto;
  max-height: 520px;
}

.lmv-r34-field {
  display: grid;
  gap: 5px;
  margin-bottom: 12px;
}

.lmv-r34-field label {
  font-size: 12px;
  font-weight: 700;
  color: #405164;
}

.lmv-r34-field input,
.lmv-r34-field select,
.lmv-r34-field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(16,32,51,.18);
  border-radius: 10px;
  padding: 10px 11px;
  font-size: 14px;
  background: #ffffff;
  color: #102033;
  outline: none;
}

.lmv-r34-field input:focus,
.lmv-r34-field select:focus,
.lmv-r34-field textarea:focus {
  border-color: #0f8f88;
  box-shadow: 0 0 0 3px rgba(15,143,136,.14);
}

.lmv-r34-dialog-foot {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 18px 16px;
  border-top: 1px solid rgba(16,32,51,.08);
  background: #fbfaf5;
}

.lmv-r34-btn {
  border: 0;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 700;
  cursor: pointer;
}

.lmv-r34-btn-secondary {
  background: #e6e9ed;
  color: #253647;
}

.lmv-r34-btn-primary {
  background: #0f6f6d;
  color: #fff;
}

.lmv-r34-status {
  margin-top: 8px;
  padding: 9px 10px;
  border-radius: 10px;
  background: #f1f4f4;
  color: #405164;
  font-size: 12px;
  line-height: 1.35;
}

/* LMV_SOGO_ENTITY_ACTION_UI_R34_END */

/* LMV_SOGO_TOPBAR_TIDY_R34C_BEGIN */
/*
  R34C: tidy the R34 top-bar polish.
  Reduce visual noise, keep the pressed date-strip, and make the search/action
  tint subtle rather than messy.
*/

/* More restrained pressed date/header strip. */
html body .lmv-r34-date-bar {
  background: linear-gradient(180deg, #e4e7eb 0%, #d1d6dc 100%) !important;
  border-top: 1px solid rgba(255,255,255,.64) !important;
  border-bottom: 1px solid rgba(48,60,73,.18) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.56),
    inset 0 -1px 0 rgba(48,60,73,.10) !important;
  min-height: 38px !important;
}

/* Pressed text without the heavy embossed/messy look. */
html body .lmv-r34-date-bar,
html body .lmv-r34-date-bar * {
  color: #536273 !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.55),
    0 -1px 0 rgba(36,48,61,.12) !important;
  font-weight: 600 !important;
  letter-spacing: .005em !important;
}

/* Search/action bar: subtle tint keyed to rabbit status, cleaner spacing. */
html body .lmv-r34-search-bar {
  min-height: 42px !important;
  border-bottom: 1px solid rgba(7,25,43,.10) !important;
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.20) !important;
  backdrop-filter: blur(2px);
}

/* Keep the colour, lower the mess. */
html body .lmv-r34-search-bar.lmv-r34-security-green {
  background: linear-gradient(180deg, rgba(56,255,109,.13), rgba(56,255,109,.055)) !important;
  box-shadow: inset 0 -1px 0 rgba(56,255,109,.24) !important;
}

html body .lmv-r34-search-bar.lmv-r34-security-amber,
html body .lmv-r34-search-bar.lmv-r34-security-checking {
  background: linear-gradient(180deg, rgba(255,214,41,.15), rgba(255,214,41,.06)) !important;
  box-shadow: inset 0 -1px 0 rgba(255,214,41,.25) !important;
}

html body .lmv-r34-search-bar.lmv-r34-security-red {
  background: linear-gradient(180deg, rgba(255,48,48,.13), rgba(255,48,48,.055)) !important;
  box-shadow: inset 0 -1px 0 rgba(255,48,48,.24) !important;
}

/* Make controls inside the tinted strip readable and less cramped. */
html body .lmv-r34-search-bar md-icon,
html body .lmv-r34-search-bar .material-icons {
  color: rgba(16,32,51,.78) !important;
}

html body .lmv-r34-search-bar input,
html body .lmv-r34-search-bar .md-input,
html body .lmv-r34-search-bar md-input-container {
  color: #102033 !important;
  text-shadow: none !important;
}

html body .lmv-r34-search-bar .md-button,
html body .lmv-r34-search-bar button {
  border-radius: 10px !important;
}

html body .lmv-r34-search-bar .md-button:hover,
html body .lmv-r34-search-bar button:hover {
  background: rgba(255,255,255,.28) !important;
}


/* Keep entity dialog buttons tidy and less bulky. */
html body .lmv-r34-dialog-head {
  background: linear-gradient(180deg, #f7f5ee, #ede7d8) !important;
}

html body .lmv-r34-btn-primary {
  background: #0f6f6d !important;
  box-shadow: 0 2px 8px rgba(15,111,109,.18) !important;
}

html body .lmv-r34-status {
  background: #f4f6f6 !important;
  border: 1px solid rgba(16,32,51,.08) !important;
}

/* LMV_SOGO_TOPBAR_TIDY_R34C_END */

/* LMV_MAIL_SECURITY_R37_BEGIN */
/*
  R37: "known history changed" critical-red display.
  The rabbit remains black. Only the ring/glow becomes heavier when a sender
  known to Vault or historically green now fails hard authentication/alignment.
*/
html body .lmv-security-avatar-icon[data-lmv-risk-level="critical"]::after {
  inset: -2px !important;
  box-shadow:
    0 0 0 3px rgba(255, 24, 24, .98),
    0 0 12px rgba(255, 24, 24, .96),
    0 0 24px rgba(255, 24, 24, .72),
    0 0 38px rgba(255, 24, 24, .42) !important;
  animation: lmvR37CriticalPulse .78s ease-in-out infinite alternate !important;
}

html body .lmv-security-avatar-icon[data-lmv-risk-level="critical"] {
  --lmv-security-ring: rgba(255, 24, 24, .98) !important;
  --lmv-security-glow-a: rgba(255, 24, 24, .98) !important;
  --lmv-security-glow-b: rgba(255, 24, 24, .68) !important;
}

@keyframes lmvR37CriticalPulse {
  from { opacity: .78; transform: scale(.98); }
  to { opacity: 1; transform: scale(1.04); }
}

html body .lmv-security-row[data-status="red"][data-critical="true"] .lmv-security-row-icon {
  background: #ff1818 !important;
  box-shadow: 0 0 0 2px rgba(255,24,24,.22), 0 0 12px rgba(255,24,24,.55) !important;
}
/* LMV_MAIL_SECURITY_R37_END */

/* LMV_SOGO_PREFERENCES_THEME_R235_BEGIN */
html.lmv-preferences-theme,
html.lmv-preferences-theme body,
html.lmv-preferences-theme body.lmv-preferences-theme {
  background: #eef3f6 !important;
  color: #172033 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme {
  overflow: hidden !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme .lmv-login-shell {
  display: none !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme > * {
  font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme main.view,
html.lmv-preferences-theme body.lmv-preferences-theme .view-main,
html.lmv-preferences-theme body.lmv-preferences-theme [ui-view="preferences"],
html.lmv-preferences-theme body.lmv-preferences-theme [ui-view="general"],
html.lmv-preferences-theme body.lmv-preferences-theme .view-detail {
  background: #eef3f6 !important;
  color: #172033 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-toolbar,
html.lmv-preferences-theme body.lmv-preferences-theme .toolbar-main,
html.lmv-preferences-theme body.lmv-preferences-theme md-toolbar.md-default-theme,
html.lmv-preferences-theme body.lmv-preferences-theme md-toolbar.md-primary {
  background: #17364d !important;
  color: #ffffff !important;
  box-shadow: 0 2px 10px rgba(9, 31, 48, .18) !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-toolbar md-icon,
html.lmv-preferences-theme body.lmv-preferences-theme md-toolbar .md-button,
html.lmv-preferences-theme body.lmv-preferences-theme md-toolbar .md-button md-icon {
  color: #ffffff !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-sidenav,
html.lmv-preferences-theme body.lmv-preferences-theme .view-list,
html.lmv-preferences-theme body.lmv-preferences-theme md-sidenav md-content,
html.lmv-preferences-theme body.lmv-preferences-theme .view-list md-content {
  background: #fbfcfd !important;
  color: #243447 !important;
  border-right: 1px solid rgba(23, 54, 77, .12) !important;
  box-shadow: 6px 0 22px rgba(9, 31, 48, .07) !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-list-item,
html.lmv-preferences-theme body.lmv-preferences-theme md-list-item .md-list-item-text h3,
html.lmv-preferences-theme body.lmv-preferences-theme md-list-item .md-list-item-text h4,
html.lmv-preferences-theme body.lmv-preferences-theme md-list-item .md-list-item-text p {
  color: #243447 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-list-item:hover,
html.lmv-preferences-theme body.lmv-preferences-theme md-list-item.md-focused,
html.lmv-preferences-theme body.lmv-preferences-theme md-list-item._md-focused,
html.lmv-preferences-theme body.lmv-preferences-theme .md-button.md-focused {
  background: rgba(23, 96, 117, .10) !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme .view-detail .viewer,
html.lmv-preferences-theme body.lmv-preferences-theme .view-detail md-content,
html.lmv-preferences-theme body.lmv-preferences-theme md-content {
  background: #eef3f6 !important;
  color: #172033 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme .view-detail md-card,
html.lmv-preferences-theme body.lmv-preferences-theme md-card,
html.lmv-preferences-theme body.lmv-preferences-theme md-dialog {
  background: #ffffff !important;
  color: #172033 !important;
  border: 1px solid rgba(23, 54, 77, .11) !important;
  border-radius: 8px !important;
  box-shadow: 0 16px 44px rgba(9, 31, 48, .10) !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-card md-card-title,
html.lmv-preferences-theme body.lmv-preferences-theme md-card md-card-content,
html.lmv-preferences-theme body.lmv-preferences-theme md-dialog-content,
html.lmv-preferences-theme body.lmv-preferences-theme .md-subhead,
html.lmv-preferences-theme body.lmv-preferences-theme .md-title {
  color: #172033 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-input-container .md-input,
html.lmv-preferences-theme body.lmv-preferences-theme md-input-container input,
html.lmv-preferences-theme body.lmv-preferences-theme md-input-container textarea,
html.lmv-preferences-theme body.lmv-preferences-theme md-select .md-select-value {
  color: #102033 !important;
  border-color: rgba(23, 54, 77, .26) !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-input-container label,
html.lmv-preferences-theme body.lmv-preferences-theme md-input-container .md-placeholder,
html.lmv-preferences-theme body.lmv-preferences-theme md-input-container > md-icon,
html.lmv-preferences-theme body.lmv-preferences-theme md-select-value,
html.lmv-preferences-theme body.lmv-preferences-theme md-select .md-select-icon {
  color: #586a7d !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-input-container.md-input-focused label,
html.lmv-preferences-theme body.lmv-preferences-theme md-input-container.md-input-focused > md-icon,
html.lmv-preferences-theme body.lmv-preferences-theme md-input-container.md-input-focused .md-input {
  color: #116a70 !important;
  border-color: #116a70 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme .md-button.md-primary,
html.lmv-preferences-theme body.lmv-preferences-theme .md-button.md-accent {
  color: #0d6469 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme .md-button.md-raised.md-primary,
html.lmv-preferences-theme body.lmv-preferences-theme .md-button.md-raised.md-accent,
html.lmv-preferences-theme body.lmv-preferences-theme .md-button.md-fab.md-primary,
html.lmv-preferences-theme body.lmv-preferences-theme .md-button.md-fab.md-accent {
  background: #116a70 !important;
  color: #ffffff !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-checkbox.md-checked .md-icon,
html.lmv-preferences-theme body.lmv-preferences-theme md-switch.md-checked .md-thumb {
  background-color: #116a70 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-switch.md-checked .md-bar {
  background-color: rgba(17, 106, 112, .42) !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-tabs-wrapper {
  background: #ffffff !important;
  border-color: rgba(23, 54, 77, .12) !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-tab-item,
html.lmv-preferences-theme body.lmv-preferences-theme md-tab-item span {
  color: #526579 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-tab-item.md-active,
html.lmv-preferences-theme body.lmv-preferences-theme md-tab-item.md-active span {
  color: #0d6469 !important;
}

html.lmv-preferences-theme body.lmv-preferences-theme md-ink-bar {
  background: #0d6469 !important;
  color: #0d6469 !important;
}

@media (min-width: 960px) {
  html.lmv-preferences-theme body.lmv-preferences-theme .view-list {
    max-width: 320px !important;
    flex-basis: 320px !important;
  }

  html.lmv-preferences-theme body.lmv-preferences-theme .view-detail .viewer {
    padding: 22px 28px !important;
  }

  html.lmv-preferences-theme body.lmv-preferences-theme .view-detail md-card,
  html.lmv-preferences-theme body.lmv-preferences-theme md-card {
    max-width: none !important;
  }
}

@media (max-width: 959px) {
  html.lmv-preferences-theme body.lmv-preferences-theme .view-detail .viewer {
    padding: 12px !important;
  }

  html.lmv-preferences-theme body.lmv-preferences-theme md-card {
    margin: 8px !important;
  }
}
/* LMV_SOGO_PREFERENCES_THEME_R235_END */
