:root {
  --admin-brand: #007aff;
  --admin-brand-dark: #005ecb;
  --admin-brand-rgb: 0, 122, 255;
  --admin-ink: #142847;
  --admin-muted: #5f6f86;
  --admin-border: #cfd9e5;
  --admin-canvas: #fafdff;
  --admin-surface: #ffffff;
  --admin-success: #0f9a5f;
  --admin-warning: #b56a00;
  --admin-radius: 16px;
  --admin-sticky-strip-bg: rgba(var(--admin-brand-rgb), 0.10);
  --admin-sticky-strip-border: rgba(var(--admin-brand-rgb), 0.45);
  --admin-topbar-height: 76px;
  --admin-sidebar-width: 250px;
  --admin-content-pad-x: 28px;
  --admin-scrollbar-thumb: var(--admin-brand);
  --admin-scrollbar-thumb-hover: var(--admin-brand-dark);
  --admin-scrollbar-track: #d7e5e5;
  --admin-list-odd-bg: #fff;
  --admin-search-bg: var(--admin-list-odd-bg);
}

.admin-report-filters {
  align-items: flex-end;
  gap: 10px;
}

.admin-report-filter-item {
  display: grid;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  color: #5a6f8b;
}

.admin-report-filter-item select {
  min-width: 128px;
  min-height: 34px;
  border: 1px solid #c9d5e5;
  border-radius: 10px;
  padding: 6px 10px;
  background: #fff;
  color: #213853;
  font-size: 13px;
}

.admin-report-kpi-grid {
  margin-bottom: 18px;
}

.admin-report-kpi-card {
  display: grid;
  gap: 5px;
  padding: 16px 18px;
}

.admin-report-kpi-label {
  font-size: 12px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #667c99;
  font-weight: 700;
}

.admin-report-kpi-value {
  font-size: 30px;
  line-height: 1;
  color: #142847;
}

.admin-report-card h2 {
  margin: 0 0 12px;
  font-size: 20px;
}

.admin-report-empty {
  margin: 0;
}

.admin-report-progress {
  position: relative;
  height: 8px;
  border-radius: 999px;
  background: #e7edf5;
  overflow: hidden;
  margin-bottom: 6px;
}

.admin-report-progress-bar {
  display: block;
  height: 100%;
  border-radius: inherit;
  (90deg, #ffa273 0%, #e9530e 100%);
}

.admin-report-progress-label {
  color: #5b6f88;
  font-size: 12px;
  font-weight: 700;
}

.admin-report-messaging-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.admin-report-messaging-item {
  border: 1px solid #d8e1ec;
  border-radius: 12px;
  padding: 10px 12px;
  display: grid;
  gap: 4px;
}

.admin-report-messaging-item span {
  font-size: 12px;
  color: #5b6f88;
  font-weight: 700;
}

.admin-report-messaging-item strong {
  font-size: 23px;
  line-height: 1;
}

.admin-report-messaging-item-full {
  grid-column: 1 / -1;
}

.admin-report-trend-list {
  display: grid;
  gap: 8px;
}

.admin-report-trend-section {
  margin-bottom: 16px;
}

.admin-report-trend-row {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr) minmax(210px, auto);
  align-items: center;
  gap: 10px;
}

.admin-report-trend-date {
  color: #2d4663;
  font-weight: 700;
  font-size: 12px;
}

.admin-report-trend-bar-wrap {
  height: 9px;
  border-radius: 999px;
  background: #e7edf5;
  overflow: hidden;
}

.admin-report-trend-bar {
  display: block;
  height: 100%;
  border-radius: inherit;
  background-color: #e9530e;
}

.admin-report-trend-values {
  color: #4f6581;
  font-size: 12px;
  font-weight: 600;
  text-align: right;
}

.admin-report-insights {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 10px;
}

.admin-report-insights li {
  color: #304a68;
  line-height: 1.35;
}

@media (max-width: 1200px) {
  .admin-report-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 992px) {
  .admin-report-filters {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .admin-report-trend-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .admin-report-trend-values {
    text-align: left;
  }
}

.admin-test-quesiti-head {
  justify-content: space-between;
  border-bottom: 1px solid #d9dee6;
  margin-bottom: 14px;
  padding-bottom: 14px;
}

.admin-modali-dialog.admin-modali-dialog-lg {
  width: min(1120px, 100%);
}

.admin-test-quesito-answers-head {
  justify-content: space-between;
  margin-bottom: 8px;
}

.admin-test-quesito-answers-list {
  display: grid;
  gap: 8px;
}

.admin-test-quesito-answer-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 24px;
  gap: 10px;
  align-items: center;
}

.admin-test-quesito-answer-input {
  min-height: 40px;
}

.admin-test-quesito-answer-correct {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #3f5573;
}

.admin-test-quesito-answer-correct input {
  margin: 0;
}

.admin-test-quesito-answer-correct .admin-checkbox-inline-ui,
.admin-test-quesito-answer-correct .admin-radio-inline-ui {
  width: 20px;
  height: 20px;
}

.admin-test-quesito-answer-correct .admin-checkbox-inline-ui::after {
  left: 2px;
  top: 2px;
  width: 14px;
  height: 14px;
}

.admin-test-quesito-answer-correct .admin-checkbox-inline-text,
.admin-test-quesito-answer-correct .admin-radio-inline-text {
  font-size: 13px;
  font-weight: 700;
  color: #3f5573;
}

.admin-test-quesito-answer-remove {
  justify-self: end;
  width: 20px;
  height: 20px;
  opacity: 0.55;
}

.admin-test-quesito-answer-remove svg {
  width: 11px;
  height: 11px;
}

.admin-test-quesiti-grid {
  grid-template-columns: 96px minmax(320px, 2.4fr) minmax(120px, 0.9fr) 58px;
}

.admin-test-quesiti-grid .admin-moduli-col-actions-head,
.admin-test-quesiti-grid .admin-moduli-col-actions {
  justify-content: flex-end;
  text-align: right;
  justify-self: end;
  padding-right: 0;
}

.admin-moduli-grid.admin-test-quesiti-grid > .admin-test-quesiti-actions-cell {
  grid-column: -2 / -1;
  justify-self: end;
}

.admin-moduli-col-actions .admin-action-form {
  display: inline-flex;
  margin: 0;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  overflow-x: clip;
}

html {
  scrollbar-gutter: stable;
}

html,
body,
.admin-shell,
.admin-shell * {
  scrollbar-width: thin;
  scrollbar-color: var(--admin-scrollbar-thumb) var(--admin-scrollbar-track);
}

html::-webkit-scrollbar,
body::-webkit-scrollbar,
.admin-shell *::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
.admin-shell *::-webkit-scrollbar-track {
  background: var(--admin-scrollbar-track);
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
.admin-shell *::-webkit-scrollbar-thumb {
  background-color: var(--admin-scrollbar-thumb);
  border-radius: 999px;
  border: 1px solid var(--admin-scrollbar-track);
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
.admin-shell *::-webkit-scrollbar-thumb:hover {
  background-color: var(--admin-scrollbar-thumb-hover);
}

body {
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
  color: var(--admin-ink);
  background: var(--admin-canvas);
}

a {
  color: inherit;
  text-decoration: none;
}

.admin-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.admin-topbar {
  height: var(--admin-topbar-height);
  background: #0b1b41;
  border-bottom: 1px solid rgba(var(--admin-brand-rgb), 0.45);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 26px;
  position: sticky;
  top: 0;
  z-index: 40;
}

.admin-topbar-left,
.admin-topbar-right {
  display: flex;
  align-items: center;
  gap: 14px;
}

.admin-topbar-right {
  position: relative;
}

.admin-theme-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  color: #e8efff;
  border-radius: 8px;
  min-height: 30px;
  padding: 2px 4px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.admin-theme-toggle:hover {
  opacity: 0.9;
}

.admin-theme-toggle-icon {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: currentColor;
}

.admin-theme-toggle-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-theme-toggle-label {
  font-size: 12px;
  font-weight: 600;
}

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

.admin-tool-menu {
  position: relative;
}

.admin-tool-trigger {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--admin-ink);
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
}

.admin-tool-trigger:hover,
.admin-tool-menu.is-open .admin-tool-trigger,
.admin-tool-menu.is-active .admin-tool-trigger {
  color: var(--admin-brand-dark);
}

.admin-tool-trigger:focus-visible {
  outline: 2px solid rgba(255, 90, 31, 0.35);
  outline-offset: 2px;
}

.admin-tool-trigger svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-tool-dropdown {
  right: 0;
  width: min(250px, calc(100vw - 24px));
}

.admin-tool-dropdown-empty {
  min-height: 36px;
  width: 170px;
}

.admin-notification-dropdown .admin-tool-dropdown-empty {
  font-family: -apple-system, BlinkMacSystemFont, "Inter", Roboto, Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  color: #6c7f96;
}

.admin-tool-unread-dot {
  position: absolute;
  top: -1px;
  right: -1px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #e03b2f;
  border: 2px solid #fff;
}

.admin-tool-unread-dot.is-hidden {
  display: none;
}

.admin-tool-unread-count {
  position: absolute;
  top: -7px;
  right: -8px;
  min-width: 18px;
  min-height: 18px;
  padding: 1px 5px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e03b2f;
  color: #fff;
  border: 2px solid #fff;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.1;
}

.admin-notification-dropdown {
  right: 0;
  width: min(340px, calc(100vw - 24px));
  padding: 10px;
}

.admin-notification-title {
  margin: 0 2px 8px;
  color: #6a7b93;
  font-size: 11px;
  line-height: 1.2;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
}

.admin-notification-item {
  display: grid;
  gap: 5px;
  padding: 10px 10px 12px;
  border: 0;
  border-bottom: 1px solid #e8edf3;
  border-radius: 8px;
  background: #fff;
  color: #1c2e48;
  text-decoration: none;
  margin: 0 4px 8px;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.admin-notification-item:hover {
  background: #fff4ee;
  color: #152842;
}

.admin-notification-item.is-last {
  border-bottom: 0;
}

.admin-notification-meta {
  color: #7a8aa2;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 600;
}

.admin-notification-message {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #4f6078;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 500;
}

.admin-notification-sender {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  color: #152946;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 700;
}

.admin-notification-channel-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 1px 6px;
  font-size: 9px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: lowercase;
}

.admin-notification-link {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  padding: 10px 8px;
  border-top: 1px solid #e8edf3;
  color: var(--admin-brand-dark);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.admin-notification-link:hover {
  text-decoration: underline;
}

.admin-mailbox-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.admin-mailbox-toolbar-in-card {
  margin-bottom: 14px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--admin-border);
}

.admin-mailbox-toolbar-left {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.admin-mailbox-toolbar-right {
  flex: 0 0 auto;
}

.admin-report-fad-search.admin-mailbox-inline-search {
  position: relative;
  display: inline-block;
  margin: 0;
  flex: 0 0 auto;
}

.admin-report-fad-search.admin-mailbox-inline-search .admin-report-fad-search-icon {
  position: absolute !important;
  top: 50% !important;
  right: 10px !important;
  bottom: auto !important;
  left: auto !important;
  transform: translateY(-50%) !important;
  pointer-events: none;
}

.admin-report-fad-search.admin-mailbox-inline-search input {
  width: 420px !important;
  max-width: 100%;
  padding: 0 34px 0 12px !important;
}


.admin-mailbox-filter-menus {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.admin-mailbox-filter-trigger {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
}

.admin-mailbox-filter-title {
  font-weight: 400;
  color: #2b3f5b;
}

.admin-mailbox-filter-value {
  color: #2b3f5b;
  font-size: 13px;
  font-weight: 700;
}

.admin-mailbox-filter-dropdown {
  min-width: 190px;
}

.admin-mailbox-filter-dropdown .admin-actions-dropdown-item.is-selected {
  background: #fff2ea;
  border-color: #e7c8b6;
  color: #1b3653;
}

.admin-mailbox-filter-dropdown .admin-actions-dropdown-item.is-selected {
  margin-bottom: 3px;
}

.admin-mailbox-filter-dropdown .admin-actions-dropdown-item.is-selected:not(:first-child) {
  margin-top: 3px;
}

.admin-mailbox-list-card {
  padding: 22px;
}

.admin-mailbox-table tbody tr {
  cursor: pointer;
}

.admin-table-clean.admin-mailbox-table {
  width: 100%;
  table-layout: fixed;
}

.admin-mailbox-table > thead > tr > th:first-child {
  padding-left: 10px;
}

.admin-mailbox-table > tbody > tr > td:first-child {
  padding-left: 10px;
}

.admin-mailbox-table > thead > tr > th:last-child,
.admin-mailbox-table > tbody > tr > td:last-child {
  padding-right: 6px;
}

.admin-mailbox-table th:last-child,
.admin-mailbox-table td:last-child {
  text-align: left;
}

.admin-mailbox-row-meta {
  margin-top: 6px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.admin-mailbox-last-message {
  font-size: 12px;
  color: #5f7390;
  white-space: nowrap;
}

.admin-table-clean.admin-mailbox-table th.admin-mailbox-col-subject,
.admin-table-clean.admin-mailbox-table td.admin-mailbox-col-subject {
  width: 30%;
  min-width: 30%;
  max-width: 30%;
}

.admin-table-clean.admin-mailbox-table > thead > tr > th:nth-child(1),
.admin-table-clean.admin-mailbox-table > tbody > tr > td:nth-child(1) {
  width: 5%;
  min-width: 5%;
  max-width: 5%;
}

.admin-table-clean.admin-mailbox-table > thead > tr > th:nth-child(3),
.admin-table-clean.admin-mailbox-table > tbody > tr > td:nth-child(3) {
  width: 20%;
  min-width: 20%;
  max-width: 20%;
}

.admin-table-clean.admin-mailbox-table > thead > tr > th:nth-child(4),
.admin-table-clean.admin-mailbox-table > tbody > tr > td:nth-child(4) {
  width: 20%;
  min-width: 20%;
  max-width: 20%;
}

.admin-table-clean.admin-mailbox-table th.admin-mailbox-col-assigned,
.admin-table-clean.admin-mailbox-table td.admin-mailbox-col-assigned {
  width: 15%;
  min-width: 15%;
  max-width: 15%;
}

/* Must override generic ".admin-table-clean td:last-child" alignment rules. */
.admin-table-clean.admin-mailbox-table th.admin-mailbox-last-col-head,
.admin-table-clean.admin-mailbox-table td.admin-mailbox-last-message {
  width: 10%;
  min-width: 10%;
  max-width: 10%;
  text-align: left !important;
}

.admin-table-clean.admin-mailbox-table td.admin-mailbox-last-message {
  width: 10%;
  min-width: 10%;
  max-width: 10%;
  font-size: 12px !important;
  line-height: 1.2;
}

.admin-mailbox-assigned-name {
  font-size: 13px;
  color: #1f3452;
  line-height: 1.2;
}

.admin-mailbox-assigned-role {
  margin-top: 3px;
  font-size: 11px;
  color: #5f7390;
  line-height: 1.2;
}

.admin-mailbox-subject-text {
  display: inline-block;
  font-weight: 400;
}

.admin-mailbox-subject-text.is-unread {
  font-weight: 700;
}

.admin-badge-channel-supporto {
  color: #1d4f91;
  border-color: #b7d0f2;
  background: #eaf3ff;
}

.admin-badge-channel-comunicazione {
  color: #0d6b5e;
  border-color: #9edfd2;
  background: #e5f7f3;
}

.admin-badge-channel-broadcast {
  color: #7a4d00;
  border-color: #e7cd95;
  background: #fff5de;
}

.admin-badge-channel-sistema {
  color: #6a2f8f;
  border-color: #d9b9f0;
  background: #f5ebff;
}

.admin-badge-channel-generic {
  color: var(--admin-muted);
  border-color: var(--admin-border);
  background: #f8fafc;
}

.admin-mailbox-thread {
  padding: 18px;
}

.admin-mailbox-thread-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}

.admin-mailbox-messages {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 16px;
}

.admin-mailbox-message {
  max-width: 88%;
  border: 1px solid #ebddd2;
  border-radius: 12px;
  padding: 10px 12px;
  background: #ffffff;
}

.admin-mailbox-message.is-mine {
  align-self: flex-end;
  border-color: #f2c4ac;
  background: #fff0e8;
}

.admin-mailbox-message-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 5px;
  font-size: 12px;
  color: #5d7089;
}

.admin-mailbox-message-head strong {
  color: #223854;
}

.admin-mailbox-message-body {
  color: #2a3f5e;
  font-size: 14px;
  line-height: 1.45;
  white-space: pre-wrap;
}

.admin-mailbox-attachments {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.admin-mailbox-attachment-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  background: #fff;
  border: 1px solid #d9e1ec;
  border-radius: 999px;
  padding: 6px 10px;
  text-decoration: none;
  color: #1f3452;
  font-size: 12px;
  font-weight: 700;
}

.admin-mailbox-attachment-link:hover {
  border-color: #b8c7da;
  background: #f8fbff;
  text-decoration: none;
}

.admin-mailbox-attachment-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-mailbox-attachment-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-mailbox-attachment-link small {
  color: #5f748f;
  font-size: 11px;
  font-weight: 600;
}

.admin-mailbox-attachment-download {
  color: #1f4f8f;
  font-size: 11px;
  font-weight: 800;
}

.admin-mailbox-reply-form {
  position: sticky;
  bottom: 0;
  z-index: 5;
  border: 0;
  border-top: 1px solid #efe0d6;
  border-radius: 0 0 var(--admin-radius) var(--admin-radius);
  padding: 12px 18px 10px;
  background: #fffefb;
  box-shadow: none;
  margin-top: 10px;
  margin-left: -18px;
  margin-right: -18px;
  margin-bottom: -18px;
}

.admin-mailbox-reply-grid {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.admin-mailbox-reply-main {
  flex: 2 1 0;
  margin-bottom: 0;
}

.admin-mailbox-reply-side {
  flex: 1 1 0;
  margin-bottom: 0;
}

.admin-mailbox-reply-main textarea {
  min-height: 88px;
}

.admin-mailbox-reply-main .admin-richtext-wrapper {
  margin: 0;
}

.admin-mailbox-reply-main .admin-richtext-wrapper .ql-container.ql-snow {
  min-height: 108px;
}

.admin-mailbox-reply-main .admin-richtext-wrapper .ql-editor {
  min-height: 76px;
}

.admin-mailbox-reply-actions {
  margin-top: 10px;
}

.admin-mailbox-compose-dialog {
  width: min(760px, 100%);
}

@media (max-width: 1200px) {
  .admin-mailbox-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-mailbox-toolbar-right {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .admin-mailbox-inline-search {
    flex-basis: 100%;
    width: 100%;
  }

  .admin-mailbox-filter-menus {
    width: 100%;
  }

  .admin-mailbox-filter-trigger {
    width: 100%;
    justify-content: space-between;
  }

  .admin-mailbox-toolbar-right .admin-btn {
    width: 100%;
  }

  .admin-mailbox-message {
    max-width: 100%;
  }

  .admin-mailbox-reply-grid {
    flex-direction: column;
  }

  .admin-mailbox-reply-main,
  .admin-mailbox-reply-side {
    width: 100%;
  }

  .admin-mailbox-reply-form {
    bottom: 0;
  }
}

.admin-brand {
  line-height: 1;
  color: var(--admin-ink);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.admin-brand-logo {
  width: 198px;
  max-width: 100%;
  height: auto;
  display: block;
}

.admin-brand-text {
  color: #ffffff;
  font-family: "Source Sans 3", sans-serif;
  font-weight: 900;
  font-size: 34px;
  line-height: 1;
  letter-spacing: 0.01em;
  display: inline-block;
}

.admin-brand em {
  font-style: normal;
  color: var(--admin-brand);
  font-weight: 500;
  margin-left: 4px;
}

.admin-brand-auth {
  justify-content: center;
  display: inline-flex;
}

.admin-brand-auth .admin-brand-logo {
  width: 232px;
}

.admin-user-pill {
  border: 1px solid var(--admin-border);
  border-radius: 999px;
  background: var(--admin-surface);
  padding: 8px 14px;
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.admin-user-pill strong {
  font-size: 14px;
  font-weight: 700;
}

.admin-user-pill span {
  font-size: 12px;
  color: var(--admin-muted);
}

.user-menu {
  position: relative;
}

.user-menu-trigger {
  appearance: none;
  border: 1px solid #d9e2ec;
  background: #fff;
  border-radius: 999px;
  min-height: 48px;
  padding: 6px 10px 6px 6px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font: inherit;
  color: #192b44;
  cursor: pointer;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.user-menu-trigger:hover,
.user-menu.is-open .user-menu-trigger {
  border-color: rgba(217, 226, 236, 0.45);
}

.user-menu-trigger:focus-visible {
  outline: 2px solid rgba(217, 226, 236, 0.4);
  outline-offset: 2px;
}

.user-menu-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #e9530e;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.03em;
}

.user-menu-meta {
  display: grid;
  gap: 1px;
  line-height: 1.1;
  max-width: 180px;
  text-align: left;
  justify-items: start;
  align-items: start;
}

.user-menu-name {
  max-width: 180px;
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-menu-role {
  max-width: 180px;
  font-size: 0.67rem;
  font-weight: 600;
  color: #6b7b92;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-menu-trigger svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.72;
  transition: transform 0.2s ease;
}

.user-menu.is-open .user-menu-trigger svg {
  transform: rotate(180deg);
}

.user-menu-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(280px, calc(100vw - 24px));
  border-radius: 14px;
  border: 1px solid #e5d9cf;
  background: #fff;
  padding: 8px;
  z-index: 90;
}

.user-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  border-radius: 10px;
  padding: 8px 10px;
  text-decoration: none;
  color: #1e2f47;
  font-size: 0.88rem;
  font-weight: 600;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.user-menu-item-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.user-menu-item:hover {
  background: #fff3eb;
  color: #182739;
}

.user-menu-item.is-active {
  background: #ffe8dc;
  color: #182739;
  margin-top: 3px;
  margin-bottom: 3px;
}

.user-menu-divider {
  height: 1px;
  background: #eadfda;
  margin: 8px 4px;
}

.admin-actions-menu {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
}

.admin-actions-trigger {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 4px 2px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #233a5a;
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
  cursor: pointer;
  border-radius: 8px;
  transition: color 0.2s ease;
}

.admin-actions-trigger:hover {
  color: var(--admin-brand);
}

.admin-actions-menu.is-open .admin-actions-trigger {
  color: var(--admin-brand);
}

.admin-actions-trigger:focus-visible {
  outline: 2px solid rgba(120, 153, 194, 0.35);
  outline-offset: 2px;
  border-radius: 8px;
}

.admin-actions-trigger svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.2s ease;
}

.admin-actions-menu.is-open .admin-actions-trigger svg {
  transform: rotate(180deg);
}

.admin-actions-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 35;
  min-width: 210px;
  border: 1px solid #e4d8cb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(20, 40, 71, 0.12);
  padding: 6px;
}

.admin-actions-dropdown-item {
  appearance: none;
  width: 100%;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  border-radius: 8px;
  padding: 7px 8px;
  color: #243a59;
  text-decoration: none;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
  cursor: pointer;
  position: relative;
}

.admin-actions-dropdown-item svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

.admin-actions-dropdown-item:hover,
.admin-actions-dropdown-item:focus-visible {
  background: #fff3eb;
  color: #1f3554;
  outline: none;
}

.admin-actions-dropdown-item.is-success {
  color: #1f8f57;
}

.admin-actions-dropdown-item.is-danger {
  color: #b54a2f;
}

.admin-actions-dropdown-item.is-disabled {
  opacity: 0.45;
  cursor: default;
  pointer-events: none;
}

.admin-actions-dropdown-item.is-disabled[data-help-tooltip] {
  opacity: 1;
  pointer-events: auto;
  cursor: not-allowed;
  color: #8f9cb0;
  background: #f7f3ee;
}

.admin-actions-dropdown-item.is-disabled[data-help-tooltip] svg {
  opacity: 0.7;
}

.admin-actions-dropdown-item[data-help-tooltip]::before,
.admin-actions-dropdown-item[data-help-tooltip]::after {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.admin-actions-dropdown-item[data-help-tooltip]::before {
  content: "";
  position: absolute;
  right: 10px;
  bottom: calc(100% + 1px);
  transform: translateY(4px);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid #13243b;
  z-index: 42;
}

.admin-actions-dropdown-item[data-help-tooltip]::after {
  content: attr(data-help-tooltip);
  position: absolute;
  right: 0;
  bottom: calc(100% + 8px);
  transform: translateY(4px);
  width: max-content;
  max-width: min(320px, calc(100vw - 32px));
  background: #13243b;
  color: #fff;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 11px;
  line-height: 1.3;
  font-weight: 700;
  z-index: 41;
  white-space: normal;
}

.admin-actions-dropdown-item[data-help-tooltip]:hover::before,
.admin-actions-dropdown-item[data-help-tooltip]:hover::after,
.admin-actions-dropdown-item[data-help-tooltip]:focus-visible::before,
.admin-actions-dropdown-item[data-help-tooltip]:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.user-menu-item-danger {
  color: #bb2f00;
}

.user-menu-item-danger:hover {
  background: #fff0ea;
  color: #9f2200;
}

.admin-main {
  display: flex;
  align-items: flex-start;
  min-height: calc(100vh - var(--admin-topbar-height));
}

.admin-sidebar {
  width: var(--admin-sidebar-width);
  background: #242150;
  border-right: 1px solid #24324a;
  --admin-sidebar-pad-x: 16px;
  padding: 22px var(--admin-sidebar-pad-x);
  position: sticky;
  top: var(--admin-topbar-height);
  align-self: flex-start;
  height: calc(100vh - var(--admin-topbar-height));
  overflow-y: auto;
}

.admin-sidebar-title {
  margin: 0 0 14px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9db0cf;
  font-weight: 700;
}
.admin-sidebar-group-title {
  margin: 10px 0 6px;
  padding: 0 calc(var(--admin-sidebar-pad-x) + 14px);
}
.admin-nav-item + .admin-sidebar-group-title {
  margin-top: 12px;
}

.admin-nav {
  display: grid;
  gap: 0;
  margin-inline: calc(var(--admin-sidebar-pad-x) * -1);
}

.admin-nav-item {
  border: 1px solid transparent;
  border-radius: 0;
  padding: 9px calc(var(--admin-sidebar-pad-x) + 14px);
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #e8efff;
}

.admin-nav-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.admin-nav-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-nav-label {
  min-width: 0;
}

.admin-nav-item:hover {
  border-top-color: rgba(var(--admin-brand-rgb), 0.45);
  border-bottom-color: rgba(var(--admin-brand-rgb), 0.45);
  border-left-color: transparent;
  border-right-color: transparent;
  color: var(--admin-brand-dark);
}

.admin-nav-item.is-active {
  background: rgba(var(--admin-brand-rgb), 0.14);
  border-top-color: rgba(var(--admin-brand-rgb), 0.45);
  border-bottom-color: rgba(var(--admin-brand-rgb), 0.45);
  border-left-color: transparent;
  border-right-color: transparent;
  color: var(--admin-brand-dark);
}

/* Avoid double borders when hover item touches an active item. */
.admin-nav-item:hover + .admin-nav-item.is-active {
  border-top-color: transparent;
}

.admin-nav-item.is-active + .admin-nav-item:hover {
  border-top-color: transparent;
}

@supports selector(.admin-nav-item:hover:has(+ .admin-nav-item.is-active)) {
  .admin-nav-item:hover:has(+ .admin-nav-item.is-active) {
    border-bottom-color: transparent;
  }
}

.admin-content {
  flex: 1;
  padding: 24px var(--admin-content-pad-x) 36px;
}

.admin-content.has-top-offset {
  padding-top: 36px;
}

.admin-content.has-action-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: center;
}

.admin-content.has-action-bar > * {
  grid-column: 1 / -1;
}

.admin-content.has-action-bar > .admin-page-head {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  align-self: center;
}

.admin-content.has-action-bar > .admin-action-bar {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  align-self: center;
  justify-self: end;
}

.admin-content.has-action-bar > .admin-page-head + * {
  margin-top: 16px;
}

.admin-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.admin-page-head > .admin-inline-row {
  align-self: center;
}

.admin-page-head-stack {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0;
}

.admin-back-link-inline {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 20px;
  color: var(--admin-ink);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: color 0.2s ease;
}

.admin-back-link-inline svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.2s ease;
}

.admin-back-link-inline:hover {
  color: var(--admin-brand);
}

.admin-page-back-link:hover svg,
.admin-page-back-link:focus-visible svg {
  transform: translateX(-4px);
}

.admin-page-head-stack .admin-back-link-inline {
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  transform: translateY(calc(-100% - 20px));
}

.admin-page-head-stack-with-top-offset {
  padding-top: 0;
}

.admin-page-head-stack-with-top-offset .admin-back-link-inline {
  position: static;
  transform: none;
  margin: 0 0 16px;
}

.admin-page-head h1 {
  margin: 0 0 3px;
  font-size: 31px;
  line-height: 1.15;
}

.admin-page-head.admin-page-head-detail h2 {
  margin: 0 0 3px;
  font-size: 31px;
  line-height: 1.15;
}

.admin-page-head.admin-page-head-detail p {
  margin-top: 0;
}

.admin-page-head p {
  margin: 0;
  color: var(--admin-muted);
  font-size: 15px;
}

.admin-action-bar {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 16px;
}

.admin-action-bar-inner {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  border: 1px solid #d9e2ec;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  padding: 4px;
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
}

.admin-action-form {
  margin: 0;
}

.admin-action-btn {
  min-height: 24px;
  border-radius: 999px;
  border: 1px solid transparent;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #1a2e4b;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
  text-decoration: none;
}

.admin-action-btn svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-action-btn:hover {
  transform: translateY(-1px);
}

.admin-action-btn.is-selected {
  transform: translateY(-1px);
}

.admin-action-btn:focus-visible {
  outline: 2px solid rgba(255, 106, 33, 0.33);
  outline-offset: 2px;
}

.admin-action-btn-primary {
  background: var(--admin-brand);
  border-color: var(--admin-brand);
  color: #fff;
}

.admin-action-btn-primary:hover {
  background: var(--admin-brand-dark);
  border-color: var(--admin-brand-dark);
}

.admin-action-btn-primary.is-selected {
  background: var(--admin-brand-dark);
  border-color: var(--admin-brand-dark);
}

.admin-action-btn-ghost {
  background: #fff;
  border-color: var(--admin-border);
  color: #1a2e4b;
}

.admin-action-btn-ghost:hover {
  border-color: #f1c4aa;
  color: var(--admin-brand-dark);
  background: #fff7f2;
}

.admin-action-btn-ghost.is-selected {
  border-color: #f1c4aa;
  color: var(--admin-brand-dark);
  background: #fff7f2;
}

.admin-action-btn-danger {
  background: #fff4ef;
  border-color: #f2c0ad;
  color: #bb3f12;
}

.admin-action-btn-danger:hover {
  background: #ffe8df;
  border-color: #e79e83;
  color: #a6360d;
}

.admin-action-btn-danger.is-selected {
  background: #ffe8df;
  border-color: #e79e83;
  color: #a6360d;
}

.admin-action-btn.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: none !important;
}

.admin-action-btn.is-disabled[data-help-tooltip] {
  position: relative;
}

.admin-action-btn.is-disabled[data-help-tooltip]::before,
.admin-action-btn.is-disabled[data-help-tooltip]::after {
  content: none !important;
}

.admin-filter-rail-demo {
  width: fit-content;
  max-width: 100%;
}

.admin-filter-rail {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid #d9e2ec;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  padding: 4px;
  min-height: 38px;
  overflow-x: auto;
  scrollbar-width: none;
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
}

.admin-filter-rail-wrap {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.admin-filter-rail-wrap.is-adaptive-collapsed {
  display: none !important;
}

.admin-adaptive-filter-menu {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: 120px;
}

.admin-adaptive-filter-menu[hidden] {
  display: none !important;
}

.admin-adaptive-filter-menu .custom-select-trigger {
  min-height: 34px;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  white-space: nowrap;
}

.admin-adaptive-filter-menu .custom-select-dropdown {
  left: 0;
  right: auto;
  min-width: 210px;
  max-width: min(320px, calc(100vw - 24px));
  z-index: 110;
}

.admin-filter-rail-types {
  min-height: 34px;
}

.admin-filter-rail::-webkit-scrollbar {
  display: none;
}

.admin-filter-rail-indicator {
  position: absolute;
  left: -4px;
  top: 4px;
  bottom: 4px;
  width: 0;
  border-radius: 999px;
  background-color: var(--admin-brand);
  box-shadow: 0 4px 12px rgba(var(--admin-brand-rgb), 0.32);
  transition: transform 0.22s ease, width 0.22s ease;
  pointer-events: none;
}

.admin-filter-rail-item {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #4d6079;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  padding: 0 12px;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  transition: color 0.2s ease;
}

.admin-filter-rail-indicator + .admin-filter-rail-item {
  margin-left: 4px;
}

.admin-filter-rail-item:hover {
  color: #213953;
}

.admin-filter-rail-item.is-active {
  color: #fff;
}

.admin-filter-rail-item:focus-visible {
  outline: 2px solid rgba(255, 106, 33, 0.34);
  outline-offset: 2px;
}

.admin-filter-rail-count {
  display: none;
  min-width: 20px;
  height: 18px;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  color: #183253;
  background: rgba(255, 255, 255, 0.92);
}

.admin-filter-rail-item.is-active .admin-filter-rail-count {
  display: inline-flex;
}

.admin-filter-rail-note {
  margin: 10px 4px 0;
  font-size: 12px;
  font-weight: 500;
  color: #667892;
}

.admin-context-sticky {
  width: calc(100% + (2 * var(--admin-content-pad-x)));
  margin-left: calc(-1 * var(--admin-content-pad-x));
  margin-right: calc(-1 * var(--admin-content-pad-x));
  position: sticky;
  top: var(--admin-topbar-height);
  z-index: 33;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(10px);
  pointer-events: none;
  border-bottom: 1px solid transparent;
  background: transparent;
  transition: max-height 0.3s ease, opacity 0.26s ease, transform 0.26s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.22s ease, background-color 0.22s ease;
}

.admin-context-sticky.is-stuck {
  max-height: 220px;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  border-bottom-color: var(--admin-sticky-strip-border);
  background: var(--admin-sticky-strip-bg);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

body.admin-moduli-drag-active .admin-context-sticky.is-stuck {
  max-height: 0;
  opacity: 0;
  transform: translateY(-100%);
  pointer-events: none;
  border-bottom-color: transparent;
}

[data-admin-action-anchor] {
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

[data-admin-action-anchor].is-covered-by-sticky {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.admin-context-sticky-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px var(--admin-content-pad-x);
  min-width: 0;
}

.admin-context-sticky-title {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--admin-ink);
  line-height: 1.15;
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-context-sticky .admin-action-bar {
  margin: 0;
  flex: 0 0 auto;
  min-width: 0;
}

.admin-context-sticky .admin-action-bar-inner {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.admin-doc-page #document-list-view.card-view {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 0;
}

.admin-doc-page #document-list-view.card-view .course-item.doc-upload-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  border-radius: 18px;
  overflow: hidden;
  min-height: 157px;
  border: 1px solid var(--admin-border);
}

.admin-doc-page #document-list-view .doc-upload-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  height: 100%;
  text-align: center;
  padding: 28px 24px;
  background: #fff;
}

.admin-doc-page #document-list-view .doc-upload-title {
  margin: 0;
  max-width: 260px;
  font-size: clamp(1.25rem, 1.55vw, 1.6rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #434343;
}

.admin-doc-page #document-list-view .doc-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: #e7f8ed;
  border: 1px solid #9dd8af;
  color: #1f7a3e;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1;
}

.admin-doc-page #document-list-view .doc-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.admin-doc-page #document-list-view .is-hidden {
  display: none !important;
}

.admin-doc-page #document-list-view .btn {
  min-width: 104px;
  min-height: 38px;
  border-radius: 12px;
  padding: 7px 12px;
  font-size: 0.78rem;
  font-weight: 700;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.admin-doc-page #document-list-view .btn.btn-primary {
  background: var(--admin-brand);
  border-color: var(--admin-brand);
  color: #fff;
}

