@font-face {
  font-family: "Roboto Light";
  src: url("fonts/Roboto-Light.woff2") format("woff2"), url("fonts/Roboto-Light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Roboto Medium";
  src: url("fonts/Roboto-Medium.woff2") format("woff2"), url("fonts/Roboto-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Roboto";
  src: url("fonts/Roboto-Regular.woff2") format("woff2"), url("fonts/Roboto-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Roboto Bold";
  src: url("fonts/Roboto-Bold.woff2") format("woff2"), url("fonts/Roboto-Bold.woff") format("woff");
  font-style: normal;
  font-display: swap;
}

/* ANCHOR - root */
:root {
  --c-ink:          oklch(18% 0.015 265);
  --c-canvas:       oklch(95% 0.005 265);
  --c-panel:        oklch(99.5% 0.0015 265);
  --c-surface:      oklch(99.5% 0.0015 265);
  --c-surface-dim:  oklch(97% 0.004 265);
  --c-surface-card: oklch(96% 0.005 265);
  --c-border:       oklch(89% 0.006 265);
  --c-border-light: oklch(93.5% 0.004 265);
  --c-hover:        oklch(96.5% 0.004 265);
  --c-muted:        oklch(52% 0.012 265);
  --c-faint:        oklch(64% 0.01 265);
  --ease:           cubic-bezier(0.22, 1, 0.36, 1);
  --t:              180ms var(--ease);
  --r-card:         18px;
  --r-control:      11px;
  --shadow-card:
    0 1px 2px oklch(30% 0.03 265 / 0.04),
    0 6px 16px -4px oklch(30% 0.03 265 / 0.06),
    0 18px 40px -14px oklch(30% 0.03 265 / 0.09);
  --shadow-hover:
    0 1px 2px oklch(30% 0.03 265 / 0.05),
    0 10px 24px -6px oklch(30% 0.03 265 / 0.09),
    0 28px 56px -18px oklch(30% 0.03 265 / 0.13);
  --shadow-pop:
    0 4px 10px -3px oklch(22% 0.02 265 / 0.12),
    0 14px 40px -8px oklch(22% 0.02 265 / 0.22);
  --bs-border-color: var(--c-border);
}

/**/
.otgs-development-site-front-end {
  display: none !important;
}

body {
  font-family: system-ui, -apple-system, "Segoe UI", "Roboto", sans-serif;
  font-size: 15px;
  color: var(--c-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

b,
strong {
  font-family: "Roboto Bold";
  font-weight: 700;
}

p:last-child {
  margin-bottom: 0;
}

#primary {
  margin-top: 80px;
  margin-bottom: auto;
}

.container-fluid {
  max-width: 1600px;
  --bs-gutter-x: 3rem;
}

input[type=text],
input[type=password],
input[type=submit],
button,
textarea,
input[type=email],
select,
select.form-select {
  cursor: pointer;
}

input[type=text],
input[type=password],
input[type=email],
select,
select.form-select {
  padding: 0 12px;
  line-height: 44px;
}

textarea {
  padding: 8px 12px;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px rgb(252, 252, 253) inset;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
}

/*
// ANCHOR: menu
*/
#nav-main .navbar-brand img {
  height: 30px;
  display: block;
}

#nav-main .menu {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  margin: 0;
  padding: 0;
}

#nav-main .menu li {
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: 0.08em;
  display: flex;
  align-items: center;
  cursor: pointer;
  position: relative;
}

#nav-main .menu li img {
  width: 16px;
  margin-right: 10px;
}

#nav-main .menu li::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 0px;
  background-color: var(--c-ink);
  transition: height var(--t);
}

#nav-main .menu li:hover::before {
  height: 2px;
}

#nav-main .menu li.active::before {
  height: 2px;
}

#nav-main .menu li a {
  text-decoration: none;
  color: var(--c-ink);
  font-family: "Roboto";
}

#nav-main .lang-switcher {
  position: relative;
}

#nav-main .lang-switcher .dropdown {
  width: 10px;
  margin-right: 0;
  margin-left: 6px;
  vertical-align: middle;
}

#nav-main .lang-switcher ul {
  position: absolute;
  left: calc(50% - 80px);
  width: 160px;
  background-color: var(--c-surface);
  padding: 10px;
  top: calc(100% + 20px);
  text-align: center;
  z-index: 1;
  box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.12), 0 0 0 1px var(--c-border);
  transition: all var(--t);
}

@media (max-width: 1699px) {
  #nav-main .lang-switcher ul {
    left: unset;
    right: -10px;
  }
}

#nav-main .lang-switcher ul li {
  line-height: 28px;
  display: block;
}

#nav-main .lang-switcher ul li:hover {
  text-decoration: underline;
}

#nav-main .lang-switcher ul li:hover::before {
  height: 0;
}

#nav-main .lang-switcher .current:not(:focus)+ul {
  visibility: hidden;
  opacity: 0;
  transition-delay: 0.3s;
  transform: translateY(-12px);
}

/* END menu */
/*
// ANCHOR: file manager
*/
.fm {
  margin-bottom: 80px;
}

.fm .header-fm {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.fm .header-fm .breadcrumbs {
  font-size: 13px;
  letter-spacing: 0.03em;
  color: var(--c-muted);
  margin-bottom: 20px;
}

.fm .header-fm .breadcrumbs a {
  color: var(--c-ink);
  text-decoration: none;
  position: relative;
}

.fm .header-fm .breadcrumbs a::before {
  content: "";
  position: absolute;
  top: -6px;
  bottom: -6px;
  left: -10px;
  right: -10px;
  background-color: var(--c-hover);
  opacity: 0;
  z-index: -1;
  border-radius: 5px;
  transition: opacity var(--t);
}

.fm .header-fm .breadcrumbs a:not(:last-child) {
  margin-right: 15px;
}

.fm .header-fm .breadcrumbs a:not(:first-child) {
  margin-left: 15px;
}

.fm .header-fm .breadcrumbs a:hover {
  text-decoration: none;
}

.fm .header-fm .breadcrumbs a:hover::before {
  opacity: 1;
}

.fm .header-fm .search {
  margin-left: auto;
  max-width: 100%;
}

.fm .header-fm .search form {
  position: relative;
}

.fm .header-fm .search form .spinner-grow {
  position: absolute;
  right: 12px;
  top: calc(50% - 8px);
}

.fm .header-fm .search #ajax-search {
  width: 480px;
  max-width: 100%;
  border-radius: 8px;
  border: 1px solid var(--c-border);
  transition: border-color var(--t), box-shadow var(--t);
}

