:root {
  --dawe-content-max-width: 80rem;
  --dawe-content-max-width-narrow: 48rem;

  --dawe-canvas: #f5f7f8;
  --dawe-surface: #ffffff;
  --dawe-surface-raised: #ffffff;
  --dawe-surface-subtle: #f3f5f6;
  --dawe-surface-muted: #d6e2e8;
  --dawe-ink: #202124;
  --dawe-muted-ink: #5f6368;
  --dawe-border: #7d949f;
  --dawe-soft-divider: #b8cbd4;
  --dawe-shadow-raised: 0 1rem 2.5rem rgb(32 33 36 / 10%);
  --dawe-shadow-floating: 0 1.5rem 3.5rem rgb(32 33 36 / 14%);

  --dawe-primary: #385562;
  --dawe-primary-hover: #2f4854;
  --dawe-secondary: #bdc1c6;
  --dawe-secondary-hover: #aeb4ba;
  --dawe-danger: #b02a37;
  --dawe-danger-hover: #842029;
  --dawe-focus-ring: #385562;

  --dawe-status-success-color: #0a3622;
  --dawe-status-success-bg: #d1e7dd;
  --dawe-status-success-border: #a3cfbb;
  --dawe-status-warning-color: #664d03;
  --dawe-status-warning-bg: #fff3cd;
  --dawe-status-warning-border: #ffe69c;
  --dawe-status-error-color: #58151c;
  --dawe-status-error-bg: #f8d7da;
  --dawe-status-error-border: #f1aeb5;
  --dawe-status-info-color: #055160;
  --dawe-status-info-bg: #cff4fc;
  --dawe-status-info-border: #9eeaf9;
  --dawe-status-neutral-color: #2b2f32;
  --dawe-status-neutral-bg: #e2e3e5;
  --dawe-status-neutral-border: #c4c8cb;

  --bs-primary: var(--dawe-primary);
  --bs-primary-rgb: 56, 85, 98;
  --bs-secondary: var(--dawe-secondary);
  --bs-secondary-rgb: 189, 193, 198;
  --bs-danger: var(--dawe-danger);
  --bs-danger-rgb: 176, 42, 55;
  --bs-link-color: var(--dawe-primary);
  --bs-link-color-rgb: 56, 85, 98;
  --bs-link-hover-color: var(--dawe-primary-hover);
  --bs-link-hover-color-rgb: 47, 72, 84;
  --bs-focus-ring-color: var(--dawe-focus-ring);
  --bs-body-color: var(--dawe-ink);
  --bs-body-bg: var(--dawe-surface);
  --bs-secondary-color: var(--dawe-muted-ink);
  --bs-secondary-bg: var(--dawe-surface-muted);
  --bs-tertiary-bg: var(--dawe-surface-subtle);
  --bs-border-color: var(--dawe-border);
}

body {
  line-height: 1.5;
  background-color: var(--dawe-canvas);
}

h1,
.h1 {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.2;
}

h2,
.h2 {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.25;
}

h3,
.h3 {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
}

a {
  text-underline-offset: 0.15em;
}

:focus-visible {
  outline: 0.1875rem solid var(--dawe-focus-ring);
  outline-offset: 0.1875rem;
}

.dawe-skip-link {
  position: fixed;
  inset-block-start: 0.5rem;
  inset-inline-start: 0.5rem;
  z-index: 1100;
  padding: 0.75rem 1rem;
  color: var(--bs-body-color);
  background-color: var(--dawe-surface-subtle);
  border: 0;
  border-radius: var(--bs-border-radius-lg);
  box-shadow: 0 0.375rem 1rem rgb(43 45 40 / 5%);
}

a.navbar-brand {
  white-space: normal;
  text-align: center;
  word-break: break-word;
}

.dawe-content {
  width: 100%;
  max-width: var(--dawe-content-max-width);
  margin-inline: auto;
}

.dawe-content-narrow {
  width: 100%;
  max-width: var(--dawe-content-max-width-narrow);
}

.dawe-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.dawe-page-actions > .btn {
  flex: 1 1 auto;
}

.dawe-workflow-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.dawe-workflow-nav > li {
  display: flex;
  align-items: center;
}

.dawe-workflow-nav > li:not(:last-child)::after {
  width: 2rem;
  height: 1px;
  margin-inline: 0.5rem;
  content: "";
  background-color: var(--dawe-secondary);
}