.admin-doc-page #document-list-view .btn.btn-primary:hover {
  background: var(--admin-brand-dark);
  border-color: var(--admin-brand-dark);
}

.admin-doc-page #document-list-view .btn.btn-ghost {
  background: #fff;
  border-color: var(--admin-border);
  color: #1a2e4b;
}

.admin-doc-page #document-list-view .btn.btn-ghost:hover {
  border-color: #f1c4aa;
  color: var(--admin-brand-dark);
  background: #fff7f2;
}

.admin-doc-page #document-list-view .doc-upload-meta {
  margin: 0;
  color: #57534e;
  font-size: 1.05rem;
  line-height: 1.25;
}

.admin-doc-page #document-list-view .doc-upload-loading {
  display: none;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  color: #374151;
  font-size: 0.95rem;
  font-weight: 600;
  width: min(280px, 100%);
}

.admin-doc-page #document-list-view .doc-upload-loading-label {
  display: block;
  text-align: center;
}

.admin-doc-page #document-list-view .doc-upload-progress {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: #e6ecf3;
  overflow: hidden;
}

.admin-doc-page #document-list-view .doc-upload-progress-bar {
  height: 100%;
  width: 0;
  border-radius: inherit;
  background-color: #e9530e;
  transition: width 0.2s ease;
}

.admin-doc-page #document-list-view .doc-upload-progress-text {
  display: block;
  text-align: right;
  color: #5a6679;
  font-size: 0.74rem;
  line-height: 1;
  font-weight: 700;
}

.admin-doc-page #document-list-view .doc-spinner {
  width: 18px;
  height: 18px;
  align-self: center;
  border-radius: 50%;
  border: 2px solid rgba(217, 71, 63, 0.25);
  border-top-color: #d9473f;
  animation: admin-doc-spin 0.8s linear infinite;
}

.admin-doc-page #document-list-view .doc-upload-error {
  margin: -10px 0 0;
  min-height: 1.2em;
  color: #b42318;
  font-size: 0.82rem;
  font-weight: 600;
  opacity: 0;
}

.admin-doc-page #document-list-view .doc-upload-error.is-visible {
  opacity: 1;
}

.admin-doc-page #document-list-view .doc-storage-pending {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: #fff4e8;
  border: 1px solid #f5c08f;
  color: #b45711;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1;
}

.admin-doc-page #document-list-view .doc-upload-card.is-empty {
  border: 2px dashed #e9b6b2;
  background: #fff;
}

.admin-doc-page #document-list-view .doc-upload-card.is-empty .btn.btn-primary {
  background: #fff;
  border-color: #d9473f;
  color: #d9473f;
}

.admin-doc-page #document-list-view .doc-upload-card.is-empty .btn.btn-primary:hover {
  background: #d9473f;
  color: #fff;
  border-color: #d9473f;
}

.admin-doc-page #document-list-view .doc-upload-card.is-loaded {
  border-color: #d8e2e8;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.94)),
    radial-gradient(circle at 16% 18%, rgba(255, 143, 74, 0.12), transparent 42%),
    radial-gradient(circle at 82% 78%, rgba(41, 163, 117, 0.1), transparent 44%),
    repeating-linear-gradient(135deg, rgba(242, 235, 228, 0.22) 0 12px, rgba(255, 255, 255, 0.22) 12px 24px);
}

.admin-doc-page #document-list-view .doc-upload-card.is-loaded .doc-upload-title {
  color: #2f3c47;
}

.admin-doc-page #document-list-view .doc-upload-card.is-loaded .btn.btn-ghost {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(22, 29, 36, 0.85);
  color: #161d24;
}

.admin-doc-page #document-list-view .doc-upload-card.is-loaded .btn.btn-primary {
  border-color: transparent;
}

.admin-doc-page #document-list-view .doc-upload-card.is-uploading .doc-upload-loading {
  display: flex;
}

.admin-doc-page #document-list-view .doc-upload-card.is-uploading .doc-actions {
  opacity: 0.45;
  pointer-events: none;
}

.admin-doc-page #document-list-view .doc-upload-card.is-uploading .doc-upload-btn {
  cursor: wait;
}

.admin-doc-page .doc-privacy-note {
  margin: 8px 0 0;
  max-width: 100%;
  font-size: 0.68rem;
  line-height: 1.35;
  color: #7b7b7b;
}

@keyframes admin-doc-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.admin-grid {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
}

.admin-form .admin-grid {
  align-items: start;
}

.admin-grid-kpi {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

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

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

.admin-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.new-row  { grid-column: 1 / span 1; }   /* parte da colonna 1 */

.admin-card {
  background: var(--admin-surface);
  border: 1px solid var(--admin-border);
  border-radius: var(--admin-radius);
  padding: 20px;
  margin-bottom: 20px;
}

.new-row  { grid-column: 1 / span 1; }   /* parte da colonna 1 */

.admin-card h2 {
  margin: 0 0 20px;
  font-size: 18px;
}

.admin-card p {
  margin: 0 0 16px;
  color: var(--admin-muted);
}

.admin-detail-card {
  padding: 22px;
}

.admin-detail-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "eyebrow badges"
    "title title";
  align-items: start;
  column-gap: 16px;
  row-gap: 6px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e7edf5;
  margin-bottom: 14px;
}

.admin-detail-head.admin-detail-head-corsisti {
  grid-template-columns: auto minmax(0, 1fr);
}

.admin-detail-eyebrow {
  grid-area: eyebrow;
  display: inline-flex;
  align-items: center;
  margin: 0;
  align-self: center;
  line-height: 1;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6a7c95;
  font-weight: 700;
}

.admin-detail-eyebrow-badge {
  align-self: center;
  display: flex;
  align-items: center;
}

.admin-detail-title {
  grid-area: title;
  margin: 0;
  font-size: 29px;
  line-height: 1.08;
  color: #13243d;
  max-width: 100%;
}

.admin-detail-badges {
  grid-area: badges;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  justify-self: end;
  align-self: center;
}

.admin-detail-head.admin-detail-head-corsisti .admin-detail-badges {
  width: 100%;
  justify-self: stretch;
  justify-content: stretch;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 8px;
}

.admin-duration-indicator {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #d5dee9;
  background: #f8fbff;
  color: #1f3656;
  font-size: 12px;
  line-height: 1;
}

.admin-duration-label {
  font-weight: 700;
  color: #5f7390;
}

.admin-duration-indicator strong {
  font-weight: 800;
  letter-spacing: 0.01em;
}

.admin-duration-indicator-slot.is-loading .admin-duration-indicator {
  position: relative;
  color: transparent !important;
  border-color: #d8e1ec;
  background: #f2f6fb;
  overflow: hidden;
}

.admin-duration-indicator-slot.is-loading .admin-duration-indicator::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #e9530e;
  transform: translateX(-100%);
  animation: admin-skeleton-slide 1.1s ease-in-out infinite;
}

.admin-duration-indicator.is-ok {
  border-color: #9cd7bd;
  background: #ebfaf3;
  color: #0b7d4e;
}

.admin-duration-indicator.is-under {
  border-color: #f2b6b6;
  background: #fff1f1;
  color: #b53b3b;
}

.admin-moduli-col-durata.is-loading {
  position: relative;
  color: transparent !important;
  border-radius: 8px;
  background: #eef3fa;
  min-height: 18px;
  overflow: hidden;
}

.admin-moduli-col-durata.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #e9530e;
  transform: translateX(-100%);
  animation: admin-skeleton-slide 1.1s ease-in-out infinite;
}

.admin-moduli-col-durata.is-loading::before {
  content: "Sync in corso";
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(79, 103, 134, 0.45);
  z-index: 1;
  pointer-events: none;
}

@keyframes admin-skeleton-slide {
  100% {
    transform: translateX(100%);
  }
}

.admin-moduli-sync-overlay {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(19, 36, 59, 0.45);
  backdrop-filter: blur(2px);
}

.admin-moduli-sync-overlay[hidden] {
  display: none !important;
}

.admin-moduli-sync-overlay-card {
  width: min(460px, calc(100vw - 48px));
  border-radius: 14px;
  border: 1px solid #d8e1ec;
  background: #ffffff;
  box-shadow: 0 20px 48px rgba(12, 35, 64, 0.24);
  padding: 22px 20px;
  text-align: center;
}

.admin-moduli-sync-overlay-spinner {
  width: 34px;
  height: 34px;
  margin: 0 auto 12px;
  border-radius: 50%;
  border: 3px solid #d8e1ec;
  border-top-color: #f16a21;
  display: inline-block;
  animation: admin-moduli-sync-spin 0.8s linear infinite;
}

.admin-moduli-sync-overlay-title {
  color: #13243b;
  font-weight: 800;
  font-size: 18px;
  line-height: 1.2;
}

.admin-moduli-sync-overlay-text {
  margin-top: 6px;
  color: #4f6786;
  font-size: 13px;
  line-height: 1.35;
}

body.admin-moduli-sync-lock {
  overflow: hidden;
}

@keyframes admin-moduli-sync-spin {
  to {
    transform: rotate(360deg);
  }
}

.admin-report-fad-search {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.admin-report-fad-search input {
  width: 320px;
  height: 34px;
  border: 1px solid #d6e0eb;
  border-radius: 999px;
  background: #fff;
  color: #1b3353;
  font-size: 13px;
  font-weight: 600;
  padding: 0 34px 0 12px;
}

.admin-report-fad-search input::placeholder {
  color: #7c8ea8;
  font-weight: 500;
}

.admin-report-fad-search input:focus {
  outline: none;
  border-color: #b7c7da;
  box-shadow: 0 0 0 3px rgba(120, 153, 194, 0.18);
}

.admin-report-fad-search-icon {
  position: absolute;
  right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #607694;
  pointer-events: none;
}

.admin-report-fad-search-icon svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

.admin-report-fad-pdf-badges {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 14px;
  padding-left: 14px;
  border-left: 1px solid #d7e0ea;
}

/* Prevent horizontal overflow in corso/report_sintetico layouts */
#report_sintetico .admin-detail-badges {
  min-width: 0;
  max-width: 100%;
}

#report_sintetico .admin-report-fad-search {
  max-width: 100%;
}

#report_sintetico .admin-report-fad-search input {
  width: min(320px, 100%);
}

#report_sintetico .admin-report-fad-pdf-badges {
  min-width: 0;
  max-width: 100%;
  flex-wrap: wrap;
}

#report_sintetico .admin-table-clean {
  min-width: 0;
}

#report_sintetico .admin-report-fad-table,
#report_sintetico .admin-report-fad-inner-table {
  table-layout: fixed;
}

#report_sintetico .admin-table-clean th,
#report_sintetico .admin-table-clean td {
  overflow-wrap: anywhere;
  word-break: break-word;
}

#report_sintetico .admin-report-fad-actions-col,
#report_sintetico .admin-report-fad-actions-col-header {
  width: auto;
  min-width: 0;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

@media (min-width: 1200px) {
  #report_sintetico {
    overflow-x: hidden;
  }

  #report_sintetico .admin-table-clean-wrap {
    overflow-x: clip;
  }
}

.admin-detail-section + .admin-detail-section {
  margin-top: 14px;
}

.admin-detail-section h3 {
  margin: 0 0 10px;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #5f6f86;
}

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

.admin-detail-item {
  border: 1px solid #dde6f0;
  border-radius: 12px;
  background: #f9fbfe;
  padding: 12px 14px;
  min-height: 82px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.admin-detail-item-wide {
  grid-column: span 2;
}

.admin-detail-label {
  display: block;
  margin-bottom: 6px;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6a7c95;
  font-weight: 700;
}

.admin-detail-value {
  font-size: 18px;
  line-height: 1.25;
  color: #142847;
  font-weight: 700;
  word-break: break-word;
}

.admin-detail-link {
  font-size: 17px;
  line-height: 1.25;
  color: #163961;
  font-weight: 700;
  word-break: break-word;
  text-decoration: none;
}

.admin-detail-link:hover {
  color: #d15518;
}

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

.admin-detail-text {
  border: 1px solid #dde6f0;
  border-radius: 12px;
  background: #f9fbfe;
  padding: 14px;
}

.admin-detail-text p {
  margin: 0;
  color: #1e314d;
  font-size: 15px;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}

.admin-kpi {
  position: relative;
  overflow: hidden;
  padding: 16px;
  padding-right: 88px;
}

.admin-kpi .admin-kpi-label {
  position: relative;
  z-index: 2;
  display: block;
  font-size: 13px;
  color: var(--admin-muted);
  margin-bottom: 8px;
  font-weight: 600;
}

.admin-kpi strong {
  position: relative;
  z-index: 2;
  font-size: 29px;
  line-height: 1;
}

.admin-kpi-icon {
  position: absolute;
  top: 50%;
  right: 16px;
  width: clamp(54px, 4.1vw, 72px);
  height: clamp(54px, 4.1vw, 72px);
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--admin-muted);
  opacity: 0.1;
  pointer-events: none;
  z-index: 1;
}

