:root {
  --els-utility-width: 430px;
  --els-utility-safe-right: 22px;
}

.global-utility-widget {
  position: fixed;
  right: var(--els-utility-safe-right);
  z-index: 1060;
}

.help-widget.global-utility-widget {
  bottom: 86px;
}

.reminder-widget.global-utility-widget {
  bottom: 22px;
}

.global-utility-launcher {
  position: relative;
  display: grid;
  width: 52px;
  height: 52px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  background: #07543f;
  color: #fff;
  box-shadow: 0 10px 24px rgba(11, 54, 42, 0.24);
  cursor: pointer;
  transition: background-color 160ms ease, box-shadow 160ms ease,
    opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.global-utility-launcher:hover {
  background: #063f31;
  box-shadow: 0 13px 28px rgba(11, 54, 42, 0.3);
  transform: translateY(-1px);
}

.global-utility-launcher:focus-visible {
  outline: 3px solid rgba(40, 112, 85, 0.28);
  outline-offset: 3px;
}

.global-utility-launcher[aria-expanded="true"] {
  background: #0a684d;
}

.global-utility-launcher .ti {
  font-size: 23px;
}

.global-utility-count {
  position: absolute;
  top: -5px;
  right: -4px;
  display: grid;
  min-width: 21px;
  height: 21px;
  padding: 0 5px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #d18c16;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
}

.global-utility-drawer {
  position: fixed;
  top: var(--els-topbar-height, 64px);
  right: 0;
  bottom: 0;
  display: grid;
  width: min(var(--els-utility-width), calc(100vw - 40px));
  max-height: none;
  overflow: hidden;
  border: 0;
  border-left: 1px solid #ced9d2;
  border-radius: 0;
  background: #fff;
  box-shadow: -16px 0 38px rgba(20, 46, 37, 0.16);
  color: var(--els-ink, #17231f);
  animation: els-utility-slide-in 180ms ease-out;
}

.help-widget-panel.global-utility-drawer {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.reminder-widget-panel.global-utility-drawer {
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
}

.global-utility-drawer[hidden] {
  display: none;
}

.global-utility-view {
  min-height: 0;
  overflow: hidden;
}

.global-utility-view[hidden] {
  display: none;
}

.global-utility-view[data-utility-view="chat"] {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
}

.global-utility-view[data-utility-view="reminders"] {
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
}

.global-utility-view[data-utility-view="marks-list"] {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.global-utility-view[hidden] {
  display: none;
}

@keyframes els-utility-slide-in {
  from { transform: translateX(20px); }
  to { transform: translateX(0); }
}

.global-utility-header {
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px 12px 16px;
  border-bottom: 1px solid #dce4df;
  background: #fff;
}

.global-utility-heading {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
}

.global-utility-heading > span:last-child {
  display: grid;
  min-width: 0;
}

.global-utility-heading strong {
  overflow: hidden;
  color: #16221e;
  font-size: 16px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.global-utility-heading small {
  color: #6a7771;
  font-size: 11px;
  line-height: 1.4;
}

.global-utility-heading-icon {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 7px;
  background: #eaf4ee;
  color: #0a664b;
}

.global-utility-heading-icon .ti {
  font-size: 20px;
}

.global-utility-header-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 2px;
}

.global-utility-header-actions .btn {
  width: 34px;
  height: 34px;
  color: #4f5e57;
}

.global-utility-context {
  overflow: hidden;
  padding: 7px 16px;
  border-bottom: 1px solid #e2e8e4;
  background: #f5f8f6;
  color: #55645d;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.global-utility-body {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.global-utility-empty {
  display: grid;
  max-width: 290px;
  margin: auto;
  padding: 38px 18px;
  justify-items: center;
  text-align: center;
}

.global-utility-empty > span {
  display: grid;
  width: 42px;
  height: 42px;
  margin-bottom: 10px;
  place-items: center;
  border-radius: 8px;
  background: #eaf4ee;
  color: #0a664b;
}

.global-utility-empty strong {
  color: #1c2924;
  font-size: 14px;
}

.global-utility-empty p {
  margin: 5px 0 0;
  color: #6a7771;
  font-size: 12px;
  line-height: 1.55;
}

.help-widget-messages {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 16px;
  background: #f8faf8;
}

.help-widget-message {
  display: grid;
  max-width: 92%;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  padding: 0;
  border-radius: 0;
  background: transparent;
}

.help-widget-message.employee {
  max-width: 86%;
  grid-template-columns: minmax(0, 1fr);
  justify-self: end;
  padding: 9px 11px;
  border: 1px solid #c9dfd1;
  border-radius: 7px 7px 2px 7px;
  background: #dff0e5;
}

.help-widget-message > span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #0b674d;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.help-widget-message.employee > span {
  display: none;
}

.help-widget-message > div {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #dce4df;
  border-radius: 2px 7px 7px 7px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(24, 49, 40, 0.04);
}

.help-widget-message.employee > div {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.help-widget-message p {
  margin: 0;
  color: #26332e;
  font-size: 12px;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.assistant-action-link,
.assistant-reminder-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 9px;
  color: #07543f;
  font-size: 12px;
  font-weight: 750;
  text-decoration: none;
}

.assistant-action-link:hover,
.assistant-reminder-link:hover {
  text-decoration: underline;
}

.assistant-copy-button {
  float: right;
  margin: 0 0 7px 8px;
  padding: 4px 7px;
  border: 1px solid #ccd9d1;
  border-radius: 5px;
  background: #fff;
  color: #07543f;
  font-size: 10px;
  font-weight: 800;
}

.help-widget-typing {
  padding: 7px 16px;
  border-top: 1px solid #e1e7e3;
  background: #f8faf8;
  color: #65736c;
  font-size: 11px;
}

.global-utility-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 40px;
  gap: 8px;
  align-items: end;
  padding: 11px 12px;
  border-top: 1px solid #dce4df;
  background: #fff;
}

.global-utility-composer textarea {
  min-height: 42px;
  max-height: 116px;
  padding: 10px 11px;
  resize: none;
  border-radius: 7px;
  font-size: 12px;
}

.global-utility-composer .btn {
  width: 40px;
  height: 40px;
  border-radius: 7px;
  background: #07543f;
}

.global-utility-footer {
  display: flex;
  min-height: 48px;
  align-items: stretch;
  justify-content: space-around;
  border-top: 1px solid #dce4df;
  background: #fff;
}

.global-utility-footer a,
.global-utility-footer button,
.global-utility-footer span {
  display: grid;
  min-width: 58px;
  padding: 7px 6px;
  place-items: center;
  gap: 1px;
  border: 0;
  background: transparent;
  color: #627069;
  font-size: 10px;
  text-decoration: none;
}

.global-utility-footer button {
  position: relative;
}

.global-utility-footer .ti {
  font-size: 16px;
}

.global-utility-footer button,
.global-utility-footer a {
  cursor: pointer;
}

.global-utility-footer .is-active {
  color: #07543f;
  font-weight: 800;
}

.reminder-toolbar {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 14px;
  border-bottom: 1px solid #dce4df;
  background: #fff;
}

.reminder-toolbar-tab {
  padding: 7px 9px 6px;
  border-bottom: 2px solid #0a674d;
  color: #164d3d;
  font-size: 12px;
  font-weight: 800;
}

.reminder-toolbar .btn-primary {
  background: #07543f;
}

.reminder-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}

.reminder-sound-status {
  margin: 0;
  padding: 7px 14px;
  border-bottom: 1px solid #dce4df;
  background: #f6f9f7;
  color: #365b50;
  font-size: 11px;
}

.reminder-editor {
  display: grid;
  gap: 9px;
  padding: 12px 14px;
  border-bottom: 1px solid #d7e0da;
  background: #f6f9f7;
}

.reminder-editor[hidden] {
  display: none;
}

.reminder-editor label {
  display: grid;
  gap: 3px;
  color: #4e5d56;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.reminder-editor input,
.reminder-editor textarea {
  padding: 8px 9px;
  border-radius: 6px;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}

.reminder-editor [data-reminder-create-fields] {
  display: grid;
  gap: 9px;
}

.reminder-editor [data-reminder-create-fields][hidden],
.reminder-editor [data-reminder-instruction-field][hidden] {
  display: none;
}

.reminder-editor > .reminder-editor-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}

.reminder-editor-error {
  margin: 0;
  color: #a43c36;
  font-size: 11px;
}

.reminder-list {
  display: block;
  padding: 0 14px 18px;
  background: #fff;
}

.marks-list-heading [data-maintenance-reminder-add] {
  flex: 0 0 auto;
}

.reminder-editor-hint {
  margin: 0;
  color: #60736c;
  font-size: 11px;
  line-height: 1.4;
}

.marks-list-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid #dce4df;
  background: #f7faf8;
}

.marks-list-view .marks-list-heading {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  gap: 12px;
  padding: 12px 16px;
}

.marks-list-heading-action {
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 7px;
  background: #e9f3ed;
  color: #07543f;
  cursor: pointer;
  transition: background-color 140ms ease, color 140ms ease, transform 140ms ease;
}

.marks-list-heading-action:hover,
.marks-list-heading-action:focus-visible {
  background: #d9ebe1;
  color: #043f30;
  outline: none;
  transform: translateY(-1px);
}

.marks-list-heading-action:focus-visible {
  box-shadow: 0 0 0 3px rgba(7, 84, 63, 0.16);
}

.marks-list-heading-action:disabled {
  cursor: default;
  opacity: 0.42;
  transform: none;
}

.marks-list-heading-action.is-copied {
  background: #d7efe4;
  color: #087154;
}

.marks-list-clear-action {
  background: #f8ece9;
  color: #a43c36;
}

.marks-list-clear-action:hover,
.marks-list-clear-action:focus-visible {
  background: #f3ddd8;
  color: #842d28;
}

.marks-list-heading-title {
  align-self: center;
  justify-self: center;
  color: #07543f;
  font-family: "Segoe Print", "Bradley Hand", cursive;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.marks-list-heading > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 7px;
  background: #e9f3ed;
  color: #07543f;
}

.marks-list-heading div {
  display: grid;
}

.marks-list-heading strong {
  color: #1d2b25;
  font-size: 14px;
}

.marks-list-heading small {
  color: #6a7771;
  font-size: 10px;
}

.marks-list-clear-confirmation {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 4;
  display: grid;
  min-width: 218px;
  gap: 12px;
  padding: 18px;
  border: 1px solid #e4c8c2;
  border-radius: 10px;
  background: #fffdfb;
  box-shadow: 0 16px 38px rgba(48, 32, 27, 0.2);
  color: #3c2c27;
  text-align: center;
  transform: translate(-50%, -50%);
}

.marks-list-clear-confirmation[hidden] {
  display: none;
}

.marks-list-clear-confirmation strong {
  font-size: 14px;
}

.marks-list-clear-confirmation p {
  margin: 0;
  color: #a43c36;
  font-size: 11px;
}

.marks-list-paper {
  padding: 18px 20px 28px 42px;
  background-color: #fffdf3;
  background-image:
    linear-gradient(90deg, transparent 27px, rgba(190, 79, 68, 0.2) 28px, transparent 29px),
    repeating-linear-gradient(#fffdf3 0, #fffdf3 27px, #cbd9df 28px);
}

.marks-building-group {
  margin: 0 0 22px;
}

.marks-building-group h3 {
  margin: 0 0 7px;
  color: #07543f;
  font-family: "Segoe Print", "Bradley Hand", cursive;
  font-size: 14px;
  font-weight: 700;
}

.marks-building-group ul {
  margin: 0;
  padding-left: 22px;
}

.marks-building-group li {
  position: relative;
  min-height: 28px;
  padding-left: 3px;
  color: #293832;
  font-family: "Segoe Print", "Bradley Hand", cursive;
  font-size: 13px;
  line-height: 28px;
}

.marks-list-line {
  display: flex;
  min-width: 0;
  align-items: center;
}

.marks-list-copy {
  min-width: 0;
  flex: 1;
}

.marks-list-schedule {
  color: #52665d;
}

.marks-list-menu {
  display: grid;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #53645c;
  opacity: 0;
}

.marks-building-group li:hover .marks-list-menu,
.marks-building-group li:focus-within .marks-list-menu {
  opacity: 1;
}

.marks-list-menu:hover,
.marks-list-menu:focus-visible {
  background: rgba(7, 84, 63, 0.09);
}

.marks-list-menu svg {
  width: 16px;
  height: 16px;
}

.marks-list-editor {
  display: grid;
  gap: 7px;
  margin: 5px 0 12px -18px;
  padding: 10px;
  border: 1px solid #cbd9d2;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.9);
  font-family: var(--tblr-body-font-family, sans-serif);
  line-height: 1.35;
}

.marks-list-editor label {
  color: #33483f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.marks-list-editor textarea {
  width: 100%;
  min-height: 58px;
  padding: 8px 9px;
  resize: vertical;
  border: 1px solid #bdcbc4;
  border-radius: 6px;
  background: #fff;
  color: #26372f;
  font: inherit;
}

.marks-list-editor textarea:focus {
  border-color: #08765a;
  outline: 2px solid rgba(8, 118, 90, 0.15);
}

.marks-list-editor-error {
  margin: 0;
  color: #b42318;
  font-size: 11px;
}

.marks-list-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.reminder-group {
  border-bottom: 1px solid #e2e8e4;
}

.reminder-group:last-child {
  border-bottom: 0;
}

.reminder-group-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 13px 0 7px;
  color: #324039;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.reminder-group-heading span {
  display: grid;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  place-items: center;
  border-radius: 999px;
  background: #eef2ef;
  color: #5b6962;
  font-size: 10px;
}

details.reminder-group > summary {
  cursor: pointer;
  list-style: none;
}

details.reminder-group > summary::-webkit-details-marker {
  display: none;
}

.reminder-row {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
  padding: 10px 8px;
  border: 0;
  border-top: 1px solid #edf1ee;
  border-radius: 0;
  background: #fff;
  cursor: pointer;
}

.reminder-row:focus-visible {
  outline: 2px solid #0a674d;
  outline-offset: 2px;
}

.reminder-row:first-of-type {
  border-top: 0;
}

.reminder-complete {
  display: grid;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  padding: 0;
  place-items: center;
  border: 1px solid #aebbb4;
  border-radius: 4px;
  background: #fff;
  color: transparent;
  cursor: pointer;
}

.reminder-complete:hover,
.reminder-complete:focus-visible {
  border-color: #0a674d;
  color: #0a674d;
}

.reminder-row-content {
  min-width: 0;
}

.reminder-row-content strong {
  display: block;
  overflow: hidden;
  color: #26332e;
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reminder-row-content small {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  color: #6a7771;
  font-size: 10px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reminder-row.expanded .reminder-row-content strong,
.reminder-row.expanded .reminder-row-content small {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.reminder-due-label {
  display: inline-flex;
  margin-top: 4px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #eef3ef;
  color: #35564a;
  font-size: 9px;
  font-weight: 800;
}

.reminder-row.due .reminder-due-label {
  background: #fde7e4;
  color: #a33d36;
}

.reminder-row.soon .reminder-due-label {
  background: #fff0cf;
  color: #8a5b0c;
}

.reminder-row.automation-failure {
  border-top-color: #c8e4f2;
  background: #eef9ff;
}

.reminder-row.automation-failure .reminder-due-label {
  background: #d9f0fb;
  color: #185b78;
}

.reminder-row-menu {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #65736c;
  cursor: pointer;
}

.reminder-row-menu:hover {
  background: #edf3ef;
  color: #07543f;
}

.reminder-row.completed {
  grid-template-columns: 22px minmax(0, 1fr);
  opacity: 0.72;
}

.reminder-row.completed .reminder-row-content strong {
  text-decoration: line-through;
}

.reminder-menu.dropdown-menu {
  position: fixed;
  z-index: 1080;
  display: grid;
  width: 144px;
  min-width: 0;
  max-width: calc(100vw - 16px);
  gap: 2px;
  padding: 4px;
  overflow: hidden;
  border: 1px solid #d3ddd6;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(21, 44, 36, 0.16);
}

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

.reminder-menu .dropdown-item {
  display: flex;
  width: 100%;
  min-height: 34px;
  margin: 0;
  padding: 7px 9px;
  align-items: center;
  gap: 7px;
  border: 0;
  border-radius: 5px;
  outline: 0;
  background: transparent;
  box-shadow: none;
  color: #2e3d36;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
  white-space: nowrap;
}

.reminder-menu .dropdown-item:hover,
.reminder-menu .dropdown-item:focus-visible {
  background: #edf4ef;
  box-shadow: inset 0 0 0 1px rgba(7, 84, 63, 0.08);
  color: #07543f;
}

.reminder-menu .dropdown-item.text-danger {
  color: #c92a2a;
}

.reminder-menu .dropdown-item.text-danger:hover,
.reminder-menu .dropdown-item.text-danger:focus-visible {
  background: #fff0f0;
  box-shadow: inset 0 0 0 1px rgba(201, 42, 42, 0.08);
  color: #a61e1e;
}

.reminder-menu .dropdown-item svg {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
}

.global-utility-toasts {
  position: fixed;
  top: calc(var(--els-topbar-height, 64px) + 16px);
  right: 18px;
  z-index: 1090;
  display: grid;
  width: min(360px, calc(100vw - 32px));
  gap: 10px;
  pointer-events: none;
}

@media (min-width: 576px) {
  .els-global-utility-open .global-utility-toasts {
    right: calc(min(var(--els-utility-width), calc(100vw - 40px)) + 18px);
  }
}

.reminder-maintenance-resident {
  display: block;
  margin-top: 4px;
  color: #07543f;
  font-size: 10px;
  font-weight: 800;
}

.reminder-maintenance-context { margin-top: 3px; }
.reminder-row:not(.expanded) .reminder-maintenance-context { display: none; }
.reminder-maintenance-link {
  display: inline-block;
  margin-top: 4px;
  color: #087557;
  font-size: 10px;
  font-weight: 700;
}

.reminder-toast {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid #e0c785;
  border-radius: 8px;
  background: #fffaf0;
  box-shadow: 0 14px 34px rgba(35, 51, 44, 0.17);
  pointer-events: auto;
}

.reminder-toast-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 7px;
  background: #fff0cf;
  color: #8a5b0c;
}

.reminder-toast strong,
.reminder-toast small {
  display: block;
}

.reminder-toast strong {
  color: #26332e;
  font-size: 12px;
}

.reminder-toast small {
  margin-top: 2px;
  color: #68766f;
  font-size: 10px;
}

.reminder-toast-actions {
  grid-column: 2 / -1;
  display: flex;
  gap: 6px;
}

.reminder-toast-close {
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #66746d;
}

@media (max-width: 575.98px) {
  :root {
    --els-utility-safe-right: 14px;
  }

  .help-widget.global-utility-widget {
    bottom: 78px;
  }

  .reminder-widget.global-utility-widget {
    bottom: 16px;
  }

  .global-utility-launcher {
    width: 48px;
    height: 48px;
  }

  .els-global-utility-open .global-utility-launcher {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateX(12px);
  }

  .global-utility-drawer {
    top: var(--els-topbar-height, 64px);
    width: 100vw;
    border-left: 0;
  }

  .global-utility-toasts {
    right: 12px;
    width: calc(100vw - 24px);
  }
}

@media (min-width: 576px) {
  .els-global-utility-open .global-utility-widget {
    right: calc(min(var(--els-utility-width), calc(100vw - 40px)) + 18px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .global-utility-drawer {
    animation: none;
  }

  .global-utility-launcher {
    transition: none;
  }
}
.assistant-transaction-card {
  display: grid;
  gap: .65rem;
  margin-top: .75rem;
  padding: .85rem;
  border: 1px solid var(--els-border, #d9e2df);
  border-radius: .75rem;
  background: #f5faf7;
  color: var(--els-ink, #17342b);
}
.assistant-transaction-card header,
.assistant-transaction-route { display: flex; justify-content: space-between; gap: .75rem; }
.assistant-transaction-card header b { color: #006b4f; }
.assistant-transaction-route { margin: 0; font-weight: 600; }
.assistant-transaction-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin: 0; }
.assistant-transaction-card dl div { min-width: 0; }
.assistant-transaction-card dt { color: #65766f; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
.assistant-transaction-card dd { margin: .1rem 0 0; overflow-wrap: anywhere; }
.assistant-transaction-card .assistant-transaction-workflow-step {
  margin: .7rem 0 0;
  padding: .75rem 0 0;
  border: 0;
  border-top: 1px solid #cddbd5;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.assistant-security-client-edit {
  justify-self: start;
  border: 0;
  padding: 0;
  background: transparent;
  color: #006b4f;
  font: inherit;
  font-weight: 800;
  text-decoration: underline;
  cursor: pointer;
}
.assistant-security-client-editor {
  display: grid;
  gap: .45rem;
  padding: .65rem;
  border: 1px solid #c9d9e6;
  border-radius: 6px;
  background: #fff;
}
.assistant-security-client-editor[hidden] { display: none; }
.assistant-security-client-editor input,
.assistant-security-client-editor select {
  width: 100%;
  min-width: 0;
  padding: .5rem;
  border: 1px solid #aebfca;
  border-radius: 5px;
  background: #fff;
}
.assistant-security-client-editor label {
  display: grid;
  gap: .25rem;
  color: #263b47;
  font-size: .75rem;
  font-weight: 800;
}
.assistant-card-edit-actions { display: flex; gap: .45rem; align-items: center; }
.assistant-transaction-workflow-step > small {
  display: block;
  margin-bottom: .4rem;
  color: #006b4f;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.assistant-transaction-status { margin: 0; color: #52635d; font-size: .78rem; }
.assistant-transaction-completed,
.assistant-transaction-completed:disabled {
  width: 100%;
  border-color: #aeb9b5;
  background: #d9dfdc;
  color: #4d5954;
  cursor: default;
  opacity: 1;
}
.assistant-processing-overlay[hidden] { display: none !important; }
.assistant-processing-overlay {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(6, 43, 80, .5);
  backdrop-filter: blur(2px);
}
.assistant-processing-overlay > div {
  display: grid;
  justify-items: center;
  gap: 9px;
  min-width: 260px;
  max-width: min(420px, calc(100vw - 40px));
  padding: 24px 30px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(6, 43, 80, .3);
  color: var(--els-utility-text, #0b3158);
  text-align: center;
}
.assistant-processing-overlay strong { font-size: 16px; }
.assistant-processing-overlay small { color: #5f6f68; font-size: 12px; }
body.assistant-is-processing { overflow: hidden; }
.assistant-buildium-link { color: #006b4f; font-size: .82rem; font-weight: 700; }
.reminder-financial-action {
  display: flex;
  width: max-content;
  min-height: 22px;
  margin: .25rem -10px 0 auto;
  padding: 2px 7px;
  border-color: #087c5c;
  background: #087c5c;
  color: #fff;
  font-size: .68rem;
  line-height: 1.2;
}
.reminder-financial-action:hover,
.reminder-financial-action:focus-visible {
  border-color: #056348;
  background: #056348;
  color: #fff;
}
.reminder-financial-source { align-self: flex-start; font-size: .72rem; margin-top: .25rem; }

/* Phase 5: align the global Assistant utility with the established ELS shell.
   Status colors remain semantic; navy and gold own interaction and hierarchy. */
.global-utility-system {
  --els-utility-navy: var(--els-navy, #0a3a68);
  --els-utility-navy-deep: var(--els-navy-deep, #062b50);
  --els-utility-gold: var(--els-gold, #f3c451);
  --els-utility-gold-dark: var(--els-gold-dark, #b67a08);
  --els-utility-blue-soft: var(--els-blue-soft, #edf4ff);
  --els-utility-canvas: var(--els-surface-soft, #f3f8fc);
  --els-utility-border: var(--els-border, #d5e0e9);
  --els-utility-text: var(--els-text, #0b2949);
  --els-utility-muted: var(--els-text-muted, #61758a);
}

.global-utility-launcher {
  border: 2px solid var(--els-utility-gold);
  background: var(--els-utility-navy-deep);
  color: #fff;
  box-shadow: 0 12px 28px rgba(6, 43, 80, .22), 0 0 0 4px rgba(243, 196, 81, .16);
}
.global-utility-launcher:hover {
  border-color: #ffd66e;
  background: var(--els-utility-navy);
  box-shadow: 0 15px 32px rgba(6, 43, 80, .28), 0 0 0 5px rgba(243, 196, 81, .2);
}
.global-utility-launcher:active { transform: translateY(0) scale(.97); }
.global-utility-launcher:focus-visible {
  outline: 3px solid rgba(11, 79, 138, .28);
  outline-offset: 4px;
  box-shadow: 0 0 0 2px #fff, 0 0 0 5px var(--els-utility-gold);
}
.global-utility-launcher[aria-expanded="true"] { background: var(--els-utility-navy); }
.global-utility-launcher .ti { color: #fff; filter: drop-shadow(0 1px 0 rgba(243, 196, 81, .55)); }

.global-utility-drawer {
  border-left: 1px solid #bfd0df;
  background: #fff;
  box-shadow: -18px 0 48px rgba(6, 43, 80, .16);
  color: var(--els-utility-text);
}
.global-utility-header {
  position: relative;
  min-height: 74px;
  padding: 13px 14px 13px 16px;
  border-bottom-color: var(--els-utility-border);
  background: linear-gradient(90deg, #fff 0%, #f7faff 100%);
}
.global-utility-header::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--els-utility-gold) 0 76px, transparent 76px);
  content: "";
}
.global-utility-heading strong { color: var(--els-utility-navy-deep); font-size: 15px; }
.global-utility-heading small { color: var(--els-utility-muted); }
.global-utility-heading-icon {
  border: 1px solid #d4e1ed;
  background: var(--els-utility-blue-soft);
  color: var(--els-utility-navy);
  box-shadow: inset 0 -2px 0 rgba(243, 196, 81, .5);
}
.global-utility-header-actions .btn {
  border-radius: 8px;
  color: var(--els-utility-navy);
}
.global-utility-header-actions .btn:hover { background: var(--els-utility-blue-soft); color: var(--els-utility-navy-deep); }
.global-utility-header-actions .btn:focus-visible { box-shadow: 0 0 0 3px rgba(243, 196, 81, .55); }
.global-utility-context {
  padding-block: 8px;
  border-bottom-color: var(--els-utility-border);
  background: #f6f9fc;
  color: var(--els-utility-muted);
}

.global-utility-body { scrollbar-color: #a9bdcf transparent; scrollbar-width: thin; }
.global-utility-body::-webkit-scrollbar { width: 8px; }
.global-utility-body::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: #a9bdcf; background-clip: padding-box; }
.help-widget-messages { background: #f6f9fc; }
.global-utility-empty { padding-block: 48px; }
.global-utility-empty::after { width: 34px; height: 2px; margin-top: 14px; background: var(--els-utility-gold); content: ""; }
.global-utility-empty > span {
  border: 1px solid #d6e3ee;
  background: var(--els-utility-blue-soft);
  color: var(--els-utility-navy);
  box-shadow: inset 0 -2px 0 rgba(243, 196, 81, .55);
}
.global-utility-empty strong { color: var(--els-utility-navy-deep); font-size: 15px; }
.global-utility-empty p { color: var(--els-utility-muted); }

.help-widget-message > span {
  border: 1px solid #d5e2ed;
  background: var(--els-utility-navy);
  color: #fff;
  box-shadow: 0 2px 6px rgba(6, 43, 80, .14);
}
.help-widget-message > div {
  border-color: var(--els-utility-border);
  border-left: 3px solid var(--els-utility-gold);
  background: #fff;
  box-shadow: 0 4px 12px rgba(6, 43, 80, .05);
}
.help-widget-message.employee {
  border-color: #c9dbea;
  background: #e8f1fa;
}
.help-widget-message p { color: var(--els-utility-text); }
.assistant-action-link,
.assistant-reminder-link,
.assistant-buildium-link { color: #0b4f8a; }
.assistant-copy-button {
  border-color: #c5d5e3;
  color: var(--els-utility-navy);
}
.assistant-copy-button:hover { border-color: var(--els-utility-gold-dark); background: var(--els-utility-gold-soft); }
.help-widget-typing { border-top-color: var(--els-utility-border); background: #f6f9fc; color: var(--els-utility-muted); }

.global-utility-composer { padding: 12px; border-top-color: var(--els-utility-border); box-shadow: 0 -5px 16px rgba(6, 43, 80, .04); }
.global-utility-composer textarea,
.reminder-editor input,
.reminder-editor textarea,
.marks-list-editor textarea {
  border: 1px solid #bccddd;
  background: #fff;
  color: var(--els-utility-text);
}
.global-utility-composer textarea::placeholder,
.reminder-editor input::placeholder,
.reminder-editor textarea::placeholder { color: #7d8fa0; }
.global-utility-composer textarea:focus,
.reminder-editor input:focus,
.reminder-editor textarea:focus,
.marks-list-editor textarea:focus {
  border-color: var(--els-utility-navy);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(243, 196, 81, .32);
}
.global-utility-composer .btn,
.reminder-toolbar .btn-primary,
.marks-list-heading [data-maintenance-reminder-add],
.reminder-editor .btn-primary,
.reminder-financial-action {
  border-color: var(--els-utility-navy-deep);
  background: var(--els-utility-navy);
  color: #fff;
}
.global-utility-composer .btn:hover,
.reminder-toolbar .btn-primary:hover,
.marks-list-heading [data-maintenance-reminder-add]:hover,
.reminder-editor .btn-primary:hover,
.reminder-financial-action:hover { border-color: var(--els-utility-gold-dark); background: var(--els-utility-navy-deep); }
.global-utility-composer .btn:focus-visible,
.reminder-toolbar .btn:focus-visible,
.reminder-editor .btn:focus-visible { box-shadow: 0 0 0 3px rgba(243, 196, 81, .55); }
.global-utility-composer .btn:disabled { background: #9aabba; border-color: #9aabba; }
.assistant-accounting-trigger {
  border-color: #bdcede;
  background: var(--els-utility-blue-soft);
  color: var(--els-utility-navy);
}
.assistant-accounting-trigger:hover,
.assistant-accounting-trigger:focus { background: #dceaf6; color: var(--els-utility-navy-deep); }
.assistant-accounting-menu { border-color: #bfd0df; background: #f7faff; box-shadow: 0 12px 28px rgba(6, 43, 80, .16); }
.assistant-accounting-menu small,
.assistant-accounting-menu button:hover,
.assistant-accounting-menu button:focus { color: var(--els-utility-navy); }
.assistant-accounting-menu button:hover,
.assistant-accounting-menu button:focus { background: var(--els-utility-blue-soft); }
.assistant-accounting-menu-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.assistant-accounting-menu-heading > button { width:22px; height:22px; padding:0; border:1px solid var(--els-utility-navy); border-radius:50%; color:var(--els-utility-navy); text-align:center; font:800 12px/20px system-ui,sans-serif; }
.assistant-accounting-help-dialog { width:min(430px,calc(100vw - 32px)); max-height:min(680px,calc(100dvh - 32px)); padding:0; overflow:hidden; border:1px solid var(--els-utility-border); border-top:4px solid var(--els-utility-gold); border-radius:12px; color:var(--els-utility-text); box-shadow:0 24px 70px rgba(6,43,80,.3); }
.assistant-accounting-help-dialog::backdrop { background:rgba(6,43,80,.66); }
.assistant-accounting-help-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border-bottom:1px solid var(--els-utility-border); }
.assistant-accounting-help-heading h2 { margin:0; color:var(--els-utility-navy-deep); font:700 18px/1.25 Georgia,serif; }
.assistant-accounting-help-heading button { flex:0 0 auto; display:grid; place-items:center; width:32px; height:32px; border:0; border-radius:7px; background:transparent; color:var(--els-utility-navy); cursor:pointer; }
.assistant-accounting-help-heading button:hover,.assistant-accounting-help-heading button:focus-visible { background:var(--els-utility-blue-soft); outline:2px solid var(--els-utility-gold-dark); }
.assistant-accounting-help-copy { max-height:calc(min(680px,100dvh - 32px) - 65px); padding:16px; overflow:auto; font-size:13px; line-height:1.5; }
.assistant-accounting-help-copy p { margin:0 0 12px; }
.assistant-accounting-help-copy h3 { margin:18px 0 6px; color:var(--els-utility-navy-deep); font-size:13px; }
.assistant-accounting-help-copy blockquote { margin:0 0 12px; padding:10px 12px; border-left:3px solid var(--els-utility-gold); background:#f7faff; }
.assistant-accounting-choice { background: var(--els-utility-gold-soft); color: var(--els-utility-navy-deep); }

.global-utility-footer { min-height: 54px; border-top-color: var(--els-utility-border); box-shadow: 0 -3px 12px rgba(6, 43, 80, .04); }
.global-utility-footer button { min-height: 54px; color: #66788a; }
.global-utility-footer button::after {
  position: absolute;
  right: 14px;
  bottom: 0;
  left: 14px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: transparent;
  content: "";
}
.global-utility-footer button:hover { background: #f5f8fc; color: var(--els-utility-navy); }
.global-utility-footer button:focus-visible { z-index: 1; outline: 2px solid var(--els-utility-gold-dark); outline-offset: -3px; }
.global-utility-footer .is-active { background: var(--els-utility-blue-soft); color: var(--els-utility-navy-deep); font-weight: 800; }
.global-utility-footer .is-active::after { background: var(--els-utility-gold); }
.reminder-toolbar { border-bottom-color: var(--els-utility-border); }
.reminder-toolbar-tab { border-bottom-color: var(--els-utility-gold); color: var(--els-utility-navy-deep); }
.reminder-toolbar .btn-outline-secondary { border-color: #b8c9d8; color: var(--els-utility-navy); }
.reminder-toolbar .btn-outline-secondary:hover { border-color: var(--els-utility-navy); background: var(--els-utility-blue-soft); }
.reminder-sound-status,
.reminder-editor { border-bottom-color: var(--els-utility-border); background: #f4f8fc; color: var(--els-utility-text); }
.reminder-editor label { color: var(--els-utility-navy-deep); }
.reminder-list { background: #fff; }
.reminder-group { border-bottom-color: #e2e9ef; }
.reminder-group-heading { color: var(--els-utility-navy-deep); }
.reminder-group-heading span { background: #eaf0f5; color: var(--els-utility-navy); }
.reminder-row { border-top-color: #e7edf2; }
.reminder-row:focus-visible { outline-color: var(--els-utility-navy); }
.reminder-row-content strong { color: var(--els-utility-text); }
.reminder-row-content small { color: var(--els-utility-muted); }
.reminder-complete:hover,
.reminder-complete:focus-visible { border-color: var(--els-utility-navy); color: var(--els-utility-navy); box-shadow: 0 0 0 2px rgba(243, 196, 81, .35); }
.reminder-row-menu:hover { background: var(--els-utility-blue-soft); color: var(--els-utility-navy); }
.reminder-due-label { background: #edf2f6; color: #486078; }
.reminder-menu.dropdown-menu { border-color: #c6d5e2; box-shadow: 0 14px 30px rgba(6, 43, 80, .16); }
.reminder-menu .dropdown-item { color: var(--els-utility-text); }
.reminder-menu .dropdown-item:hover,
.reminder-menu .dropdown-item:focus-visible { background: var(--els-utility-blue-soft); color: var(--els-utility-navy); box-shadow: inset 0 0 0 1px rgba(10, 58, 104, .08); }
.reminder-maintenance-resident,
.reminder-maintenance-link { color: #0b4f8a; }

.marks-list-heading { border-bottom-color: #d8e2eb; background: #f6f9fc; }
.marks-list-view .marks-list-heading { border-bottom: 2px solid rgba(243, 196, 81, .75); }
.marks-list-heading-action,
.marks-list-heading > span { border: 1px solid #ccdae6; background: #edf4ff; color: var(--els-utility-navy); }
.marks-list-heading-action:hover,
.marks-list-heading-action:focus-visible { background: #dfeaf5; color: var(--els-utility-navy-deep); }
.marks-list-heading-action:focus-visible { box-shadow: 0 0 0 3px rgba(243, 196, 81, .42); }
.marks-list-heading-action.is-copied { background: var(--els-green-soft, #ebf7ef); color: var(--els-success, #24724e); }
.marks-list-clear-action { border-color: #ead0cf; background: #fff4f3; color: var(--els-danger, #a43f3f); }
.marks-list-clear-action:hover,
.marks-list-clear-action:focus-visible { background: #fee8e6; color: #842d28; }
.marks-list-heading-title,
.marks-building-group h3 { color: var(--els-utility-navy-deep); }
.marks-list-paper {
  border-top: 1px solid #eadcae;
  background-color: #fffdf3;
  background-image:
    linear-gradient(90deg, transparent 27px, rgba(184, 68, 68, .24) 28px, transparent 29px),
    repeating-linear-gradient(#fffdf3 0, #fffdf3 27px, #c9d8e2 28px);
  box-shadow: inset 5px 0 14px rgba(182, 122, 8, .04);
}
.marks-building-group li { color: #26384a; }
.marks-list-schedule { color: #566b7e; }
.marks-list-menu { color: #536a7e; }
.marks-list-menu:hover,
.marks-list-menu:focus-visible { background: rgba(10, 58, 104, .09); color: var(--els-utility-navy); }
.marks-list-editor { border-color: #c4d3df; box-shadow: 0 7px 18px rgba(6, 43, 80, .08); }
.marks-list-editor label { color: var(--els-utility-navy-deep); }
.marks-list-clear-confirmation { border-top: 3px solid var(--els-utility-gold); box-shadow: 0 18px 42px rgba(6, 43, 80, .2); color: var(--els-utility-text); }
.marks-list-clear-confirmation strong { color: var(--els-utility-navy-deep); }

.assistant-transaction-card { border-color: #c9d9e6; background: #f3f8fc; color: var(--els-utility-text); }
.assistant-transaction-card header b,
.assistant-transaction-workflow-step > small { color: var(--els-utility-navy); }
.assistant-transaction-card .assistant-transaction-workflow-step { border-top-color: #cfdae4; }

@media (max-width: 575.98px) {
  .global-utility-drawer { top: var(--els-topbar-height, 64px); height: calc(100dvh - var(--els-topbar-height, 64px)); }
  .global-utility-header { min-height: 66px; padding-block: 9px; }
  .global-utility-composer { padding-bottom: max(10px, env(safe-area-inset-bottom)); }
  .global-utility-footer { padding-bottom: env(safe-area-inset-bottom); }
  .global-utility-footer button { min-width: 0; padding-inline: 3px; font-size: 9px; }
  .reminder-toolbar { align-items: flex-start; padding-inline: 12px; }
  .reminder-toolbar-actions { gap: 5px; }
  .reminder-toolbar-actions .btn { padding-inline: 7px; }
  .reminder-list { padding-inline: 12px; }
  .marks-list-paper { padding-right: 14px; padding-left: 38px; }
}
