:root {
  --navy: #29313a;
  --blue: #52616f;
  --muted: #66717d;
  --orange: #ff4e28;
  --line: #e1e3e1;
  --green: #00ba83;
  --surface: #fdfdfb;
  --page: #f5f5f3;
  --action: #242424;
  --primary: #29313a;
  color: var(--navy);
}

:root[data-theme='dark'] {
  --navy: #e7ecf7;
  --blue: #bdc6d0;
  --muted: #9ba6b2;
  --line: #2d353e;
  --surface: #141a20;
  --page: #0f1318;
  --action: #30363d;
  --primary: #e7ecf7;
}

body {
  background: var(--page);
  color: var(--navy);
}

main {
  background: var(--surface);
}

.topbar,
.modules,
.right-panel {
  background: var(--surface);
}

.topbar,
.modules,
.dossier {
  background: var(--page);
}

.modules {
  background-image: none;
}

.dossier,
.right-panel {
  background-image: none;
}

h1,
.record-heading h1,
.contact-hero h1 {
  font-size: 20px;
}

main .breadcrumb {
  display: none;
}

.record-breadcrumb-line {
  justify-content: flex-end;
  margin-bottom: 4px;
}

h2,
.card-heading h2,
.right-panel-title {
  color: var(--navy);
}

.page-icon .icon,
.card-heading h2 > .icon,
.right-panel-title > .icon {
  color: var(--muted);
}

.icon-btn,
.modules > a,
.modules > button,
.top-actions .icon-btn {
  color: var(--muted);
}

.modules > a.active,
.modules .module-group > button.active {
  position: relative;
  background: var(--surface);
  color: var(--orange);
}

.modules > a.active::before,
.modules .module-group > button.active::before {
  content: '';
  position: absolute;
  inset: 8px auto 8px 0;
  width: 2px;
  border-radius: 2px;
  background: var(--orange);
}

.dossier nav > a.active {
  background: var(--surface);
  border-left-color: var(--orange);
  color: var(--navy);
}

.dossier nav > a small {
  color: var(--muted);
}

.btn {
  min-height: 36px;
  border-color: var(--line);
  background: var(--surface);
  color: var(--navy);
  border-radius: 6px;
}

.btn:hover {
  background: #f0f1ef;
  border-color: #c9ceca;
}

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

.btn.quick.primary,
.btn.quick.primary:hover {
  background: var(--action);
  border-color: var(--action);
  color: #fff;
}

.btn.soft {
  background: var(--surface);
  border-color: var(--line);
  color: var(--navy);
}

.btn.soft:hover {
  background: #f0f1ef;
  border-color: #c9ceca;
}

.btn.primary.top-create,
.btn.primary.top-create:hover {
  background: var(--surface);
  border-color: var(--line);
  color: var(--navy);
}

.top-create:hover {
  background: #f0f1ef;
  border-color: #c9ceca;
}

.btn.danger,
.btn.danger:hover {
  color: #b4232f;
}

.btn:disabled,
.btn[aria-disabled='true'] {
  opacity: 0.48;
}

.btn[aria-busy='true'] {
  cursor: progress;
}

.btn[aria-busy='true']::after {
  content: '';
  width: 13px;
  height: 13px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: soonply-button-spin 0.7s linear infinite;
}

@keyframes soonply-button-spin {
  to {
    transform: rotate(360deg);
  }
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--orange) 65%, white);
  outline-offset: 2px;
}

input,
select,
textarea {
  min-height: 36px;
  border-color: var(--line);
  background: var(--surface);
  color: var(--navy);
  border-radius: 6px;
}

input[type='checkbox'] {
  min-width: 15px;
  min-height: 15px;
  width: 15px;
  height: 15px;
  padding: 0;
  flex: none;
}

textarea {
  min-height: 72px;
}

input::placeholder,
textarea::placeholder {
  color: var(--muted);
  opacity: 1;
}

input[type='checkbox']:checked {
  background: var(--orange);
  border-color: var(--orange);
}

.tabs,
.right-tabs {
  border-color: var(--line);
  background: var(--surface);
}

.tabs > button,
.right-tabs > button {
  color: var(--muted);
}

.tabs > button {
  border-right-color: var(--line);
}