.admin-kpi-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-dashboard-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  margin-bottom: 18px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.admin-dashboard-eyebrow {
  margin: 0 0 6px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 11px;
  font-weight: 800;
  color: #5d718d;
}

.admin-dashboard-hero h1 {
  margin: 0;
  color: #112640;
  font-size: clamp(26px, 2.2vw, 36px);
  line-height: 1.05;
}

.admin-dashboard-subtitle {
  margin: 10px 0 0;
  color: #516885;
  font-size: 14px;
}

.admin-dashboard-hero-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.admin-dashboard-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #d5dfeb;
  border-radius: 999px;
  padding: 6px 11px;
  background: #ffffff;
  font-size: 12px;
  color: #4f6786;
}

.admin-dashboard-pill strong {
  color: #13243d;
}

.admin-dashboard-metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.admin-dashboard-metric {
  border-radius: 14px;
  padding: 14px 14px 12px;
  color: #173252;
  border: 1px solid #d9e4f0;
  box-shadow: 0 6px 14px rgba(16, 38, 66, 0.08);
}

.admin-dashboard-metric-label {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  opacity: 1;
  margin-bottom: 8px;
  color: #5b7392;
}

.admin-dashboard-metric strong {
  display: block;
  font-size: clamp(26px, 2.2vw, 34px);
  line-height: 1;
}

.admin-dashboard-metric p {
  margin: 8px 0 0;
  color: #5f7491;
  font-size: 12px;
}

.admin-dashboard-metric-primary {
  background: #f3f6fa;
  border-color: #d4deea;
}

.admin-dashboard-metric-green {
  background: #eef6f1;
  border-color: #cde2d6;
}

.admin-dashboard-metric-blue {
  background: #eef3f8;
  border-color: #cfdae8;
}

.admin-dashboard-metric-purple {
  background: #f4eff8;
  border-color: #ddcfe8;
}

.admin-dashboard-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 14px;
}

.admin-dashboard-panel {
  margin-bottom: 0;
}

.admin-dashboard-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.admin-dashboard-panel-head h2 {
  margin: 0;
}

.admin-dashboard-panel-head p {
  margin: 5px 0 0;
}

.admin-dashboard-notify-list {
  display: grid;
  gap: 10px;
}

.admin-dashboard-notify-item {
  border: 1px solid #dce6f1;
  border-radius: 12px;
  padding: 11px 12px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  background: #fbfdff;
}

.admin-dashboard-notify-title-wrap {
  min-width: 0;
}

.admin-dashboard-notify-course {
  display: block;
  color: #163253;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-dashboard-notify-id {
  display: inline-block;
  margin-top: 2px;
  font-size: 11px;
  color: #7a8ba3;
}

.admin-dashboard-notify-right {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.admin-dashboard-notify-count {
  font-size: 12px;
  color: #5a6f8a;
  font-weight: 700;
  white-space: nowrap;
}

.admin-dashboard-side {
  display: grid;
  grid-template-rows: auto auto 1fr;
}

.admin-dashboard-quick-links {
  display: grid;
  gap: 8px;
}

.admin-dashboard-quick-link {
  border: 1px solid #dce5f1;
  border-radius: 11px;
  padding: 10px 11px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  color: #173252;
  background: #fbfdff;
}

.admin-dashboard-quick-link:hover {
  border-color: #c2d2e5;
  background: #f3f8ff;
}

.admin-dashboard-quick-link span {
  font-size: 13px;
  font-weight: 600;
}

.admin-dashboard-quick-link strong {
  font-size: 15px;
}

.admin-dashboard-permission-note {
  margin-top: 12px;
  padding: 10px 11px;
  border-radius: 10px;
  border: 1px solid #d9e4f0;
  background: #f7fbff;
}

.admin-dashboard-permission-note p {
  margin: 0;
  font-size: 12px;
  color: #4d6787;
}

.admin-dashboard-permission-note p + p {
  margin-top: 5px;
}

@media (max-width: 1200px) {
  .admin-dashboard-main-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-dashboard-side {
    grid-template-rows: auto;
  }
}

@media (max-width: 992px) {
  .admin-dashboard-hero {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  .admin-dashboard-hero-pills {
    justify-content: flex-start;
  }

  .admin-dashboard-metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .admin-dashboard-metrics-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-dashboard-notify-item {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  .admin-dashboard-notify-right {
    justify-content: space-between;
    width: 100%;
  }
}

.admin-inline-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.admin-list-view-switch {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid #d9e2ec;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  padding: 3px;
}

.admin-list-view-btn {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #5b6d86;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.admin-list-view-btn svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-list-view-btn:hover {
  color: #243a59;
  background: #f3f7fc;
}

.admin-list-view-btn.is-active {
  background: var(--admin-brand);
  border-color: var(--admin-brand);
  color: #fff;
}

.admin-list-view-btn.is-active:hover {
  background: var(--admin-brand);
  border-color: var(--admin-brand);
  color: #fff;
}

body.admin-theme-dark .admin-list-view-btn.is-active,
body.admin-theme-dark .admin-list-view-btn.is-active:hover {
  background: var(--admin-brand) !important;
  border-color: var(--admin-brand) !important;
  color: #fff !important;
}

.admin-list-view-btn:focus-visible {
  outline: 2px solid rgba(255, 106, 33, 0.34);
  outline-offset: 2px;
}

.admin-color-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.admin-color-swatch {
  border: 1px solid var(--admin-border);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 700;
  color: #183152;
  background-color: #e9530e;
}

.admin-badge {
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 10px;
}

.admin-badge-success {
  color: var(--admin-success);
  border-color: #8ad0b2;
  background: #ebfaf3;
}

.admin-badge-warning {
  color: var(--admin-warning);
  border-color: #f2cf90;
  background: #fff8ea;
}

.admin-badge-danger-soft {
  color: #b74848;
  border-color: #f1c5c5;
  background: #fff1f1;
}

.admin-badge-neutral {
  color: var(--admin-muted);
  border-color: var(--admin-border);
  background: #f8fafc;
}

.admin-badge-course-presenza {
  color: #1d4f91;
  border-color: #b7d0f2;
  background: #eaf3ff;
}

.admin-badge-course-fad {
  color: #6a2f8f;
  border-color: #d9b9f0;
  background: #f5ebff;
}

.admin-badge-course-dad {
  color: #0d6b5e;
  border-color: #9edfd2;
  background: #e5f7f3;
}

.admin-badge-with-icon {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.admin-badge-with-icon svg {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-badge-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
}

.admin-detail-badges .admin-badge-link {
  transition: none;
}

.admin-detail-badges .admin-badge-link:hover,
.admin-detail-badges .admin-badge-link:focus-visible {
  border-color: #f1c4aa;
  color: var(--admin-brand-dark);
  background: #fff7f2;
  transform: none;
}

.admin-badge-action-danger {
  background: #fff4ef;
  border-color: #f2c0ad;
  color: #bb3f12;
}

.admin-detail-badges .admin-badge-link.admin-badge-action-danger:hover,
.admin-detail-badges .admin-badge-link.admin-badge-action-danger:focus-visible {
  background: #ffe8df;
  border-color: #e79e83;
  color: #a6360d;
}

.admin-badge-action-success {
  background: #ebfaf3;
  border-color: #8ad0b2;
  color: #1d7b58;
}

.admin-detail-badges .admin-badge-link.admin-badge-action-success:hover,
.admin-detail-badges .admin-badge-link.admin-badge-action-success:focus-visible {
  background: #ddf3e8;
  border-color: #6bbf9d;
  color: #156547;
}

.admin-badge-link svg {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-course-report-type-badge {
  display: inline-flex;
  align-items: center;
  transform: translateY(10px);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
}

.admin-course-edit-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.admin-course-edit-status-label {
  font-size: 12px;
  font-weight: 700;
  color: #6a7c95;
}

.admin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 8px;
  padding: 10px 16px;
  border: 1px solid transparent;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  min-height: 40px;
}

.admin-btn-sm {
  min-height: 34px;
  padding: 7px 12px;
  font-size: 13px;
}

.admin-btn-full {
  width: 100%;
}

.admin-btn-primary {
  background: var(--admin-brand);
  border-color: var(--admin-brand);
  color: #fff;
}

.admin-btn-primary:hover {
  background: var(--admin-brand-dark);
  border-color: var(--admin-brand-dark);
}

/* Global style for "add" actions (list + internal section headers). */
.admin-btn.admin-list-create-btn,
.admin-btn[data-add-unita-btn],
.admin-btn[data-add-dispensa-open],
.admin-btn[data-add-corsista-open] {
  border-radius: 6px;
}

.admin-btn.admin-list-create-btn::before,
.admin-btn[data-add-unita-btn]::before,
.admin-btn[data-add-dispensa-open]::before,
.admin-btn[data-add-corsista-open]::before {
  content: "";
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 12h8'/%3E%3Cpath d='M12 8v8'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 12h8'/%3E%3Cpath d='M12 8v8'/%3E%3C/svg%3E");
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: contain;
  -webkit-mask-size: contain;
}

.admin-btn.admin-btn-icon-search::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
}

.admin-btn-ghost {
  background: #fff;
  border-color: var(--admin-border);
  color: var(--admin-ink);
}

.admin-btn-ghost:hover {
  border-color: #f1c4aa;
  color: var(--admin-brand-dark);
}

.admin-public-avatar-upload {
  display: grid;
  gap: 8px;
  position: relative;
  width: min(320px, 100%);
}

#utente-avatar-file[data-avatar-file] {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
}

.admin-public-profile-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.admin-public-profile-row > .admin-form-group {
  flex: 1 1 auto;
  min-width: 0;
}

.admin-public-profile-row > .admin-form-group:first-child {
  flex: 0 0 320px;
}

.admin-corsi-form-cards {
  display: grid;
  gap: 14px;
}

.admin-corsi-form-card {
  padding: 14px;
  border-radius: 14px;
}

.admin-corsi-form-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.admin-corsi-form-card-title {
  margin: 0 0 14px;
  font-size: 15px;
  font-weight: 800;
  color: #1b2f4a;
}

.admin-corsi-form-card .admin-form-top-tools {
  margin-bottom: 0;
}

.admin-corso-meta-layout {
  display: grid;
  grid-template-columns: minmax(320px, 360px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.admin-corso-meta-layout > .admin-form-group {
  grid-column: 1;
}

.admin-corso-meta-layout > .admin-corso-meta-fields {
  grid-column: 2;
}

.admin-corso-meta-fields {
  display: grid;
  gap: 12px;
}

.admin-course-image-upload {
  width: 100%;
}

.admin-course-content-layout {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
  gap: 16px;
  align-items: start;
}

.admin-course-mail-layout {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
  gap: 16px;
  align-items: start;
}

.admin-course-content-main {
  display: grid;
  gap: 12px;
}

.admin-public-avatar-drop.admin-course-image-drop {
  aspect-ratio: auto;
  height: clamp(180px, 24vw, 220px);
  min-height: 180px;
}

.admin-course-content-media .admin-public-avatar-drop.admin-course-image-drop {
  aspect-ratio: 16 / 9;
  height: auto;
  min-height: 0;
  max-height: 260px;
}

.admin-public-avatar-drop {
  border: 2px dashed #d5dde8;
  border-radius: 14px;
  width: 100%;
  aspect-ratio: 3 / 4;
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: #fafcff;
  overflow: hidden;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.admin-public-avatar-drop:hover {
  border-color: #f1c4aa;
  background: #fff7f2;
}

.admin-public-avatar-drop.has-image {
  border-style: solid;
}

.admin-public-avatar-tools {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-flex;
  gap: 8px;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}

.admin-public-avatar-upload:hover .admin-public-avatar-tools:not([hidden]),
.admin-public-avatar-upload:focus-within .admin-public-avatar-tools:not([hidden]) {
  opacity: 1;
  pointer-events: auto;
}

.admin-public-avatar-tool {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  color: #0f172a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.15s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.admin-public-avatar-tool:hover {
  transform: translateY(-1px);
  background: rgba(15, 23, 42, 0.85);
  border-color: rgba(255, 255, 255, 0.3);
  color: #fff;
}

.admin-public-avatar-tool.is-danger {
  color: #fff;
  background: rgba(187, 47, 0, 0.9);
  border-color: rgba(255, 255, 255, 0.3);
}

.admin-public-avatar-tool.is-danger:hover {
  background: rgba(187, 47, 0, 0.9);
  border-color: rgba(255, 255, 255, 0.3);
  color: #fff;
}

.admin-public-avatar-tool svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-public-avatar-drop img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.admin-public-avatar-drop img[hidden] {
  display: none !important;
}

.admin-public-avatar-placeholder {
  color: var(--admin-muted);
  font-size: 14px;
  font-weight: 600;
}

.admin-input-hint.is-error {
  color: #bb2f00;
}

@media (max-width: 900px) {
  .admin-public-profile-row {
    flex-direction: column;
  }

  .admin-course-content-layout {
    grid-template-columns: 1fr;
  }

  .admin-course-mail-layout {
    grid-template-columns: 1fr;
  }

  .admin-corso-meta-layout {
    grid-template-columns: 1fr;
  }

  .admin-corso-meta-layout > .admin-form-group,
  .admin-corso-meta-layout > .admin-corso-meta-fields {
    grid-column: 1;
  }
}

.admin-btn-soft {
  background: #fff4ee;
  border-color: #f1c4aa;
  color: var(--admin-brand-dark);
}

.admin-form {
  display: grid;
  gap: 12px;
}

.admin-filters {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
  align-items: start;
}

.admin-form-group {
  display: grid;
  gap: 6px;
  align-content: start;
  align-self: start;
}

.admin-form-top-tools {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 8px;
}

.admin-form-group-span-2 {
  grid-column: 1 / -1;
}

.admin-form-group-span-3 {
  grid-column: 3 / 1;
}
.admin-form-group-span-4 {
  grid-column: 4 / 1;
}

.admin-form-group label {
  font-size: 14px;
  font-weight: 600;
  color: #475a75;
}

.admin-form-group label em {
  color: #dd3a00;
  font-style: normal;
  font-weight: 800;
}

.admin-radio-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 22px;
}

.admin-radio-inline-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  color: #3b4554;
  font-size: 15px;
  line-height: 1;
}

.admin-radio-inline-item input[type="radio"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
}

.admin-radio-inline-ui {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  border: 1px solid #b6b9be;
  background: #f2f2f2;
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.admin-radio-inline-ui::after {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: #ef6c00;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.2s ease;
}

.admin-radio-inline-item input[type="radio"]:checked + .admin-radio-inline-ui::after {
  transform: translate(-50%, -50%) scale(1);
}

.admin-radio-inline-item input[type="radio"]:checked + .admin-radio-inline-ui {
  border-color: #a3a8ae;
}

.admin-radio-inline-item input[type="radio"]:focus-visible + .admin-radio-inline-ui {
  box-shadow: 0 0 0 3px rgba(239, 108, 0, 0.25);
}

.admin-radio-inline-text {
  font-size: 15px;
  font-weight: 500;
  color: #42464d;
}

.admin-radio-inline-item.is-disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

.admin-radio-inline-item.is-disabled .admin-radio-inline-text {
  color: #6b7280;
}

.admin-checkbox-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 22px;
}

.admin-checkbox-inline-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  color: #3b4554;
  font-size: 15px;
  line-height: 1;
}

.admin-checkbox-inline-item input[type="checkbox"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  margin: 0;
  cursor: pointer;
}

.admin-checkbox-inline-ui {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  border: 1px solid #b6b9be;
  background: #f2f2f2;
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.admin-checkbox-inline-ui::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 4px;
  width: 14px;
  height: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  transform: scale(0.7);
  transition: transform 0.18s ease;
}

.admin-checkbox-inline-item input[type="checkbox"]:checked + .admin-checkbox-inline-ui {
  background: #ef6c00;
  border-color: #ef6c00;
}

.admin-checkbox-inline-item input[type="checkbox"]:checked + .admin-checkbox-inline-ui::after {
  transform: scale(1);
}

.admin-checkbox-inline-item input[type="checkbox"]:focus-visible + .admin-checkbox-inline-ui {
  box-shadow: 0 0 0 3px rgba(239, 108, 0, 0.25);
}

.admin-checkbox-inline-text {
  font-size: 15px;
  font-weight: 500;
  color: #42464d;
}

.admin-permessi-box {
  display: grid;
  gap: 16px;
  border: 1px solid #dbe4ef;
  border-radius: 16px;
  padding: 16px;
  background: #fbfdff;
}

.admin-permessi-section {
  display: grid;
  gap: 10px;
}

.admin-permessi-section.is-disabled {
  opacity: 0.55;
}

.admin-permessi-section.is-disabled .admin-permessi-item {
  background: #f7f9fc;
}

.admin-permessi-section + .admin-permessi-section {
  padding-top: 14px;
  border-top: 1px dashed #dbe4ef;
}

.admin-permessi-section-title {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: #445b79;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.admin-permessi-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.admin-permessi-item {
  border: 1px solid #e1e8f1;
  border-radius: 12px;
  padding: 10px 12px;
  background: #ffffff;
  min-height: 48px;
}

.admin-permessi-corsi-access-wrap {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed #dbe4ef;
  display: grid;
  gap: 8px;
}

.admin-permessi-corsi-access-wrap.is-disabled {
  opacity: 0.58;
}

.admin-permessi-corsi-access-title {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: #516683;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.admin-permessi-corsi-access-select .custom-select-multi-trigger {
  align-items: flex-start;
  height: auto;
  min-height: 44px;
  line-height: normal;
  padding-top: 7px;
  padding-bottom: 7px;
}

.admin-permessi-corsi-access-select .custom-select-multi-values {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  width: calc(100% - 22px);
  min-height: 28px;
  align-content: center;
}

.admin-permessi-corsi-access-select .custom-select-multi-placeholder {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  color: #6c7f97;
  font-size: 14px;
  font-weight: 600;
}

.admin-permessi-corsi-access-select .custom-select-multi-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: fit-content;
  min-height: 28px;
  padding: 3px 24px 3px 9px;
  border-radius: 999px;
  background: #eef5ff;
  border: 1px solid #c4d5ea;
  color: #1f3452;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.1;
  position: relative;
  width: auto;
  white-space: nowrap;
}

.admin-permessi-corsi-access-select .custom-select-multi-chip.admin-permessi-corsi-access-chip-badge {
  background: #e8f1ff;
  border-color: #b8cdee;
  color: #17365d;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55);
}

.admin-permessi-corsi-access-select .custom-select-multi-chip-remove {
  border: 0;
  background: transparent;
  color: #1f3452;
  opacity: 0.65;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
}

.admin-permessi-corsi-access-select .custom-select-multi-chip-remove:hover,
.admin-permessi-corsi-access-select .custom-select-multi-chip-remove:focus-visible {
  opacity: 1;
  background: rgba(255, 90, 31, 0.12);
}

.admin-permessi-corsi-access-select .custom-select-multi-chip-remove svg {
  position: static;
  top: auto;
  right: auto;
  transform: none;
  display: block;
  width: 11px;
  height: 11px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-switch-demo-stack {
  display: grid;
  gap: 16px;
}

.admin-switch-demo-row {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid #e5d8cb;
  background: #fffaf6;
}

.admin-switch-demo-size {
  display: inline-flex;
  align-self: start;
  justify-self: start;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6c7b92;
  background: #f2e7de;
}

.admin-switch-field {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
}

.admin-switch-field-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #4c5d74;
}

.admin-switch-field .field-help {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-left: 0;
  color: #7f8a9b;
  cursor: help;
  position: relative;
  vertical-align: middle;
  flex: 0 0 16px;
}

.admin-switch-field .field-help svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-switch-field .field-help.admin-js-tooltip::before,
.admin-switch-field .field-help.admin-js-tooltip::after {
  content: none !important;
  display: none !important;
}

.admin-switch {
  --switch-width: 116px;
  --switch-height: 40px;
  --switch-font-size: 12px;
  --switch-padding: 3px;
  position: relative;
  display: inline-flex;
}

.admin-switch input[type="checkbox"] {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
  margin: 0;
  cursor: pointer;

}

.admin-switch-track {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--switch-width);
  height: var(--switch-height);
  border-radius: 999px;
  border: 1px solid #b73535;
  background-color: #e9530e;
  transition: background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
  overflow: hidden;
  cursor: pointer;
}

.admin-switch-track::before {
  content: "";
  position: absolute;
  left: var(--switch-padding);
  width: calc(var(--switch-height) - (var(--switch-padding) * 2));
  height: calc(var(--switch-height) - (var(--switch-padding) * 2));
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 2px 6px rgba(20, 40, 71, 0.28);
  transition: transform 0.22s ease;
}

.admin-switch-track::after {
  content: attr(data-off);
  display: block;
  width: 100%;
  padding: 0 3px 0 calc(var(--switch-height) * 0.56);
  text-align: center;
  font-size: var(--switch-font-size);
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #ffffff;
  line-height: 1;
  white-space: nowrap;
  text-transform: uppercase;
  transition: padding 0.22s ease;
}

.admin-switch input[type="checkbox"]:checked + .admin-switch-track {
  border-color: #0c8a56;
  background-color: #e9530e;
}

.admin-switch input[type="checkbox"]:checked + .admin-switch-track::before {
  transform: translateX(calc(var(--switch-width) - var(--switch-height)));
}

.admin-switch input[type="checkbox"]:checked + .admin-switch-track::after {
  content: attr(data-on);
  padding: 0 calc(var(--switch-height) * 0.56) 0 9px;
}

.admin-switch input[type="checkbox"]:focus-visible + .admin-switch-track {
  box-shadow: 0 0 0 3px rgba(255, 106, 33, 0.24);
}

/* Corsi/Edit: stato corso + fruizione -> 0 rosso, 1 verde */
.admin-switch input[type="checkbox"][data-fruizione-switch] + .admin-switch-track,
.admin-switch input[type="checkbox"][data-published-switch] + .admin-switch-track {
  border-color: #b73535 !important;
  background-color: #d64545 !important;
}

.admin-switch input[type="checkbox"][data-fruizione-switch]:checked + .admin-switch-track,
.admin-switch input[type="checkbox"][data-published-switch]:checked + .admin-switch-track {
  border-color: #0c8a56 !important;
  background-color: #1fa463 !important;
}

.admin-switch-large {
  --switch-width: 140px;
  --switch-height: 48px;
  --switch-font-size: 13px;
  --switch-padding: 4px;
}

.admin-switch-medium {
  --switch-width: 116px;
  --switch-height: 40px;
  --switch-font-size: 12px;
  --switch-padding: 3px;
}

.admin-switch-small {
  --switch-width: 112px;
  --switch-height: 22px;
  --switch-font-size: 8px;
  --switch-padding: 3px;
}

.admin-input-hint {
  color: var(--admin-muted);
  font-size: 12px;
  font-weight: 500;
}

.admin-list-search {
  margin: 0 0 12px;
  width: 100%;
  position: sticky;
  top: var(--admin-topbar-height);
  z-index: 34;
  gap: 0;
  display: flex;
  align-items: center;
  transition: background-color 0.28s ease, border-color 0.28s ease, padding 0.28s ease, gap 0.28s ease;
}

.admin-list-search.is-stuck {
  width: calc(100% + (2 * var(--admin-content-pad-x)));
  margin-left: calc(-1 * var(--admin-content-pad-x));
  margin-right: calc(-1 * var(--admin-content-pad-x));
  padding: 15px var(--admin-content-pad-x);
  background: var(--admin-sticky-strip-bg);
  gap: 12px;
  border-bottom: 1px solid var(--admin-sticky-strip-border);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  overflow: visible;
}

.admin-list-search .admin-filters.admin-filters-plain {
  flex: 1 1 auto;
  min-width: 0;
}