.fm .header-fm .search #ajax-search:focus {
  border-color: var(--c-ink);
  box-shadow: 0 0 0 3px oklch(9% 0.01 265 / 0.08);
  outline: none;
}

@media (max-width: 575px) {
  .fm .header-fm .search #ajax-search {
    width: 575px;
  }
}

.fm .header-fm .search #search-results {
  position: absolute;
  overflow: auto;
  max-height: 200px;
  width: 100%;
  z-index: 1;
  background-color: var(--c-surface);
  border: 1px solid var(--c-border);
  border-top: none;
  border-radius: 0 0 8px 8px;
  box-shadow: 0 8px 20px -4px rgba(0, 0, 0, 0.1);
  transition: all var(--t);
}

.fm .header-fm .search #search-results .item a {
  color: var(--c-ink);
  text-decoration: none;
  padding: 10px 12px;
  display: block;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background-color var(--t);
}

.fm .header-fm .search #search-results .item a:hover {
  background-color: var(--c-hover);
}

.fm .header-fm .search #search-results .item a img.icon-type {
  width: 22px;
  height: 22px;
  margin-right: 12px;
}

.fm .header-fm .search #search-results .no-found {
  color: var(--c-muted);
  text-decoration: none;
  padding: 10px 12px;
  display: block;
  text-align: center;
  font-size: 13px;
}

.fm .header-fm .search #ajax-search:not(:focus)+#search-results {
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px);
}

.fm .header-fm .multiple-edit {
  margin-top: 10px;
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

.fm .header-fm .multiple-edit .btn-enable-edit {
  margin-left: auto;
  display: block;
  margin-left: 10px;
}

.fm .header-fm .multiple-edit .btn-enable-edit svg {
  height: 18px;
  width: 18px;
  margin-right: 6px;
}

.fm .header-fm .multiple-edit .btn-enable-edit .on,
.fm .header-fm .multiple-edit .btn-enable-edit .off {
  display: none;
}

.fm .header-fm .multiple-edit .btn-enable-edit.btn-primary .off {
  display: inline-block;
}

.fm .header-fm .multiple-edit .btn-enable-edit.btn-danger .on {
  display: inline-block;
}

.fm .header-fm .multiple-edit .btn-edit {
  display: flex;
  align-items: center;
  margin-left: 10px;
}

.fm .header-fm .multiple-edit .btn-edit img {
  height: 18px;
  margin-right: 6px;
  filter: invert(1);
}

.fm .header-fm .multiple-edit .btn-delete {
  display: flex;
  align-items: center;
}

.fm .header-fm .multiple-edit .btn-delete img {
  height: 18px;
  margin-right: 6px;
  filter: invert(1);
}

@media (min-width: 1200px) {
  .fm .list-elements tr:not(.last-child) {
    border-bottom: 1px solid var(--c-border-light);
  }
}

.fm .list-elements thead {
  padding-bottom: 10px;
  margin-bottom: 10px;
  font-family: "Roboto Bold";
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-muted);
}

.fm .list-elements thead th:last-child {
  text-align: right;
}

@media (max-width: 1199px) {
  .fm .list-elements thead {
    display: none;
  }
}

.fm .list-elements thead .--size {
  text-align: right;
}

.fm .list-elements thead .--last-edit {
  text-align: right;
  padding-right: 10px;
}

.fm .list-elements thead .--count {
  text-align: center;
}

.fm .list-elements th,
.fm .list-elements td {
  padding: 14px 0;
}

@media (max-width: 1199px) {
  .fm .list-elements tbody {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
  }

  .fm .list-elements tbody tr,
  .fm .list-elements tbody td {
    display: block;
  }
}

@media (max-width: 1199px) {
  .fm .list-elements tbody tr {
    width: calc(50% - 10px);
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: 16px;
  }
}

@media (max-width: 767px) {
  .fm .list-elements tbody tr {
    width: 100%;
  }
}

@media (max-width: 1199px) {
  .fm .list-elements tbody td {
    border-bottom: 0;
  }

  .fm .list-elements tbody td::before {
    content: attr(data-name);
    width: 100%;
    display: inline-block;
    font-family: "Roboto Bold";
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--c-muted);
    margin-bottom: 4px;
  }

  .fm .list-elements tbody td.--name::before {
    content: none;
  }
}

.fm .list-elements tbody .--name {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  border-bottom: 0;
}

.fm .list-elements tbody .--name .check,
.fm .list-elements tbody .--name .fake-check {
  display: none;
}

.fm .list-elements tbody .--name .fake-check {
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--c-border);
  background-color: var(--c-surface);
  border-radius: 3px;
  margin-right: 18px;
  cursor: pointer;
  transition: background-color var(--t), border-color var(--t);
}

.fm .list-elements tbody .--name .check:checked+.fake-check {
  background-color: var(--c-ink);
  border-color: var(--c-ink);
}

.fm .list-elements tbody .--name img.icon-type {
  width: 22px;
  height: 22px;
  margin-right: 12px;
  opacity: 0.8;
}

.fm .list-elements tbody .--name a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}

.fm .list-elements tbody .--name ul.langs {
  list-style: none;
  margin: 0 8px 0 0;
  padding: 0;
  display: flex;
  gap: 2px;
}

.fm .list-elements tbody .--name ul.langs li {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 5px;
  border-radius: 4px;
  line-height: 14px;
  letter-spacing: 0.04em;
}

.fm .list-elements tbody .--name ul.langs li.--it {
  background-color: oklch(60% 0.15 145);
  color: oklch(99% 0.003 265);
}

