[hidden] {
  display: none !important;
}

.parity-login {
  display: grid;
  min-height: 100dvh;
  place-items: center;
  padding: var(--cc-page-pad);
}

.parity-login-panel {
  width: min(420px, 100%);
}

.parity-login-panel .panel-body {
  display: grid;
  gap: 16px;
}

.parity-user {
  align-self: center;
  color: var(--cc-muted);
  font-size: 0.78rem;
}

.parity-unavailable {
  cursor: default;
  opacity: 0.52;
}

.parity-form-message {
  min-height: 20px;
  margin: 0;
  color: var(--cc-danger);
  font-size: 0.78rem;
}

.parity-dialog {
  width: min(480px, calc(100vw - 32px));
  padding: 0;
  border: 1px solid var(--cc-line);
  border-radius: var(--cc-radius-large);
  background: var(--cc-panel);
  color: var(--cc-text);
  box-shadow: var(--cc-shadow);
}

.parity-dialog::backdrop {
  background: rgba(0, 10, 35, 0.72);
}

.parity-dialog form {
  display: grid;
  gap: 16px;
  padding: 22px;
}

.parity-dialog h2,
.parity-dialog p {
  margin: 0;
}

.parity-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.parity-group-meta {
  display: block;
  margin-top: 3px;
  color: var(--cc-muted);
  font-size: 0.72rem;
}

.parity-empty-row td {
  padding: 28px;
  color: var(--cc-muted);
  text-align: center;
}

.parity-sparkle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.parity-sparkle i {
  color: var(--cc-purple);
}

body.daylight .parity-dialog {
  border-color: #c6d0dc;
  background: #f7f9fc;
  color: var(--cc-text);
}