.admin-list-search-tools {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex: 0 0 auto;
  max-width: 0;
  opacity: 0;
  transform: translateX(10px);
  pointer-events: none;
  visibility: hidden;
  overflow: hidden;
  transition: max-width 0.3s ease, opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.admin-list-create-btn {
  width: auto;
  flex: 0 0 auto;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
}

.admin-list-search.is-stuck .admin-list-search-tools {
  max-width: 560px;
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
  visibility: visible;
  overflow: visible;
}

.admin-internal-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.admin-internal-tools .admin-filter-rail-wrap {
  flex: 0 0 auto;
}

.admin-internal-tools .admin-internal-search {
  flex: 1 1 260px;
  min-width: 180px;
}

.admin-internal-tools .admin-list-create-btn {
  flex: 0 0 auto;
}

.admin-filters.admin-filters-plain {
  width: 100%;
  max-width: none;
}

.admin-filters.admin-filters-plain .admin-form-group {
  margin: 0;
}

.admin-filters.admin-filters-plain .admin-form-group.admin-search-has-clear {
  position: relative;
}

.admin-filters.admin-filters-plain .admin-form-group input {
  width: 100%;
  border-radius: 999px;
  padding-left: 24px;
  padding-right: 24px;
}

.admin-filters.admin-filters-plain .admin-form-group.admin-search-has-clear input {
  padding-right: 56px;
}

.admin-search-clear {
  position: absolute;
  right: 14px;
  bottom: 10px;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: transparent;
  color: var(--admin-brand);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, transform 0.2s ease;
}

.admin-search-clear[hidden] {
  display: none;
}

.admin-search-clear:hover {
  color: var(--admin-brand-dark);
  transform: scale(1.06);
}

.admin-search-clear:focus-visible {
  outline: 2px solid rgba(255, 106, 33, 0.33);
  outline-offset: 2px;
}

.admin-search-clear svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-form-group input,
.admin-form-group select,
.admin-form-group textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  height: 44px;
  background: #fff;
  border: 1px solid rgba(51,51,51,.15);
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  box-shadow: 0 0 0 0 rgba(206,9,9,0),inset 0 1px 3px 1px rgba(51,51,51,.08);
  border-radius: 8px;
  display: block;
  width: 100%;
  font: 400 16px Inter,Helvetica,Arial,sans-serif;
    line-height: normal;
  line-height: 42px;
  padding: 0 1em;
  letter-spacing: -.01em;
  color: #333;
  -webkit-transition: all .2s ease;
  transition: all .2s ease;
}

.admin-form-group textarea {
  min-height: 120px;
  resize: vertical;
}

.admin-form .admin-richtext-field {
  display: none;
}

.admin-form .admin-richtext-wrapper {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  margin: 0 0 14px;
}

.admin-form .admin-richtext-wrapper .ql-toolbar.ql-snow {
  border: 1px solid #b9c8da;
  border-radius: 10px 10px 0 0;
  border-bottom-color: #d3deec;
  background: #f6f8fc;
}

.admin-form .admin-richtext-wrapper .ql-container.ql-snow {
  border: 1px solid #b9c8da;
  border-top: 0;
  border-radius: 0 0 10px 10px;
  background: #fff;
  position: relative;
  height: auto;
  min-height: 180px;
  z-index: 1;
}

.admin-form .admin-richtext-wrapper .ql-editor {
  min-height: 180px;
  height: auto;
  overflow-y: visible;
  font-size: 15px;
  line-height: 1.55;
  color: var(--admin-ink);
}

.admin-form .admin-richtext-wrapper:focus-within .ql-toolbar.ql-snow,
.admin-form .admin-richtext-wrapper:focus-within .ql-container.ql-snow {
  border-color: #ff5a1f;
}

.admin-form textarea.is-error + .admin-richtext-wrapper .ql-toolbar.ql-snow,
.admin-form textarea.is-error + .admin-richtext-wrapper .ql-container.ql-snow,
.admin-form textarea.error + .admin-richtext-wrapper .ql-toolbar.ql-snow,
.admin-form textarea.error + .admin-richtext-wrapper .ql-container.ql-snow {
  border-color: #d93600 !important;
}

.admin-form .admin-richtext-wrapper.is-error .ql-toolbar.ql-snow,
.admin-form .admin-richtext-wrapper.is-error .ql-container.ql-snow {
  border-color: #d93600 !important;
}

.admin-form .form-error {
  display: block;
  margin-top: 2px;
  color: #dd3a00;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.2;
}

.admin-form input.is-error,
.admin-form select.is-error,
.admin-form textarea.is-error,
.admin-form input.error,
.admin-form select.error,
.admin-form textarea.error {
  border: 1px solid #d93600 !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(217, 54, 0, 0.6);
}

.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus {
  outline: none;
  border: 1px solid #ff5a1f;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(255, 90, 31, 0.35);
}

.admin-form input.is-error:focus,
.admin-form select.is-error:focus,
.admin-form textarea.is-error:focus,
.admin-form input.error:focus,
.admin-form select.error:focus,
.admin-form textarea.error:focus {
  border: 1px solid #d93600 !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(217, 54, 0, 0.6);
}

.admin-form-group input:focus,
.admin-form-group select:focus,
.admin-form-group textarea:focus {
  outline: none;
  border: 1px solid #ff5a1f;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(255, 90, 31, 0.35);
}

.custom-select {
  position: relative;
}

.admin-faq-category-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-faq-category-row[hidden] {
  display: none !important;
}

.admin-faq-category-row .custom-select,
.admin-faq-category-row [data-faq-category-input] {
  flex: 1 1 auto;
}

.admin-faq-category-add {
  min-width: auto;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0;
}

.admin-faq-category-add svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-faq-category-add:hover,
.admin-faq-category-add:focus,
.admin-faq-category-add:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
}

.admin-faq-category-row [data-faq-category-back] {
  min-width: auto;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0;
}

.admin-faq-category-row [data-faq-category-back]:hover,
.admin-faq-category-row [data-faq-category-back]:focus,
.admin-faq-category-row [data-faq-category-back]:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
}

.custom-select-trigger {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  height: 44px;
  background: #fff;
  border: 1px solid rgba(51,51,51,.15);
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  box-shadow: 0 0 0 0 rgba(206,9,9,0),inset 0 1px 3px 1px rgba(51,51,51,.08);
  border-radius: 8px;
  width: 100%;
  font: 400 16px Inter,Helvetica,Arial,sans-serif;
  line-height: normal;
  line-height: 42px;
  padding: 0 1em;
  letter-spacing: -.01em;
  color: #1b2e46;
  -webkit-transition: all .2s ease;
  transition: all .2s ease;
  font-size: 16px;
  font-weight: 600;
  text-align: left;
  display: inline-flex;
  align-items: center;
  position: relative;
  cursor: pointer;
}

.custom-select-trigger span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

.custom-select-trigger > svg {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.72;
  transition: transform 0.2s ease;
}

.custom-select.is-open .custom-select-trigger > svg {
  transform: translateY(-50%) rotate(180deg);
}

.custom-select.custom-select-multi .custom-select-multi-trigger {
  height: auto;
  min-height: 44px;
  line-height: normal;
  padding-top: 6px;
  padding-bottom: 6px;
  align-items: center;
}

.custom-select.custom-select-multi .custom-select-multi-values {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  gap: 6px;
  width: calc(100% - 22px);
  min-height: 28px;
}

.custom-select.custom-select-multi .custom-select-multi-placeholder {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
}

.custom-select-trigger:focus-visible {
  outline: 2px solid rgba(255, 90, 31, 0.32);
  outline-offset: 2px;
}

.custom-select.is-disabled .custom-select-trigger,
.custom-select .custom-select-trigger:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.custom-select-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  border: 1px solid #d9e0e8;
  border-radius: 10px;
  background: #fff;
  padding: 6px;
  z-index: 70;
  max-height: 260px;
  overflow: auto;
}

.custom-select.is-open {
  z-index: 120;
}

.custom-select.is-open .custom-select-dropdown {
  z-index: 121 !important;
}

.custom-select-search-wrap {
  padding: 4px 4px 8px;
  border-bottom: 1px solid #edf1f5;
  margin-bottom: 6px;
}

.custom-select-search-input {
  width: 100%;
  min-height: 34px;
  border: 1px solid #d7dee7;
  border-radius: 7px;
  padding: 6px 9px;
  font-size: 0.84rem;
  font-weight: 600;
  color: #24374f;
}

.custom-select-item {
  width: 100%;
  min-height: 36px;
  border: 0;
  background: transparent;
  border-radius: 8px;
  padding: 7px 10px;
  text-align: left;
  color: #20334b;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}

.custom-select-item + .custom-select-item {
  margin-top: 2px;
}

.custom-select-item:hover {
  background: #fff3eb;
}

.custom-select-item.is-active {
  background: #ffe8dc;
  color: #1a2c42;
}

.custom-select-item-with-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.custom-select-item-action svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: #6f8298;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.custom-select-item-action[data-mail-preview-trigger] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  cursor: pointer;
}

.custom-select-item-action[data-mail-preview-trigger]:hover {
  background: #eef4fb;
}

.admin-mail-preview-popover {
  position: fixed;
  z-index: 1300;
  width: auto;
  height: auto;
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 24px);
  border: 1px solid #d7e2ef;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 14px 34px rgba(17, 35, 61, 0.2);
  padding: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(6px) scale(0.985);
  transition: opacity 0.2s ease, transform 0.22s ease;
  will-change: opacity, transform;
}

.admin-mail-preview-popover.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.admin-mail-preview-popover-title {
  display: block;
  margin: 0 0 6px;
  color: #1b2f4a;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 800;
}