.fm .list-elements tbody .--name ul.langs li.--en {
  background-color: oklch(42% 0.18 25);
  color: oklch(99% 0.003 265);
}

.fm .list-elements tbody .--name ul.langs li.--fr {
  background-color: oklch(27% 0.14 270);
  color: oklch(99% 0.003 265);
}

.fm .list-elements tbody .--name ul.langs li.--de {
  background-color: oklch(54% 0.16 48);
  color: oklch(99% 0.003 265);
}

.fm .list-elements tbody .--name ul.langs li.--es {
  background-color: oklch(85% 0.17 95);
  color: var(--c-ink);
}

/* Row hover on desktop */
@media (min-width: 1200px) {
  .fm .list-elements tbody tr:hover td {
    background-color: var(--c-hover);
  }
}

.fm .list-elements tbody .--action .wrapper {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.fm .list-elements tbody .--action .wrapper div:not(:last-child) {
  margin-right: 10px;
}

@media (max-width: 1199px) {
  .fm .list-elements tbody .--action .wrapper div:not(:last-child) {
    margin-right: 20px;
  }
}

.fm .list-elements tbody .--action img {
  width: 22px;
  height: 22px;
  cursor: pointer;
  padding: 2px;
  opacity: 0.6;
  transition: opacity var(--t);
}

.fm .list-elements tbody .--action img:hover {
  opacity: 1;
}

.fm .list-elements tbody .--action .edit,
.fm .list-elements tbody .--action .delete {
  position: relative;
}

.fm .list-elements tbody .--action .download {
  position: relative;
}

.fm .list-elements tbody .--action .download a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}

.fm .list-elements tbody .--role .badge:not(:last-child) {
  margin-right: 5px;
}

.fm .list-elements tbody .--size {
  text-align: right;
  font-size: 13px;
  color: var(--c-muted);
}

.fm .list-elements tbody .--last-edit {
  text-align: right;
  padding-right: 10px;
  font-size: 13px;
  color: var(--c-muted);
}

.fm .list-elements tbody .alert {
  margin-top: 30px;
}

.fm .list-elements tbody tr:target,
.fm .list-elements tbody tr:target td {
  background-color: oklch(92% 0.025 15);
}

@media (max-width: 1199px) {
  .fm .list-elements tbody tr.--up-folder {
    width: 100%;
  }

  .fm .list-elements tbody tr.--up-folder .--size,
  .fm .list-elements tbody tr.--up-folder .--last-edit,
  .fm .list-elements tbody tr.--up-folder .--role,
  .fm .list-elements tbody tr.--up-folder .--action,
  .fm .list-elements tbody tr.--up-folder .--count {
    display: none;
  }

  .fm .list-elements tbody tr.--up-folder td::before {
    content: none;
  }
}

@media (max-width: 1199px) {
  .fm .list-elements tbody tr.--folder {
    width: 100%;
  }

  .fm .list-elements tbody tr.--folder .--size,
  .fm .list-elements tbody tr.--folder .--last-edit,
  .fm .list-elements tbody tr.--folder .--count {
    display: none;
  }

  .fm .list-elements tbody tr.--folder .--action .wrapper {
    justify-content: flex-start;
  }

  body:not(.administrator) .fm .list-elements tbody tr.--folder .--action {
    display: none;
  }
}

.fm .list-elements tbody tr.--file .--count {
  text-align: center;
}

@media (max-width: 1199px) {
  .fm .list-elements tbody tr.--file .--size {
    text-align: left;
    width: 50%;
    display: inline-block;
  }

  .fm .list-elements tbody tr.--file .--last-edit {
    width: 50%;
    float: right;
  }

  .fm .list-elements tbody tr.--file .--count {
    width: 100%;
    text-align: left;
  }

  .fm .list-elements tbody tr.--file .--action .wrapper {
    justify-content: flex-start;
  }
}

.fm .list-elements.--bulk-edit tbody .--file .--name a,
.fm .list-elements.--bulk-edit tbody .--folder .--name a {
  display: none;
}

.fm .list-elements.--bulk-edit tbody .--file .--name .icon-type,
.fm .list-elements.--bulk-edit tbody .--folder .--name .icon-type {
  display: none;
}

.fm .list-elements.--bulk-edit tbody .--file .--name .fake-check,
.fm .list-elements.--bulk-edit tbody .--folder .--name .fake-check {
  display: block;
}

/* END file manager */
/*
// ANCHOR: sidebar file manager
*/
.sidebar {
  padding: 16px;
  background-color: var(--c-surface-card);
  border-radius: 8px;
}

.sidebar .now {
  font-family: "Roboto Bold";
  font-weight: 700;
  border-bottom: 1px solid var(--c-border);
  padding-bottom: 12px;
  display: flex;
}

.sidebar .now img {
  width: 22px;
  height: 22px;
  margin-right: 12px;
  opacity: 0.8;
}

/* END sidebar file manager */
/*
// ANCHOR: popup login
*/
.popup-login {
  position: fixed;
  top: 100px;
  right: 20px;
  width: 400px;
  max-width: calc(100% - 40px);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 8px 32px -8px rgba(0, 0, 0, 0.16), 0 0 0 1px var(--c-border);
  padding: 40px;
  background-color: oklch(99% 0.003 265 / 0.92);
  display: none;
  z-index: 4;
}

@media (min-width: 768px) {
  .popup-login {
    right: 40px;
  }
}

@media (min-width: 1200px) {
  .popup-login {
    right: 60px;
  }
}

@media (min-width: 1900px) {
  .popup-login {
    left: calc(50% + 500px);
  }
}

.popup-login #register-form {
  display: none;
}

.popup-login .alert {
  margin-top: 30px;
}

.popup-login form {
  margin-top: 30px;
}

.popup-login form label {
  width: 100%;
  font-size: 14px;
  color: var(--c-muted);
}

.popup-login form input[type=text],
.popup-login form input[type=password],
.popup-login form input[type=email] {
  width: 100%;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  line-height: 40px;
  margin-top: 5px;
  transition: border-color var(--t), box-shadow var(--t);
}