.wizard-mapping-warning {
  margin-bottom: 8px;
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--cc-danger, #ff4d5f) 55%, transparent);
  border-radius: 7px;
  color: var(--cc-danger, #ff7a87);
  background: color-mix(in srgb, var(--cc-danger, #ff4d5f) 10%, transparent);
  font-size: 0.72rem;
  line-height: 1.35;
}

.wizard-material-table tr.has-missing-mapping td {
  color: var(--cc-danger, #ff7a87);
}

.screen-header .catalog-status {
  width: 150px;
  flex: 0 0 150px;
}

.screen-header [data-parity-catalog-search] {
  width: min(420px, 36vw);
  min-width: 240px;
  flex: 0 1 420px;
}

.screen-header .catalog-search-control {
  width: min(520px, 42vw);
  min-width: 260px;
  flex: 0 1 520px;
}

.catalog-table-wrap {
  max-height: calc(100dvh - 260px);
  overflow: auto;
}

.catalog-table thead {
  position: sticky;
  z-index: 2;
  top: 0;
}

.catalog-group-row td {
  padding: 0;
  color: var(--cc-text);
  background: color-mix(in srgb, var(--cc-panel-soft) 82%, var(--cc-accent) 18%);
}

.catalog-group-row .catalog-group-toggle {
  min-height: 38px;
  padding-inline: 18px;
}

.catalog-group-row.is-collapsed .catalog-group-toggle i {
  transform: rotate(-90deg);
}

.catalog-table tr.is-archived {
  opacity: 0.55;
}

.catalog-detail-form {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  gap: 18px;
  align-items: start;
}

[data-catalog-panel] {
  display: none;
}

[data-catalog-panel].catalog-detail-form.is-active {
  display: grid;
}

[data-catalog-panel].catalog-tab-panel.is-active {
  display: block;
}

.catalog-tab-panel .panel-body {
  min-height: 240px;
}

.catalog-detail-panel {
  padding: 18px;
  border: 1px solid var(--cc-line);
  border-radius: var(--cc-radius);
  background: var(--cc-panel-soft);
}

.catalog-detail-panel .readonly-input {
  color: var(--cc-muted);
}

.catalog-detail-panel h2 {
  margin: 0 0 18px;
  font-size: 1rem;
}

.table-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.table-section-header .panel-title {
  margin: 0;
}

.catalog-child-dialog {
  width: min(720px, calc(100vw - 32px));
}

.catalog-child-dialog .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.catalog-child-dialog .field-wide {
  grid-column: 1 / -1;
}

.catalog-summary-card {
  display: grid;
  max-width: 420px;
  gap: 12px;
  padding: 20px;
}

.catalog-summary-value {
  color: var(--cc-accent);
  font-size: 2rem;
}

.catalog-admin-table .table-link {
  color: var(--cc-accent);
  text-decoration: none;
}

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

.catalog-tab-panel .material-project-layout {
  min-height: min(52vh, 560px);
}

.catalog-tab-panel .material-picker-wrap,
.catalog-tab-panel .project-materials .table-wrap {
  max-height: min(52vh, 560px);
  overflow: auto;
}

.catalog-tab-panel .count-input {
  width: 86px;
  min-width: 70px;
}

.catalog-tab-panel .money-input {
  width: 116px;
  min-width: 96px;
}

.catalog-detail-panel .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.catalog-detail-panel .field-wide,
.catalog-active-toggle {
  grid-column: 1 / -1;
}

.catalog-active-toggle {
  display: flex;
  gap: 9px;
  align-items: center;
  min-height: 40px;
  color: var(--cc-text);
  font-size: 0.82rem;
  font-weight: 650;
}

.parity-form-message.is-success {
  color: var(--cc-success, #17c98b);
}

body.daylight .catalog-detail-panel {
  border-color: #c6d0dc;
  background: #ffffff;
}

body.daylight .catalog-group-row td {
  color: #17243b;
  background: color-mix(in srgb, #eef4fa 82%, var(--cc-accent) 18%);
}

.tab-panel[data-panel="financieel"].is-active {
  display: block;
  height: 100%;
  min-height: 0;
}

.tab-panel[data-panel="financieel"] > .panel-body {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  height: 100%;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-color: var(--cc-line-strong) var(--cc-panel);
}

.tab-panel[data-panel="financieel"] .quote-list-view {
  align-content: start;
  padding: 18px 20px 28px;
}

.tab-panel[data-panel="financieel"] .invoice-create-view {
  align-content: start;
  padding: 18px 20px 28px;
}

.quote-overview-table td:nth-child(n + 2),
.invoice-lines-table td:nth-child(n + 2) {
  font-variant-numeric: tabular-nums;
}

.quote-overview-table td:nth-child(n + 2) {
  text-align: right;
}

.quote-side select.input {
  width: 100%;
}

.invoice-workflow-card .quote-status-row {
  font-size: inherit;
}

.color-select {
  --select-color: var(--cc-accent);
  border-color: color-mix(in srgb, var(--select-color) 72%, var(--cc-line));
  background-color: color-mix(in srgb, var(--select-color) 11%, var(--cc-panel-deep));
  color: var(--select-color);
}

.color-select.color-green { --select-color: #22e992; }
.color-select.color-blue { --select-color: #70a8ff; }
.color-select.color-cyan { --select-color: #35c4ee; }
.color-select.color-yellow { --select-color: #ffc44d; }
.color-select.color-magenta { --select-color: #ff3aad; }
.color-select.color-purple { --select-color: #a879ff; }
.color-select.color-red { --select-color: var(--cc-danger); }

.native-scc-select[data-color-select] .scc-select-value {
  border-color: color-mix(in srgb, var(--select-color) 72%, var(--cc-line));
  background: color-mix(in srgb, var(--select-color) 11%, var(--cc-panel-deep));
  color: var(--select-color);
}

.native-scc-select.color-green { --select-color: #22e992; }
.native-scc-select.color-blue { --select-color: #70a8ff; }
.native-scc-select.color-cyan { --select-color: #35c4ee; }
.native-scc-select.color-yellow { --select-color: #ffc44d; }
.native-scc-select.color-magenta { --select-color: #ff3aad; }
.native-scc-select.color-purple { --select-color: #a879ff; }
.native-scc-select.color-red { --select-color: var(--cc-danger); }

.native-scc-select .scc-select-menu button.color-green { color: #22e992; }
.native-scc-select .scc-select-menu button.color-blue { color: #70a8ff; }
.native-scc-select .scc-select-menu button.color-cyan { color: #35c4ee; }
.native-scc-select .scc-select-menu button.color-yellow { color: #ffc44d; }
.native-scc-select .scc-select-menu button.color-magenta { color: #ff3aad; }
.native-scc-select .scc-select-menu button.color-purple { color: #a879ff; }
.native-scc-select .scc-select-menu button.color-red { color: var(--cc-danger); }

.native-scc-select[data-color-select="status"][data-selected-value="done"] { --select-color: #2ebf63; }
.native-scc-select[data-color-select="status"][data-selected-value="service"] { --select-color: #22e992; }
.native-scc-select[data-color-select="status"][data-selected-value="quote_sent"] { --select-color: #70a8ff; }
.native-scc-select[data-color-select="status"][data-selected-value="please_quote"] { --select-color: #ff3aad; }
.native-scc-select[data-color-select="status"][data-selected-value="acquisition"] { --select-color: #ffc44d; }
.native-scc-select[data-color-select="status"][data-selected-value="consideration"] { --select-color: #35c4ee; }

.native-select-source {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

body.daylight .native-scc-select[data-color-select] .scc-select-value {
  border-color: color-mix(in srgb, var(--select-color) 68%, #c8d5e3);
  background: color-mix(in srgb, var(--select-color) 8%, #ffffff);
  color: color-mix(in srgb, var(--select-color) 82%, #10213f);
}

.color-select[data-color-select="status"][data-selected-value="done"] { --select-color: #2ebf63; }
.color-select[data-color-select="status"][data-selected-value="service"] { --select-color: #22e992; }
.color-select[data-color-select="status"][data-selected-value="quote_sent"] { --select-color: #70a8ff; }
.color-select[data-color-select="status"][data-selected-value="please_quote"] { --select-color: #ff3aad; }
.color-select[data-color-select="status"][data-selected-value="acquisition"] { --select-color: #ffc44d; }
.color-select[data-color-select="status"][data-selected-value="consideration"] { --select-color: #35c4ee; }

.project-status-badge {
  --project-status-color: var(--cc-accent);
  border-color: color-mix(in srgb, var(--project-status-color) 62%, var(--cc-line));
  color: var(--project-status-color);
}

.project-status-badge.status-done { --project-status-color: #2ebf63; }
.project-status-badge.status-service { --project-status-color: #22e992; }
.project-status-badge.status-quote-sent { --project-status-color: #70a8ff; }
.project-status-badge.status-please-quote { --project-status-color: #ff3aad; }
.project-status-badge.status-acquisition { --project-status-color: #ffc44d; }
.project-status-badge.status-consideration { --project-status-color: #35c4ee; }
.project-status-badge.status-renewal { --project-status-color: #a879ff; }
.project-status-badge.status-cancelled { --project-status-color: var(--cc-danger); }

.status-option.status-renewal { --project-status-color: #a879ff; }
.status-option.status-cancelled { --project-status-color: var(--cc-danger); }

.project-table .sort-label.is-active {
  color: var(--cc-accent);
}

.project-table .sort-label[data-sort-direction="ascending"] i {
  transform: rotate(0deg);
}

.project-table .sort-label[data-sort-direction="descending"] i {
  transform: rotate(180deg);
}

.project-table .sort-label i {
  transition: transform 0.14s ease;
}

.project-filter-drawer .filter-drawer-header {
  align-items: center;
}

.project-filter-drawer .filter-drawer-header > div {
  display: grid;
  gap: 4px;
}

.project-filter-drawer .status-filter-select {
  width: 100%;
}

.color-select option {
  color: var(--cc-text);
  background: var(--cc-panel-deep);
}

.color-select option.color-green { color: #22e992; }
.color-select option.color-blue { color: #70a8ff; }
.color-select option.color-cyan { color: #35c4ee; }
.color-select option.color-yellow { color: #ffc44d; }
.color-select option.color-magenta { color: #ff3aad; }
.color-select option.color-purple { color: #a879ff; }
.color-select option.color-red { color: var(--cc-danger); }

body.daylight .color-select {
  border-color: color-mix(in srgb, var(--select-color) 68%, #c8d5e3);
  background-color: color-mix(in srgb, var(--select-color) 8%, #ffffff);
  color: color-mix(in srgb, var(--select-color) 82%, #10213f);
}

.planning-context-select {
  --context-color: var(--cc-accent);
  border-color: color-mix(in srgb, var(--context-color) 54%, var(--cc-line));
  background: color-mix(in srgb, var(--context-color) 12%, var(--cc-panel-deep));
  color: var(--context-color);
}

.planning-context-select.context-build { --context-color: #b36dff; }
.planning-context-select.context-use { --context-color: #35c4ee; }
.planning-context-select.context-break { --context-color: #ff6f91; }
.planning-context-select.context-license_period { --context-color: #ffc44d; }

.native-scc-select[data-color-select="planning"][data-selected-value="build"] { --select-color: #b36dff; }
.native-scc-select[data-color-select="planning"][data-selected-value="use"] { --select-color: #35c4ee; }
.native-scc-select[data-color-select="planning"][data-selected-value="break"] { --select-color: #ff6f91; }
.native-scc-select[data-color-select="planning"][data-selected-value="license_period"] { --select-color: #ffc44d; }

.native-scc-select[data-color-select="planning"] .scc-select-menu button.color-purple { color: #b36dff; }
.native-scc-select[data-color-select="planning"] .scc-select-menu button.color-cyan { color: #35c4ee; }
.native-scc-select[data-color-select="planning"] .scc-select-menu button.color-red { color: #ff6f91; }
.native-scc-select[data-color-select="planning"] .scc-select-menu button.color-yellow { color: #ffc44d; }

.planning-form-message {
  flex: 1;
}

.planning-table .input.is-planning-invalid {
  border-color: #ff4d6d;
  color: #ff4d6d;
  box-shadow: 0 0 0 1px color-mix(in srgb, #ff4d6d 54%, transparent);
}

body.daylight .planning-table .input.is-planning-invalid {
  border-color: #d90f3f;
  color: #b0002f;
}

.planning-table :is(.input:disabled, .scc-select-value:disabled) {
  cursor: not-allowed;
  opacity: 0.58;
}

.project-license-table .material-group-row td:nth-child(2),
.project-labor-transport-table .material-group-row td:nth-child(2) {
  display: grid;
  gap: 2px;
}

.assignment-target-label {
  color: var(--cc-text-muted);
  font-size: 0.78rem;
  white-space: nowrap;
}

.assignment-target-label.has-target {
  color: #ff56bc;
  font-weight: 700;
}

.offer-context-loader {
  position: relative;
  height: 2px;
  overflow: hidden;
  background: transparent;
}

.offer-context-loader::after {
  position: absolute;
  inset: 0 auto 0 -36%;
  width: 36%;
  content: "";
  background: linear-gradient(90deg, transparent, #ff2fad, transparent);
  opacity: 0;
}

.offer-context-loader.is-switching::after {
  opacity: 1;
  animation: offer-context-sweep 0.5s linear 2;
}

@keyframes offer-context-sweep {
  to { transform: translateX(380%); }
}

.picker-column.is-assignment-disabled {
  cursor: not-allowed;
}

.picker-column.is-assignment-disabled .table-wrap {
  opacity: 0.42;
  filter: grayscale(0.7);
  pointer-events: none;
}

:is(.project-material-table, .project-license-table, .project-labor-transport-table)
  .material-group-row {
  cursor: pointer;
}

:is(.project-material-table, .project-license-table, .project-labor-transport-table)
  .material-group-row.is-target-selected td {
  background: color-mix(in srgb, #ff2fad 24%, var(--cc-panel-deep));
  border-top-color: color-mix(in srgb, #ff2fad 78%, var(--cc-line));
  border-bottom-color: color-mix(in srgb, #ff2fad 66%, var(--cc-line));
}

body.daylight
  :is(.project-material-table, .project-license-table, .project-labor-transport-table)
  .material-group-row.is-target-selected td {
  background: #f4d3ec;
  border-top-color: #d52b98;
  border-bottom-color: #e65aaf;
}

.quote-vat-select {
  width: 180px;
}

.project-map-header > div:first-child {
  display: grid;
  gap: 3px;
}

.project-map-pdf[hidden],
.project-map-empty[hidden] {
  display: none;
}

.project-map-scroll-area[data-project-map-scale="50"] { width: 50%; height: 230px; }
.project-map-scroll-area[data-project-map-scale="60"] { width: 60%; height: 276px; }
.project-map-scroll-area[data-project-map-scale="70"] { width: 70%; height: 322px; }
.project-map-scroll-area[data-project-map-scale="80"] { width: 80%; height: 368px; }
.project-map-scroll-area[data-project-map-scale="90"] { width: 90%; height: 414px; }
.project-map-scroll-area[data-project-map-scale="100"] { width: 100%; height: 460px; }
.project-map-scroll-area[data-project-map-scale="110"] { width: 110%; height: 506px; }
.project-map-scroll-area[data-project-map-scale="120"] { width: 120%; height: 552px; }
.project-map-scroll-area[data-project-map-scale="130"] { width: 130%; height: 598px; }
.project-map-scroll-area[data-project-map-scale="140"] { width: 140%; height: 644px; }
.project-map-scroll-area[data-project-map-scale="150"] { width: 150%; height: 690px; }
.project-map-scroll-area[data-project-map-scale="160"] { width: 160%; height: 736px; }
.project-map-scroll-area[data-project-map-scale="170"] { width: 170%; height: 782px; }
.project-map-scroll-area[data-project-map-scale="180"] { width: 180%; height: 828px; }
.project-map-scroll-area[data-project-map-scale="190"] { width: 190%; height: 874px; }
.project-map-scroll-area[data-project-map-scale="200"] { width: 200%; height: 920px; }

.company-lookup-results {
  max-height: 280px;
  overflow-y: auto;
}

.company-lookup-results button {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid var(--cc-line);
  background: transparent;
  color: var(--cc-text);
  text-align: left;
  cursor: pointer;
}

.company-lookup-results button:last-child {
  border-bottom: 0;
}

.company-lookup-results button:hover,
.company-lookup-results button:focus-visible {
  background: color-mix(in srgb, var(--cc-accent) 12%, transparent);
}

.company-lookup-results button span {
  color: var(--cc-muted);
  font-size: 0.76rem;
}

.company-lookup-results .company-lookup-empty {
  padding: 10px 12px;
  color: var(--cc-muted);
  font-size: 0.78rem;
}

@media (max-width: 980px) {
  .catalog-detail-form {
    grid-template-columns: 1fr;
  }

  .catalog-child-dialog .form-grid,
  .catalog-tab-panel .material-project-layout {
    grid-template-columns: 1fr;
  }

  .screen-header .catalog-search-control {
    width: 100%;
    min-width: 0;
  }
}