.dawe-workflow-nav .nav-link {
  display: flex;
  align-items: center;
  width: auto;
  gap: 0.5rem;
  padding: 0.25rem 0;
  color: var(--dawe-muted-ink);
  font-size: 1rem;
  text-align: left;
  background-color: transparent;
  border: 0;
  border-radius: var(--bs-border-radius-pill);
  box-shadow: none;
}

.dawe-workflow-nav .nav-link:hover:not(:disabled),
.dawe-workflow-nav .nav-link:focus-visible {
  background-color: transparent;
}

.dawe-workflow-nav .nav-link.active {
  color: var(--dawe-ink);
  font-weight: 600;
  background-color: transparent;
  box-shadow: none;
}

.dawe-workflow-nav .nav-link.is-complete {
  color: var(--dawe-ink);
  box-shadow: none;
}

.dawe-workflow-step-number {
  display: inline-flex;
  flex: 0 0 1.75rem;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  color: var(--dawe-muted-ink);
  font-size: 0.8125rem;
  font-weight: 600;
  border: 1px solid currentcolor;
  border-radius: 50%;
}

.dawe-workflow-nav .nav-link.active .dawe-workflow-step-number,
.dawe-workflow-nav .nav-link.is-complete .dawe-workflow-step-number {
  color: #ffffff;
  background-color: var(--dawe-primary);
  border-color: var(--dawe-primary);
}

.dawe-choice-card {
  display: flex;
  align-items: flex-start;
  height: 100%;
  gap: 0.75rem;
  padding: 1rem;
  cursor: pointer;
  background-color: var(--dawe-surface-raised);
  border: 1px solid var(--dawe-border);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: 0 0.375rem 1rem rgb(43 45 40 / 5%);
}

.dawe-choice-card:hover {
  background-color: var(--bs-tertiary-bg);
}

.dawe-choice-card:has(.form-check-input:checked) {
  background-color: var(--dawe-surface-muted);
  box-shadow: inset 0 0 0 1px var(--dawe-primary);
}

.dawe-choice-card:focus-within {
  box-shadow: 0 0 0 0.125rem var(--dawe-focus-ring);
}

.dawe-choice-card .form-check-input:focus-visible {
  outline: 0;
  box-shadow: none;
}

.dawe-search .form-floating > .form-control {
  height: 3rem;
  min-height: 3rem;
  padding: 0.75rem;
}

.dawe-search .form-floating > .form-control:focus,
.dawe-search .form-floating > .form-control:not(:placeholder-shown) {
  padding-block: 1.25rem 0.25rem;
}

.dawe-search .form-floating > label {
  padding: 0.75rem;
}

.dawe-primary-search {
  align-items: stretch;
  padding: 0.375rem;
  background-color: var(--dawe-surface-raised);
  border: 1px solid var(--dawe-border);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: var(--dawe-shadow-raised);
}

.dawe-primary-search:focus-within {
  border-color: var(--dawe-primary);
  box-shadow: 0 0 0 0.125rem var(--dawe-focus-ring), var(--dawe-shadow-raised);
}

.dawe-primary-search .form-floating > .form-control {
  height: 3.5rem;
  min-height: 3.5rem;
  background-color: transparent;
  border: 0;
  box-shadow: none;
}

.dawe-primary-search .btn {
  z-index: 2;
  align-self: stretch;
  padding-inline: 1.25rem;
  border-radius: var(--bs-border-radius) !important;
}

.dawe-table {
  overflow: hidden;
  background-color: var(--dawe-surface-raised);
  border: 1px solid var(--dawe-border);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: var(--dawe-shadow-raised);
}

.tab-content.border {
  background-color: var(--dawe-surface-raised);
}

.dawe-table > .table > :not(caption) > * > * {
  padding: 0.75rem;
}

.dawe-table > .table > tbody > tr > * {
  border-bottom-width: 0;
}

.dawe-table > .table > tbody > tr:not(.dawe-has-related-row) > * {
  border-bottom: 1px solid var(--dawe-soft-divider);
}

.dawe-table > .table > tbody > tr.dawe-table-group-odd > * {
  --bs-table-bg: var(--bs-body-bg);
  --bs-table-bg-type: var(--bs-body-bg);
  background-color: var(--bs-body-bg);
}

.dawe-table > .table > tbody > tr.dawe-table-group-even > * {
  --bs-table-bg: var(--bs-tertiary-bg);
  --bs-table-bg-type: var(--bs-tertiary-bg);
  background-color: var(--bs-tertiary-bg);
}