.popup-login form input[type=text]:focus,
.popup-login form input[type=password]:focus,
.popup-login form input[type=email]:focus {
  border-color: var(--c-ink);
  box-shadow: 0 0 0 3px oklch(9% 0.01 265 / 0.08);
  outline: none;
}

.popup-login form input[type=submit] {
  width: 100%;
  border: 1px solid var(--c-ink);
  border-radius: 8px;
  line-height: 40px;
  background-color: var(--c-ink);
  color: var(--c-surface);
  text-align: center;
}

.popup-login .link-footer {
  font-size: 14px;
  text-align: center;
  margin-top: 20px;
  width: 100%;
  display: block;
  color: var(--c-ink);
  text-decoration: none;
}

.popup-login #login-register-popup .select-form {
  display: flex;
  justify-content: space-around;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 14px;
}

.popup-login #login-register-popup .select-form .item {
  cursor: pointer;
  position: relative;
}

.popup-login #login-register-popup .select-form .item::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 0px;
  background-color: var(--c-ink);
  transition: height var(--t);
}

.popup-login #login-register-popup .select-form .item:hover::before {
  height: 2px;
}

.popup-login #login-register-popup .select-form .item.active::before {
  height: 2px;
}

body.logged-in .popup-login {
  padding: 0;
  width: 240px;
}

body.logged-in .popup-login .user-menu .list-group-item {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* END popup login */
/*
// ANCHOR: manage users
*/
body.page-template-users .search-user-wrapper input {
  width: 300px;
  max-width: 100%;
}

body.page-template-users .users-list {
  margin-bottom: 80px;
}

body.page-template-users .users-list thead {
  padding-bottom: 10px;
  margin-bottom: 10px;
  font-family: "Roboto Bold";
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-muted);
}

body.page-template-users .users-list thead th:last-child {
  text-align: right;
}

body.page-template-users .users-list thead .--approved {
  text-align: center;
}

body.page-template-users .users-list th,
body.page-template-users .users-list td {
  padding: 14px 0;
}

body.page-template-users .users-list tbody tr {
  border-bottom: 1px solid var(--c-border-light);
}

body.page-template-users .users-list tbody .--action {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  border-width: 0;
  margin-top: 7px;
  padding: 2px 10px;
}

body.page-template-users .users-list tbody .--action img {
  width: 22px;
  height: 22px;
  cursor: pointer;
  padding: 2px;
  opacity: 0.6;
  transition: opacity var(--t);
}

body.page-template-users .users-list tbody .--action img:hover {
  opacity: 1;
}

body.page-template-users .users-list tbody .--action div:not(:last-child) {
  margin-right: 10px;
}

body.page-template-users .users-list tbody .--action .edit,
body.page-template-users .users-list tbody .--action .delete {
  position: relative;
}

body.page-template-users .users-list tbody .--roles .badge:not(:last-child) {
  margin-right: 5px;
}

body.page-template-users .users-list tbody .--approved div.circle {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-top: 5px;
  margin-left: auto;
  margin-right: auto;
}

body.page-template-users .users-list tbody .--approved div.circle.red {
  background-color: oklch(50% 0.22 25);
}

body.page-template-users .users-list tbody .--approved div.circle.green {
  background-color: oklch(54% 0.18 145);
}

body.page-template-users #deleteModal .modal-body .alert {
  margin-top: 15px;
}

body.page-template-users #logModal {
  --bs-modal-width: 1100px;
}

body.page-template-users table.dataTable thead>tr>th.dt-orderable-asc:hover,
body.page-template-users table.dataTable thead>tr>th.dt-orderable-desc:hover,
body.page-template-users table.dataTable thead>tr>td.dt-orderable-asc:hover,
body.page-template-users table.dataTable thead>tr>td.dt-orderable-desc:hover {
  outline: none !important;
  background-color: var(--c-hover);
}

body.page-template-users table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:before,
body.page-template-users table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:after,
body.page-template-users table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:before,
body.page-template-users table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:after,
body.page-template-users table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,
body.page-template-users table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:after,
body.page-template-users table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:before,
body.page-template-users table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,
body.page-template-users table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:before,
body.page-template-users table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:after,
body.page-template-users table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:before,
body.page-template-users table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:after,
body.page-template-users table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before,
body.page-template-users table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:after,
body.page-template-users table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:before,
body.page-template-users table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after {
  font-size: 9px !important;
}

body.page-template-users div.dt-container div.dt-layout-row:not(.dt-layout-table) {
  display: flex;
  clear: both;
  width: 100%;
  justify-content: space-between;
  flex-direction: row-reverse;
}

body.page-template-users .dt-layout-table+.dt-layout-row {
  flex-wrap: wrap;
  flex-direction: column-reverse !important;
}

body.page-template-users .dt-length label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

body.page-template-users .dt-length label select.dt-input {
  line-height: 30px;
  width: 100px;
}

body.page-template-users div.dt-container .dt-search input {
  padding: 4px 8px;
  line-height: 30px;
  margin-left: 10px;
  outline: none;
  border-radius: 6px;
}

/* END manage users */
/*
// ANCHOR: manage roles
*/
body.page-template-roles .roles-list {
  margin-bottom: 80px;
}

body.page-template-roles .roles-list thead {
  padding-bottom: 10px;
  margin-bottom: 10px;
  font-family: "Roboto Bold";
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-muted);
}

body.page-template-roles .roles-list thead th:last-child {
  text-align: right;
}

@media (max-width: 1199px) {
  body.page-template-roles .roles-list thead {
    display: none;
  }
}

body.page-template-roles .roles-list tr:not(:last-child) {
  border-bottom: 1px solid var(--c-border-light);
}

body.page-template-roles .roles-list th,
body.page-template-roles .roles-list td {
  padding: 14px 0;
}