.admin-mail-preview-popover-text {
  margin: 0;
  color: #40556f;
  font-size: 12px;
  line-height: 1.45;
  max-height: 220px;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

.admin-mail-preview-popover-frame {
  width: 900px;
  height: 980px;
  border: 0;
  background: #fff;
  display: block;
  transform-origin: top left;
  pointer-events: none;
}

.admin-mail-preview-popover-viewport {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

@media (max-width: 900px) {
  .admin-mail-preview-popover {
    display: none !important;
  }
}

.admin-custom-select-option-primary {
  display: block;
  font-weight: 700;
  line-height: 1.2;
}

.admin-custom-select-option-secondary {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  line-height: 1.2;
  opacity: 0.82;
  font-weight: 600;
}

.admin-corsista-lookup-select .custom-select-dropdown {
  max-height: 320px;
}

.admin-corsista-option {
  min-height: 48px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
}

.admin-corsista-option-name {
  display: block;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  color: #1b2e46;
}

.admin-corsista-option-cf {
  display: block;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #5c6e86;
  text-transform: uppercase;
}

.admin-corsista-lookup-empty {
  padding: 10px 10px;
  font-size: 12px;
  font-weight: 600;
  color: #60738b;
}

.admin-corsista-lookup-status {
  margin-top: 6px;
  padding: 6px 8px;
  border-radius: 8px;
  background: #f4f8fd;
  color: #415a79;
  font-size: 11px;
  font-weight: 700;
}

.admin-corsista-lookup-status.is-error {
  background: #fff1eb;
  color: #b64612;
}

.admin-associa-corsista-dialog {
  width: min(560px, calc(100vw - 36px));
  height: min(500px, calc(100dvh - 36px));
  max-height: min(500px, calc(100dvh - 36px));
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.admin-modali-dialog-switchable.is-entering {
  animation: admin-modal-switch-in 0.22s ease both;
}

.admin-modali-dialog-switchable.is-leaving {
  animation: admin-modal-switch-out 0.18s ease both;
  pointer-events: none;
}

@keyframes admin-modal-switch-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.99);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes admin-modal-switch-out {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(8px) scale(0.995);
  }
}

.admin-associa-corsista-dialog .admin-modali-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.admin-associa-corsista-dialog .admin-modali-group {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.admin-associa-corsista-dialog .admin-form-group {
  align-self: stretch;
  width: 100%;
}

.admin-associa-corsista-dialog .admin-corsista-lookup-select {
  width: 100%;
  max-width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.admin-associa-corsista-dialog [data-associa-corsista-trigger] {
  width: 100%;
  max-width: 100%;
}

.admin-associa-corsista-dialog .admin-corsista-lookup-select .custom-select-dropdown {
  width: 100%;
  position: static;
  inset: auto;
  margin-top: 8px;
  max-height: none;
  min-height: 220px;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.admin-associa-corsista-helper-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  align-self: center;
  font-size: 11px;
  min-height: 28px;
  padding: 4px 10px;
  color: #1a5f45;
  border-color: #8fd2b5;
  background: #ebfaf3;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.2s ease, transform 0.2s ease, color 0.16s ease, border-color 0.16s ease, text-decoration-color 0.16s ease;
  text-decoration: none;
}

.admin-associa-corsista-helper-btn svg {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-associa-corsista-helper-btn:hover,
.admin-associa-corsista-helper-btn:focus-visible {
  color: #14533b;
  border-color: #72c3a0;
  background: #ddf3e8;
  text-decoration: none;
}

.admin-associa-corsista-helper-btn.is-hidden {
  opacity: 0;
  transform: translateY(-2px);
  pointer-events: none;
}

.admin-associa-corsista-dialog [data-associa-corsista-options] {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.admin-associa-corsista-dialog .admin-modali-actions {
  margin-top: 12px;
  justify-content: space-between;
  align-items: center;
}

.admin-associa-corsista-actions-right {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.admin-corsista-create-dialog {
  width: min(1120px, calc(100vw - 36px));
  height: min(840px, calc(100dvh - 36px));
  max-height: min(840px, calc(100dvh - 36px));
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.admin-modali-backdrop[data-associa-corsista-modal-backdrop] .admin-modali-dialog[hidden] {
  display: none !important;
}

.admin-corsista-create-dialog .admin-corsista-create-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 18px 20px 16px;
}

.admin-corsista-create-content {
  min-height: 100%;
}

.admin-corsista-create-dialog .admin-anagrafica-form {
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

.admin-corsista-create-dialog .admin-anagrafica-grid {
  flex: 1 1 auto;
}

.admin-corsista-create-dialog .admin-anagrafica-actions {
  margin-top: auto;
  justify-content: flex-end;
  align-items: center;
}

.admin-anagrafica-form {
  position: relative;
  z-index: 5;
}

.admin-anagrafica-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.admin-anagrafica-form label {
  font-size: 14px;
  font-weight: 600;
  color: #475a75;
  margin-bottom: 0;
}

.admin-anagrafica-form label em {
  color: #dd3a00;
  font-style: normal;
  font-weight: 800;
}

.admin-anagrafica-form [hidden] {
  display: none !important;
}

.admin-anagrafica-form input,
.admin-anagrafica-form select,
.admin-anagrafica-form textarea {
  width: 100%;
  font-size: 0.98rem;
  font-weight: 600;
  color: #13243b;
}

.admin-anagrafica-form .anagrafica-readonly-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.admin-anagrafica-form .anagrafica-birth-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.admin-anagrafica-form .anagrafica-citizenship-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.admin-anagrafica-form .anagrafica-residence-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.admin-anagrafica-form .anagrafica-birth-geo-row,
.admin-anagrafica-form .anagrafica-residence-geo-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.admin-anagrafica-form .anagrafica-birth-geo-row input[disabled],
.admin-anagrafica-form .anagrafica-residence-geo-row input[disabled] {
  background: #eef1f5;
  color: #596579;
  cursor: not-allowed;
}

.admin-anagrafica-form .anagrafica-contact-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.admin-anagrafica-form .anagrafica-readonly-input-wrap {
  position: relative;
}

.admin-anagrafica-form .anagrafica-readonly-input-wrap input[disabled] {
  background: #eef1f5;
  color: #596579;
  cursor: not-allowed;
  padding-right: 40px !important;
}

.admin-anagrafica-form .anagrafica-readonly-lock {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: #6f7b90;
  pointer-events: none;
}

.admin-anagrafica-form .anagrafica-readonly-lock svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-anagrafica-form .anagrafica-readonly-input-wrap::before,
.admin-anagrafica-form .anagrafica-readonly-input-wrap::after {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.admin-anagrafica-form .anagrafica-readonly-input-wrap::before {
  content: "";
  position: absolute;
  right: 14px;
  bottom: calc(100% + 6px);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid #13243b;
  transform: translateY(4px);
  z-index: 15;
}

.admin-anagrafica-form .anagrafica-readonly-input-wrap::after {
  content: attr(data-readonly-tooltip);
  position: absolute;
  right: 0;
  bottom: calc(100% + 12px);
  width: min(380px, calc(100vw - 60px));
  background: #13243b;
  color: #fff;
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.35;
  padding: 10px 12px;
  border-radius: 8px;
  transform: translateY(4px);
  z-index: 16;
}

.admin-anagrafica-form .anagrafica-readonly-input-wrap:hover::before,
.admin-anagrafica-form .anagrafica-readonly-input-wrap:hover::after,
.admin-anagrafica-form .anagrafica-readonly-input-wrap:focus-within::before,
.admin-anagrafica-form .anagrafica-readonly-input-wrap:focus-within::after {
  opacity: 1;
  transform: translateY(0);
}

.admin-anagrafica-form .anagrafica-date-field {
  position: relative;
}

.admin-anagrafica-form .anagrafica-date-input-wrap {
  position: relative;
  width: 100%;
}

.admin-anagrafica-form .anagrafica-date-input-wrap input {
  padding-right: 42px !important;
}

.admin-anagrafica-form .anagrafica-date-trigger {
  position: absolute;
  right: 10px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  color: #58657a;
  cursor: pointer;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.admin-anagrafica-form .anagrafica-date-trigger svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-anagrafica-form .anagrafica-date-trigger:focus,
.admin-anagrafica-form .anagrafica-date-trigger:focus-visible {
  outline: none;
  box-shadow: none;
}

.admin-anagrafica-form .anagrafica-datepicker {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: min(310px, calc(100vw - 60px));
  background: #fff;
  border: 1px solid #dfe4ea;
  border-radius: 10px;
  padding: 10px;
  z-index: 75;
}

.admin-anagrafica-form .anagrafica-datepicker-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 10px;
}

.admin-anagrafica-form .anagrafica-datepicker-head select {
  width: 100%;
  border: 1px solid #d9dfe7;
  border-radius: 6px;
  padding: 7px 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #24374f;
  background: #fff;
}

.admin-anagrafica-form .anagrafica-datepicker-weekdays,
.admin-anagrafica-form .anagrafica-datepicker-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}

.admin-anagrafica-form .anagrafica-datepicker-weekdays span {
  text-align: center;
  font-size: 0.7rem;
  font-weight: 700;
  color: #7b8798;
  padding: 2px 0;
}

.admin-anagrafica-form .anagrafica-datepicker-days .is-empty {
  height: 32px;
}

.admin-anagrafica-form .anagrafica-datepicker-day {
  height: 32px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #1d2f46;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}

.admin-anagrafica-form .anagrafica-datepicker-day:hover {
  background: #fff1e8;
  color: #16273c;
}

.admin-anagrafica-form .anagrafica-datepicker-day.is-selected {
  background: #ff5a1f;
  color: #fff;
}

.admin-anagrafica-form .field-help {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-left: 6px;
  color: #7f8a9b;
  cursor: help;
  position: relative;
  vertical-align: middle;
}

.admin-anagrafica-form .input-help-wrap {
  position: relative;
}

.admin-anagrafica-form .input-help-wrap input {
  padding-right: 40px !important;
}

.admin-anagrafica-form .field-help.field-help-inside {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 0;
  z-index: 12;
}

.admin-anagrafica-form .field-help svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-anagrafica-form .field-help::before,
.admin-anagrafica-form .field-help::after {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.admin-anagrafica-form .field-help::before {
  content: "";
  position: absolute;
  left: auto;
  right: var(--admin-help-arrow-right, 8px);
  top: calc(100% + 4px);
  transform: translateY(-4px);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 7px solid #13243b;
  z-index: 13;
}

.admin-anagrafica-form .field-help::after {
  content: attr(data-help-tooltip);
  position: absolute;
  left: auto;
  right: var(--admin-help-bubble-right, 0);
  top: calc(100% + 10px);
  transform: translateY(-4px);
  width: max-content;
  max-width: min(var(--admin-help-tooltip-max-width, 360px), calc(100vw - 48px));
  background: #13243b;
  color: #fff;
  border-radius: 8px;
  padding: 9px 10px;
  font-size: 0.74rem;
  line-height: 1.35;
  font-weight: 600;
  text-transform: none;
  z-index: 14;
}

.admin-anagrafica-form .field-help:hover::before,
.admin-anagrafica-form .field-help:hover::after,
.admin-anagrafica-form .field-help:focus-visible::before,
.admin-anagrafica-form .field-help:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.admin-anagrafica-form .field-help.admin-js-tooltip::before,
.admin-anagrafica-form .field-help.admin-js-tooltip::after {
  content: none !important;
  display: none !important;
}

.admin-anagrafica-form .form-error {
  display: block;
  margin-top: 2px;
  color: #dd3a00;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.2;
}

.admin-anagrafica-form .custom-select-trigger.error {
  border: 1px solid #d93600 !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(217, 54, 0, 0.6);
}

.admin-anagrafica-form .custom-select-trigger.error:focus {
  border: 1px solid #d93600 !important;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(217, 54, 0, 0.6);
}

.admin-corsi-form .custom-select-trigger,
.admin-corsi-form .custom-select-item,
.admin-corsi-form .anagrafica-date-input-wrap input,
.admin-corsi-form .anagrafica-datepicker-head select {
  font-family: inherit;
}

.admin-corsi-form .custom-select-multi-trigger {
  align-items: center;
  min-height: 44px;
  padding-top: 6px;
  padding-bottom: 6px;
}

.admin-corsi-form .custom-select-multi-values {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  width: calc(100% - 22px);
  min-height: 28px;
  align-content: center;
}

.admin-corsi-form .custom-select-multi-placeholder {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  color: #6c7f97;
  font-size: 14px;
  font-weight: 600;
}

.admin-corsi-form .custom-select-multi-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: fit-content;
  min-height: 28px;
  padding: 3px 24px 3px 9px;
  border-radius: 999px;
  background: #eef5ff;
  border: 1px solid #c4d5ea;
  color: #1f3452;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.1;
  position: relative;
  width: auto;
  white-space: nowrap;
}

.admin-corsi-form .custom-select-multi-chip-remove {
  border: 0;
  background: transparent;
  color: #1f3452;
  opacity: 0.65;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
}

.admin-corsi-form .custom-select-multi-chip-remove:hover,
.admin-corsi-form .custom-select-multi-chip-remove:focus-visible {
  opacity: 1;
  background: rgba(255, 90, 31, 0.12);
}

.admin-corsi-form .custom-select-multi-chip-remove svg {
  position: static;
  top: auto;
  right: auto;
  transform: none;
  display: block;
  width: 11px;
  height: 11px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-corsi-doc-rules {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.admin-corsi-doc-rule {
  flex: 1 1 0;
  min-width: 0;
}

.admin-corsi-doc-rule-label {
  display: block;
  margin-bottom: 8px;
  color: #1b3353;
  font-size: 13px;
  font-weight: 700;
}

.admin-corsi-doc-rules-error {
  margin-top: 8px;
}

.admin-anagrafica-actions {
  margin-top: 6px;
}

@media (max-width: 1200px) {
  .admin-anagrafica-form .anagrafica-readonly-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-anagrafica-form .anagrafica-contact-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 992px) {
  .admin-anagrafica-form .anagrafica-readonly-row,
  .admin-anagrafica-form .anagrafica-birth-row,
  .admin-anagrafica-form .anagrafica-birth-geo-row,
  .admin-anagrafica-form .anagrafica-citizenship-row,
  .admin-anagrafica-form .anagrafica-residence-row,
  .admin-anagrafica-form .anagrafica-residence-geo-row,
  .admin-anagrafica-form .anagrafica-contact-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .admin-corsi-doc-rules {
    flex-direction: column;
    gap: 10px;
  }
}

.admin-toast-rail {
  position: fixed;
  top: var(--admin-topbar-height);
  left: var(--admin-sidebar-width);
  right: 0;
  z-index: 35;
  pointer-events: none;
}

.admin-toast {
  pointer-events: auto;
  width: 100%;
  border-radius: 0;
  border: 0;
  padding: 18px 56px 18px 22px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  position: relative;
  animation: adminToastDrop 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.admin-toast-message {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
}

.admin-toast-success {
  background: rgba(235, 250, 243, 0.86);
  border-bottom: 1px solid rgba(138, 208, 178, 0.9);
  color: #0e7550;
}

.admin-toast-error {
  background: rgba(255, 242, 237, 0.88);
  border-bottom: 1px solid rgba(243, 183, 162, 0.9);
  color: #b3370a;
}

.admin-toast-close {
  position: absolute;
  top: 10px;
  right: 14px;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: currentColor;
  cursor: pointer;
  opacity: 0.86;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.admin-toast-close:hover {
  opacity: 1;
  transform: scale(1.06);
}

.admin-toast-close:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.admin-toast-close svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-toast.is-closing {
  animation: adminToastLift 0.3s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* Unified popover/dropdown look aligned with avatar popover */
.custom-select-dropdown,
.admin-actions-dropdown,
.admin-tool-dropdown,
.admin-notification-dropdown {
  background: #ffffff !important;
  border-color: #e5d9cf !important;
  color: #1e2f47 !important;
}

.custom-select-item,
.admin-actions-dropdown-item,
.admin-notification-item,
.admin-tool-dropdown-empty,
.admin-notification-title,
.admin-notification-message,
.admin-notification-sender,
.admin-notification-meta {
  color: #1e2f47 !important;
}

.custom-select-item:hover,
.custom-select-item:focus-visible,
.admin-actions-dropdown-item:hover,
.admin-actions-dropdown-item:focus-visible,
.user-menu-item:hover,
.admin-notification-item:hover {
  background: rgba(var(--admin-brand-rgb), 0.14) !important;
}

.custom-select-item.is-active,
.user-menu-item.is-active {
  background: rgba(var(--admin-brand-rgb), 0.22) !important;
}

@keyframes adminToastDrop {
  from {
    opacity: 0.96;
    transform: translateY(-100%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes adminToastLift {
  0% {
    opacity: 1;
    transform: translateY(0);
  }
  35% {
    opacity: 1;
    transform: translateY(12px);
  }
  100% {
    opacity: 0.95;
    transform: translateY(-108%);
  }
}

.admin-alert {
  border: 1px solid transparent;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 12px;
}

.admin-alert-success {
  background: #ebfaf3;
  border-color: #8ad0b2;
  color: #0e7550;
}

.admin-alert-error {
  background: #fff2ed;
  border-color: #f3b7a2;
  color: #b3370a;
}

.admin-empty-state {
  border: 0;
  border-radius: 12px;
  background: transparent;
  min-height: 260px;
  padding: 28px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 14px;
}

.admin-empty-state::before {
  content: "";
  width: 80px;
  height: 80px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 80px 80px;
  background-image: url("../img/admin-empty-state.svg");
  opacity: 0.92;
}

.admin-empty-state strong {
  display: block;
  margin: 0;
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.18;
  font-weight: 500;
  color: #2c3139;
}

.admin-empty-state p {
  margin: 0;
  color: var(--admin-muted);
  font-size: 14px;
  line-height: 1.45;
}

.admin-table-wrap {
  position: relative;
  border: 1px solid var(--admin-border);
  border-radius: 12px;
  overflow-x: auto;
}

.admin-list-card {
  background: transparent;
  border: 0;
  padding: 0;
  transform-origin: 50% 0;
}

.admin-card-grid-wrap {
  display: none;
}

.admin-list-card.is-card-view .admin-table-wrap {
  display: none;
}

.admin-list-card.is-card-view .admin-card-grid-wrap {
  display: block;
}

.admin-list-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

@media (min-width: 1981px) {
  .admin-list-card-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.admin-table-skeleton {
  display: none;
  border: 1px solid #d8e2ef;
  border-radius: 12px;
  background: #fff;
  padding: 9px 12px 12px;
  gap: 9px;
}

.admin-list-card.is-list-skeletoning .admin-table-skeleton {
  display: grid;
}

.admin-list-card.is-list-skeletoning .admin-table {
  display: none;
}

.admin-table-skeleton-head,
.admin-table-skeleton-row {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(var(--admin-table-skeleton-cols, 5), minmax(0, 1fr));
}

.admin-table-skeleton-head {
  padding-bottom: 7px;
  border-bottom: 1px solid #e8eef5;
}

.admin-table-skeleton-cell {
  min-height: 20px;
  display: inline-flex;
  align-items: center;
}

.admin-table-skeleton-head .admin-skeleton-line {
  height: 9px;
  opacity: 0.88;
}

.admin-table-skeleton-row .admin-skeleton-line {
  height: 12px;
}

.admin-table-skeleton-row .admin-table-skeleton-cell:nth-child(odd) .admin-skeleton-line {
  width: 90%;
}

.admin-table-skeleton-row .admin-table-skeleton-cell:nth-child(even) .admin-skeleton-line {
  width: 76%;
}

.admin-card-grid-wrap {
  position: relative;
}

.admin-card-skeleton-grid {
  display: none;
  pointer-events: none;
}

.admin-list-card.is-card-skeletoning .admin-card-skeleton-grid {
  display: grid;
}

.admin-list-card.is-card-skeletoning [data-infinite-cards-target] {
  display: none;
}

.admin-entity-card-skeleton {
  min-height: 194px;
  border-radius: 16px;
  border: 1px solid #d8e2ef;
  background: #fff;
  padding: 16px;
  display: grid;
  gap: 10px;
}

.admin-skeleton-pill,
.admin-skeleton-title,
.admin-skeleton-line {
  display: block;
  border-radius: 999px;
  background: linear-gradient(90deg, #f1f4f8 0%, #e5ecf3 45%, #f1f4f8 100%);
  background-size: 220% 100%;
  animation: adminCardSkeletonShimmer 1.1s linear infinite;
}

.admin-skeleton-pill {
  width: 86px;
  height: 12px;
}

.admin-skeleton-title {
  width: 72%;
  height: 26px;
  border-radius: 8px;
}

.admin-skeleton-meta {
  margin-top: 4px;
  display: grid;
  gap: 9px;
}

.admin-skeleton-line {
  width: 100%;
  height: 11px;
  filter: blur(0.6px);
}

.admin-skeleton-line.is-wide {
  width: 92%;
}

.admin-skeleton-line.is-short {
  width: 64%;
}

@keyframes adminCardSkeletonShimmer {
  0% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

[data-admin-dashboard-card] {
  position: relative;
}

.admin-dashboard-card-skeleton {
  display: none;
  position: absolute;
  inset: 20px;
  z-index: 2;
  pointer-events: none;
  align-content: start;
  gap: 10px;
}

[data-admin-dashboard-card].is-dashboard-skeletoning > :not([data-admin-dashboard-skeleton]) {
  visibility: hidden;
}

[data-admin-dashboard-card].is-dashboard-skeletoning .admin-dashboard-card-skeleton {
  display: grid;
}

.admin-dashboard-card-skeleton .admin-skeleton-title {
  width: 74%;
  height: 22px;
}

.admin-dashboard-card-skeleton .admin-skeleton-line {
  height: 10px;
}

.admin-kpi .admin-dashboard-card-skeleton {
  inset: 16px;
  align-content: center;
  gap: 12px;
}

.admin-kpi .admin-dashboard-card-skeleton .admin-skeleton-line.is-wide {
  width: 62%;
}

.admin-kpi .admin-dashboard-card-skeleton .admin-skeleton-line.is-short {
  width: 38%;
  height: 24px;
  border-radius: 8px;
}

.admin-entity-card {
  position: relative;
  display: grid;
  gap: 10px;
  min-height: 194px;
  border-radius: 16px;
  border: 1px solid #d8e2ef;
  background: #fff;
  padding: 16px;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.2s ease, transform 0.22s ease, background-color 0.2s ease, opacity 0.22s ease;
}

.admin-entity-card > * {
  position: relative;
  z-index: 1;
}

.admin-entity-card::after {
  content: "";
  position: absolute;
  inset: auto -30px -55px auto;
  width: 132px;
  height: 132px;
  border-radius: 50%;
  /*background: radial-gradient(circle at center, rgba(255, 106, 33, 0.15) 0%, rgba(255, 106, 33, 0) 68%);*/
  pointer-events: none;
}

.admin-entity-card:hover {
  box-shadow: 0 0 0 0 rgba(206,9,9,0),0 1px 3px 1px rgba(51,51,51,.08);

  transform: translateY(-2px);
}

.admin-entity-card:focus-visible {
  outline: 2px solid rgba(255, 106, 33, 0.38);
  outline-offset: 2px;
}

.admin-entity-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.admin-entity-card-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.07em;
  color: rgba(115, 131, 154, 0.9);
  text-transform: uppercase;
}

.admin-entity-card-id {
  position: absolute;
  right: 10px;
  bottom: 4px;
  font-family: "Bebas Neue", "Bebas", "Oswald", sans-serif;
  font-size: clamp(40px, 3.9vw, 100px);
  font-weight: 900;
  letter-spacing: -0.05em;
  line-height: 0.8;
  text-align: right;
  color: rgba(24, 40, 70, 0.02);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.admin-entity-card-head-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(95, 111, 134, 0.9);
}

.admin-entity-card-head-action svg {
  width: 16px;
  height: 16px;
}

.admin-entity-card-head-action.admin-corsisti-nfl-flag svg {
  width: 18px;
  height: 18px;
}

.admin-entity-card-head-action.admin-corsisti-nfl-flag.is-success {
  color: #159a5f;
}

.admin-entity-card-head-action.admin-corsisti-nfl-flag.is-danger {
  color: #c94949;
}

.admin-entity-card-title {
  margin: 0;
  font-size: 24px;
  line-height: 1.1;
  color: #132744;
  letter-spacing: -0.01em;
}

.admin-entity-card-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 10px;
}

.admin-entity-card-meta-item {
  display: grid;
  gap: 3px;
}

.admin-entity-card-meta-label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: rgba(115, 131, 154, 0.9);
  font-weight: 700;
}

.admin-entity-card-meta-value {
  font-size: 12px;
  color: rgba(23, 50, 82, 0.9);
  font-weight: 700;
  line-height: 1.25;
  word-break: break-word;
}

.admin-entity-card-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

.admin-entity-card-candidato .admin-entity-card-badges {
  margin-bottom: 20px;
}

.admin-entity-card-corso .admin-entity-card-badges {
  margin-bottom: 20px;
}

.admin-entity-card-description {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: rgba(79, 98, 125, 0.9);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.admin-entity-card .admin-entity-card-eyebrow,
.admin-entity-card .admin-entity-card-meta-label {
  font-size: 10px;
}

.admin-entity-card-candidato .admin-entity-card-meta {
  grid-template-columns: minmax(118px, 0.82fr) minmax(0, 1.18fr);
}

.admin-entity-card-candidato .admin-entity-card-meta-item:nth-child(2) .admin-entity-card-meta-value {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-entity-card-corso .admin-entity-card-title {
  font-size: 22px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  min-height: calc(1.1em * 2);
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 560px;
  background: #fff;
}

.admin-table th,
.admin-table td {
  border-bottom: 1px solid #e5ecf3;
  padding: 12px;
  text-align: left;
}

.admin-table th {
  background: #e9eff6;
  padding-top: 9px;
  padding-bottom: 9px;
  font-size: 12px;
  color: #2e4460;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-table td {
  font-size: 14px;
}

.admin-table tbody td {
  padding-top: 14px;
  padding-bottom: 14px;
}

.admin-table tbody tr:nth-child(odd) {
  background: #fff;
}

.admin-table tbody tr:nth-child(even) {
  background: #f5f8ff;
}

.admin-table tbody tr.admin-row-link {
  cursor: pointer;
}

.admin-table tbody tr.admin-row-link td {
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease;
}

.admin-table tbody tr.admin-row-link:hover td {
  background: rgba(var(--admin-brand-rgb), 0.1);
  color: var(--admin-brand-dark);
}

.admin-table tbody tr.admin-row-link:focus-visible {
  outline: 2px solid rgba(var(--admin-brand-rgb), 0.42);
  outline-offset: -2px;
}

.admin-table tbody tr.admin-row-link:focus-visible td {
  background: rgba(var(--admin-brand-rgb), 0.1);
  color: var(--admin-brand-dark);
}

.admin-table tbody tr.admin-row-link.admin-row-link-disabled,
.admin-table tbody tr.admin-row-link.admin-row-link-disabled td {
  opacity: 0.55;
  cursor: not-allowed;
}

.admin-table tbody tr.admin-row-link.admin-row-link-disabled:hover td,
.admin-table tbody tr.admin-row-link.admin-row-link-disabled:focus-visible td {
  background: inherit;
  color: inherit;
}

.admin-entity-card.admin-entity-card-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.admin-table tbody tr:last-child td {
  border-bottom: 0;
}

.admin-table-clean-wrap {
  width: 100%;
  overflow-x: auto;
}

.admin-table-clean {
  width: 100%;
  min-width: 700px;
  border-collapse: collapse;
  background: transparent;
}

.admin-table-clean th,
.admin-table-clean td {
  padding: 13px 4px;
  text-align: left;
  border-bottom: 1px solid #d7e0ea;
}

.admin-table-clean th {
  background: transparent;
  color: #536883;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-table-clean td {
  background: transparent;
  font-size: 15px;
  color: #1f3452;
}

.admin-table-clean td:first-child,
.admin-table-clean th:first-child {
  padding-left: 0;
}

.admin-table-clean td:last-child,
.admin-table-clean th:last-child {
  padding-right: 0;
}

.admin-table-clean tbody tr:hover td {
  background: transparent;
}

.admin-table-clean tbody tr:nth-child(odd) td {
  background: #fff;
}

.admin-table-clean tbody tr:nth-child(even) td {
  background: #f5f8ff;
}

.admin-table-clean tbody tr.admin-row-link {
  cursor: pointer;
}

.admin-table-clean tbody tr.admin-row-link td {
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease;
}

.admin-table-clean tbody tr.admin-row-link:hover td {
  background: rgba(var(--admin-brand-rgb), 0.1);
  color: var(--admin-brand-dark);
}

.admin-table-clean tbody tr.admin-row-link:focus-visible {
  outline: 2px solid rgba(var(--admin-brand-rgb), 0.42);
  outline-offset: -2px;
}

.admin-table-clean tbody tr.admin-row-link:focus-visible td {
  background: rgba(var(--admin-brand-rgb), 0.1);
  color: var(--admin-brand-dark);
}

.admin-table-clean .admin-actions-col-header {
  width: 126px;
  text-align: right;
}

.admin-table-clean td:last-child {
  text-align: right;
}

.admin-table-clean .admin-row-actions {
  width: 100%;
  justify-content: flex-end;
  gap: 6px;
}

.admin-table-clean .admin-icon-btn {
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 2px;
  color: #1f3b5f;
  opacity: 0.45;
  transition: opacity 0.18s ease, color 0.18s ease;
}

.admin-table-clean .admin-icon-btn:hover {
  border: 0;
  background: transparent;
  color: var(--admin-brand-dark);
  opacity: 1;
}

.admin-dispense-table .admin-row-actions {
  justify-content: flex-end;
  gap: 8px;
}

.admin-dispense-table th:first-child,
.admin-dispense-table td:first-child {
  width: 220px;
  min-width: 220px;
}

.admin-dispense-table .admin-icon-btn-dispensa {
  opacity: 0.45;
  transition: opacity 0.18s ease, color 0.18s ease;
}

.admin-dispense-table .admin-icon-btn-dispensa svg {
  width: 15px;
  height: 15px;
}

.admin-dispense-table .admin-icon-btn-dispensa:not(.admin-icon-btn-danger) {
  color: #425a77;
}

.admin-dispense-table .admin-icon-btn-dispensa:not(.admin-icon-btn-danger):hover,
.admin-dispense-table .admin-icon-btn-dispensa:not(.admin-icon-btn-danger):focus-visible {
  color: var(--admin-brand-dark);
  opacity: 1;
}

.admin-dispense-table .admin-icon-btn-dispensa-print:hover,
.admin-dispense-table .admin-icon-btn-dispensa-print:focus-visible {
  color: #1f3b5f !important;
  border-color: transparent;
  background: transparent;
  opacity: 1;
}

.admin-dispense-table .admin-icon-btn-dispensa.admin-icon-btn-danger:hover,
.admin-dispense-table .admin-icon-btn-dispensa.admin-icon-btn-danger:focus-visible {
  opacity: 1;
}

.admin-switch-mini {
  --switch-width: 36px;
  --switch-height: 18px;
  --switch-padding: 2px;
}

.admin-switch-mini .admin-switch-track::after {
  content: "";
  padding: 0;
}

.admin-switch-mini input[type="checkbox"]:checked + .admin-switch-track::after {
  content: "";
  padding: 0;
}

.admin-switch-mini-readonly input[type="checkbox"] {
  cursor: default;
}

.admin-report-fad-detail-row.is-hidden {
  display: none;
}

.admin-report-fad-detail-cell {
  padding: 0 !important;
}

.admin-report-fad-detail-panel {
  background: rgba(245, 248, 253, 0.65);
  border-top: 0;
  padding: 12px 0;
}

.admin-report-fad-inner-wrap {
  padding: 0 18px 8px;
}

.admin-report-fad-inner-table {
  min-width: 860px;
}

.admin-report-fad-inner-table td {
  font-size: 13px;
}

.admin-report-fad-inner-table th:nth-child(2),
.admin-report-fad-inner-table td:nth-child(2) {
  width: 320px;
  min-width: 320px;
  max-width: 320px;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.admin-corsisti-notify-inner-table {
  min-width: 980px;
  width: 100%;
  table-layout: fixed;
}

.admin-corsisti-notify-inner-table th:first-child,
.admin-corsisti-notify-inner-table td:first-child {
  width: 80px;
  min-width: 80px;
  max-width: 80px;
}

.admin-corsisti-notify-icons {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.admin-corsisti-notify-icons svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-corsisti-notify-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.admin-corsisti-notify-pending td {
  color: #b44d37;
}

.admin-corsisti-notifiche-pending {
  margin-left: 8px;
  vertical-align: middle;
}

.admin-report-fad-table th {
  font-size: 12px;
}

.admin-badge-tester {
  color: #1d4f91;
  border-color: #b7d0f2;
  background: #eaf3ff;
}

.admin-report-fad-tester-wrap {
  background: #f3f9ff;
  border-color: #d5e6fa;
}

.admin-report-fad-table-shared-cols {
  table-layout: fixed;
  width: 100%;
}

.admin-report-fad-table-shared-cols .admin-report-fad-col-nominativo {
  width: 43%;
}

.admin-report-fad-table-shared-cols .admin-report-fad-col-tempo {
  width: 17%;
}

.admin-report-fad-table-shared-cols .admin-report-fad-col-unita {
  width: 15%;
}

.admin-report-fad-table-shared-cols .admin-report-fad-col-status {
  width: 21%;
}

.admin-report-fad-table-shared-cols .admin-report-fad-col-actions {
  width: 4%;
}

.admin-report-fad-inner-table th {
  font-size: 11px;
}

.admin-report-fad-table th,
.admin-report-fad-table td,
.admin-report-fad-inner-table th,
.admin-report-fad-inner-table td {
  text-align: left;
}

.admin-report-fad-table th:last-child,
.admin-report-fad-table td:last-child,
.admin-report-fad-inner-table th:last-child,
.admin-report-fad-inner-table td:last-child {
  text-align: left;
  padding-right: 4px;
}

.admin-report-fad-table > tbody > tr:not(.admin-report-fad-detail-row) > td:first-child {
  padding-left: 10px;
}

.admin-report-fad-table > thead > tr > th:first-child {
  padding-left: 10px;
}

.admin-report-fad-actions-col-header {
  width: 72px;
  padding-right: 6px !important;
}

.admin-report-fad-actions-col {
  width: 72px;
  text-align: right !important;
  padding-right: 6px !important;
}

.admin-report-fad-row-print-link {
  text-decoration: none;
}

.admin-report-fad-row-print-link.admin-moduli-action-btn svg {
  width: 15px;
  height: 15px;
}

.admin-report-fad-row-print-link.is-disabled {
  opacity: 0.2;
  cursor: not-allowed;
}

.admin-report-fad-table > tbody > tr[data-fad-detail-toggle-row] > td {
  vertical-align: middle;
}

.admin-report-fad-table > tbody > tr[data-fad-detail-toggle-row] > td > strong,
.admin-report-fad-table > tbody > tr[data-fad-detail-toggle-row] > td .admin-report-fad-completion-main,
.admin-report-fad-table > tbody > tr[data-fad-detail-toggle-row] > td .admin-report-fad-status-main {
  display: block;
  line-height: 1.2;
}

.admin-report-fad-table > tbody > tr[data-fad-detail-toggle-row] > td .admin-report-fad-last-login,
.admin-report-fad-table > tbody > tr[data-fad-detail-toggle-row] > td .admin-report-fad-completion-date {
  margin-top: 2px;
}

.admin-report-fad-match-hit {
  margin-top: 2px;
  color: #dd5a1a;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.2;
}

.admin-report-fad-last-login {
  margin-top: 2px;
  color: #6b7f97;
  font-size: 0.68rem;
  font-weight: 400;
  line-height: 1.2;
}

.admin-report-fad-completion-date {
  font-size: 80%;
  font-weight: 600;
}

.admin-report-fad-completion-main {
  line-height: 1.2;
}

.admin-report-fad-status-main {
  color: #17365c;
}

.admin-report-fad-status-main.is-completed {
  color: var(--admin-success);
}

.admin-report-fad-completion-cell .admin-report-fad-completion-date {
  line-height: 1.2;
  min-height: 1.2em;
  font-size: 0.68rem;
  font-weight: 400;
  color: #6b7f97;
}

.admin-report-fad-completion-date-placeholder {
  visibility: hidden;
}

.admin-report-fad-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 40px 0;
  color: #425a77;
  font-size: 0.9rem;
  font-weight: 600;
}

.admin-report-fad-loading[hidden] {
  display: none !important;
}

.admin-report-fad-spinner {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid rgba(41, 118, 210, 0.24);
  border-top-color: #245ea5;
  animation: admin-report-fad-spin 0.8s linear infinite;
}

@keyframes admin-report-fad-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.admin-report-fad-chevron {
  transition: transform 0.2s ease, color 0.2s ease;
}

.admin-report-fad-chevron.is-open {
  transform: rotate(90deg);
}

.admin-report-fad-empty {
  text-align: center;
  padding: 24px 12px;
  border: 0;
  background: transparent;
}

.admin-report-fad-test-detail-row.is-hidden {
  display: none;
}

.admin-report-fad-test-detail-cell {
  padding: 0 !important;
  border-bottom: 0 !important;
}

.admin-report-fad-test-detail-panel {
  margin: 8px 18px 12px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #cddff3;
  background: rgba(228, 239, 253, 0.72);
}

.admin-report-fad-test-loading {
  padding: 16px 0;
  font-size: 0.82rem;
}

.admin-report-fad-test-toggle-row.is-open td {
  background: #edf5ff !important;
  color: #17365c !important;
}

.admin-report-fad-attempts-list {
  display: grid;
  gap: 10px;
}

.admin-report-fad-attempt-dl {
  margin: 0;
  border: 1px solid #c8d9ee;
  border-radius: 12px;
  background: #f7fbff;
  overflow: hidden;
}

.admin-report-fad-attempt-dl.is-completed {
  border-color: #c7e4d2;
  background: #f6fcf8;
}

.admin-report-fad-attempt-title {
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #d9e7f8;
  background: #edf5ff;
  color: #17365c;
  font-size: 12px;
  font-weight: 700;
}

.admin-report-fad-attempt-dd {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(260px, 1.45fr) minmax(220px, 1.15fr) 120px;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-top: 1px solid #e3ecf7;
}

.admin-report-fad-attempt-dl .admin-report-fad-attempt-dd:first-of-type {
  border-top: 0;
}

.admin-report-fad-attempt-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.admin-report-fad-attempt-field-status {
  align-items: center;
  text-align: center;
}

.admin-report-fad-attempt-meta-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #5b7392;
}

.admin-report-fad-attempt-meta-value {
  font-size: 12px;
  font-weight: 600;
  color: #17365c;
  line-height: 1.35;
  word-break: break-word;
}

.admin-report-fad-attempt-score {
  margin: 0;
  padding: 9px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid #e3ecf7;
  background: #f0f6ff;
}

.admin-report-fad-attempt-score-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #5b7392;
}

.admin-report-fad-attempt-score-value {
  font-size: 13px;
  font-weight: 700;
  color: #17365c;
}

.admin-report-fad-attempt-footer {
  margin: 0;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-top: 1px solid #cde6d6;
  background: #eaf7ef;
}

.admin-report-fad-attempt-footer-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #1f9d5a;
}

.admin-report-fad-attempt-footer-date {
  font-size: 12px;
  font-weight: 600;
  color: #21573d;
}

.admin-report-fad-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
}

.admin-report-fad-check svg {
  width: 16px;
  height: 16px;
}

.admin-report-fad-check.is-ok {
  color: #1f9d5a;
}

.admin-report-fad-check.is-bad {
  color: #cc3d21;
}

.admin-moduli-groups {
  margin: 0;
  padding: 0;
}

.admin-moduli-group {
  margin: 0;
  padding: 0;
}

.admin-moduli-group + .admin-moduli-group {
  margin-top: 16px;
}

.admin-moduli-group-title {
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.94rem;
  font-weight: 700;
  color: #1f3b5f;
}

.admin-moduli-group-title-main {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.admin-moduli-move-handle {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: #607694;
  opacity: 0.35;
  cursor: grab;
  transition: opacity 0.18s ease, color 0.18s ease;
}

.admin-moduli-move-handle svg {
  width: 16px;
  height: 16px;
  pointer-events: none;
}

.admin-moduli-move-handle,
.admin-moduli-move-handle * {
  -webkit-user-drag: element;
  user-select: none;
}

.admin-moduli-move-handle:hover,
.admin-moduli-move-handle:focus-visible,
.admin-moduli-group.is-dragging .admin-moduli-move-handle {
  opacity: 1;
  color: #1f3b5f;
}

.admin-moduli-move-handle:active {
  opacity: 1;
  cursor: grabbing;
}

.admin-moduli-move-handle.admin-moduli-head-trash,
.admin-moduli-move-handle.admin-moduli-head-trash:active {
  cursor: pointer;
}

.admin-moduli-group.is-draggable {
  cursor: default;
}

.admin-moduli-groups.is-dragging {
  user-select: none;
}

.admin-moduli-groups.is-dragging .admin-moduli-group * {
  pointer-events: none;
}

.admin-moduli-groups-wrap.is-saving,
.admin-moduli-groups.is-saving {
  opacity: 0.6;
  pointer-events: none;
}

.admin-moduli-group.is-dragging {
  opacity: 0.75;
}

.admin-moduli-drop-placeholder {
  margin: 6px 0 8px;
  border: 2px dashed #9eb7d5;
  border-radius: 12px;
  background: rgba(120, 153, 194, 0.12);
  pointer-events: none;
  transition: height 0.12s ease, margin 0.12s ease, border-color 0.12s ease, background-color 0.12s ease;
}

.admin-moduli-group-body {
  margin: 0;
  border: 1px solid #d7e0ea;
  border-radius: 12px;
  background: #fbfdff;
  overflow: hidden;
}

.admin-moduli-grid {
  display: grid;
  grid-template-columns: minmax(120px, 0.9fr) minmax(250px, 2fr) minmax(130px, 1fr) minmax(90px, 0.7fr) minmax(90px, 0.7fr) 58px;
  gap: 10px;
  align-items: center;
  padding: 11px 14px;
}

.admin-moduli-grid.admin-test-quesiti-grid {
  grid-template-columns: 96px minmax(320px, 2.4fr) minmax(120px, 0.9fr) 58px;
}

.admin-moduli-groups-wrap.has-durata .admin-moduli-grid {
  grid-template-columns: minmax(120px, 0.9fr) minmax(220px, 1.8fr) minmax(110px, 0.8fr) minmax(130px, 1fr) minmax(90px, 0.7fr) minmax(90px, 0.7fr) 58px;
}

.admin-moduli-grid-head {
  border-bottom: 1px solid #d7e0ea;
  background: #f4f8fc;
}

.admin-moduli-grid-head span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #4f6786;
}

.admin-moduli-col-actions-head {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
}

.admin-moduli-head-icon {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: #607694;
  opacity: 0.35;
  cursor: pointer;
  transition: opacity 0.18s ease, color 0.18s ease;
}

.admin-moduli-head-icon svg {
  width: 16px;
  height: 16px;
}

.admin-moduli-head-icon:hover,
.admin-moduli-head-icon:focus-visible {
  opacity: 1;
  color: #1f3b5f;
}

.admin-moduli-head-icon.is-disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: auto;
}

.admin-moduli-grid-row + .admin-moduli-grid-row {
  border-top: 1px solid #e3eaf2;
}

.admin-moduli-grid-row span {
  min-width: 0;
  font-size: 13px;
  color: #1f3452;
  line-height: 1.35;
}

.admin-moduli-grid-empty-row {
  min-height: 56px;
}

.admin-moduli-grid-row .admin-moduli-empty-cell {
  grid-column: 1 / -1;
  color: #d96a1f;
  font-size: 13px;
}

.admin-moduli-empty-link {
  border: 0;
  background: transparent;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  padding: 0;
  margin-left: 2px;
  cursor: pointer;
}

.admin-moduli-empty-link:hover,
.admin-moduli-empty-link:focus-visible {
  text-decoration: underline;
}

.admin-moduli-col-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  padding-right: 4px;
}

.admin-moduli-action-btn {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: #627896;
  opacity: 0.45;
  cursor: pointer;
  transition: opacity 0.18s ease, color 0.18s ease;
}

.admin-moduli-action-btn svg {
  width: 13px;
  height: 13px;
}

.admin-moduli-action-btn:hover,
.admin-moduli-action-btn:focus-visible {
  opacity: 1;
  color: #1f3b5f;
}

.admin-moduli-action-btn.is-disabled,
.admin-moduli-move-handle.is-disabled,
.admin-moduli-empty-link.is-disabled {
  cursor: not-allowed;
  pointer-events: auto;
}

.admin-moduli-action-btn.is-disabled:not([data-help-tooltip]),
.admin-moduli-move-handle.is-disabled:not([data-help-tooltip]),
.admin-moduli-empty-link.is-disabled:not([data-help-tooltip]) {
  opacity: 0.35;
}

.admin-moduli-action-btn.is-disabled[data-help-tooltip],
.admin-moduli-move-handle.is-disabled[data-help-tooltip],
.admin-moduli-head-icon.is-disabled[data-help-tooltip],
.admin-moduli-empty-link.is-disabled[data-help-tooltip] {
  opacity: 1;
}

.admin-moduli-move-handle.is-disabled[data-help-tooltip],
.admin-moduli-action-btn.is-disabled[data-help-tooltip],
.admin-moduli-head-icon.is-disabled[data-help-tooltip],
.admin-moduli-empty-link.is-disabled[data-help-tooltip] {
  color: rgba(31, 59, 95, 0.38);
}

.admin-moduli-action-btn.is-disabled:hover,
.admin-moduli-action-btn.is-disabled:focus-visible,
.admin-moduli-move-handle.is-disabled:hover,
.admin-moduli-move-handle.is-disabled:focus-visible,
.admin-moduli-empty-link.is-disabled:hover,
.admin-moduli-empty-link.is-disabled:focus-visible {
  opacity: 0.35;
  color: inherit;
  text-decoration: none;
}

.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip),
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip),
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip),
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip) {
  position: relative;
}

.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip)::before,
.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip)::after,
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip)::before,
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip)::after,
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip)::before,
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip)::after,
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip)::before,
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip)::after {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip)::before,
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip)::before,
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip)::before,
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip)::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 5px);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid #13243b;
  z-index: 24;
  transform: translateX(-50%) translateY(-2px);
}