.dawe-table .table > tbody > tr:last-child > * {
  border-bottom-width: 0;
}

.dawe-table > .table > tbody > tr.dawe-related-row > td {
  border-top-width: 0;
}

.dawe-table > .table > tbody > tr.dawe-has-related-row > * {
  border-bottom-width: 0;
}

.dawe-related-row {
  --bs-table-hover-bg: var(--bs-table-bg);
  --bs-table-hover-color: var(--bs-body-color);
}

.dawe-related-link {
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
  border-color: var(--dawe-border) !important;
}

.dawe-related-link:hover,
.dawe-related-link:focus-visible {
  color: var(--dawe-primary) !important;
  background-color: var(--dawe-surface-muted) !important;
  border-color: var(--dawe-primary) !important;
}

.dawe-empty-state {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.5rem;
  background-color: var(--dawe-surface-raised);
  border: 1px solid var(--dawe-border);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: 0 0.5rem 1.5rem rgb(43 45 40 / 5%);
}

.dawe-action-card:hover {
  background-color: var(--dawe-surface-muted);
  border-color: var(--dawe-primary);
}

.dawe-action-card {
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

.dawe-details-summary {
  overflow: hidden;
  background-color: var(--dawe-surface-raised);
  border: 1px solid var(--dawe-border);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: var(--dawe-shadow-raised);
}

.dawe-details-summary > div {
  padding: 1rem;
  border-bottom: 1px solid var(--dawe-soft-divider);
}

.dawe-details-summary > div:last-child {
  border-bottom: 0;
}

.dawe-details-summary dt {
  margin-bottom: 0.25rem;
  color: var(--bs-secondary-color);
  font-size: 0.875rem;
  font-weight: 400;
}

.dawe-details-summary dd {
  margin-bottom: 0;
  font-weight: 600;
}

.dawe-party-actions {
  width: 100%;
}

.dawe-party-actions .form-select,
.dawe-party-actions .btn {
  width: 100% !important;
}

@media (min-width: 576px) {
  .dawe-details-summary > div {
    border-right: 1px solid var(--dawe-soft-divider);
  }

  .dawe-details-summary > div:nth-child(even) {
    border-right: 0;
  }

  .dawe-details-summary > div:last-child {
    border-right: 0;
  }
}

@media (min-width: 992px) {
  .dawe-details-summary > div {
    border-right: 1px solid var(--dawe-soft-divider);
    border-bottom: 0;
  }

  .dawe-details-summary > div:last-child {
    border-right: 0;
  }
}

@media (min-width: 576px) {
  .dawe-details-summary-three-column > div {
    border-right: 0;
  }
}

@media (min-width: 768px) {
  .dawe-details-summary-three-column > div {
    border-right: var(--bs-border-width) solid var(--bs-border-color);
    border-bottom: 0;
  }

  .dawe-details-summary-three-column > div:last-child {
    border-right: 0;
  }
}

@media (min-width: 768px) {
  .dawe-party-actions {
    width: auto;
  }

  .dawe-party-actions .form-select,
  .dawe-party-actions .btn {
    width: auto !important;
  }
}

.btn-primary {
  --bs-btn-bg: var(--dawe-primary);
  --bs-btn-border-color: var(--dawe-primary);
  --bs-btn-hover-bg: var(--dawe-primary-hover);
  --bs-btn-hover-border-color: var(--dawe-primary-hover);
  --bs-btn-active-bg: var(--dawe-primary-hover);
  --bs-btn-active-border-color: var(--dawe-primary-hover);
  --bs-btn-disabled-bg: var(--dawe-primary);
  --bs-btn-disabled-border-color: var(--dawe-primary);
}

.btn-secondary {
  --bs-btn-color: var(--dawe-ink);
  --bs-btn-bg: var(--dawe-secondary);
  --bs-btn-border-color: var(--dawe-secondary);
  --bs-btn-hover-color: var(--dawe-ink);
  --bs-btn-hover-bg: var(--dawe-secondary-hover);
  --bs-btn-hover-border-color: var(--dawe-secondary-hover);
  --bs-btn-active-color: var(--dawe-ink);
  --bs-btn-active-bg: var(--dawe-secondary-hover);
  --bs-btn-active-border-color: var(--dawe-secondary-hover);
}

.btn-danger {
  --bs-btn-bg: var(--dawe-danger);
  --bs-btn-border-color: var(--dawe-danger);
  --bs-btn-hover-bg: var(--dawe-danger-hover);
  --bs-btn-hover-border-color: var(--dawe-danger-hover);
  --bs-btn-active-bg: var(--dawe-danger-hover);
  --bs-btn-active-border-color: var(--dawe-danger-hover);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--dawe-primary);
  box-shadow: 0 0 0 0.125rem var(--dawe-focus-ring);
}