body.page-template-roles .roles-list tbody .--action {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

body.page-template-roles .roles-list tbody .--action img {
  width: 22px;
  height: 22px;
  cursor: pointer;
  padding: 2px;
  opacity: 0.6;
  transition: opacity var(--t);
}

body.page-template-roles .roles-list tbody .--action img:hover {
  opacity: 1;
}

body.page-template-roles .roles-list tbody .--action div:not(:last-child) {
  margin-right: 10px;
}

@media (max-width: 1199px) {
  body.page-template-roles .roles-list tbody .--action div:not(:last-child) {
    margin-right: 20px;
  }
}

body.page-template-roles .roles-list tbody .--action .edit,
body.page-template-roles .roles-list tbody .--action .delete {
  position: relative;
}

body.page-template-roles #deleteModal .modal-body .alert {
  margin-top: 15px;
}

/* END manage roles */
/*
// ANCHOR: add cta
*/
.add-fixed {
  position: fixed;
  right: 80px;
  bottom: 80px;
}

.add-fixed .icon {
  position: absolute;
  right: 0;
  bottom: 0;
  cursor: pointer;
  width: 48px;
  transition: box-shadow var(--t), transform var(--t);
}

.add-fixed .icon:hover {
  box-shadow: 0 12px 24px -6px rgba(0, 0, 0, 0.3);
  transform: scale(1.06);
}

.add-fixed .icon img {
  width: 100%;
  height: auto;
  background-color: var(--c-ink);
  padding: 14px;
  display: block;
}

.add-fixed .menu {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  bottom: 58px;
  right: 0;
  transform: translateY(8px);
  transition: opacity var(--t), transform var(--t), visibility 0s 160ms;
}

.add-fixed .menu.show {
  visibility: visible;
  opacity: 1;
  transform: translateY(0px);
  transition: opacity var(--t), transform var(--t), visibility 0s 0ms;
}

.add-fixed .menu ul {
  background-color: var(--c-ink);
  padding: 12px 16px;
  color: var(--c-surface);
  list-style: none;
  width: 250px;
  text-align: right;
  margin: 0;
}

.add-fixed .menu ul li {
  padding: 13px 0;
  letter-spacing: 0.06em;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  cursor: pointer;
  transition: opacity var(--t);
}

.add-fixed .menu ul li:hover {
  opacity: 0.7;
}

.add-fixed .menu ul li img {
  height: 26px;
  width: 26px;
  margin-left: 14px;
  opacity: 0.9;
}

/* END add cta */
/*
// ANCHOR: popup upload file
*/
#uploadFileModal #dropZone {
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: 0.08em;
  padding: 32px 16px;
  margin-bottom: 20px;
  cursor: pointer;
  border: 2px dashed var(--c-border);
  border-radius: 8px;
  text-align: center;
  color: var(--c-muted);
  transition: border-color var(--t), background-color var(--t), color var(--t);
}

#uploadFileModal #dropZone:hover {
  border-color: var(--c-ink);
  background-color: var(--c-hover);
  color: var(--c-ink);
}

#uploadFileModal #fileUploader {
  display: none;
}

#uploadFileModal .file-list .item {
  font-size: 14px;
  padding: 10px 0;
  display: flex;
  align-items: center;
}

#uploadFileModal .file-list .item:not(:last-child) {
  border-bottom: 1px solid var(--c-border-light);
}

#uploadFileModal .file-list .item .remove-file {
  filter: invert(36%) sepia(160%) saturate(9000%) hue-rotate(-6deg) brightness(59%) contrast(2808%);
  margin-left: 10px;
}

#uploadFileModal #progressWrapper #progressBar {
  height: 32px;
  background: oklch(52% 0.18 145);
  padding: 4px 10px;
  max-width: 100%;
  border-radius: 6px;
  color: oklch(99% 0.003 265);
  font-family: system-ui, -apple-system, "Segoe UI", "Roboto", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 13px;
  word-break: keep-all;
  width: 0%;
  text-align: center;
  transition: width 0.2s var(--ease);
}

/* END popup upload file */
/*
// ANCHOR: login form
*/
.login-form form {
  border: 1px solid var(--c-border);
  border-radius: 16px;
  padding: 30px 20px 24px;
  position: relative;
}

@media (min-width: 1200px) {
  .login-form form {
    padding: 44px;
  }
}