.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip)::after,
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip)::after,
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip)::after,
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip)::after {
  content: attr(data-help-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 12px);
  transform: translateX(-50%) translateY(-2px);
  background: #13243b;
  color: #fff;
  border-radius: 8px;
  padding: 6px 9px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  z-index: 23;
}

.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip):hover::before,
.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip):hover::after,
.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip):focus-visible::before,
.admin-moduli-action-btn[data-help-tooltip]:not(.admin-moduli-tooltip):focus-visible::after,
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip):hover::before,
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip):hover::after,
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip):focus-visible::before,
.admin-moduli-move-handle[data-help-tooltip]:not(.admin-moduli-tooltip):focus-visible::after,
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip):hover::before,
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip):hover::after,
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip):focus-visible::before,
.admin-moduli-head-icon[data-help-tooltip]:not(.admin-moduli-tooltip):focus-visible::after,
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip):hover::before,
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip):hover::after,
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip):focus-visible::before,
.admin-moduli-empty-link[data-help-tooltip]:not(.admin-moduli-tooltip):focus-visible::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.admin-moduli-grid-foot {
  border-top: 1px solid #d7e0ea;
  background: #f4f8fc;
}

.admin-moduli-grid-foot span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #4f6786;
  text-transform: uppercase;
}

.admin-moduli-col-durata-total {
  font-size: 14px !important;
  font-weight: 800 !important;
  color: #1f3b5f !important;
}

.admin-moduli-grid-row span.admin-moduli-durata-pending {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #5f7592;
  animation: admin-durata-pulse 1.2s ease-in-out infinite;
}

@keyframes admin-durata-pulse {
  0%,
  100% {
    opacity: 0.35;
  }
  50% {
    opacity: 1;
  }
}

.admin-moduli-col-modulo {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
}

.admin-moduli-col-nome {
  font-weight: 600;
}

.admin-moduli-move-handle-sm {
  width: 22px;
  height: 22px;
  opacity: 0.28;
}

.admin-moduli-move-handle-sm svg {
  width: 13px;
  height: 13px;
}

.admin-moduli-move-handle-sm:hover,
.admin-moduli-move-handle-sm:focus-visible,
.admin-moduli-grid-row.is-dragging-row .admin-moduli-move-handle-sm {
  opacity: 1;
}

.admin-moduli-group-body.is-dragging-rows .admin-moduli-grid-row * {
  pointer-events: none;
}

.admin-moduli-row-placeholder {
  margin: 2px 8px;
  border: 2px dashed #b2c5dd;
  border-radius: 10px;
  background: rgba(158, 183, 213, 0.18);
  pointer-events: none;
  transition: height 0.12s ease, margin 0.12s ease;
}

.admin-moduli-grid-row.is-dragging-row {
  opacity: 0.72;
}

.admin-modal-open {
  overflow: hidden;
}

.admin-modali-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(14, 23, 37, 0.34);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}

.admin-modali-backdrop[hidden] {
  display: none !important;
}

.admin-modali-dialog {
  width: min(860px, 100%);
  max-height: min(92vh, 760px);
  overflow: auto;
  border-radius: 14px;
  border: 1px solid #d2dbe7;
  background: #fff;
  box-shadow: 0 22px 44px rgba(10, 24, 44, 0.24);
}

.admin-modali-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid #e1e8f1;
}

.admin-modali-head h3 {
  margin: 0;
  font-size: 1.02rem;
  color: #1b3353;
}

.admin-modali-close {
  width: 32px;
  height: 32px;
  border: 0;
  background: transparent;
  color: #556d8c;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.admin-modali-body {
  padding: 14px 16px 16px;
}

.admin-modali-body [hidden] {
  display: none !important;
}

.admin-modali-group + .admin-modali-group {
  margin-top: 12px;
}

.admin-modali-server-error {
  display: block;
  margin: 0 0 10px;
  padding: 10px 12px;
  border: 1px solid #f0b5a1;
  border-radius: 10px;
  background: #fff1eb;
  color: #b12f00;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.3;
}

.admin-modali-top-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.admin-modali-top-row .admin-modali-group {
  margin-top: 0 !important;
}

.admin-modali-group-esercitativo {
  flex: 0 0 auto;
  min-width: 220px;
}

.admin-modali-top-row .admin-radio-inline {
  gap: 16px;
}

.admin-modali-grid-2-1 {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 12px;
  align-items: end;
}

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

.admin-modali-grid-1-1 .admin-modali-group + .admin-modali-group {
  margin-top: 0;
}

.admin-modali-grid-2-1 .admin-modali-group + .admin-modali-group {
  margin-top: 0;
}

.admin-modali-label {
  display: block;
  margin: 0 0 6px;
  color: #475a75;
  font-size: 14px;
  font-weight: 600;
}

.admin-modali-label em {
  color: #d83a2f;
  font-style: normal;
}

.admin-modali-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 14px;
  font-size: 0.88rem;
  color: #1f3452;
}

.admin-modali-group input[type="text"],
.admin-modali-group input[type="file"],
.admin-modali-group textarea,
.admin-modali-group select {
  width: 100%;
  min-height: 44px;
  border: 1px solid #b9c8da;
  border-radius: 10px;
  background: #fff;
  color: var(--admin-ink);
  padding: 10px 12px;
  font-size: 16px;
}

.admin-modali-group textarea {
  resize: vertical;
  min-height: 84px;
}

.admin-modali-body .admin-form-group input:focus,
.admin-modali-body .admin-form-group textarea:focus,
.admin-modali-body .admin-form-group select:focus {
  outline: none;
  border: 1px solid #ff5a1f;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(255, 90, 31, 0.35);
}

.admin-modali-body .custom-select-trigger:focus,
.admin-modali-body .custom-select-trigger:focus-visible {
  outline: none;
  border: 1px solid #ff5a1f;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(255, 90, 31, 0.35);
}

.admin-modali-note {
  margin: 12px 0 0;
  color: #5d7390;
  font-size: 0.72rem;
  line-height: 1.35;
}

.admin-modali-content-options {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.admin-modali-content-options .admin-modali-group {
  flex: 1 1 0;
}

.admin-modali-content-options .admin-modali-group + .admin-modali-group {
  margin-top: 0;
}

.admin-modali-hint {
  display: block;
  margin-top: 6px;
  color: #5d7390;
  font-size: 0.74rem;
  font-weight: 600;
}

.admin-file-input-wrap {
  position: relative;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  min-height: 34px;
}

.admin-file-input-native {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
  padding: 0 !important;
  border: 0 !important;
  min-height: 34px !important;
}

.admin-file-input-btn {
  color: #fff !important;
  order: 1;
}

.admin-form-group .admin-file-input-wrap .admin-file-input-btn {
  color: #fff;
}

.admin-file-input-text {
  color: #3f5573;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  word-break: break-word;
  order: 2;
}

.admin-file-input-wrap > label.form-error {
  order: 3;
  flex: 0 0 100%;
  margin-top: 4px;
}

.admin-upload-progress {
  margin-top: 8px;
}

.admin-upload-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.admin-upload-progress-label,
.admin-upload-progress-percent {
  color: #3f5573;
  font-size: 0.76rem;
  font-weight: 700;
}

.admin-upload-progress-track {
  margin-top: 6px;
  height: 8px;
  border-radius: 999px;
  background: #e8eef6;
  overflow: hidden;
}

.admin-upload-progress-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff5a1f 0%, #ff8a3b 100%);
  transition: width 0.16s ease;
}

.admin-modali-actions {
  margin-top: 12px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

@media (max-width: 900px) {
  .admin-modali-top-row {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .admin-modali-group-esercitativo {
    min-width: 0;
  }

  .admin-modali-grid-2-1 {
    grid-template-columns: 1fr;
  }

  .admin-modali-grid-1-1 {
    grid-template-columns: 1fr;
  }

  .admin-modali-content-options {
    flex-direction: column;
    gap: 8px;
  }
}

.admin-actions-col-header {
  width: 62px;
}

.admin-actions-col {
  width: 62px;
}

.admin-row-actions {
  display: inline-flex;
  align-items: center;
  gap: 0;
}

.admin-icon-form {
  margin: 0;
}

.admin-icon-btn {
  width: 34px;
  height: 34px;
  border: 1px solid var(--admin-border);
  border-radius: 10px;
  background: #fff;
  color: #1f3452;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
  position: relative;
}

.admin-icon-btn svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-icon-btn:hover {
  border-color: #f1c4aa;
  color: var(--admin-brand-dark);
  background: #fff7f1;
}

.admin-icon-btn:focus-visible {
  outline: 2px solid rgba(255, 106, 33, 0.33);
  outline-offset: 2px;
}

.admin-icon-btn[data-help-tooltip]::before,
.admin-icon-btn[data-help-tooltip]::after {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.admin-icon-btn[data-help-tooltip]::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 5px);
  transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid #13243b;
  z-index: 22;
  transform: translateX(-50%) translateY(-2px);
}

.admin-icon-btn[data-help-tooltip]::after {
  content: attr(data-help-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 12px);
  transform: translateX(-50%);
  background: #13243b;
  color: #fff;
  border-radius: 8px;
  padding: 6px 9px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  z-index: 21;
  transform: translateX(-50%) translateY(-2px);
}

/* Keep table icon-tooltips inside the row bounds to avoid horizontal overflow. */
.admin-table-clean .admin-icon-btn[data-help-tooltip]::after {
  left: auto;
  right: 0;
  top: calc(100% + 12px);
  bottom: auto;
  transform: translateY(-2px);
  max-width: 220px;
  white-space: normal;
  text-align: right;
}

.admin-table-clean .admin-icon-btn[data-help-tooltip]::before {
  left: auto;
  right: 8px;
  top: calc(100% + 5px);
  bottom: auto;
  transform: translateY(-2px);
  border-top: 0;
  border-bottom: 7px solid #13243b;
}

.admin-icon-btn[data-help-tooltip]:hover::before,
.admin-icon-btn[data-help-tooltip]:hover::after,
.admin-icon-btn[data-help-tooltip]:focus-visible::before,
.admin-icon-btn[data-help-tooltip]:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

/* Global icon behavior: non-delete icons stay dark blue on normal and hover/focus. */
.admin-icon-btn,
.admin-table-clean .admin-icon-btn,
.admin-moduli-action-btn,
.admin-moduli-move-handle,
.admin-moduli-head-icon {
  color: #1f3b5f;
}

.admin-icon-btn:hover,
.admin-icon-btn:focus-visible,
.admin-table-clean .admin-icon-btn:hover,
.admin-table-clean .admin-icon-btn:focus-visible,
.admin-moduli-action-btn:hover,
.admin-moduli-action-btn:focus-visible,
.admin-moduli-move-handle:hover,
.admin-moduli-move-handle:focus-visible,
.admin-moduli-head-icon:hover,
.admin-moduli-head-icon:focus-visible {
  color: #1f3b5f;
}

/* Delete icon behavior: trash-2 actions are danger at rest and stronger on hover/focus. */
.admin-icon-btn.admin-icon-btn-danger,
.admin-table-clean .admin-icon-btn.admin-icon-btn-danger,
.admin-dispense-table .admin-icon-btn-dispensa.admin-icon-btn-danger,
.admin-moduli-action-btn.is-danger,
.admin-moduli-move-handle.admin-moduli-head-trash {
  color: #c24c1f;
}

.admin-icon-btn.admin-icon-btn-danger:hover,
.admin-icon-btn.admin-icon-btn-danger:focus-visible,
.admin-table-clean .admin-icon-btn.admin-icon-btn-danger:hover,
.admin-table-clean .admin-icon-btn.admin-icon-btn-danger:focus-visible,
.admin-dispense-table .admin-icon-btn-dispensa.admin-icon-btn-danger:hover,
.admin-dispense-table .admin-icon-btn-dispensa.admin-icon-btn-danger:focus-visible,
.admin-moduli-action-btn.is-danger:hover,
.admin-moduli-action-btn.is-danger:focus-visible,
.admin-moduli-move-handle.admin-moduli-head-trash:hover,
.admin-moduli-move-handle.admin-moduli-head-trash:focus-visible {
  color: #9f2f2f;
  opacity: 1;
}

.admin-corsisti-table .admin-corsisti-meta {
  margin-top: 2px;
  color: var(--admin-muted);
  font-size: 12px;
  line-height: 1.25;
}

.admin-corsisti-table.is-locked tr.admin-corsisti-row-locked td:not(:last-child) {
  color: #7a879a;
}

.admin-corsisti-table.is-locked tr.admin-corsisti-row-locked td:not(:last-child) strong {
  color: inherit;
}

.admin-corsisti-locked-banner {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  margin: 0 0 10px;
  border-radius: 0;
  padding: 10px 12px;
  line-height: 1.35;
}

.admin-corsisti-locked-banner > svg {
  width: 16px;
  height: 16px;
  margin-top: 1px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-corsisti-head-separator {
  width: 1px;
  height: 28px;
  background: #d6deea;
  opacity: 0.9;
  align-self: center;
}

.admin-corsisti-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  white-space: nowrap;
}

.admin-corsisti-head-actions .admin-corsisti-head-separator,
.admin-corsisti-head-actions .admin-badge,
.admin-corsisti-head-actions .admin-btn,
.admin-corsisti-head-actions .admin-actions-menu {
  flex: 0 0 auto;
}

.admin-corsisti-head-tools {
  --admin-corsisti-search-collapsed-size: 34px;
  --admin-corsisti-search-expanded-width: 300px;
  --admin-corsisti-search-divider-gap: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: nowrap;
  min-width: 0;
  width: 100%;
  overflow: hidden;
}

.admin-corsisti-head-filters {
  flex: 0 0 auto;
  max-width: none;
  min-width: auto;
  opacity: 1;
  transform: translateX(0);
  transition: max-width 0.32s ease, opacity 0.24s ease, transform 0.32s ease;
}

.admin-corsisti-head-filters .admin-filter-rail {
  max-width: 100%;
}

.admin-detail-badges .admin-corsisti-head-filters .admin-filter-rail {
  min-height: 34px;
  height: 34px;
  padding: 2px 3px;
}

.admin-detail-badges .admin-corsisti-head-filters .admin-filter-rail-item {
  height: 28px;
  padding: 0 10px;
  font-size: 12px;
}

.admin-detail-badges .admin-corsisti-head-filters .admin-filter-rail-count {
  min-width: 18px;
  height: 16px;
  padding: 0 5px;
  font-size: 9px;
}

.admin-corsisti-head-search {
  position: relative;
  flex: 0 0 auto;
  margin-left: 0;
  width: var(--admin-corsisti-search-expanded-width);
  min-width: var(--admin-corsisti-search-expanded-width);
  overflow: hidden;
  transition: width 0.32s ease, min-width 0.32s ease, border-color 0.24s ease, box-shadow 0.24s ease, background-color 0.24s ease;
}

.admin-corsisti-head-search input {
  width: 100%;
  min-width: 0;
  transition: width 0.32s ease, opacity 0.22s ease, padding 0.32s ease;
}

.admin-corsisti-search-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  color: #607694;
  pointer-events: none;
  transition: color 0.2s ease;
}

.admin-corsisti-search-toggle:focus-visible {
  outline: 1px solid rgba(120, 153, 194, 0.24);
  outline-offset: 2px;
  border-radius: 999px;
}

.admin-corsisti-search-icon-open {
  display: block;
}

.admin-corsisti-search-icon-close {
  display: none;
}

.admin-corsisti-head-tools.is-collapsible .admin-corsisti-search-toggle {
  pointer-events: auto;
  cursor: pointer;
}

.admin-corsisti-head-tools.is-collapsible.is-search-opening .admin-corsisti-search-toggle,
.admin-corsisti-head-tools.is-collapsible.is-search-open .admin-corsisti-search-toggle,
.admin-corsisti-head-tools.is-collapsible.is-search-closing .admin-corsisti-search-toggle {
  color: #c24c1f;
}

.admin-corsisti-head-tools.is-collapsible.is-search-opening .admin-corsisti-search-icon-open,
.admin-corsisti-head-tools.is-collapsible.is-search-open .admin-corsisti-search-icon-open,
.admin-corsisti-head-tools.is-collapsible.is-search-closing .admin-corsisti-search-icon-open {
  display: none;
}

.admin-corsisti-head-tools.is-collapsible.is-search-opening .admin-corsisti-search-icon-close,
.admin-corsisti-head-tools.is-collapsible.is-search-open .admin-corsisti-search-icon-close,
.admin-corsisti-head-tools.is-collapsible.is-search-closing .admin-corsisti-search-icon-close {
  display: block;
}

.admin-corsisti-head-tools.is-collapsible:not(.is-search-opening):not(.is-search-open):not(.is-search-closing) {
  justify-content: flex-end;
}

.admin-corsisti-head-tools.is-collapsible:not(.is-search-opening):not(.is-search-open):not(.is-search-closing) .admin-corsisti-head-filters {
  flex: 0 0 auto;
  max-width: none;
}

.admin-corsisti-head-tools.is-collapsible .admin-corsisti-head-search {
  width: var(--admin-corsisti-search-collapsed-size);
  min-width: var(--admin-corsisti-search-collapsed-size);
  height: var(--admin-corsisti-search-collapsed-size);
  border: 1px solid #d6e0eb;
  border-radius: 999px;
  background: #fff;
}

.admin-corsisti-head-tools.is-collapsible .admin-corsisti-head-search input {
  border: 0;
  background: transparent;
  height: 100%;
  width: 0;
  opacity: 0;
  padding-left: 0;
  padding-right: 0;
  box-shadow: none;
  pointer-events: none;
}

.admin-corsisti-head-tools.is-collapsible .admin-corsisti-head-search .admin-report-fad-search-icon {
  right: 0;
  width: var(--admin-corsisti-search-collapsed-size);
  height: var(--admin-corsisti-search-collapsed-size);
  justify-content: center;
  pointer-events: auto;
}