.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible {
  outline: 0;
}

.alert-success {
  --bs-alert-color: var(--dawe-status-success-color);
  --bs-alert-bg: var(--dawe-status-success-bg);
  --bs-alert-border-color: var(--dawe-status-success-border);
}

.alert-warning {
  --bs-alert-color: var(--dawe-status-warning-color);
  --bs-alert-bg: var(--dawe-status-warning-bg);
  --bs-alert-border-color: var(--dawe-status-warning-border);
}

.alert-danger {
  --bs-alert-color: var(--dawe-status-error-color);
  --bs-alert-bg: var(--dawe-status-error-bg);
  --bs-alert-border-color: var(--dawe-status-error-border);
}

.alert-info {
  --bs-alert-color: var(--dawe-status-info-color);
  --bs-alert-bg: var(--dawe-status-info-bg);
  --bs-alert-border-color: var(--dawe-status-info-border);
}

.alert-secondary {
  --bs-alert-color: var(--dawe-status-neutral-color);
  --bs-alert-bg: var(--dawe-status-neutral-bg);
  --bs-alert-border-color: var(--dawe-status-neutral-border);
}

.pagination {
  --bs-pagination-active-bg: var(--dawe-primary);
  --bs-pagination-active-border-color: var(--dawe-primary);
}

.dawe-paginator .pagination {
  gap: 0.25rem;
  padding: 0.25rem;
  background-color: var(--dawe-surface-raised);
  border-radius: var(--bs-border-radius-pill);
  box-shadow: 0 0.5rem 1.5rem rgb(27 28 25 / 8%);
}

.dawe-paginator .page-item {
  display: flex;
}

.dawe-paginator .page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0.5rem;
  color: var(--dawe-muted-ink);
  background-color: transparent;
  border: 0;
  border-radius: var(--bs-border-radius-pill);
}

.dawe-paginator .page-link:hover {
  color: var(--dawe-primary);
  background-color: var(--dawe-surface-muted);
}

.dawe-paginator .page-item.active .page-link {
  color: #ffffff;
  background-color: var(--dawe-primary);
  box-shadow: 0 0.25rem 0.625rem rgb(56 85 98 / 24%);
}

.dawe-paginator .page-item.disabled .page-link {
  color: var(--dawe-muted-ink);
  background-color: transparent;
  opacity: 0.45;
}

.app-main {
  min-width: 0;
}

.app-sidebar {
  width: 100%;
  background-color: transparent;
}

.app-user-identity {
  min-width: 0;
}

.app-navigation .nav-link:hover {
  background-color: var(--dawe-surface-subtle);
}

.app-navigation .nav-link.active {
  color: var(--dawe-primary-hover);
  background-color: var(--dawe-surface-muted);
  box-shadow: inset 0 0 0 1px var(--dawe-border);
}

.app-navigation {
  background-color: var(--dawe-surface) !important;
}

.app-navigation .navbar-brand {
  color: var(--dawe-ink) !important;
  border-color: var(--dawe-soft-divider) !important;
}

.app-user-context {
  border-color: var(--dawe-soft-divider) !important;
}

.table-light {
  --bs-table-bg: var(--dawe-surface-subtle);
  --bs-table-border-color: var(--dawe-soft-divider);
}

.table {
  --bs-table-bg: var(--dawe-surface-raised);
  --bs-table-border-color: var(--dawe-soft-divider);
}

.form-control,
.form-select {
  background-color: var(--dawe-surface-raised);
  border-color: var(--dawe-border);
}

.modal-content {
  background-color: var(--dawe-surface-raised);
  border: 1px solid var(--dawe-border);
  box-shadow: var(--dawe-shadow-floating);
}

@media (min-width: 768px) {
  .app-sidebar {
    align-self: flex-start;
    margin: 1rem 0 1rem 1rem;
    width: 16rem;
    height: calc(100vh - 2rem);
    overflow-y: auto;
    border: 1px solid var(--dawe-border) !important;
    border-radius: var(--bs-border-radius-lg);
    box-shadow: var(--dawe-shadow-floating);
    position: sticky;
    top: 1rem;
  }

  .dawe-page-actions > .btn {
    flex: 0 0 auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