.login-form form h3 {
  position: absolute;
  background: var(--c-surface);
  display: inline-block;
  padding: 0 10px;
  top: 0;
  transform: translateY(-50%);
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.login-form form label {
  width: 100%;
  font-size: 14px;
  color: var(--c-muted);
}

.login-form form input[type=text],
.login-form form input[type=password],
.login-form form input[type=email] {
  width: 100%;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  line-height: 24px;
  margin-top: 5px;
  transition: border-color var(--t), box-shadow var(--t);
}

.login-form form input[type=text]:focus,
.login-form form input[type=password]:focus,
.login-form form input[type=email]:focus {
  border-color: var(--c-ink);
  box-shadow: 0 0 0 3px oklch(9% 0.01 265 / 0.08);
  outline: none;
}

.login-form form button[type=submit] {
  width: 100%;
  border: 1px solid var(--c-ink);
  border-radius: 8px;
  line-height: 44px;
  background-color: var(--c-ink);
  color: var(--c-surface);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 13px;
  transition: box-shadow var(--t);
}

.login-form form button[type=submit]:hover {
  box-shadow: 0 4px 14px -4px oklch(9% 0.01 265 / 0.35);
}

.login-form form .link-footer {
  width: 100%;
  display: block;
  text-align: center;
  color: var(--c-muted);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 13px;
  transition: color var(--t);
}

.login-form form .link-footer:hover {
  color: var(--c-ink);
  text-decoration: none;
}

/* END login form */
/*
// ANCHOR: register form
*/
.register-form form {
  border: 1px solid var(--c-border);
  border-radius: 16px;
  padding: 30px 20px 24px;
  position: relative;
}

@media (min-width: 1200px) {
  .register-form form {
    padding: 44px;
  }
}

.register-form form h3 {
  position: absolute;
  background: var(--c-surface);
  display: inline-block;
  padding: 0 10px;
  top: 0;
  transform: translateY(-50%);
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.register-form form label {
  width: 100%;
  font-size: 14px;
  color: var(--c-muted);
}

.register-form form input[type=text],
.register-form form input[type=password],
.register-form form input[type=email] {
  width: 100%;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  line-height: 24px;
  margin-top: 5px;
  transition: border-color var(--t), box-shadow var(--t);
}

.register-form form input[type=text]:focus,
.register-form form input[type=password]:focus,
.register-form form input[type=email]:focus {
  border-color: var(--c-ink);
  box-shadow: 0 0 0 3px oklch(9% 0.01 265 / 0.08);
  outline: none;
}

.register-form form button[type=submit] {
  width: 100%;
  border: 1px solid var(--c-ink);
  border-radius: 8px;
  line-height: 44px;
  background-color: var(--c-ink);
  color: var(--c-surface);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 13px;
  transition: box-shadow var(--t);
}

.register-form form button[type=submit]:hover {
  box-shadow: 0 4px 14px -4px oklch(9% 0.01 265 / 0.35);
}

/* END register form */
/*
// ANCHOR: shareModal
*/
#shareModal .alert.alert-success {
  display: none;
}

/* END shareModal */
/*
// ANCHOR: loading form animation
*/
[type=submit] .spinner-grow,
[type=button] .spinner-grow {
  margin-right: 10px;
}

/* END loading form animation */

/*
// ANCHOR: UX/UI improvements (impeccable) — accessibility, monochrome, mobile FAB
*/

/* Icon action controls converted from <div> to <button>: reset native button chrome */
.fm .list-elements .--action .wrapper button,
body.page-template-users .users-list .--action button,
body.page-template-roles .roles-list .--action button,
.add-fixed .icon {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  color: inherit;
  line-height: 0;
  cursor: pointer;
}

/* The old spacing rule targeted divs; restore gaps between the new buttons */
.fm .list-elements .--action .wrapper button:not(:last-child),
body.page-template-users .users-list .--action button:not(:last-child),
body.page-template-roles .roles-list .--action button:not(:last-child) {
  margin-right: 10px;
}

/* Visible keyboard focus ring for interactive controls in the reserved area */
.fm .list-elements .--action button:focus-visible,
.fm .list-elements .--name a:focus-visible,
.fm .list-elements .--action .download a:focus-visible,
body.page-template-users .users-list .--action button:focus-visible,
body.page-template-roles .roles-list .--action button:focus-visible,
.add-fixed .icon:focus-visible,
.add-fixed .menu [role=menuitem]:focus-visible,
.header-fm .search #ajax-search:focus-visible {
  outline: 2px solid var(--c-ink);
  outline-offset: 3px;
}

/* Comfortable tap targets for icon buttons on touch layouts */
@media (max-width: 1199px) {
  .fm .list-elements .--action .wrapper button,
  body.page-template-users .users-list .--action button,
  body.page-template-roles .roles-list .--action button {
    min-width: 40px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* Monochrome: unify the primary action on black (Bootstrap 5.3 button tokens) */
body.page-template-home .btn-primary,
body.page-template-users .btn-primary,
body.page-template-roles .btn-primary {
  --bs-btn-bg: var(--c-ink);
  --bs-btn-border-color: var(--c-ink);
  --bs-btn-hover-bg: oklch(16% 0.01 265);
  --bs-btn-hover-border-color: oklch(16% 0.01 265);
  --bs-btn-active-bg: var(--c-ink);
  --bs-btn-active-border-color: var(--c-ink);
  --bs-btn-disabled-bg: var(--c-ink);
  --bs-btn-disabled-border-color: var(--c-ink);
}

/* Floating add button: keep it inside the viewport on phones */
@media (max-width: 767px) {
  .add-fixed {
    right: 20px;
    bottom: 20px;
  }
  .add-fixed .menu ul {
    width: min(250px, calc(100vw - 40px));
  }
}

/* END UX/UI improvements (impeccable) */

/*
// ANCHOR: visual refresh v2 — floating panels on a soft canvas (Synapse-style)
*/

/* --- App shell: gray canvas, panels float on top --------------------------- */
body.page-template-home,
body.page-template-users,
body.page-template-roles {
  background-color: var(--c-canvas);
}

/* #primary stays transparent so the canvas shows around the floating panels */
body.page-template-home #primary,
body.page-template-users #primary,
body.page-template-roles #primary {
  background: transparent;
  margin-top: 56px;
  padding-bottom: 64px;
}

/* Nav reads as a clean top bar above the canvas */
body.page-template-home header#masthead .bg-body-tertiary,
body.page-template-users header#masthead .bg-body-tertiary,
body.page-template-roles header#masthead .bg-body-tertiary {
  background-color: var(--c-panel) !important;
  border-bottom: 1px solid var(--c-border-light);
}

/* --- The floating panel ---------------------------------------------------- */
.fm .list-card,
body.page-template-roles .roles-list.list-card,
body.page-template-users .users-list.list-card {
  background: var(--c-panel);
  border: 1px solid var(--c-border-light);
  border-radius: var(--r-card);
  box-shadow: var(--shadow-card);
  margin-top: 1.25rem;
}

.fm .list-card {
  padding: 4px 18px 8px;
}

body.page-template-roles .roles-list.list-card,
body.page-template-users .users-list.list-card {
  padding: 8px 20px;
}

/* The table fills the card edge to edge (card supplies the inset) */
.fm .list-card .list-elements {
  margin-bottom: 0;
}

.fm .list-card .alert {
  margin: 16px 0 8px;
}

/* On touch layouts the rows themselves become the floating cards, so the
   wrapper goes flat to avoid a card-inside-a-card */
@media (max-width: 1199px) {
  .fm .list-card {
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    margin-top: 1.25rem;
  }
}

/* --- Toolbar: search + bulk controls sit on the canvas above the panel ----- */
.fm .header-fm .search #ajax-search {
  border-radius: var(--r-control);
  padding-left: 42px;
  background-color: var(--c-panel);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a90a0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 14px center;
  background-size: 17px;
  box-shadow: var(--shadow-card);
  border-color: var(--c-border-light);
}

.fm .header-fm .search #search-results {
  border-radius: 0 0 var(--r-control) var(--r-control);
  border-color: var(--c-border-light);
}

