.access-management,
.access-form {
  --access-ink: #273449;
  --access-muted: #617089;
  --access-line: #dbe3ee;
  --access-accent: #343957;
  color: var(--access-ink);
  font-size: 14px;
}
.access-management { padding: 20px; min-height: 0; overflow: auto; }
.access-management > div:first-child { flex-wrap: wrap; }
.access-management h4 { font-size: 22px; font-weight: 700; margin: 0; }
.access-management p, .access-form p { color: var(--access-muted); font-size: 13px; font-weight: 400; }
.access-management .popup-status-message:empty { display: none; }
.access-management input, .access-management select,
.access-form input:not([type=checkbox]), .access-form select, .access-form textarea {
  box-sizing: border-box; width: 100%; min-width: 0; height: 42px;
  border: 1px solid var(--access-line); border-radius: 9px;
  background: #fff; color: var(--access-ink) !important;
  padding: 9px 12px; font: inherit; box-shadow: none;
}
.access-management input::placeholder, .access-form input::placeholder { color: #738198; opacity: 1; }
.access-management select { width: auto; padding-right: 30px; }
.access-form textarea { height: 76px; resize: vertical; }
.access-management :is(input,select,button):focus-visible,
.access-form :is(input,select,textarea,button,[role=button]):focus-visible {
  outline: 3px solid #a9c8fa; outline-offset: 2px; border-color: #356bc1;
}
.access-management button, .access-form button {
  min-height: 40px; padding: 9px 16px; border: 1px solid var(--access-line);
  border-radius: 9px; font: inherit; font-weight: 600; white-space: nowrap;
  background: #f4f7fa; color: var(--access-ink); cursor: pointer;
  transition: background .15s, color .15s, box-shadow .15s;
}
.access-management button.popup-add-btn, .access-form button[type=submit] {
  background: var(--access-accent); color: #fff; border-color: var(--access-accent);
}
.access-management button:hover:not(:disabled), .access-form button:hover:not(:disabled) {
  background: #1e654f; border-color: #1e654f; color: #fff !important;
  box-shadow: 0 3px 8px #25395020;
}
.access-management button:disabled, .access-form button:disabled { opacity: .5; cursor: not-allowed; }
.access-table-scroll { overflow-x: auto; margin-top: 16px; border: 1px solid var(--access-line); border-radius: 12px; }
.access-management .popup-table { margin: 0; border: 0; width: 100%; font-size: 13px; }
.access-management .popup-table th { background: #f2f5f9; color: #4b5b72; font-size: 12px; padding: 13px 16px; border: 0; }
.access-management .popup-table td { padding: 13px 16px; border: 0; border-top: 1px solid #e8edf3; vertical-align: middle; }
.access-management .popup-table td:first-child { font-weight: 600; }
.access-management .popup-table tr:hover td { background: #f8fafd; }
.access-badges { display: flex; flex-wrap: wrap; gap: 5px; min-width: 230px; max-width: 640px; }
.access-badge { border-radius: 6px; padding: 4px 8px; background: #edf2fa; color: #405979; font-size: 11px; line-height: 1.5; white-space: nowrap; }
.access-status { display: inline-flex; padding: 4px 9px; border-radius: 20px; background: #e7f3ec; color: #276346; font-size: 12px; }
.access-status.disabled { background: #f1f3f6; color: #667085; }
.access-form.popup-overlay { padding: 20px; align-items: center; background: #141d3580; }
.access-form .popup-container {
  width: min(760px, 100%); max-width: 760px !important; height: auto !important;
  max-height: calc(100dvh - 40px); overflow: auto; border: 1px solid #d9e2ed;
  border-radius: 18px; background: #fff; box-shadow: 0 24px 80px #0b173d40; padding: 0;
}
.access-form .popup-title-bar {
  position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between;
  align-items: center; flex-shrink: 0; gap: 14px; background: #343957; color: white; padding: 18px 22px;
}
.access-form .popup-title-bar h4 { margin: 0; font-size: 22px; font-weight: 700; }
.access-form .productClose { display: grid; place-items: center; flex-shrink: 0; cursor: pointer; }
.access-form .productClose i { margin: 0; font-size: 28px; }
.access-form form { padding: 22px; gap: 16px !important; background: linear-gradient(145deg,#fff,#f8fafd); }
.access-form form label { font-size: 13px !important; color: #46556d; }
.access-form form > div { min-width: 0; }
.access-form .permission-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; grid-column: 1 / -1; }
.access-form .permission-group-title { grid-column: 1 / -1; margin: 14px 0 2px; padding-bottom: 8px; border-bottom: 1px solid #dbe3ee; font-size: 13px; color: #39465c; font-weight: 700; }
.access-form .permission-grid > div:has(input:disabled:not(:checked)) { background: #f5f7fa; }
.access-form .permission-grid > div {
  border: 1px solid var(--access-line); border-radius: 10px; padding: 11px;
  background: #fff; align-items: flex-start !important;
}
.access-form .permission-grid > div:has(input:checked) { background: #edf3fc; border-color: #b5c9e9; }
.access-form input[type=checkbox] { width: 17px; height: 17px; flex-shrink: 0; margin: 2px 6px 0 0; accent-color: #343957; }
.access-form .access-email-preference { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 10px; padding: 14px; border: 1px solid #dbe3ef; border-radius: 12px; background: #f5f7fa; cursor: pointer; }
.access-form .access-email-preference:has(input:checked) { background: #edf3fc; border-color: #b5c9e9; }
.access-form .access-email-preference strong { display: block; color: #343957; font-size: 14px; }
.access-form .access-email-preference small { display: block; margin-top: 4px; color: #64748b; font-size: 12px; line-height: 1.5; }
.access-form .access-email-preference[hidden] { display: none; }
.access-form .permission-grid label { display: flex !important; flex-direction: column; align-items: flex-start !important; cursor: pointer; font-weight: 600; }
.access-form .permission-grid small { font-weight: 400; font-size: 11px; color: #65748b; line-height: 1.5; }
.access-form .access-actions { grid-column: 1 / -1; padding-top: 16px; border-top: 1px solid var(--access-line); justify-content: flex-end; }
.access-form .access-form-error { grid-column: 1 / -1; color: #a32735; background: #fff0f2; border-radius: 8px; padding: 10px 12px; font-size: 13px; }
.access-form .access-form-error:empty { display: none; }
.access-form .access-helper { padding: 0 22px 18px; }
.access-confirm-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.access-confirm-heading h4 { margin: 0; font-size: 20px; font-weight: 700; }
.access-confirm-heading .productClose { padding: 0; border: 0; background: transparent; color: #343957; }
#user-form-overlay.access-form form { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
.access-form .access-photo-field { grid-column: 1 / -1; }
.access-form input[type=file]::file-selector-button { border: 0; background: #e9eef6; color: #36465f; border-radius: 5px; padding: 3px 9px; font: inherit; }
.access-readonly #selections-bulk-toggle,
.access-readonly #selections-cancel-all,
.access-product-readonly .product-task-toggle,
.access-no-cancel-all #selections-cancel-all { display: none !important; }
[hidden][data-requires-permission], #site-navigation [hidden] { display: none !important; }
.access-denied-dialog { position: fixed; inset: 0; margin: auto; padding: 0; width: min(440px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); border: 1px solid #dbe3ee; border-radius: 18px; background: #fff; color: #29354a; box-shadow: 0 24px 80px #17213740; overflow-x: hidden; }
.access-denied-dialog, .access-denied-dialog * { box-sizing: border-box; }
.access-denied-dialog::backdrop { background: #17213788; }
.access-denied-dialog header { position: static; width: 100%; max-width: 100%; height: auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; background: #343957; color: #fff; }
.access-denied-dialog h2 { flex: 1; min-width: 0; margin: 0; font-family: inherit; font-weight: 600; font-size: 20px; line-height: 1.3; }
.access-denied-dialog .productClose { position: static; flex: 0 0 36px; float: none; display: grid; place-items: center; margin: 0; padding: 0; width: 36px; height: 36px; border: 0; background: transparent; color: #fff; cursor: pointer; }
.access-denied-dialog .productClose i { margin: 0; font-size: 28px; }
.access-denied-body { padding: 24px; }
.access-denied-body p { margin: 0 0 24px; font-size: 14px; font-weight: 400; line-height: 1.6; color: #5d6b82; }
.access-denied-confirm { display: block; margin-left: auto; min-height: 42px; padding: 10px 24px; border: 1px solid #343957; border-radius: 10px; background: #343957; color: #fff; font: inherit; cursor: pointer; }
.access-denied-confirm:hover { background: #252b46; color: #fff; }
.access-denied-dialog button:focus-visible { outline: 3px solid #8faaff; outline-offset: 3px; }
[data-access-blocked="true"] { cursor: not-allowed !important; }
input[data-access-blocked="true"] { color: #4e5b70 !important; -webkit-text-fill-color: #4e5b70; opacity: 1; }
.assetMenuView[hidden], .access-management [hidden], .access-form [hidden], .product-tab[hidden], [tabulator-field][hidden] { display: none !important; }
.access-machine-readonly .assetRowSection [contenteditable],
.access-machine-readonly .assetRowSection .assetSectionActionButton { pointer-events: none; }
@media (max-width: 600px) {
  .access-management { padding: 12px; }
  .access-management .popup-table { min-width: 620px; }
  .access-management button { min-height: 44px; }
  .access-form.popup-overlay { padding: 8px; }
  .access-form .popup-container { max-height: calc(100dvh - 16px); border-radius: 13px; }
  .access-form form, #user-form-overlay.access-form form { grid-template-columns: 1fr !important; padding: 16px; }
  .access-form .permission-grid { grid-template-columns: 1fr; }
  .access-form input:not([type=checkbox]), .access-form select, .access-form textarea { font-size: 16px; }
  .access-form .access-actions button { flex: 1; min-height: 44px; }
}