.tabs > button.active,
.tabs > button.active:hover,
.right-tabs > button[aria-selected='true'] {
  background: transparent;
  color: var(--navy);
  border-bottom-color: var(--orange);
}

.tabs > button.inactive-feature-tab {
  background: #f0f1ef;
  color: var(--muted);
}

.tabs > button.inactive-feature-tab.active {
  background: var(--surface);
  border-bottom-color: var(--orange);
  color: var(--navy);
}

.card,
.filters,
.table-scroll,
.quote-totals > .quote-total-main,
.quote-commercial-actions,
.quote-category-breakdown {
  border-color: var(--line);
  background: var(--surface);
}

.card-heading {
  color: var(--navy);
}

.filters {
  background: var(--surface);
}

.search-field {
  border-color: var(--line);
  background: var(--surface);
  color: var(--muted);
}

.data-table {
  background: var(--surface);
  color: var(--navy);
}

.data-table th {
  background: #f0f1ef;
  color: var(--muted);
  border-right-color: transparent;
}

.data-table td {
  border-right-color: transparent;
}

.data-table tbody tr:hover:not(.group-row) {
  background: #f5f6f4;
}

.details > div {
  border-bottom-color: var(--line);
}

.details a,
.record-header-link,
.breadcrumb a,
.dossier nav a,
.data-table a,
.right-panel a:not(.btn) {
  color: #355f78;
}

.details a:hover,
.record-header-link:hover,
.breadcrumb a:hover,
.dossier nav a:hover,
.data-table a:hover,
.right-panel a:not(.btn):hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.btn.quick:not(.quick-action-red):not(.quick-action-green) > .icon:first-child {
  color: var(--muted);
}

.btn.quick.primary > .icon:first-child {
  color: inherit;
}

.dossier nav > a.active,
.dossier nav > a.active b,
.dossier nav > a.active .dossier-link-icon {
  color: var(--navy);
}

.dossier nav > a.active {
  border-left-color: var(--orange);
}

.commercial-statistics .commercial-metrics .green,
.commercial-statistics .commercial-metrics .red {
  color: var(--navy);
}

.panel-toggle,
.panel-toggle:hover,
.panel-toggle:focus-visible {
  top: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: var(--surface);
  border-color: var(--line);
  color: var(--muted);
  box-shadow: none;
}

.record-header-amount .record-header-main > .opportunity-inline-value {
  color: var(--navy);
  font-size: 20px;
  font-weight: 600;
}

.global-search kbd {
  border-color: var(--line);
  color: var(--muted);
}

.quote-commercial-actions .btn,
.quote-totals .btn,
body[data-view='quote'] main .toolbar > .btn.primary {
  background: var(--surface);
  border-color: var(--line);
  color: var(--navy);
}

body[data-view='quote'] .right-panel .actions-card .btn[data-action='accept-quote'] {
  background: var(--action);
  border-color: var(--action);
  color: #fff;
}

body[data-view='quote'] .record-heading .btn.primary,
body[data-view='quote'] .top-create {
  background: var(--surface);
  border-color: var(--line);
  color: var(--navy);
}

:root[data-theme='dark'] .btn:hover,
:root[data-theme='dark'] .btn.soft:hover,
:root[data-theme='dark'] .data-table tbody tr:hover:not(.group-row) {
  background: #202830;
}

:root[data-theme='dark'] .tabs > button.active,
:root[data-theme='dark'] .right-tabs > button[aria-selected='true'] {
  background: transparent;
  color: var(--navy);
}

@media (prefers-reduced-motion: reduce) {
  .btn[aria-busy='true']::after {
    animation-duration: 1.6s;
  }
}
:where(#dialog) .contact-business-roles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

:where(#dialog) .contact-business-roles > legend,
:where(#dialog) .contact-business-roles > p {
  grid-column: 1 / -1;
}

:where(#dialog) .contact-business-roles .article-choice {
  min-width: 0;
  margin: 0;
  padding: 8px 10px;
}

:where(#dialog) .contact-business-roles .toolbar {
  display: flex;
  gap: 14px;
}

:where(#dialog) .contact-business-roles .toolbar label {
  flex-direction: row;
  align-items: center;
  gap: 6px;
}

@media (max-width: 600px) {
  :where(#dialog) .contact-business-roles {
    grid-template-columns: minmax(0, 1fr);
  }
}