/* --- Table header: quiet uppercase labels ---------------------------------- */
.fm .list-card .list-elements thead tr {
  border-bottom: 1px solid var(--c-border-light) !important;
}

/* More generous desktop row height + comfortable inset */
@media (min-width: 1200px) {
  .fm .list-elements th,
  .fm .list-elements td {
    padding: 17px 4px;
  }
  .fm .list-elements thead th:first-child,
  .fm .list-elements tbody td:first-child {
    padding-left: 8px;
  }
  .fm .list-elements thead th:last-child,
  .fm .list-elements tbody td:last-child {
    padding-right: 8px;
  }
  /* Soften the row hover and round its inner edges */
  .fm .list-elements tbody tr:hover td {
    background-color: var(--c-hover);
  }
  .fm .list-elements tbody tr:hover td:first-child {
    border-top-left-radius: 9px;
    border-bottom-left-radius: 9px;
  }
  .fm .list-elements tbody tr:hover td:last-child {
    border-top-right-radius: 9px;
    border-bottom-right-radius: 9px;
  }
  /* Clean full-width separators: draw on every cell (so the name cell isn't
     skipped), and none under the last row before the card's bottom padding */
  .fm .list-card .list-elements tbody tr {
    border-bottom: 0;
  }
  .fm .list-card .list-elements tbody td {
    border-bottom: 1px solid var(--c-border-light);
  }
  .fm .list-card .list-elements tbody tr:last-child td {
    border-bottom: 0;
  }
}

/* --- Checkboxes: filled charcoal with a white tick ------------------------- */
.fm .list-elements tbody .--name .fake-check {
  position: relative;
  border-radius: 5px;
  border-color: var(--c-faint);
}

.fm .list-elements tbody .--name .check:checked + .fake-check::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4 9.4l3.4 3.4L14 5.6' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px;
}

/* --- Badges: refined geometry, kept semantic colors ------------------------ */
.fm .list-elements .badge,
body.page-template-users .users-list .badge,
body.page-template-roles .roles-list .badge {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 3px 8px;
  border-radius: 6px;
}

/* File extension badge: a quiet outlined label, not a heavy block */
.fm .list-elements .badge.text-bg-dark {
  background-color: var(--c-surface-card) !important;
  color: var(--c-muted) !important;
  letter-spacing: 0.06em;
  border: 1px solid var(--c-border);
  padding: 2px 6px;
}

/* --- Buttons & modals: softer radius, consistent with panels --------------- */
body.page-template-home .btn,
body.page-template-users .btn,
body.page-template-roles .btn {
  --bs-btn-border-radius: var(--r-control);
  --bs-btn-font-size: 14px;
}

/* Modal chrome is fully handled in the "modals / popups" section below */

/* --- FAB: circular, soft floating shadow ----------------------------------- */
.add-fixed .icon {
  border-radius: 50%;
  overflow: hidden;
  height: 48px;
  box-shadow: var(--shadow-pop);
}

.add-fixed .icon img {
  height: 100%;
  width: 100%;
  object-fit: contain;
}

/* FAB menu: rounded dark panel with a soft shadow */
.add-fixed .menu ul {
  border-radius: var(--r-card);
  box-shadow: var(--shadow-pop);
}

/* --- Login / register: float as panels on the canvas ----------------------- */
.login-form form,
.register-form form {
  background: var(--c-panel);
  box-shadow: var(--shadow-card);
  border-color: var(--c-border-light);
  border-radius: var(--r-card);
}

.login-form form h3,
.register-form form h3 {
  background: var(--c-panel);
}

/* --- DataTables (users): align its chrome with the panel aesthetic --------- */
body.page-template-users div.dt-container .dt-search input,
body.page-template-users .dt-length label select.dt-input {
  border: 1px solid var(--c-border-light);
  border-radius: var(--r-control);
  background-color: var(--c-panel);
}

body.page-template-users table.dataTable thead th {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--c-muted);
}

/* END visual refresh v2 */

/*
// ANCHOR: nav dropdowns — language + user menu, unified and anchored
*/

/* Shared trigger polish: tidy vertical centering for both nav items */
#nav-main .menu li.lang-switcher,
#nav-main .menu li.login {
  gap: 8px;
}

#nav-main .menu li.login img {
  margin-right: 0;
  opacity: 0.85;
}

#nav-main .lang-switcher .current {
  display: inline-flex;
  align-items: center;
}

/* --- Language menu: a rounded panel anchored under its trigger ------------- */
#nav-main .lang-switcher ul {
  left: auto;
  right: 0;
  top: calc(100% + 10px);
  width: auto;
  min-width: 176px;
  padding: 6px;
  text-align: left;
  background: var(--c-panel);
  border: 1px solid var(--c-border-light);
  border-radius: var(--r-control);
  box-shadow: var(--shadow-pop);
}

@media (max-width: 1699px) {
  #nav-main .lang-switcher ul {
    left: auto;
    right: 0;
  }
}

#nav-main .lang-switcher ul li {
  display: block;
  line-height: 1.2;
  padding: 9px 12px;
  border-radius: 7px;
  font-size: 13px;
  letter-spacing: 0.03em;
  transition: background-color var(--t);
}

#nav-main .lang-switcher ul li:hover {
  background: var(--c-hover);
  text-decoration: none;
}

#nav-main .lang-switcher ul li a {
  display: block;
  color: var(--c-ink);
  text-decoration: none;
}