.admin-corsisti-head-tools.is-collapsible.is-search-opening .admin-corsisti-head-filters,
.admin-corsisti-head-tools.is-collapsible.is-search-open .admin-corsisti-head-filters,
.admin-corsisti-head-tools.is-collapsible.is-search-closing .admin-corsisti-head-filters {
  max-width: 0;
  opacity: 0;
  transform: translateX(-16px);
  pointer-events: none;
}

.admin-corsisti-head-tools.is-collapsible.is-search-open .admin-corsisti-head-search {
  width: calc(100% - var(--admin-corsisti-search-divider-gap));
  max-width: calc(100% - var(--admin-corsisti-search-divider-gap));
  min-width: 0;
  margin-right: var(--admin-corsisti-search-divider-gap);
  border-color: #d6e0eb;
}

.admin-corsisti-head-tools.is-collapsible.is-search-open .admin-corsisti-head-search input {
  width: 100%;
  opacity: 1;
  padding-left: 12px;
  padding-right: 34px;
  pointer-events: auto;
}

.admin-corsisti-head-search input:focus {
  border-color: #b7c7da;
  box-shadow: 0 0 0 1px rgba(120, 153, 194, 0.12);
}

.admin-corsisti-head-tools.is-collapsible.is-search-opening .admin-corsisti-head-search:focus-within {
  border-color: #b7c7da;
  box-shadow: 0 0 0 1px rgba(120, 153, 194, 0.12);
}

.admin-corsisti-head-tools.is-collapsible.is-search-open .admin-corsisti-head-search:focus-within {
  border-color: #b7c7da;
  box-shadow: 0 0 0 1px rgba(120, 153, 194, 0.12);
}

.admin-corsisti-head-tools.is-collapsible:not(.is-search-opening):not(.is-search-open) .admin-corsisti-head-search:focus-within {
  border-color: #b7c7da;
  box-shadow: 0 0 0 1px rgba(120, 153, 194, 0.12);
}

.admin-corsisti-filter-empty {
  text-align: left;
  color: var(--admin-muted);
  font-size: 13px;
  font-weight: 600;
}

.admin-corsisti-table th:first-child,
.admin-corsisti-table td:first-child {
  width: 58px;
  min-width: 58px;
  text-align: center;
}

.admin-corsisti-table > thead > tr > th:first-child {
  padding-left: 10px;
}

.admin-corsisti-table > tbody > tr:not(.admin-report-fad-detail-row) > td:first-child {
  padding-left: 10px;
}

.admin-corsisti-table th:nth-child(2),
.admin-corsisti-table td:nth-child(2) {
  width: 280px;
  min-width: 280px;
}

.admin-corsisti-table .admin-corsisti-sync-col,
.admin-corsisti-table .admin-corsisti-sync-cell {
  width: 58px;
  min-width: 58px;
  text-align: center;
}

.admin-corsisti-table > thead > tr > th:last-child,
.admin-corsisti-table > tbody > tr:not(.admin-report-fad-detail-row) > td:last-child {
  padding-right: 6px;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-danger {
  color: #c44a4a !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-danger:hover,
.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-danger:focus-visible {
  color: #b53535 !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-success {
  color: #1f8f5b !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-success:hover,
.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-success:focus-visible {
  color: #177648 !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-warning {
  color: #b56a00 !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-warning:hover,
.admin-table-clean .admin-icon-btn.admin-corsisti-idoneita-btn.is-warning:focus-visible {
  color: #955700 !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-tooltip.is-success {
  color: #159a5f !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-tooltip.is-success:hover,
.admin-table-clean .admin-icon-btn.admin-corsisti-tooltip.is-success:focus-visible {
  color: #118552 !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-tooltip.is-danger {
  color: #c94949 !important;
}

.admin-table-clean .admin-icon-btn.admin-corsisti-tooltip.is-danger:hover,
.admin-table-clean .admin-icon-btn.admin-corsisti-tooltip.is-danger:focus-visible {
  color: #b33d3d !important;
}

.admin-candidati-table th:first-child,
.admin-candidati-table td:first-child {
  width: 58px;
  min-width: 58px;
  text-align: center;
}

.admin-candidati-table > thead > tr > th:first-child,
.admin-candidati-table > tbody > tr > td:first-child {
  padding-left: 8px;
  padding-right: 8px;
}

.admin-table .admin-candidati-nfl-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.admin-table .admin-candidati-nfl-flag svg {
  width: 20px;
  height: 20px;
}

.admin-table .admin-candidati-nfl-flag.is-success {
  color: #159a5f !important;
}

.admin-table .admin-candidati-nfl-flag.is-success:hover,
.admin-table .admin-candidati-nfl-flag.is-success:focus-visible {
  color: #118552 !important;
}

.admin-table .admin-candidati-nfl-flag.is-danger {
  color: #c94949 !important;
}

.admin-table .admin-candidati-nfl-flag.is-danger:hover,
.admin-table .admin-candidati-nfl-flag.is-danger:focus-visible {
  color: #b33d3d !important;
}

.admin-table .admin-candidati-sub-id {
  margin-top: 2px;
  font-size: 12px;
  font-style: italic;
  line-height: 1.15;
  color: #74829a;
}

/* Corsisti table uses JS floating tooltips to avoid layout overflow/scrollbars. */
.admin-corsisti-tooltip[data-help-tooltip]::before,
.admin-corsisti-tooltip[data-help-tooltip]::after {
  content: none !important;
}

.admin-moduli-tooltip[data-help-tooltip]::before,
.admin-moduli-tooltip[data-help-tooltip]::after {
  content: none !important;
}

/* In moduli view, force-disable legacy pseudo-tooltips on controls:
   only floating dynamic tooltip must remain visible. */
[data-moduli-groups-wrap] .admin-moduli-action-btn[data-help-tooltip]::before,
[data-moduli-groups-wrap] .admin-moduli-action-btn[data-help-tooltip]::after,
[data-moduli-groups-wrap] .admin-moduli-move-handle[data-help-tooltip]::before,
[data-moduli-groups-wrap] .admin-moduli-move-handle[data-help-tooltip]::after,
[data-moduli-groups-wrap] .admin-moduli-head-icon[data-help-tooltip]::before,
[data-moduli-groups-wrap] .admin-moduli-head-icon[data-help-tooltip]::after,
[data-moduli-groups-wrap] .admin-moduli-empty-link[data-help-tooltip]::before,
[data-moduli-groups-wrap] .admin-moduli-empty-link[data-help-tooltip]::after {
  content: none !important;
  display: none !important;
}

.admin-floating-tooltip {
  position: fixed;
  z-index: 9999;
  max-width: 240px;
  background: #13243b;
  color: #fff;
  border-radius: 8px;
  padding: 6px 9px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-2px);
  transition: opacity 0.18s ease, transform 0.18s ease;
  will-change: opacity, transform;
}

.admin-floating-tooltip.admin-floating-tooltip-card::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -7px;
  transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 7px solid #13243b;
}

.admin-floating-tooltip.admin-floating-tooltip-table::before {
  content: "";
  position: absolute;
  left: var(--admin-tooltip-arrow-left, calc(100% - 14px));
  top: -7px;
  transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 7px solid #13243b;
}

.admin-floating-tooltip.admin-floating-tooltip-table[data-placement="right"]::before {
  left: -7px;
  top: 50%;
  transform: translateY(-50%);
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-right: 7px solid #13243b;
  border-left: 0;
}

.admin-floating-tooltip.admin-floating-tooltip-table[data-placement="top"]::before {
  left: var(--admin-tooltip-arrow-left, calc(100% - 14px));
  top: auto;
  bottom: -7px;
  transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid #13243b;
  border-bottom: 0;
}

.admin-pagination {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.admin-pagination-meta {
  font-size: 13px;
  color: var(--admin-muted);
  font-weight: 600;
}

.admin-btn.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}

.admin-btn.is-disabled[data-help-tooltip] {
  pointer-events: auto;
  cursor: not-allowed;
  position: relative;
}

.admin-btn.is-disabled[data-help-tooltip]::before,
.admin-btn.is-disabled[data-help-tooltip]::after {
  content: none !important;
}

.admin-icon-btn.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}

.admin-icon-btn.is-disabled[data-help-tooltip] {
  pointer-events: auto;
  cursor: not-allowed;
}

.admin-infinite-status {
  margin-top: 14px;
  min-height: 20px;
  font-size: 13px;
  color: var(--admin-muted);
  font-weight: 600;
}

.admin-infinite-status.is-loading {
  color: #31587e;
}

.admin-infinite-status.is-error {
  color: #b3370a;
}

.admin-infinite-status.is-done {
  color: #6f7c90;
}

.admin-infinite-sentinel {
  height: 1px;
}

.admin-nav-toggle {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 0;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: transparent;
  cursor: pointer;
  padding: 0;
  gap: 4px;
}

.admin-nav-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  background: #d7e1f3;
  border-radius: 999px;
  margin: 0;
  transform-origin: center;
  transition: transform 0.22s ease, opacity 0.18s ease;
}

.admin-body.admin-sidebar-open .admin-nav-toggle span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.admin-body.admin-sidebar-open .admin-nav-toggle span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0.4);
}

.admin-body.admin-sidebar-open .admin-nav-toggle span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

.admin-overlay {
  display: none;
}

.admin-confirm-open {
  overflow: hidden;
}

.is-admin-locked {
  overflow: hidden;
}