/* --- User menu: same panel language, anchored under its trigger (JS) ------- */
body.logged-in .popup-login {
  top: 64px;
  right: 24px;
  left: auto;
  width: 220px;
  padding: 6px;
  background: var(--c-panel);
  border: 1px solid var(--c-border-light);
  border-radius: var(--r-card);
  box-shadow: var(--shadow-pop);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.logged-in .popup-login .user-menu {
  border: 0;
}

body.logged-in .popup-login .user-menu .list-group-item {
  border: 0;
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 13px;
  letter-spacing: 0.03em;
  color: var(--c-ink);
  background: transparent;
  transition: background-color var(--t);
}

body.logged-in .popup-login .user-menu .list-group-item:hover {
  background: var(--c-hover);
}

/* Set the logout action apart with a hairline */
body.logged-in .popup-login .user-menu .list-group-item:last-child {
  margin-top: 7px;
  position: relative;
}

body.logged-in .popup-login .user-menu .list-group-item:last-child::before {
  content: "";
  position: absolute;
  top: -4px;
  left: 8px;
  right: 8px;
  height: 1px;
  background: var(--c-border-light);
}

/* END nav dropdowns */

/*
// ANCHOR: modals / popups — unified chrome (scoped to the reserved-area pages)
*/

/* Backdrop: a touch softer and tinted toward ink */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-backdrop {
  background-color: oklch(22% 0.02 265);
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-backdrop.show {
  opacity: 0.4;
}

/* Container */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-content {
  background: var(--c-panel);
  border: 1px solid var(--c-border-light);
  border-radius: var(--r-card);
  box-shadow: var(--shadow-pop);
  overflow: hidden;
}

/* Header */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-header {
  padding: 18px 22px;
  border-bottom: 1px solid var(--c-border-light);
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--c-ink);
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-header .btn-close {
  border-radius: 50%;
  padding: 0.6em;
  opacity: 0.55;
  transition: background-color var(--t), opacity var(--t);
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-header .btn-close:hover {
  background-color: var(--c-hover);
  opacity: 1;
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-header .btn-close:focus {
  box-shadow: none;
  outline: 2px solid var(--c-ink);
  outline-offset: 1px;
}

/* Body */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-body {
  padding: 22px;
}

/* Inputs & selects (also tidies the inline reserved-area forms) */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-control,
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-select {
  border-color: var(--c-border);
  border-radius: var(--r-control);
  transition: border-color var(--t), box-shadow var(--t);
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-control:focus,
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-select:focus {
  border-color: var(--c-ink);
  box-shadow: 0 0 0 3px oklch(18% 0.015 265 / 0.12);
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-floating > label {
  color: var(--c-muted);
}

/* Checkboxes: charcoal when checked, soft rounded, clear focus */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-check-input {
  border-color: var(--c-faint);
  cursor: pointer;
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-check-input[type=checkbox] {
  border-radius: 5px;
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-check-input:checked {
  background-color: var(--c-ink);
  border-color: var(--c-ink);
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-check-input:focus {
  border-color: var(--c-ink);
  box-shadow: 0 0 0 3px oklch(18% 0.015 265 / 0.12);
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .form-check-label {
  cursor: pointer;
}

/* Breathing room for stacked role / language checkbox lists */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-body .form-check {
  line-height: 2;
}

/* Softer amber for in-modal warnings */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-body .alert-warning {
  --bs-alert-bg: oklch(96.5% 0.035 85);
  --bs-alert-border-color: oklch(89% 0.06 85);
  --bs-alert-color: oklch(42% 0.07 70);
  border-radius: var(--r-control);
  font-size: 14px;
}

/* Footer: gap-based spacing, ghost "cancel" + solid primary */
:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-footer {
  padding: 16px 22px;
  border-top: 1px solid var(--c-border-light);
  gap: 8px;
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-footer > * {
  margin: 0;
}

:is(body.page-template-home, body.page-template-users, body.page-template-roles) .modal-footer .btn-secondary {
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--c-border);
  --bs-btn-color: var(--c-ink);
  --bs-btn-hover-bg: var(--c-hover);
  --bs-btn-hover-border-color: var(--c-border);
  --bs-btn-hover-color: var(--c-ink);
  --bs-btn-active-bg: var(--c-hover);
  --bs-btn-active-border-color: var(--c-border);
  --bs-btn-active-color: var(--c-ink);
}

/* END modals / popups */

/*
// ANCHOR: mobile cards — one clean white card per row (kills card-in-card)
*/
@media (max-width: 1199px) {
  /* The wrapper stays flat; the rows are the cards */
  .fm .list-card {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
  }

  /* Neutralize any inherited table/cell background so the card reads uniform */
  .fm .list-card,
  .fm .list-elements,
  .fm .list-elements tbody,
  .fm .list-elements tbody td {
    background: transparent;
    box-shadow: none;
  }

  /* Each row becomes a single floating white card */
  .fm .list-elements tbody tr {
    background: var(--c-panel);
    border: 1px solid var(--c-border-light);
    border-radius: var(--r-card);
    box-shadow: var(--shadow-card);
    padding: 18px 20px;
  }

  /* Cells: no borders, vertical rhythm via margin */
  .fm .list-elements tbody td {
    border: 0;
    padding: 0;
  }

  .fm .list-elements tbody td:not(:last-child):not(.--name) {
    margin-bottom: 16px;
  }

  .fm .list-elements tbody .--name {
    margin-bottom: 16px;
    font-size: 15px;
  }

  /* Section labels (RUOLI / AZIONI / …) */
  .fm .list-elements tbody td::before {
    font-size: 10px;
    letter-spacing: 0.08em;
    color: var(--c-faint);
    margin-bottom: 7px;
  }

  /* Tighten the icon + name row, give the name room to breathe */
  .fm .list-elements tbody .--name .name {
    font-weight: 500;
  }

  /* Action icons: comfortable, left-aligned, slightly separated */
  .fm .list-elements tbody .--action .wrapper {
    gap: 6px;
  }
  .fm .list-elements tbody .--action .wrapper > * {
    margin-right: 0 !important;
  }

  /* The "up one level" card is lighter — it's just navigation */
  .fm .list-elements tbody tr.--up-folder {
    box-shadow: none;
    background: var(--c-surface-dim);
    border-style: dashed;
  }

  /* Empty-state alert shouldn't look like a card row */
  .fm .list-card .alert {
    margin-top: 4px;
  }
}

/* Single column earlier: 2-up cards get cramped below ~900px */
@media (max-width: 991px) {
  .fm .list-elements tbody tr {
    width: 100%;
  }
}

/* END mobile cards */
/*# sourceMappingURL=area-riservata.css.map */