.admin-confirm-modal {
  position: fixed;
  inset: 0;
  z-index: 150;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(10, 20, 36, 0.5);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.admin-confirm-modal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.admin-create-modal-open {
  overflow: hidden;
}

.admin-create-modal {
  position: fixed;
  inset: 0;
  z-index: 220;
  display: grid;
  place-items: center;
  padding: 18px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.admin-create-modal[hidden] {
  display: none !important;
}

.admin-create-modal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.admin-create-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 20, 36, 0.5);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.admin-create-modal-dialog {
  position: relative;
  width: min(1100px, calc(100vw - 28px));
  height: min(92vh, 900px);
  background: #fff;
  border: 1px solid #e7dacc;
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(14, 26, 44, 0.24);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.admin-create-modal-head {
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 14px 0 16px;
  border-bottom: 1px solid #e9eef5;
}

.admin-create-modal-head h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.2;
  color: #172b49;
}

.admin-create-modal-close {
  width: 34px;
  height: 34px;
  border: 0;
  background: transparent;
  color: #5b7290;
  cursor: pointer;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.admin-create-modal-close:hover {
  background: transparent;
  color: #e03b2f;
}

.admin-create-modal-close svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.admin-create-modal-body {
  flex: 1 1 auto;
  min-height: 0;
}

.admin-create-modal-frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: #f7f3ea;
}

.admin-modal-frame-body {
  background: #fff;
}

.admin-modal-frame-main {
  padding: 16px;
  background: #fff;
}

.admin-modal-frame-main .admin-page-head {
  display: none !important;
}

.admin-modal-frame-main .admin-card {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #fff;
  padding: 0;
}

.admin-modal-frame-main .admin-form-actions {
  position: sticky;
  bottom: -1px;
  z-index: 12;
  justify-content: flex-end;
  min-height: 74px;
  margin-top: 18px;
  padding: 8px 0;
  background: #fff;
  border-top: 1px solid #e9eef5;
}

.admin-modal-frame-main .admin-form-actions .admin-btn-primary {
  order: 2;
}

.admin-modal-frame-main .admin-form-actions .admin-btn-ghost {
  order: 1;
}

.admin-lockscreen {
  position: fixed;
  inset: 0;
  z-index: 250;
  display: grid;
  place-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.admin-lockscreen.is-open {
  opacity: 1;
  pointer-events: auto;
}

.admin-lockscreen-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(14, 22, 34, 0.62);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.admin-lockscreen-dialog {
  position: relative;
  width: min(480px, calc(100vw - 36px));
  background: #fff;
  border: 1px solid #e7dacc;
  border-radius: 16px;
  padding: 22px;
  box-shadow: 0 24px 64px rgba(14, 26, 44, 0.24);
}

.admin-lockscreen-title {
  margin: 0 0 12px;
  font-size: 28px;
  line-height: 1.15;
  color: #142847;
}

.admin-lockscreen-message {
  margin: 0 0 16px;
  color: #2b3f5d;
  font-size: 14px;
  line-height: 1.5;
}

.admin-lockscreen-user {
  margin: 0 0 14px;
  text-align: center;
  font-size: 12px;
  font-weight: 400;
  color: #1f3452;
  line-height: 1.4;
}

.admin-lockscreen-user strong {
  font-size: 14px;
  font-weight: 700;
}

.admin-lockscreen-form {
  margin: 0;
}

.admin-lockscreen-decoys {
  position: absolute;
  left: -9999px;
  top: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.admin-lockscreen-form .admin-form-group {
  margin-bottom: 12px;
}

.admin-lockscreen-actions {
  margin-top: 8px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
}

.admin-confirm-dialog {
  width: min(520px, calc(100vw - 36px));
  background: #fff;
  border: 1px solid #e7dacc;
  border-radius: 18px;
  padding: 20px;
}

.admin-confirm-title {
  margin: 0 0 20px;
  font-size: 22px;
  line-height: 1.2;
  color: #142847;
}

.admin-confirm-message {
  margin: 10px 0 0;
  font-size: 15px;
  line-height: 1.45;
  color: #2b3f5d;
}

.admin-confirm-section {
  margin: 0 0 12px;
}

.admin-confirm-section-title {
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.2;
  color: #213852;
}

.admin-confirm-section-text {
  font-size: 95%;
}

.admin-confirm-section-scheda {
  border-bottom: 1px solid #d9dee6;
  margin-bottom: 20px;
  padding-bottom: 12px;
}

.admin-confirm-section-documentazione,
.admin-confirm-section-fruizione {
  border-bottom: 1px solid #d9dee6;
  margin-bottom: 20px;
  padding-bottom: 12px;
}

.admin-confirm-actions {
  margin-top: 16px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
}

.admin-idoneita-corsista-options {
  margin-top: 14px;
  display: grid;
  gap: 10px;
}

.admin-idoneita-corsista-options .admin-radio-inline-item {
  width: 100%;
}

.admin-idoneita-corsista-options .admin-radio-inline-item[hidden] {
  display: none !important;
}

.admin-idoneita-corsista-options .admin-radio-inline-text {
  font-weight: 600;
  color: #1f3452;
}

.admin-idoneita-corsista-options.admin-corsisti-lock-notify-options {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 14px;
  row-gap: 10px;
}

.admin-idoneita-corsista-options.admin-corsisti-lock-notify-options .admin-confirm-section-text {
  flex: 1 0 100%;
  margin-right: 0;
}

.admin-idoneita-corsista-options.admin-corsisti-lock-notify-options .admin-radio-inline-item {
  width: auto !important;
  display: inline-flex;
}

.admin-confirm-btn {
  min-height: 38px;
  border-radius: 999px;
  border: 1px solid transparent;
  padding: 7px 14px;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.admin-confirm-btn-cancel {
  background: #fff;
  border-color: var(--admin-border);
  color: #1a2e4b;
}

.admin-confirm-btn-cancel:hover {
  border-color: #f1c4aa;
  color: var(--admin-brand-dark);
  background: #fff7f2;
}

.admin-confirm-btn-accept {
  background: var(--admin-brand);
  border-color: var(--admin-brand);
  color: #fff;
}

.admin-confirm-btn-accept:hover {
  background: var(--admin-brand-dark);
  border-color: var(--admin-brand-dark);
}

.admin-confirm-btn-danger {
  background: #c63b3b;
  border-color: #c63b3b;
  color: #fff;
}

.admin-confirm-btn-danger:hover {
  background: #a92e2e;
  border-color: #a92e2e;
}

.admin-confirm-btn:focus-visible {
  outline: 2px solid rgba(255, 106, 33, 0.35);
  outline-offset: 2px;
}

.admin-auth-body {
  min-height: 100vh;
  background: #fff;
}

.admin-auth-layout {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr 2fr;
}

.admin-auth-pane-form {
  display: flex;
  align-items: stretch;
  justify-content: center;
  background: #fff;
}

.admin-auth-pane-inner {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  padding: 42px 36px 32px;
  display: flex;
  align-items: center;
}

.admin-auth-card {
  width: 100%;
  max-width: 420px;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.admin-auth-card .admin-alert {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.24s ease, transform 0.24s ease;
}

.admin-auth-card .admin-alert.is-fading {
  opacity: 0;
  transform: translateY(-4px);
}

.admin-auth-logo {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 24px;
}

.admin-auth-logo .admin-brand-logo {
  width: 180px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  image-rendering: auto;
  display: block;
}

.admin-auth-login-head {
  margin-bottom: 8px;
}

.admin-auth-title {
  margin: 0;
  font-size: 44px;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.admin-auth-subtitle {
  margin: 10px 0 20px;
  color: var(--admin-muted);
  font-size: 15px;
}

.admin-auth-form {
  margin-top: 0;
}

.admin-auth-login-actions {
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.admin-auth-login-actions a {
  color: var(--admin-brand-dark);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.admin-auth-login-actions a:hover {
  text-decoration: underline;
}

.admin-auth-links {
  margin-top: 16px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.admin-auth-links a {
  font-size: 14px;
  color: var(--admin-brand-dark);
  font-weight: 600;
}

.admin-auth-reset {

}

.admin-auth-reset-title {
  margin: 0 0 4px;
  font-size: 20px;
  line-height: 1.2;
}

.admin-auth-reset-subtitle {
  margin: 0 0 8px;
  color: var(--admin-muted);
  font-size: 14px;
}

.admin-auth-reset-form + .admin-auth-reset-form {
  margin-top: 10px;
}

.admin-auth-reset[hidden],
[data-admin-auth-login-panel][hidden],
.admin-auth-reset-form[hidden] {
  display: none !important;
}

.admin-auth-otp-resend {
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
}

.admin-auth-otp-resend a {
  color: var(--admin-brand-dark);
  text-decoration: none;
}

.admin-auth-otp-resend a:hover {
  text-decoration: underline;
}

.admin-auth-otp-resend a.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  text-decoration: none;
}

.admin-auth-otp-timer {
  color: var(--admin-muted);
  min-width: 24px;
  text-align: right;
}

.admin-auth-pane-hero {
  position: relative;
  overflow: hidden;
  background: #2f0808;
}

.admin-auth-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  opacity: 0;
  transform: scale(1.02);
  transition: opacity 0.28s ease;
  z-index: 1;
}

.admin-auth-pane-hero.is-loaded .admin-auth-hero-image {
  opacity: 1;
}

.admin-auth-pane-hero::after {
  content: "";
  bottom: 0;
  height: 160px;
  left: 0;
  width: 100%;
  background: -webkit-linear-gradient(top,rgba(51,51,51,0),rgba(0,0,0,.7));
  background: linear-gradient(180deg,rgba(51,51,51,0),rgba(0,0,0,.7));
  z-index: 1;
  position: absolute;
  height: 100%;
  background: rgba(206,9,9,.9);
  mix-blend-mode: multiply;
}




.admin-auth-hero-spinner {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(4px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
}

.admin-auth-hero-spinner[hidden] {
  display: none !important;
}

.admin-auth-hero-spinner-ring {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  animation: admin-auth-hero-spin 0.8s linear infinite;
}

@keyframes admin-auth-hero-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 1200px) {
  .admin-auth-layout {
    grid-template-columns: 1fr;
  }

  .admin-auth-pane-hero {
    display: none;
  }

  .admin-auth-pane-inner {
    min-height: 100vh;
    padding: 34px 24px 28px;
  }
}

@media (max-width: 576px) {
  .admin-auth-pane-inner {
    padding: 28px 18px 20px;
    align-items: flex-start;
  }

  .admin-auth-logo {
    margin-bottom: 18px;
  }

  .admin-auth-logo .admin-brand-logo {
    width: 180px;
  }

  .admin-auth-title {
    font-size: 36px;
  }

  .admin-auth-login-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .admin-auth-login-actions .admin-btn {
    width: 100%;
  }
}

@media (max-width: 1200px) {
  .admin-grid-kpi {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 992px) {
  .admin-nav-toggle {
    display: inline-flex;
  }

  .admin-sidebar {
    position: fixed;
    top: var(--admin-topbar-height);
    left: 0;
    width: min(86vw, 280px);
    height: calc(100vh - var(--admin-topbar-height));
    transform: translateX(-100%);
    transition: transform 0.24s ease;
    z-index: 60;
  }

  .admin-body.admin-sidebar-open .admin-sidebar {
    transform: translateX(0);
  }

  .admin-overlay {
    display: none;
  }

  .admin-body.admin-sidebar-open .admin-overlay {
    display: block;
    position: fixed;
    inset: var(--admin-topbar-height) 0 0 0;
    background: rgba(20, 40, 71, 0.42);
    z-index: 50;
  }

  .admin-content {
    --admin-content-pad-x: 20px;
    padding: 20px var(--admin-content-pad-x);
  }

  .admin-content.has-top-offset {
    padding-top: 32px;
  }

  .admin-content.has-action-bar {
    grid-template-columns: 1fr;
    row-gap: 10px;
  }

  .admin-content.has-action-bar > .admin-page-head {
    grid-column: 1;
    grid-row: auto;
    order: -2;
  }

  .admin-content.has-action-bar > .admin-action-bar {
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    justify-content: flex-start;
    order: -1;
  }

  .admin-content.has-action-bar > .admin-page-head + * {
    margin-top: 0;
  }

  .admin-page-head-stack-with-top-offset {
    padding-top: 0;
  }

  .admin-page-head-stack-with-top-offset .admin-back-link-inline {
    margin-bottom: 14px;
  }

  .admin-context-sticky.is-stuck {
    max-height: 280px;
  }

  .admin-context-sticky-inner {
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 8px;
  }

  .admin-context-sticky-title {
    flex: 1 1 100%;
    font-size: 15px;
  }

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

  .admin-grid-modules,
  .admin-grid-2 {
    grid-template-columns: 1fr;
  }

  .admin-filters {
    grid-template-columns: 1fr;
  }

  .admin-list-search.is-stuck .admin-list-search-tools {
    max-width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .admin-list-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-doc-page #document-list-view.card-view {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-toast-rail {
    left: 0;
  }

  .admin-detail-head {
    grid-template-columns: 1fr;
    grid-template-areas:
      "eyebrow"
      "badges"
      "title";
    row-gap: 8px;
  }

  .admin-detail-badges {
    justify-content: flex-start;
    justify-self: start;
  }

  .admin-detail-head.admin-detail-head-corsisti .admin-detail-badges {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    justify-self: start;
    flex-wrap: wrap;
  }

  .admin-report-fad-search input {
    width: min(320px, 72vw);
  }

  .admin-corsisti-head-separator {
    display: none;
  }

  .admin-corsisti-head-tools,
  .admin-corsisti-head-filters {
    width: 100%;
  }

  .admin-corsisti-head-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .admin-corsisti-head-tools {
    flex-wrap: wrap;
  }

  .admin-corsisti-head-search,
  .admin-corsisti-head-search input {
    width: 100%;
    min-width: 0;
  }

  .admin-corsisti-head-tools.is-collapsible .admin-corsisti-head-filters {
    max-width: 100%;
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }

  .admin-corsisti-head-tools.is-collapsible .admin-corsisti-head-search {
    width: 100%;
    min-width: 0;
    height: auto;
    border: 0;
    background: transparent;
  }

  .admin-corsisti-head-tools.is-collapsible .admin-corsisti-head-search input {
    width: 100%;
    opacity: 1;
    padding-right: 34px;
    pointer-events: auto;
  }

  .admin-corsisti-head-tools.is-collapsible .admin-corsisti-search-toggle {
    pointer-events: none;
  }

  .admin-report-fad-pdf-badges {
    margin-left: 0;
    padding-left: 0;
    border-left: 0;
  }

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

  .admin-detail-item-wide {
    grid-column: span 2;
  }

  .admin-internal-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 10px;
    width: 100%;
    align-items: center;
  }

  .admin-internal-tools .admin-adaptive-filter-menu {
    grid-column: 1;
    width: 100%;
    min-width: 0;
  }

  .admin-internal-tools .admin-internal-search {
    grid-column: 2;
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  .admin-internal-tools .admin-internal-search .admin-form-group input {
    min-height: 40px;
  }

  .admin-internal-tools .admin-list-create-btn {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 768px) {
  .admin-topbar {
    padding: 0 14px;
  }

  .admin-brand {
    gap: 6px;
  }

  .admin-brand-logo {
    width: 148px;
  }

  .admin-brand-text {
    font-size: 24px;
  }

  .admin-brand-auth .admin-brand-logo {
    width: 200px;
  }

  .admin-user-pill {
    display: none;
  }

  .admin-topbar-right .user-menu-meta {
    display: none;
  }

  .admin-topbar-right .user-menu-trigger {
    min-height: 42px;
    padding: 4px;
    border-radius: 999px;
  }

  .admin-topbar-right .user-menu-trigger svg {
    display: none;
  }

  .admin-topbar-right .admin-tool-trigger svg {
    display: block;
  }

  .admin-topbar-right .user-menu-avatar {
    width: 32px;
    height: 32px;
    font-size: 0.76rem;
  }

  .admin-page-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .admin-page-head > .admin-inline-row {
    display: none;
  }

  .admin-list-search {
    display: block;
    gap: 0;
  }

  .admin-list-search .admin-filters.admin-filters-plain {
    width: 100%;
    margin: 0 0 10px;
  }

  .admin-list-search-tools {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    width: 100%;
    flex-wrap: wrap;
    max-width: 100%;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    visibility: visible;
    overflow: visible;
  }

  .admin-list-search.is-stuck .admin-list-search-tools {
    max-width: 100%;
    justify-content: flex-start;
    flex-wrap: nowrap;
  }

  .admin-list-search-tools .admin-list-view-switch {
    align-self: flex-start;
  }

  .admin-list-search-tools .admin-list-create-btn {
    width: auto;
    flex: 0 0 auto;
  }

  .admin-internal-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 10px;
    width: 100%;
    align-items: center;
  }

  .admin-internal-tools .admin-adaptive-filter-menu {
    grid-column: 1;
    width: 100%;
    min-width: 0;
  }

  .admin-internal-tools .admin-adaptive-filter-menu .custom-select-trigger {
    min-height: 40px;
  }

  .admin-internal-tools .admin-filter-rail-wrap.is-adaptive-collapsed {
    display: none;
  }

  .admin-internal-tools .admin-internal-search {
    grid-column: 2;
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  .admin-internal-tools .admin-internal-search .admin-form-group input {
    min-height: 40px;
  }

  .admin-internal-tools .admin-list-create-btn {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }

  .admin-adaptive-filter-menu {
    min-width: 108px;
  }

  .admin-action-bar {
    justify-content: flex-start;
  }

  .admin-action-bar-inner {
    width: 100%;
    border-radius: 12px;
    gap: 6px;
  }

  .admin-context-sticky .admin-action-bar,
  .admin-context-sticky .admin-action-bar-inner {
    width: 100%;
  }

  .admin-filter-rail {
    border-radius: 16px;
  }

  .admin-list-view-switch {
    padding: 2px;
  }

  .admin-list-view-btn {
    width: 28px;
    height: 28px;
  }

  .admin-list-view-switch.is-mobile-force-card [data-list-view-toggle][data-view="list"] {
    display: none;
  }

  .admin-list-card-grid {
    grid-template-columns: 1fr;
  }

  .admin-entity-card-meta {
    grid-template-columns: 1fr;
  }

  .admin-action-btn,
  .admin-action-form {
    flex: 1 1 calc(50% - 8px);
  }

  .admin-action-btn {
    width: 100%;
    min-height: 32px;
    font-size: 12px;
    padding: 6px 10px;
  }

  .admin-doc-page #document-list-view.card-view {
    grid-template-columns: 1fr;
  }

  .admin-doc-page #document-list-view.card-view .course-item.doc-upload-card {
    min-height: 280px;
  }

  .admin-confirm-dialog {
    border-radius: 14px;
    padding: 16px;
  }

  .admin-confirm-title {
    font-size: 20px;
  }

  .admin-confirm-actions {
    justify-content: stretch;
    flex-direction: column-reverse;
    gap: 8px;
  }

  .admin-confirm-btn {
    width: 100%;
  }

  .admin-grid-kpi {
    grid-template-columns: 1fr;
  }

  .admin-detail-title {
    font-size: 24px;
  }

  .admin-detail-grid {
    grid-template-columns: 1fr;
  }

  .admin-detail-item-wide {
    grid-column: span 1;
  }

  .admin-moduli-grid {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 10px 12px;
  }

  .admin-moduli-grid-head {
    display: none;
  }

  .admin-table-wrap {
    overflow: visible;
    border-radius: 16px;
  }

  .admin-table-wrap.admin-table-wrap-mobile-cards {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
  }

  .admin-table-wrap .admin-table.admin-table-mobile-cards {
    min-width: 0;
    background: transparent;
    border-collapse: separate;
    border-spacing: 0 10px;
  }

  .admin-table.admin-table-mobile-cards thead {
    display: none;
  }

  .admin-table.admin-table-mobile-cards tbody,
  .admin-table.admin-table-mobile-cards tr,
  .admin-table.admin-table-mobile-cards td {
    display: block;
    width: 100%;
  }

  .admin-table.admin-table-mobile-cards tbody tr {
    background: #f5f8fc;
    border: 1px solid #cddbeb;
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 10px;
  }

  .admin-table.admin-table-mobile-cards tbody tr:last-child {
    margin-bottom: 0;
  }

  .admin-table.admin-table-mobile-cards tbody tr:nth-child(even) {
    background: #edf3fb;
  }

  .admin-table.admin-table-mobile-cards tbody tr.admin-empty-row {
    background: transparent;
    border: 0;
    border-radius: 0;
  }

  .admin-table.admin-table-mobile-cards tbody tr td {
    border-bottom: 0;
    padding: 10px 14px;
  }

  .admin-table.admin-table-mobile-cards tbody tr td::before {
    content: attr(data-col-label);
    display: block;
    margin-bottom: 3px;
    color: #6a7d95;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .admin-table.admin-table-mobile-cards tbody tr td.admin-mobile-actions-cell {
    margin-top: 2px;
    padding-top: 10px;
    border-top: 1px solid #d7e3f1;
  }

  .admin-table.admin-table-mobile-cards tbody tr td.admin-mobile-actions-cell::before {
    display: none;
  }

  .admin-table.admin-table-mobile-cards .admin-table-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .admin-table.admin-table-mobile-cards tbody tr.admin-empty-row td {
    padding: 0;
  }

  .admin-table.admin-table-mobile-cards tbody tr.admin-empty-row td::before {
    display: none;
  }

  .admin-table-wrap-flat .admin-table.admin-table-mobile-cards tbody {
    display: grid;
    gap: 12px;
  }

  .admin-table-wrap-flat .admin-table.admin-table-mobile-cards tbody tr {
    margin-bottom: 0;
  }
}

.admin-status-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid #d6dfeb;
  background: #f5f8fc;
  color: #3e556f;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.admin-status-chip-ok {
  border-color: #b8e4cd;
  background: #edf9f2;
  color: #1e7a49;
}

.admin-status-chip-error {
  border-color: #f6c5c5;
  background: #fff0f0;
  color: #b3261e;
}

.admin-status-chip-neutral {
  border-color: #d6dfeb;
  background: #f5f8fc;
  color: #3e556f;
}

.admin-cell-subtext {
  margin-top: 4px;
  font-size: 12px;
  color: #6a7d95;
  line-height: 1.35;
  max-width: 520px;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Dark mode */
body.admin-theme-dark {
  --admin-canvas: #0d1424;
  --admin-surface: #131d31;
  --admin-border: #2a3853;
  --admin-ink: #e8eef9;
  --admin-muted: #9db0cf;
  --admin-list-odd-bg: transparent;
  --admin-search-bg: var(--admin-list-odd-bg);
}

body.admin-theme-dark,
body.admin-theme-dark .admin-main,
body.admin-theme-dark .admin-content {
  background: #0d1424;
  color: var(--admin-ink);
}

body.admin-theme-dark .admin-topbar {
  background: #0b1b41;
  border-bottom-color: rgba(var(--admin-brand-rgb), 0.5);
}

body.admin-theme-dark .admin-sidebar {
  background: #242150;
  border-right-color: #24324a;
}

body.admin-theme-dark .admin-card,
body.admin-theme-dark .admin-list-card,
body.admin-theme-dark .admin-table-wrap,
body.admin-theme-dark .admin-table,
body.admin-theme-dark .admin-entity-card,
body.admin-theme-dark .admin-list-card-grid > .course-item,
body.admin-theme-dark .admin-form input,
body.admin-theme-dark .admin-form textarea,
body.admin-theme-dark .admin-form select,
body.admin-theme-dark .user-menu-dropdown,
body.admin-theme-dark .admin-context-sticky.is-stuck {
  background: rgba(30,39,70,0.85);
  color: var(--admin-ink);
  border-color: rgba(230, 245, 255, 0.35);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

body.admin-theme-dark .admin-entity-card .admin-entity-card-footer {
  background: rgba(230, 245, 255, 0.08);
  border-top-color: rgba(230, 245, 255, 0.35);
}

body.admin-theme-dark .admin-entity-card .admin-entity-card-title,
body.admin-theme-dark .admin-entity-card .admin-entity-card-meta-value,
body.admin-theme-dark .admin-entity-card .admin-entity-card-description,
body.admin-theme-dark .admin-entity-card .admin-asset-address-lines,
body.admin-theme-dark .admin-entity-card .admin-asset-address-lines span,
body.admin-theme-dark .admin-entity-card .admin-cell-subtext,
body.admin-theme-dark .admin-entity-card .admin-entity-card-badges,
body.admin-theme-dark .admin-entity-card .admin-entity-card-head-action {
  color: #ffffff !important;
}

body.admin-theme-dark .admin-list-card,
body.admin-theme-dark .admin-table-wrap,
body.admin-theme-dark .admin-table,
body.admin-theme-dark .admin-table thead,
body.admin-theme-dark .admin-table tbody,
body.admin-theme-dark .admin-table tfoot {
  background: transparent !important;
}

body.admin-theme-dark .admin-table tbody tr {
  background: transparent !important;
}

body.admin-theme-dark .admin-table th,
body.admin-theme-dark .admin-table td {
  background: transparent !important;
}

body.admin-theme-dark .admin-table tbody tr:nth-child(odd) {
  background: transparent !important;
}

body.admin-theme-dark .admin-table tbody tr:nth-child(even) {
  background: rgba(30,39,70,0.85) !important;
}

body.admin-theme-dark .admin-table tbody tr:nth-child(odd) td {
  background: transparent !important;
}

body.admin-theme-dark .admin-table tbody tr:nth-child(even) td {
  background: rgba(30,39,70,0.85) !important;
}

body.admin-theme-dark .admin-table tbody tr:hover td,
body.admin-theme-dark .admin-table tbody tr.admin-row-link:hover td,
body.admin-theme-dark .admin-table tbody tr.admin-row-link:focus-visible td {
  background: rgba(var(--admin-brand-rgb), 0.1) !important;
}

body.admin-theme-dark .admin-table th,
body.admin-theme-dark .admin-table td,
body.admin-theme-dark .admin-muted,
body.admin-theme-dark .admin-cell-subtext {
  color: #c8d5ea;
}

body.admin-theme-dark .admin-nav-item {
  color: #e8efff;
}

body.admin-theme-dark .admin-filter-rail,
body.admin-theme-dark .admin-adaptive-filter-menu .custom-select-trigger,
body.admin-theme-dark .admin-filters.admin-filters-plain .admin-form-group input,
body.admin-theme-dark .admin-year-filter-menu .custom-select-trigger {
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.28);
  color: #ffffff !important;
}

body.admin-theme-dark .admin-report-fad-search input,
body.admin-theme-dark .admin-internal-search .admin-form-group input,
body.admin-theme-dark .admin-corsisti-head-search input,
body.admin-theme-dark .admin-agenda-search-form .admin-form-group input,
body.admin-theme-dark .admin-agenda-mini-search-form .admin-form-group input,
body.admin-theme-dark .admin-workspace-search input {
  background: var(--admin-list-odd-bg) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.28);
  box-shadow: none !important;
}

body.admin-theme-dark .admin-report-fad-search input::placeholder,
body.admin-theme-dark .admin-internal-search .admin-form-group input::placeholder,
body.admin-theme-dark .admin-corsisti-head-search input::placeholder,
body.admin-theme-dark .admin-agenda-search-form .admin-form-group input::placeholder,
body.admin-theme-dark .admin-agenda-mini-search-form .admin-form-group input::placeholder,
body.admin-theme-dark .admin-workspace-search input::placeholder {
  color: rgba(255, 255, 255, 0.72) !important;
}

.admin-filters.admin-filters-plain .admin-form-group input,
.admin-internal-search .admin-form-group input,
.admin-report-fad-search input,
.admin-corsisti-head-search input,
.admin-agenda-search-form .admin-form-group input,
.admin-agenda-mini-search-form .admin-form-group input,
.admin-workspace-search input,
.custom-select-search-input {
  background: var(--admin-list-odd-bg) !important;
}

form[data-live-search-form] .admin-form-group input,
input[type="search"],
input[name="q"],
input[id$="-q"],
input[placeholder*="Cerca"],
input[aria-label*="Cerca"] {
  background: var(--admin-search-bg) !important;
  box-shadow: none !important;
  background-image: none !important;
}

body.admin-theme-dark .admin-list-search,
body.admin-theme-dark .admin-list-search.is-stuck {
  background: transparent !important;
  border-bottom-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.admin-theme-dark form[data-live-search-form] .admin-form-group input,
body.admin-theme-dark input[type="search"],
body.admin-theme-dark input[name="q"],
body.admin-theme-dark input[id$="-q"],
body.admin-theme-dark input[placeholder*="Cerca"],
body.admin-theme-dark input[aria-label*="Cerca"] {
  background: var(--admin-search-bg) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
  box-shadow: none !important;
  background-image: none !important;
}

body.admin-theme-dark form[data-live-search-form] .admin-form-group input::placeholder,
body.admin-theme-dark input[type="search"]::placeholder,
body.admin-theme-dark input[name="q"]::placeholder,
body.admin-theme-dark input[id$="-q"]::placeholder,
body.admin-theme-dark input[placeholder*="Cerca"]::placeholder,
body.admin-theme-dark input[aria-label*="Cerca"]::placeholder {
  color: rgba(255, 255, 255, 0.72) !important;
}

body.admin-theme-dark .admin-adaptive-filter-menu .custom-select-trigger > span,
body.admin-theme-dark .admin-year-filter-menu .custom-select-trigger > span,
body.admin-theme-dark .admin-adaptive-filter-menu .custom-select-trigger > svg,
body.admin-theme-dark .admin-year-filter-menu .custom-select-trigger > svg {
  color: #607694 !important;
  stroke: currentColor;
}

body.admin-theme-dark .custom-select:has([data-custom-select-input][value=""]) .custom-select-trigger [data-custom-select-label],
body.admin-theme-dark .custom-select:has([data-custom-select-input][value=""]) .custom-select-trigger > svg {
  color: #607694 !important;
  stroke: currentColor;
}

body.admin-theme-dark .custom-select:has([data-custom-select-input]:not([value=""])) .custom-select-trigger [data-custom-select-label],
body.admin-theme-dark .custom-select:has([data-custom-select-input]:not([value=""])) .custom-select-trigger > svg {
  color: var(--admin-brand) !important;
  stroke: currentColor;
}

body.admin-theme-dark .custom-select:has([data-custom-select-input][value=""]) .custom-select-trigger [data-adaptive-filter-label] {
  color: #607694 !important;
}

body.admin-theme-dark .custom-select:has([data-custom-select-input]:not([value=""])) .custom-select-trigger [data-adaptive-filter-label] {
  color: var(--admin-brand) !important;
}

body.admin-theme-dark [data-adaptive-filter-menu][data-adaptive-has-selection="0"] .custom-select-trigger [data-adaptive-filter-label],
body.admin-theme-dark [data-adaptive-filter-menu][data-adaptive-has-selection="0"] .custom-select-trigger > svg {
  color: #607694 !important;
  stroke: currentColor;
}

body.admin-theme-dark [data-adaptive-filter-menu][data-adaptive-has-selection="1"] .custom-select-trigger [data-adaptive-filter-label],
body.admin-theme-dark [data-adaptive-filter-menu][data-adaptive-has-selection="1"] .custom-select-trigger > svg {
  color: var(--admin-brand) !important;
  stroke: currentColor;
}

body.admin-theme-dark .admin-filter-rail-wrap {
  background: transparent;
  border-color: transparent;
}

body.admin-theme-dark .admin-list-view-switch,
body.admin-theme-dark .admin-corsisti-head-filters,
body.admin-theme-dark .admin-agenda-view-rail-wrap,
body.admin-theme-dark .admin-internal-tools,
body.admin-theme-dark .admin-list-search-tools,
body.admin-theme-dark .admin-workspace-mobile-filters,
body.admin-theme-dark .admin-workspace-mobile-filters .admin-filter-rail-wrap {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

body.admin-theme-dark .admin-action-bar-inner,
body.admin-theme-dark .admin-context-sticky .admin-action-bar-inner {
  background: rgba(7, 21, 54, 0.55) !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
  box-shadow: none !important;
}

body.admin-theme-dark .admin-filter-rail-item {
  color: #365781;
}

body.admin-theme-dark .admin-filter-rail-item:hover {
  color: #173863;
}

body.admin-theme-dark .admin-empty-state,
body.admin-theme-dark .admin-empty-state-inline,
body.admin-theme-dark .admin-list-card-grid > .admin-empty-state,
body.admin-theme-dark .admin-list-card-grid > .admin-empty-state-inline,
body.admin-theme-dark .admin-table .admin-empty-state,
body.admin-theme-dark .admin-table .admin-empty-state-inline {
  background: rgba(30,39,70,0.85) !important;
  border: 1px solid rgba(230, 245, 255, 0.35) !important;
  color: #ffffff !important;
}

body.admin-theme-dark .admin-empty-state strong,
body.admin-theme-dark .admin-empty-state p,
body.admin-theme-dark .admin-empty-state-inline strong,
body.admin-theme-dark .admin-empty-state-inline p,
body.admin-theme-dark .admin-table .admin-empty-state strong,
body.admin-theme-dark .admin-table .admin-empty-state p {
  color: #ffffff !important;
}

body.admin-theme-dark .admin-empty-state::before,
body.admin-theme-dark .admin-table .admin-empty-state::before {
  filter: brightness(0) invert(1);
  opacity: 0.92;
}

body.admin-theme-dark .user-menu-dropdown {
  background: rgba(30,39,70,0.92);
  border-color: rgba(230, 245, 255, 0.35);
}

body.admin-theme-dark .custom-select-dropdown,
body.admin-theme-dark .admin-actions-dropdown,
body.admin-theme-dark .admin-tool-dropdown,
body.admin-theme-dark .admin-notification-dropdown {
  background: rgba(30,39,70,0.92) !important;
  border-color: rgba(230, 245, 255, 0.35) !important;
  color: #dbe7ff !important;
}

body.admin-theme-dark .custom-select-item,
body.admin-theme-dark .admin-actions-dropdown-item,
body.admin-theme-dark .admin-notification-item,
body.admin-theme-dark .admin-tool-dropdown-empty,
body.admin-theme-dark .admin-notification-title,
body.admin-theme-dark .admin-notification-message,
body.admin-theme-dark .admin-notification-sender,
body.admin-theme-dark .admin-notification-meta {
  color: #dbe7ff !important;
}

body.admin-theme-dark .custom-select-search-wrap {
  border-bottom-color: rgba(230, 245, 255, 0.25) !important;
}

body.admin-theme-dark .custom-select-search-input {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(230, 245, 255, 0.28) !important;
  color: #ffffff !important;
}

body.admin-theme-dark .custom-select-search-input::placeholder {
  color: rgba(219, 231, 255, 0.7) !important;
}

body.admin-theme-dark .user-menu-item {
  color: #dbe7ff !important;
}

body.admin-theme-dark .user-menu-item:hover,
body.admin-theme-dark .user-menu-item:focus-visible,
body.admin-theme-dark .user-menu-item.is-active {
  background: rgba(var(--admin-brand-rgb), 0.12);
  color: #ffffff !important;
}

body.admin-theme-dark .user-menu-divider {
  background: rgba(230, 245, 255, 0.55);
}

body.admin-theme-dark .user-menu-item.user-menu-item-danger {
  color: #ff5a1f !important;
}

body.admin-theme-dark .user-menu-item.user-menu-item-danger:hover,
body.admin-theme-dark .user-menu-item.user-menu-item-danger:focus-visible {
  color: #ff5a1f !important;
  background: rgba(255, 90, 31, 0.12);
}

/* Dark mode: ensure action icons are clearly visible in all list/table variants. */
body.admin-theme-dark .admin-table .admin-action-icon,
body.admin-theme-dark .admin-table-clean .admin-icon-btn,
body.admin-theme-dark .admin-dispense-table .admin-icon-btn-dispensa,
body.admin-theme-dark .admin-row-actions .admin-icon-btn,
body.admin-theme-dark .admin-moduli-action-btn,
body.admin-theme-dark .admin-moduli-move-handle,
body.admin-theme-dark .admin-moduli-head-icon {
  color: #c8d5ea !important;
  opacity: 0.95 !important;
}

body.admin-theme-dark .admin-table .admin-action-icon:hover,
body.admin-theme-dark .admin-table .admin-action-icon:focus-visible,
body.admin-theme-dark .admin-table-clean .admin-icon-btn:hover,
body.admin-theme-dark .admin-table-clean .admin-icon-btn:focus-visible,
body.admin-theme-dark .admin-dispense-table .admin-icon-btn-dispensa:hover,
body.admin-theme-dark .admin-dispense-table .admin-icon-btn-dispensa:focus-visible,
body.admin-theme-dark .admin-row-actions .admin-icon-btn:hover,
body.admin-theme-dark .admin-row-actions .admin-icon-btn:focus-visible,
body.admin-theme-dark .admin-moduli-action-btn:hover,
body.admin-theme-dark .admin-moduli-action-btn:focus-visible,
body.admin-theme-dark .admin-moduli-move-handle:hover,
body.admin-theme-dark .admin-moduli-move-handle:focus-visible,
body.admin-theme-dark .admin-moduli-head-icon:hover,
body.admin-theme-dark .admin-moduli-head-icon:focus-visible {
  color: #ffffff !important;
  opacity: 1 !important;
}

body.admin-theme-dark .admin-table .admin-action-icon.is-enable,
body.admin-theme-dark .admin-table .admin-action-icon.is-enable:hover,
body.admin-theme-dark .admin-table .admin-action-icon.is-enable:focus-visible {
  color: #35c37a !important;
  opacity: 1 !important;
}

body.admin-theme-dark .admin-table .admin-action-icon.is-disable,
body.admin-theme-dark .admin-table .admin-action-icon.is-disable:hover,
body.admin-theme-dark .admin-table .admin-action-icon.is-disable:focus-visible {
  color: #4ea1ff !important;
  opacity: 1 !important;
}

body.admin-theme-dark .admin-table .admin-action-icon.is-disabled,
body.admin-theme-dark .admin-table-clean .admin-icon-btn.is-disabled,
body.admin-theme-dark .admin-moduli-action-btn.is-disabled,
body.admin-theme-dark .admin-moduli-move-handle.is-disabled,
body.admin-theme-dark .admin-moduli-head-icon.is-disabled {
  opacity: 0.4 !important;
}

/* Compact typography tuning for content area only (excludes topbar/sidebar). */
.admin-content .admin-page-head h1 {
  font-size: 28px;
}

.admin-content .admin-page-head p {
  font-size: 14px;
}

.admin-content .admin-btn {
  font-size: 13px;
}

.admin-content .admin-btn-sm {
  font-size: 12px;
}

.admin-content .admin-form-group label {
  font-size: 13px;
}

.admin-content .admin-form-group input,
.admin-content .admin-form-group select,
.admin-content .admin-form-group textarea,
.admin-content .custom-select-trigger {
  font-size: 15px;
}

.admin-content .admin-table th {
  font-size: 11px;
}

.admin-content .admin-table td {
  font-size: 13px;
}

.admin-content .admin-cell-subtext {
  font-size: 11px;
}

.admin-content .admin-status-chip,
.admin-content .admin-badge {
  font-size: 11px;
}

.admin-content .admin-entity-card-title {
  font-size: 22px;
}

.admin-content .admin-entity-card-corso .admin-entity-card-title {
  font-size: 20px;
}

.admin-content .admin-entity-card-meta-label,
.admin-content .admin-entity-card-meta-value,
.admin-content .admin-entity-card-description {
  font-size: 11px;
}

.admin-content .admin-entity-card .admin-entity-card-eyebrow {
  font-size: 10px;
}
