:root {
  color-scheme: light;
  --ocv-bg: #f7f9ff;
  --ocv-bg-soft: #fbfcff;
  --ocv-sidebar: #ffffff;
  --ocv-card: #ffffff;
  --ocv-card-soft: #fbfaff;
  --ocv-text: #101828;
  --ocv-muted: #667085;
  --ocv-line: #e4e7ec;
  --ocv-line-strong: #d0d5dd;
  --theme-primary-color: #5b35f5;
  --theme-secondary-color: #7c3aed;
  --theme-accent-color: #efe9ff;
  --theme-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ocv-primary: var(--theme-primary-color);
  --ocv-primary-2: var(--theme-secondary-color);
  --ocv-primary-soft: var(--theme-accent-color);
  --ocv-primary-border: #d6c7ff;
  --ocv-danger: #e11d48;
  --ocv-danger-bg: #fff1f2;
  --ocv-success: #15803d;
  --ocv-success-bg: #dcfce7;
  --ocv-shadow-sm: 0 1px 2px rgb(16 24 40 / 0.06);
  --ocv-shadow-md: 0 12px 30px rgb(16 24 40 / 0.10);
  --ocv-shadow-lg: 0 24px 60px rgb(16 24 40 / 0.16);
  --ocv-radius-sm: 10px;
  --ocv-radius: 16px;
  --ocv-radius-lg: 22px;
  --ocv-sidebar-width: 292px;
  --ocv-font-family: var(--theme-font-family);
  font-family: var(--ocv-font-family);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --ocv-bg: #0b1220;
    --ocv-bg-soft: #0f172a;
    --ocv-sidebar: #0f172a;
    --ocv-card: #111c2f;
    --ocv-card-soft: #151f34;
    --ocv-text: #f8fafc;
    --ocv-muted: #98a2b3;
    --ocv-line: #243047;
    --ocv-line-strong: #344054;
    --ocv-primary-soft: #2b1d61;
    --ocv-primary-border: #4c35a8;
    --ocv-danger-bg: #3a1420;
    --ocv-success-bg: #12351f;
  }
}

html[data-theme="dark"] {
  color-scheme: dark;
  --ocv-bg: #0b1220;
  --ocv-bg-soft: #0f172a;
  --ocv-sidebar: #0f172a;
  --ocv-card: #111c2f;
  --ocv-card-soft: #151f34;
  --ocv-text: #f8fafc;
  --ocv-muted: #98a2b3;
  --ocv-line: #243047;
  --ocv-line-strong: #344054;
  --ocv-primary-soft: #2b1d61;
  --ocv-primary-border: #4c35a8;
  --ocv-danger-bg: #3a1420;
  --ocv-success-bg: #12351f;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--ocv-bg); }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--ocv-text);
  background:
    radial-gradient(circle at 93% 0%, rgb(124 58 237 / 0.14), transparent 28rem),
    linear-gradient(180deg, var(--ocv-bg) 0%, var(--ocv-bg-soft) 100%);
  font-size: 15px;
  line-height: 1.5;
}
a { color: var(--ocv-primary); font-weight: 650; text-decoration: none; }
a:hover { text-decoration: underline; }

.ocv-shell { display: grid; grid-template-columns: var(--ocv-sidebar-width) minmax(0, 1fr); min-height: 100vh; }
.ocv-sidebar {
  position: sticky; top: 0; height: 100vh; padding: 28px 18px;
  background: color-mix(in srgb, var(--ocv-sidebar) 96%, transparent);
  border-right: 1px solid var(--ocv-line); box-shadow: 1px 0 0 rgb(255 255 255 / .25);
  display: flex; flex-direction: column; gap: 28px;
}
.ocv-brand { display: grid; grid-template-columns: 48px 1fr; gap: 12px; align-items: center; min-width: 0; }
.ocv-logo {
  width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--ocv-primary), #2f80ed);
  color: #fff; font-weight: 850; letter-spacing: .02em; box-shadow: 0 10px 24px rgb(91 53 245 / .25);
  flex: 0 0 auto;
}
.ocv-brand-title { font-weight: 850; line-height: 1.15; letter-spacing: -.02em; color: var(--ocv-text); }
.ocv-brand-link:has(.has-custom-logo) {
  grid-template-columns: 1fr;
  align-items: start;
  gap: 14px;
}
.ocv-brand-logo-panel {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-height: 72px;
  padding: 8px;
  border-radius: 10px;
}
.ocv-brand-logo-img {
  display: block;
  max-width: 100%;
  max-height: 96px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.ocv-admin-settings-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.ocv-admin-settings-links .ocv-admin-task-button {
  margin: 0;
}
.ocv-nav-group { display: grid; gap: 6px; }
.ocv-nav-label { margin: 0 0 8px 10px; color: var(--ocv-muted); font-size: 12px; text-transform: uppercase; font-weight: 800; letter-spacing: .08em; }
.ocv-sidebar nav { display: grid; gap: 6px; }
.ocv-nav-link, .ocv-logout button {
  width: 100%; display: flex; align-items: center; gap: 12px; border-radius: 12px; border: 0;
  min-height: 44px; padding: 10px 13px; background: transparent; color: var(--ocv-muted);
  font: inherit; font-weight: 700; text-align: left; cursor: pointer;
}
.ocv-nav-link::before, .ocv-logout button::before { width: 18px; text-align: center; opacity: .85; }
.ocv-nav-link[href*="dashboard"]::before { content: "□"; }
.ocv-nav-link[href*="create"]::before { content: "+"; font-size: 21px; line-height: 0; }
.ocv-nav-link[href*="users"]::before { content: "◌"; }
.ocv-nav-link[href*="audit"]::before { content: "◦"; }
.ocv-logout button::before { content: "↪"; }
.ocv-nav-link:hover, .ocv-logout button:hover { background: var(--ocv-primary-soft); color: var(--ocv-primary); text-decoration: none; }
.ocv-nav-link.is-active, .ocv-nav-link[aria-current="page"] { background: var(--ocv-primary-soft); color: var(--ocv-primary); box-shadow: inset 3px 0 0 var(--ocv-primary); }
.ocv-logout { margin: 0; }
.ocv-sidebar-footer { margin-top: auto; display: grid; gap: 14px; }
.ocv-user-chip { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 10px; padding-top: 18px; border-top: 1px solid var(--ocv-line); }
.ocv-avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 999px; color: #fff; background: linear-gradient(135deg, var(--ocv-primary), var(--ocv-primary-2)); font-weight: 850; }
.ocv-user-name { font-weight: 800; }
.ocv-user-role { color: var(--ocv-muted); font-size: 12px; }
.ocv-theme-toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--ocv-line); border-radius: 12px; background: var(--ocv-card); color: var(--ocv-text); }
.ocv-switch { width: 44px; height: 24px; border-radius: 999px; border: 0; background: linear-gradient(135deg, var(--ocv-primary), var(--ocv-primary-2)); position: relative; cursor: pointer; }
.ocv-switch::after { content: ""; position: absolute; width: 18px; height: 18px; border-radius: 999px; background: #fff; top: 3px; right: 3px; box-shadow: var(--ocv-shadow-sm); }
html[data-theme="dark"] .ocv-switch::after { right: 23px; }

.ocv-main { min-width: 0; display: flex; flex-direction: column; }
.ocv-topbar { height: 82px; border-bottom: 1px solid var(--ocv-line); background: color-mix(in srgb, var(--ocv-bg) 84%, transparent); display: flex; align-items: center; justify-content: space-between; padding: 0 34px; }
.ocv-breadcrumb { color: var(--ocv-muted); display: flex; gap: 12px; align-items: center; font-weight: 700; }
.ocv-top-actions { display: flex; gap: 14px; align-items: center; }
.ocv-icon-button { width: 40px; height: 40px; border-radius: 999px; border: 0; background: transparent; color: var(--ocv-text); font-size: 20px; cursor: pointer; }
.ocv-content { width: min(1040px, calc(100vw - var(--ocv-sidebar-width) - 68px)); padding: 28px 34px 46px; }
.ocv-footer { margin-top: auto; padding: 24px 34px; border-top: 1px solid var(--ocv-line); color: var(--ocv-muted); text-align: center; font-size: 12px; }

h1 { margin: 0 0 22px; font-size: clamp(32px, 4vw, 48px); line-height: .98; letter-spacing: -.055em; }
h2 { margin: 0 0 18px; font-size: 22px; letter-spacing: -.03em; }
h3, h4 { letter-spacing: -.02em; }
p { margin: 0 0 12px; }

.error, .warning, .danger { display: flex; align-items: center; gap: 12px; border: 1px solid #ff8a8a; background: var(--ocv-danger-bg); color: #b91c1c; border-radius: 10px; padding: 12px 16px; margin: 0 0 28px; font-weight: 750; }
.error::before, .warning::before, .danger::before { content: "!"; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 13px; }
.success { border: 1px solid #86efac; background: var(--ocv-success-bg); color: var(--ocv-success); border-radius: 10px; padding: 12px 16px; margin: 0 0 28px; font-weight: 750; }

.ocv-page-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.ocv-card, .placeholder, form:not(.ocv-logout) {
  border: 1px solid var(--ocv-line); background: color-mix(in srgb, var(--ocv-card) 96%, transparent); border-radius: var(--ocv-radius); box-shadow: var(--ocv-shadow-sm);
}
.placeholder { padding: 22px; margin: 18px 0; }
.ocv-summary-card { padding: 24px 30px; margin-bottom: 28px; }
.ocv-meta-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.ocv-meta-item { padding: 0 22px 18px 0; }
.ocv-meta-item:nth-child(n+5) { border-top: 1px solid var(--ocv-line); padding-top: 18px; }
.ocv-label { color: var(--ocv-muted); display: block; font-size: 13px; font-weight: 800; margin-bottom: 5px; }
.ocv-value { color: var(--ocv-text); font-weight: 650; overflow-wrap: anywhere; }
.ocv-status, td:has(> .ocv-status) { white-space: nowrap; }
.ocv-status { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; background: var(--ocv-success-bg); color: var(--ocv-success); font-size: 12px; font-weight: 850; border: 1px solid color-mix(in srgb, var(--ocv-success) 24%, transparent); }

.ocv-tabs { display: flex; gap: 20px; border-bottom: 1px solid var(--ocv-line); margin: 10px 0 22px; }
.ocv-tab { color: var(--ocv-muted); padding: 13px 2px 14px; font-weight: 750; border-bottom: 3px solid transparent; }
.ocv-tab.is-active { color: var(--ocv-primary); border-bottom-color: var(--ocv-primary); }
.ocv-layout-grid { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 16px; align-items: start; }
.ocv-side-card { padding: 22px; }
.ocv-side-card dl, .ocv-summary-card dl { margin: 0; display: grid; gap: 16px; }
.ocv-side-card dt, .ocv-summary-card dt { color: var(--ocv-muted); font-size: 13px; font-weight: 800; }
.ocv-side-card dd, .ocv-summary-card dd { margin: 3px 0 0; font-weight: 650; overflow-wrap: anywhere; }
.ocv-panel { padding: 22px; }

button, input[type="submit"], .button, .btn-primary {
  min-height: 40px; border: 0; border-radius: 11px; padding: 0 16px; background: linear-gradient(135deg, var(--ocv-primary), var(--ocv-primary-2)); color: #fff; font-weight: 850; cursor: pointer; box-shadow: 0 10px 22px rgb(91 53 245 / .20);
}
button:hover, input[type="submit"]:hover, .button:hover { filter: brightness(1.04); text-decoration: none; }
.btn-secondary, .ocv-secondary {
  display: inline-flex; align-items: center; justify-content: center; min-height: 38px; border-radius: 10px; padding: 0 14px; border: 1px solid var(--ocv-primary); color: var(--ocv-primary); background: color-mix(in srgb, var(--ocv-primary-soft) 72%, var(--ocv-card)); font-weight: 850; box-shadow: none;
}
.ocv-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.ocv-action-link { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--ocv-line); border-radius: 10px; background: var(--ocv-card); }

table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; }
th, td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--ocv-line); vertical-align: top; }
th { color: #344054; background: color-mix(in srgb, var(--ocv-bg-soft) 70%, var(--ocv-card)); font-size: 13px; font-weight: 850; }
html[data-theme="dark"] th { color: #d0d5dd; }
tr:last-child td { border-bottom: 0; }
.ocv-table-card { border: 1px solid var(--ocv-line); border-radius: 14px; overflow-x: auto; background: var(--ocv-card); }

.ocv-source-card { margin-top: 18px; padding: 18px; border-radius: 14px; background: linear-gradient(135deg, color-mix(in srgb, var(--ocv-primary-soft) 76%, var(--ocv-card)), var(--ocv-card)); border: 1px solid color-mix(in srgb, var(--ocv-primary-border) 72%, var(--ocv-line)); }
.ocv-source-card h3 { margin: 0 0 12px; font-size: 16px; }
.ocv-source-preview {
  max-height: 156px; overflow: hidden; position: relative; border-radius: 12px; padding: 0;
}
.ocv-source-preview pre { margin: 0; white-space: pre-wrap; font-size: 14px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.ocv-source-preview::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 54px; pointer-events: none; background: linear-gradient(transparent, color-mix(in srgb, var(--ocv-card) 86%, var(--ocv-primary-soft))); }
.ocv-source-card-footer { margin-top: 12px; display: flex; justify-content: flex-end; }
pre { max-width: 100%; overflow: auto; }

.ocv-drawer-backdrop { position: fixed; inset: 0; background: rgb(15 23 42 / .30); opacity: 0; pointer-events: none; transition: opacity .18s ease; z-index: 40; }
.ocv-drawer-backdrop.is-open { opacity: 1; pointer-events: auto; }
.ocv-source-drawer {
  position: fixed; top: 108px; right: 34px; width: min(510px, calc(100vw - 48px)); max-height: calc(100vh - 140px); z-index: 50;
  background: var(--ocv-card); border: 1px solid var(--ocv-line); border-radius: var(--ocv-radius); box-shadow: var(--ocv-shadow-lg); padding: 18px;
  display: none;
}
.ocv-source-drawer.is-open { display: block; }
.ocv-drawer-header { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 14px; }
.ocv-drawer-title { font-weight: 850; overflow-wrap: anywhere; }
.ocv-drawer-close { min-height: 34px; width: 34px; border-radius: 999px; padding: 0; background: transparent; box-shadow: none; color: var(--ocv-text); font-size: 22px; }
.ocv-drawer-body { max-height: min(600px, calc(100vh - 250px)); overflow: auto; border-radius: 12px; background: #090f1f; color: #f8fafc; padding: 16px; }
.ocv-drawer-body pre { margin: 0; white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; line-height: 1.42; }
.ocv-drawer-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 16px; }

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea {
  width: 100%; min-height: 42px; border-radius: 10px; border: 1px solid var(--ocv-line-strong); background: var(--ocv-card); color: var(--ocv-text); padding: 9px 11px; font: inherit;
}
textarea { min-height: 132px; resize: vertical; }
form:not(.ocv-logout) { padding: 18px; margin: 16px 0; }
form p { margin-bottom: 14px; }
label { color: var(--ocv-muted); font-weight: 750; }

@media (max-width: 980px) {
  .ocv-shell { grid-template-columns: 1fr; }
  .ocv-sidebar { position: static; height: auto; }
  .ocv-content { width: 100%; padding: 24px 18px; }
  .ocv-topbar { padding: 0 18px; }
  .ocv-layout-grid, .ocv-meta-grid { grid-template-columns: 1fr; }
  .ocv-meta-item:nth-child(n) { border-top: 0; padding-top: 0; }
  .ocv-source-drawer { top: 18px; right: 18px; }
}

/* OCV UI v3 - dossierdetail optimalisatie: echte tabs, betere hiërarchie en compacte bronweergave */
.ocv-content {
  width: min(1260px, calc(100vw - var(--ocv-sidebar-width) - 68px));
}

.ocv-detail-header {
  align-items: flex-end;
  margin-bottom: 18px;
}
.ocv-eyebrow {
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .10em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.ocv-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.ocv-summary-card {
  padding: 22px 26px;
  margin-bottom: 24px;
}
.ocv-meta-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  row-gap: 18px;
}
.ocv-meta-item {
  padding: 0 18px 0 0;
}
.ocv-meta-item:nth-child(n+5) {
  border-top: 1px solid var(--ocv-line);
  padding-top: 18px;
}
.ocv-meta-item-wide {
  grid-column: span 2;
}
.ocv-card-header {
  margin-bottom: 18px;
}
.ocv-card-header h2,
.ocv-card-header h3 {
  margin-bottom: 4px;
}
.ocv-card-header-row,
.ocv-source-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.ocv-muted-text {
  color: var(--ocv-muted);
  font-size: 14px;
  line-height: 1.45;
  margin: 0;
}

.ocv-tabs {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  gap: 8px;
  padding: 8px;
  margin: 4px 0 18px;
  border: 1px solid var(--ocv-line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--ocv-card) 94%, transparent);
  box-shadow: var(--ocv-shadow-sm);
  backdrop-filter: blur(10px);
}
.ocv-tab {
  appearance: none;
  min-height: 42px;
  border: 0;
  border-radius: 10px;
  padding: 0 16px;
  color: var(--ocv-muted);
  background: transparent;
  font: inherit;
  font-weight: 850;
  box-shadow: none;
  cursor: pointer;
  transition: background .16s ease, color .16s ease, transform .16s ease;
}
.ocv-tab:hover {
  color: var(--ocv-primary);
  background: var(--ocv-primary-soft);
  filter: none;
}
.ocv-tab.is-active,
.ocv-tab[aria-selected="true"] {
  color: var(--ocv-primary);
  background: var(--ocv-primary-soft);
  box-shadow: inset 0 0 0 1px var(--ocv-primary-border);
}
.ocv-tab:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ocv-primary) 35%, transparent);
  outline-offset: 2px;
}
.ocv-tab-panel[hidden] {
  display: none !important;
}
.ocv-tab-panel {
  animation: ocvFadeIn .18s ease;
}
@keyframes ocvFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.ocv-step-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.ocv-step-card {
  min-height: 132px;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 18px;
  border: 1px solid var(--ocv-line);
  border-radius: 16px;
  background: var(--ocv-card-soft);
  color: var(--ocv-text);
  text-align: left;
  box-shadow: none;
}
.ocv-step-card:hover {
  border-color: var(--ocv-primary-border);
  background: color-mix(in srgb, var(--ocv-primary-soft) 40%, var(--ocv-card));
  filter: none;
}
.ocv-step-card span:last-child {
  color: var(--ocv-muted);
  font-size: 14px;
  line-height: 1.4;
}
.ocv-step-icon {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: var(--ocv-primary-soft);
  color: var(--ocv-primary);
  font-weight: 900;
}


.ocv-card-header-stack {
  display: grid;
  gap: 12px;
  align-items: start;
}
.ocv-card-action-form {
  justify-self: start;
}
.ocv-location-candidates {
  margin-top: 20px;
  display: grid;
  gap: 10px;
}
.ocv-location-candidates h3 {
  margin: 0;
}
.ocv-location-select-cell {
  min-width: 170px;
  white-space: nowrap;
}
.ocv-location-select-form {
  display: inline-flex;
}
.ocv-location-lookup-button,
.ocv-location-select-button {
  width: auto;
}

.ocv-inline-form {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.ocv-form-stack {
  display: grid;
  gap: 14px;
}
.ocv-form-stack form:not(.ocv-logout) {
  margin: 0;
}

.ocv-table-card table tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--ocv-bg-soft) 62%, transparent);
}
.ocv-table-card table tbody tr:hover {
  background: color-mix(in srgb, var(--ocv-primary-soft) 45%, transparent);
}
.ocv-source-card {
  margin-top: 18px;
  padding: 18px;
}
.ocv-source-card-head {
  margin-bottom: 12px;
}
.ocv-source-card-head h3 {
  margin: 0 0 4px;
}
.ocv-source-preview {
  max-height: 170px;
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--ocv-primary-border) 52%, var(--ocv-line));
  background: color-mix(in srgb, var(--ocv-card) 72%, var(--ocv-primary-soft));
}
.ocv-source-preview pre {
  line-height: 1.45;
}
.ocv-drawer-backdrop.is-open {
  backdrop-filter: blur(2px);
}
.ocv-source-drawer.is-open {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}
.ocv-source-drawer[aria-hidden="true"] {
  display: none;
}
.ocv-drawer-body {
  min-height: 260px;
}

.ocv-empty-state {
  border: 1px dashed var(--ocv-line-strong);
  border-radius: 16px;
  padding: 28px;
  background: var(--ocv-bg-soft);
  color: var(--ocv-muted);
}
.ocv-empty-state h3 {
  color: var(--ocv-text);
  margin: 0 0 6px;
}

@media (max-width: 1180px) {
  .ocv-content { width: 100%; }
  .ocv-meta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ocv-step-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .ocv-tabs { overflow-x: auto; position: static; }
  .ocv-tab { flex: 0 0 auto; }
  .ocv-detail-header, .ocv-card-header-row, .ocv-source-card-head { align-items: stretch; flex-direction: column; }
  .ocv-meta-grid { grid-template-columns: 1fr; }
  .ocv-meta-item-wide { grid-column: auto; }
  .ocv-meta-item:nth-child(n) { border-top: 0; padding-top: 0; }
}

/* OCV AI analyse statusindicator - CSS hooks voor latere vormgeving */
.ocv-analysis-start-form .ocv-analysis-start-button.is-disabled,
.ocv-analysis-start-form input[disabled],
.ocv-analysis-start-form button[disabled] {
  cursor: not-allowed;
  opacity: .62;
  filter: grayscale(.25);
  box-shadow: none;
}

.ocv-analysis-start-help {
  margin-top: 10px;
}

.ocv-analysis-progress {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 8px 0 12px;
  padding: 9px 12px;
  border: 1px solid var(--ocv-line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--ocv-primary-soft) 55%, var(--ocv-card));
  color: var(--ocv-primary);
  font-weight: 850;
}

.ocv-analysis-spinner {
  width: 16px;
  height: 16px;
  border-radius: 999px;
  border: 2px solid color-mix(in srgb, var(--ocv-primary) 28%, transparent);
  border-top-color: var(--ocv-primary);
  animation: ocvAnalysisSpin .85s linear infinite;
}

.ocv-analysis-status[data-analysis-status="completed"] .ocv-analysis-spinner,
.ocv-analysis-status[data-analysis-status="failed"] .ocv-analysis-spinner,
.ocv-analysis-status[data-analysis-status="validation_failed"] .ocv-analysis-spinner {
  animation: none;
  border-color: currentColor;
}

@keyframes ocvAnalysisSpin {
  to { transform: rotate(360deg); }
}

/* OCV UI v4 - sharp panel workspace, meer contrast, betere Google-locatie UX */
:root {
  --ocv-bg: #eef2f7;
  --ocv-bg-soft: #e6ebf3;
  --ocv-sidebar: #ffffff;
  --ocv-card: #ffffff;
  --ocv-card-soft: #f8fafc;
  --ocv-line: #cfd8e3;
  --ocv-line-strong: #b8c4d3;
  --ocv-shadow-sm: 0 1px 1px rgb(15 23 42 / 0.04), 0 8px 18px rgb(15 23 42 / 0.06);
  --ocv-shadow-md: 0 14px 28px rgb(15 23 42 / 0.10);
  --ocv-radius-sm: 3px;
  --ocv-radius: 4px;
  --ocv-radius-lg: 4px;
}

html[data-theme="dark"] {
  --ocv-bg: #0c1220;
  --ocv-bg-soft: #111827;
  --ocv-sidebar: #0f172a;
  --ocv-card: #162033;
  --ocv-card-soft: #111827;
  --ocv-line: #334155;
  --ocv-line-strong: #475569;
}

body {
  background:
    radial-gradient(circle at 94% 0%, rgb(91 53 245 / 0.10), transparent 30rem),
    linear-gradient(180deg, var(--ocv-bg) 0%, var(--ocv-bg-soft) 100%);
}

.ocv-card,
.placeholder,
form:not(.ocv-logout),
.ocv-tabs,
.ocv-table-card,
.ocv-source-card,
.ocv-source-drawer,
.ocv-theme-toggle,
.ocv-action-link,
.ocv-step-card,
.ocv-source-preview,
.ocv-drawer-body,
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
select,
textarea,
button,
input[type="submit"],
.button,
.btn-primary,
.btn-secondary,
.ocv-secondary,
.ocv-nav-link,
.ocv-logout button {
  border-radius: var(--ocv-radius) !important;
}

.ocv-content {
  width: min(1280px, calc(100vw - var(--ocv-sidebar-width) - 64px));
  padding-top: 30px;
}

.ocv-sidebar {
  background: var(--ocv-sidebar);
  box-shadow: none;
}

.ocv-nav-link.is-active,
.ocv-nav-link[aria-current="page"] {
  background: var(--ocv-primary);
  color: #fff;
  box-shadow: inset 4px 0 0 rgb(255 255 255 / .38);
}

.ocv-nav-link.is-active::before,
.ocv-nav-link[aria-current="page"]::before {
  color: #fff;
  opacity: 1;
}

.ocv-summary-card,
.ocv-panel,
.ocv-side-card {
  background: var(--ocv-card);
  border-color: var(--ocv-line);
  box-shadow: var(--ocv-shadow-sm);
}

.ocv-tabs {
  top: 0;
  padding: 0;
  gap: 0;
  overflow: hidden;
  border-color: var(--ocv-line);
  background: var(--ocv-card);
}

.ocv-tab {
  min-height: 48px;
  border-right: 1px solid var(--ocv-line);
  border-radius: 0 !important;
  padding: 0 22px;
}

.ocv-tab:last-child { border-right: 0; }

.ocv-tab.is-active,
.ocv-tab[aria-selected="true"] {
  color: #fff;
  background: var(--ocv-primary);
  box-shadow: none;
}

.ocv-tab:hover:not(.is-active) {
  color: var(--ocv-primary);
  background: #f3f0ff;
}

html[data-theme="dark"] .ocv-tab:hover:not(.is-active) {
  background: #1d2440;
}

#panel-organization .ocv-layout-grid {
  grid-template-columns: minmax(340px, .82fr) minmax(520px, 1.7fr);
  gap: 22px;
  align-items: start;
}

#panel-organization .ocv-panel {
  min-width: 0;
}

.ocv-card-header-stack {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--ocv-line);
}

.ocv-card-action-form {
  flex: 0 0 auto;
  max-width: 100%;
}

.ocv-location-lookup-button {
  max-width: 100%;
  white-space: normal;
  line-height: 1.25;
  min-height: 44px;
  padding-inline: 16px;
}

#panel-organization dl:not(.ocv-compact-definition-list) {
  display: grid;
  grid-template-columns: minmax(120px, .42fr) minmax(0, 1fr);
  column-gap: 16px;
  row-gap: 10px;
  margin: 0;
}

#panel-organization dl:not(.ocv-compact-definition-list) > div {
  display: contents;
}

#panel-organization dt {
  color: var(--ocv-muted);
  font-size: 13px;
  font-weight: 850;
}

#panel-organization dd {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 650;
}

.ocv-location-candidates {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--ocv-line);
}

.ocv-section-title {
  display: grid;
  gap: 5px;
  margin-bottom: 12px;
}

.ocv-section-title h3,
.ocv-location-candidate-card h4 {
  margin: 0;
}

.ocv-location-candidate-list {
  display: grid;
  gap: 12px;
}

.ocv-location-candidate-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--ocv-line);
  background: var(--ocv-card-soft);
}

.ocv-location-candidate-main {
  min-width: 0;
  display: grid;
  gap: 10px;
}

.ocv-compact-definition-list {
  display: grid !important;
  grid-template-columns: minmax(72px, .30fr) minmax(0, 1fr) !important;
  gap: 6px 12px !important;
}

.ocv-compact-definition-list > div {
  display: contents !important;
}

.ocv-location-select-form {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  min-width: 170px;
}

.ocv-location-select-button {
  width: auto;
  max-width: 100%;
  white-space: normal;
  line-height: 1.2;
}

.ocv-form-stack {
  margin-top: 20px !important;
  border-top: 1px solid var(--ocv-line) !important;
  padding-top: 20px !important;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
  background: transparent !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

.ocv-form-stack label {
  display: grid;
  gap: 6px;
}

.ocv-form-stack label:has(textarea),
.ocv-form-stack input[type="submit"] {
  grid-column: 1 / -1;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
select,
textarea {
  min-height: 38px;
  border-color: var(--ocv-line-strong);
  background: var(--ocv-card);
}

textarea { min-height: 112px; }

.ocv-status {
  border-radius: 999px !important;
}

@media (max-width: 1180px) {
  #panel-organization .ocv-layout-grid {
    grid-template-columns: 1fr;
  }
  .ocv-card-header-stack {
    display: grid;
  }
  .ocv-location-lookup-button,
  .ocv-card-action-form {
    width: 100%;
  }
}

@media (max-width: 720px) {
  .ocv-tabs { overflow-x: auto; }
  .ocv-tab { flex: 0 0 auto; }
  #panel-organization dl:not(.ocv-compact-definition-list),
  .ocv-compact-definition-list,
  .ocv-form-stack,
  .ocv-location-candidate-card {
    grid-template-columns: 1fr !important;
  }
  .ocv-location-select-form,
  .ocv-location-select-button {
    width: 100%;
  }
}

/* OCV UI v5 - creative modern workspace
   Optie 2: zakelijke creatieve UI met donkere sidebar, heldere panelen,
   betere Google-locatiekaarten en geen horizontale scrollers in gevonden locaties. */
:root {
  --ocv-bg: #f4f6fb;
  --ocv-bg-soft: #eef2fb;
  --ocv-sidebar: #0f1b2d;
  --ocv-sidebar-2: #111f35;
  --ocv-card: #ffffff;
  --ocv-card-soft: #faf7ff;
  --ocv-text: #111827;
  --ocv-muted: #64748b;
  --ocv-line: #e1e7f0;
  --ocv-line-strong: #cbd5e1;
  --ocv-primary: #5b35f5;
  --ocv-primary-2: #8b5cf6;
  --ocv-primary-soft: #f0e9ff;
  --ocv-primary-border: #d9c8ff;
  --ocv-shadow-sm: 0 1px 2px rgb(15 23 42 / .05), 0 8px 20px rgb(15 23 42 / .06);
  --ocv-shadow-md: 0 18px 40px rgb(15 23 42 / .10);
  --ocv-radius: 18px;
  --ocv-radius-lg: 28px;
}

html[data-theme="dark"] {
  --ocv-bg: #0b1020;
  --ocv-bg-soft: #0e1729;
  --ocv-sidebar: #07111f;
  --ocv-sidebar-2: #0b1627;
  --ocv-card: #111c2e;
  --ocv-card-soft: #151f33;
  --ocv-text: #f8fafc;
  --ocv-muted: #a5b4c7;
  --ocv-line: #263449;
  --ocv-line-strong: #334155;
  --ocv-primary-soft: #241755;
  --ocv-primary-border: #5338b8;
}

body {
  background:
    radial-gradient(circle at 82% 4%, rgb(139 92 246 / .20), transparent 30rem),
    radial-gradient(circle at 48% 0%, rgb(34 211 238 / .08), transparent 26rem),
    linear-gradient(180deg, var(--ocv-bg) 0%, var(--ocv-bg-soft) 100%);
}

.ocv-sidebar {
  padding: 28px 18px;
  background:
    radial-gradient(circle at 18% 0%, rgb(91 53 245 / .33), transparent 16rem),
    linear-gradient(180deg, var(--ocv-sidebar) 0%, var(--ocv-sidebar-2) 100%);
  border-right: 1px solid rgb(255 255 255 / .08);
  box-shadow: 18px 0 40px rgb(15 23 42 / .16);
}
.ocv-brand-title, .ocv-sidebar .ocv-user-name { color: #fff; }
.ocv-nav-label, .ocv-sidebar .ocv-user-role, .ocv-sidebar .ocv-user-chip > span { color: rgb(226 232 240 / .72); }
.ocv-sidebar .ocv-nav-link, .ocv-sidebar .ocv-logout button { color: rgb(226 232 240 / .86); border-radius: 10px !important; }
.ocv-sidebar .ocv-nav-link:hover, .ocv-sidebar .ocv-logout button:hover { color: #fff; background: rgb(255 255 255 / .10); }
.ocv-sidebar .ocv-nav-link.is-active, .ocv-sidebar .ocv-nav-link[aria-current="page"] {
  color: #fff;
  background: linear-gradient(135deg, var(--ocv-primary), #6d5dfc);
  box-shadow: 0 14px 26px rgb(91 53 245 / .34);
}
.ocv-theme-toggle, .ocv-logout button { background: rgb(255 255 255 / .08) !important; border: 1px solid rgb(255 255 255 / .12) !important; color: #fff !important; }
.ocv-user-chip { border-top-color: rgb(255 255 255 / .12); }

.ocv-content { width: min(1260px, calc(100vw - var(--ocv-sidebar-width) - 56px)); padding: 30px 34px 46px; }
.ocv-page-header.ocv-detail-header {
  align-items: flex-end;
  padding: 28px 30px 34px;
  margin-bottom: 0;
  border-radius: 0 0 28px 28px;
  background:
    radial-gradient(circle at 96% 0%, rgb(139 92 246 / .22), transparent 20rem),
    linear-gradient(135deg, rgb(255 255 255 / .58), rgb(255 255 255 / .12));
}
.ocv-summary-card { margin: -12px 30px 24px; padding: 24px 28px; border-radius: 16px; box-shadow: var(--ocv-shadow-md); }
.ocv-summary-card, .ocv-panel, .ocv-side-card, .ocv-card { border: 1px solid var(--ocv-line); background: color-mix(in srgb, var(--ocv-card) 96%, transparent); box-shadow: var(--ocv-shadow-sm); }
.ocv-meta-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ocv-tabs {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  gap: 6px;
  margin: 0 30px 22px;
  padding: 8px;
  border: 0;
  border-radius: 14px;
  background: color-mix(in srgb, var(--ocv-card) 94%, transparent);
  box-shadow: var(--ocv-shadow-sm);
  backdrop-filter: blur(10px);
  overflow-x: auto;
}
.ocv-tab { flex: 0 0 auto; border: 0 !important; border-radius: 10px !important; min-height: 44px; padding: 0 17px; background: transparent; color: var(--ocv-muted); box-shadow: none; }
.ocv-tab:hover:not(.is-active) { background: var(--ocv-primary-soft); color: var(--ocv-primary); }
.ocv-tab.is-active, .ocv-tab[aria-selected="true"] { color: #fff; background: linear-gradient(135deg, var(--ocv-primary), var(--ocv-primary-2)); box-shadow: 0 12px 22px rgb(91 53 245 / .22); }

.ocv-card, .placeholder, form:not(.ocv-logout), .ocv-table-card, .ocv-source-card, .ocv-source-drawer, .ocv-action-link, .ocv-step-card, .ocv-source-preview, .ocv-drawer-body { border-radius: var(--ocv-radius) !important; }

#panel-organization .ocv-layout-grid { grid-template-columns: minmax(390px, .95fr) minmax(520px, 1.35fr); gap: 22px; align-items: start; margin: 0 30px; }
#panel-organization .ocv-panel { min-width: 0; overflow: hidden; }
.ocv-card-header-stack { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--ocv-line); }
.ocv-card-action-form { justify-self: end; max-width: 100%; }
.ocv-location-lookup-button { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 40px; white-space: normal; line-height: 1.2; padding-inline: 15px; border-radius: 10px !important; }
.ocv-location-lookup-button::before { content: "⌕"; margin-right: 7px; font-weight: 900; }

#panel-organization dl:not(.ocv-compact-definition-list) { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 10px 16px; margin: 0; padding-top: 4px; }
#panel-organization dl:not(.ocv-compact-definition-list) > div { display: contents; }
#panel-organization dt { color: var(--ocv-muted); font-size: 13px; font-weight: 850; }
#panel-organization dd { margin: 0; min-width: 0; overflow-wrap: anywhere; font-weight: 650; }

.ocv-location-candidates { margin-top: 22px; padding: 18px; border: 1px solid color-mix(in srgb, var(--ocv-primary-border) 60%, var(--ocv-line)); border-radius: 16px; background: linear-gradient(180deg, color-mix(in srgb, var(--ocv-primary-soft) 54%, var(--ocv-card)) 0%, var(--ocv-card) 100%); }
.ocv-section-title { display: grid; gap: 4px; margin-bottom: 14px; }
.ocv-section-title h3 { margin: 0; }
.ocv-location-candidate-list { display: grid; grid-template-columns: 1fr; gap: 12px; overflow: visible; }
.ocv-location-candidate-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; min-width: 0; padding: 14px; border: 1px solid var(--ocv-line); border-left: 4px solid var(--ocv-primary); border-radius: 12px !important; background: var(--ocv-card); box-shadow: 0 8px 20px rgb(15 23 42 / .05); }
.ocv-location-candidate-main { min-width: 0; display: grid; gap: 8px; }
.ocv-location-candidate-card h4 { margin: 0; font-size: 15px; }
.ocv-compact-definition-list { display: grid !important; grid-template-columns: 74px minmax(0, 1fr) !important; gap: 5px 10px !important; margin: 0 !important; padding: 0 !important; }
.ocv-compact-definition-list > div { display: contents !important; }
.ocv-compact-definition-list dt { font-size: 12px !important; }
.ocv-compact-definition-list dd { font-size: 13px; }
.ocv-location-select-form { min-width: 116px; display: flex; justify-content: flex-end; }
.ocv-location-select-button { min-height: 36px; padding: 0 12px; border-radius: 9px !important; white-space: normal; line-height: 1.15; }

.ocv-form-stack { margin-top: 20px !important; padding: 18px !important; border: 1px solid var(--ocv-line) !important; background: color-mix(in srgb, var(--ocv-card-soft) 72%, var(--ocv-card)) !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; box-shadow: none !important; }
.ocv-form-stack label { display: grid; gap: 6px; color: var(--ocv-muted); font-weight: 800; }
.ocv-form-stack label:has(textarea), .ocv-form-stack input[type="submit"] { grid-column: 1 / -1; }
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea { min-height: 40px; border: 1px solid var(--ocv-line-strong); border-radius: 9px !important; background: var(--ocv-card); color: var(--ocv-text); padding: 9px 12px; }
textarea { min-height: 118px; resize: vertical; }
button, input[type="submit"], .button, .btn-primary { border-radius: 10px !important; background: linear-gradient(135deg, var(--ocv-primary), var(--ocv-primary-2)); box-shadow: 0 12px 22px rgb(91 53 245 / .22); }
.btn-secondary, .ocv-secondary { border-radius: 10px !important; }
.ocv-status { border-radius: 999px !important; }
.ocv-source-preview { background: linear-gradient(135deg, #0f172a, #111827); color: #e5e7eb; }
.ocv-source-preview pre { color: inherit; }

@media (max-width: 1180px) {
  .ocv-content { width: 100%; }
  .ocv-summary-card, .ocv-tabs, #panel-organization .ocv-layout-grid { margin-left: 0; margin-right: 0; }
  #panel-organization .ocv-layout-grid { grid-template-columns: 1fr; }
  .ocv-card-header-stack { grid-template-columns: 1fr; }
  .ocv-card-action-form, .ocv-location-lookup-button { width: 100%; justify-self: stretch; }
}
@media (max-width: 760px) {
  .ocv-shell { grid-template-columns: 1fr; }
  .ocv-sidebar { position: static; height: auto; }
  .ocv-meta-grid { grid-template-columns: 1fr; }
  #panel-organization dl:not(.ocv-compact-definition-list), .ocv-compact-definition-list, .ocv-form-stack, .ocv-location-candidate-card { grid-template-columns: 1fr !important; }
  .ocv-location-select-form, .ocv-location-select-button { width: 100%; }
}

/* --------------------------------------------------------------------------
   OCV UI v5.5 - responsive straight-panel and Google location corrections
   Purpose: fix overflow in Locatiegegevens, make candidate cards usable,
   restore a real light/dark switch, and remove rounded corners/curves.
   -------------------------------------------------------------------------- */

:root {
  --ocv-radius-sm: 0px;
  --ocv-radius: 0px;
  --ocv-radius-lg: 0px;
  --ocv-bg: #edf2f8;
  --ocv-bg-soft: #e8eef6;
  --ocv-card: #ffffff;
  --ocv-card-soft: #fbfcff;
  --ocv-line: #d4dce8;
  --ocv-line-strong: #b9c5d6;
  --ocv-location-accent: #ec4899;
  --ocv-location-accent-2: #8b5cf6;
}

html[data-theme="dark"] {
  --ocv-bg: #0b1220;
  --ocv-bg-soft: #111827;
  --ocv-card: #121c2e;
  --ocv-card-soft: #0f172a;
  --ocv-line: #2d3a50;
  --ocv-line-strong: #42526b;
}

/* Hard reset: user explicitly wants straight corners, no curves. */
.ocv-card,
.ocv-summary-card,
.ocv-panel,
.ocv-side-card,
.ocv-tabs,
.ocv-tab,
.ocv-step-card,
.ocv-source-card,
.ocv-source-preview,
.ocv-source-drawer,
.ocv-drawer-body,
.placeholder,
.ocv-action-link,
.ocv-empty-state,
.ocv-nav-link,
.ocv-logout button,
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
select,
textarea,
button:not(.ocv-switch):not(.ocv-icon-button),
input[type="submit"],
.button,
.btn-primary,
.btn-secondary,
.ocv-secondary,
.ocv-location-candidate-card,
.ocv-theme-toggle {
  border-radius: 0 !important;
}

/* The main workspace must scale with browser width and never force the right panel outside the viewport. */
.ocv-main,
.ocv-content,
.ocv-tab-panel,
.ocv-layout-grid,
.ocv-card,
.ocv-panel,
.ocv-form-stack,
.ocv-meta-card,
.ocv-detail-hero,
.ocv-tabs {
  min-width: 0 !important;
}

.ocv-content {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding-left: clamp(24px, 3vw, 44px) !important;
  padding-right: clamp(24px, 3vw, 44px) !important;
}

.ocv-detail-hero,
.ocv-summary-card,
.ocv-tabs,
.ocv-tab-panel {
  width: 100% !important;
  max-width: none !important;
}

/* Two panels should share the available width instead of letting KvK overflow. */
#panel-organization .ocv-layout-grid {
  display: grid !important;
  grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.35fr) !important;
  gap: clamp(20px, 2vw, 28px) !important;
  align-items: start !important;
  width: 100% !important;
  overflow: visible !important;
}

#panel-organization .ocv-panel {
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

/* Locatiegegevens: header may not become a horizontal fight between text and button. */
#panel-organization .ocv-panel:first-child .ocv-card-header-stack {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  align-items: start !important;
  padding-bottom: 18px !important;
  border-bottom: 1px solid var(--ocv-line) !important;
}

#panel-organization .ocv-panel:first-child .ocv-card-header-stack > div,
#panel-organization .ocv-panel:first-child .ocv-card-header-stack h2,
#panel-organization .ocv-panel:first-child .ocv-card-header-stack p {
  width: 100% !important;
  max-width: none !important;
}

#panel-organization .ocv-panel:first-child .ocv-card-header-stack .ocv-muted-text {
  max-width: 100% !important;
  line-height: 1.45 !important;
}

#panel-organization .ocv-panel:first-child .ocv-card-action-form {
  justify-self: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
}

.ocv-location-lookup-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 42px !important;
  padding: 10px 14px !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.2 !important;
  text-align: center !important;
  border: 1px solid color-mix(in srgb, var(--ocv-location-accent) 55%, var(--ocv-location-accent-2)) !important;
  background: linear-gradient(135deg, #f04da8 0%, #8b5cf6 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 16px 32px rgb(236 72 153 / .18) !important;
}

/* Definition lists: keep values readable and give the server-side text full card width. */
#panel-organization dl:not(.ocv-compact-definition-list) {
  grid-template-columns: minmax(112px, .36fr) minmax(0, 1fr) !important;
  column-gap: 18px !important;
  row-gap: 12px !important;
}

#panel-organization dd,
#panel-organization dt {
  min-width: 0 !important;
  max-width: 100% !important;
}

#panel-organization dd {
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

/* Found Google locations: no horizontal scroll, no too-narrow columns. */
.ocv-location-candidates {
  margin-top: 22px !important;
  padding-top: 20px !important;
  border-top: 1px solid var(--ocv-line) !important;
  overflow: visible !important;
}

.ocv-location-candidate-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;
}

.ocv-location-candidate-card {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 14px !important;
  border: 1px solid var(--ocv-line) !important;
  border-left: 3px solid var(--ocv-location-accent-2) !important;
  background: linear-gradient(180deg, #ffffff 0%, #fbf9ff 100%) !important;
  overflow: hidden !important;
}

html[data-theme="dark"] .ocv-location-candidate-card {
  background: linear-gradient(180deg, #121c2e 0%, #17213a 100%) !important;
}

.ocv-location-candidate-main {
  width: 100% !important;
  min-width: 0 !important;
}

.ocv-location-candidate-main h4 {
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
}

.ocv-compact-definition-list {
  display: grid !important;
  grid-template-columns: minmax(64px, .26fr) minmax(0, 1fr) !important;
  gap: 6px 12px !important;
  width: 100% !important;
  margin: 0 !important;
}

.ocv-compact-definition-list > div {
  display: contents !important;
}

.ocv-compact-definition-list dt,
.ocv-compact-definition-list dd {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

.ocv-location-select-form {
  display: flex !important;
  justify-content: stretch !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin-top: 2px !important;
}

.ocv-location-select-button {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 38px !important;
  padding: 8px 12px !important;
  white-space: normal !important;
  line-height: 1.2 !important;
  border: 1px solid var(--ocv-primary-border) !important;
  background: #ffffff !important;
  color: var(--ocv-primary) !important;
  box-shadow: none !important;
}

html[data-theme="dark"] .ocv-location-select-button {
  background: #121c2e !important;
}

/* Forms in KvK: fit inside their own panel. */
.ocv-form-stack {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
  overflow: hidden !important;
}

.ocv-form-stack label,
.ocv-form-stack input,
.ocv-form-stack select,
.ocv-form-stack textarea {
  min-width: 0 !important;
  max-width: 100% !important;
}

/* Real switch, not a lone circle. Generic button rules previously overruled it. */
.ocv-theme-toggle {
  min-height: 54px !important;
  padding: 10px 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}

.ocv-switch {
  appearance: none !important;
  flex: 0 0 52px !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
  border: 1px solid color-mix(in srgb, var(--ocv-primary) 30%, transparent) !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #7c3aed 0%, #ec4899 100%) !important;
  box-shadow: 0 10px 22px rgb(124 58 237 / .24) !important;
  position: relative !important;
  cursor: pointer !important;
  overflow: hidden !important;
}

.ocv-switch::after {
  content: "" !important;
  position: absolute !important;
  top: 3px !important;
  left: 25px !important;
  right: auto !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  box-shadow: 0 2px 5px rgb(15 23 42 / .22) !important;
  transition: transform .18s ease, left .18s ease !important;
}

html[data-theme="dark"] .ocv-switch::after {
  left: 5px !important;
  right: auto !important;
}

/* Responsive fallbacks: stack before content becomes cramped. */
@media (max-width: 1280px) {
  #panel-organization .ocv-layout-grid {
    grid-template-columns: minmax(320px, .9fr) minmax(0, 1.25fr) !important;
  }
}

@media (max-width: 1080px) {
  #panel-organization .ocv-layout-grid,
  .ocv-form-stack {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 720px) {
  #panel-organization dl:not(.ocv-compact-definition-list),
  .ocv-compact-definition-list {
    grid-template-columns: 1fr !important;
  }
  .ocv-location-lookup-button,
  .ocv-location-select-button {
    width: 100% !important;
  }
}

/* --------------------------------------------------------------------------
   OCV UI v5.6 - restore premium dark sidebar from the selected mockup
   Purpose: keep the creative modern light workspace, but make the left menu
   dark again in both light and dark theme.
   -------------------------------------------------------------------------- */
:root {
  --ocv-sidebar-bg: #071426;
  --ocv-sidebar-bg-2: #141044;
  --ocv-sidebar-text: #f8fafc;
  --ocv-sidebar-muted: #b8c2d6;
  --ocv-sidebar-line: rgba(255, 255, 255, .16);
  --ocv-sidebar-panel: rgba(255, 255, 255, .075);
  --ocv-sidebar-panel-strong: rgba(255, 255, 255, .12);
}

.ocv-sidebar {
  background:
    radial-gradient(circle at 20% 0%, rgba(124, 58, 237, .48), transparent 15rem),
    linear-gradient(180deg, var(--ocv-sidebar-bg-2) 0%, var(--ocv-sidebar-bg) 46%, #06111f 100%) !important;
  border-right: 1px solid rgba(255, 255, 255, .10) !important;
  box-shadow: 18px 0 44px rgba(15, 23, 42, .14) !important;
  color: var(--ocv-sidebar-text) !important;
}

.ocv-sidebar .ocv-brand-title,
.ocv-sidebar .ocv-user-name,
.ocv-sidebar .ocv-theme-toggle,
.ocv-sidebar .ocv-logout button {
  color: var(--ocv-sidebar-text) !important;
}

.ocv-sidebar .ocv-nav-label,
.ocv-sidebar .ocv-nav-link,
.ocv-sidebar .ocv-user-role {
  color: var(--ocv-sidebar-muted) !important;
}

.ocv-sidebar .ocv-logo,
.ocv-sidebar .ocv-avatar {
  background: linear-gradient(135deg, #5b6cff 0%, #7c3aed 58%, #ec4899 100%) !important;
  box-shadow: 0 14px 28px rgba(124, 58, 237, .36) !important;
}

.ocv-sidebar .ocv-nav-link,
.ocv-sidebar .ocv-logout button {
  background: transparent !important;
  border: 1px solid transparent !important;
}

.ocv-sidebar .ocv-nav-link:hover,
.ocv-sidebar .ocv-logout button:hover {
  background: rgba(255, 255, 255, .09) !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

.ocv-sidebar .ocv-nav-link.is-active,
.ocv-sidebar .ocv-nav-link[aria-current="page"] {
  background: linear-gradient(135deg, #5b35f5 0%, #8b5cf6 100%) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .12) !important;
  box-shadow: 0 16px 34px rgba(91, 53, 245, .30) !important;
}

.ocv-sidebar .ocv-nav-link.is-active::before,
.ocv-sidebar .ocv-nav-link[aria-current="page"]::before {
  color: #ffffff !important;
  opacity: 1 !important;
}

.ocv-sidebar .ocv-sidebar-footer {
  color: var(--ocv-sidebar-text) !important;
}

.ocv-sidebar .ocv-user-chip {
  padding: 14px !important;
  border: 1px solid var(--ocv-sidebar-line) !important;
  background: linear-gradient(180deg, var(--ocv-sidebar-panel-strong), rgba(255, 255, 255, .045)) !important;
  box-shadow: 0 18px 36px rgba(0, 0, 0, .18) !important;
}

.ocv-sidebar .ocv-theme-toggle {
  border: 1px solid var(--ocv-sidebar-line) !important;
  background: linear-gradient(180deg, var(--ocv-sidebar-panel-strong), rgba(255, 255, 255, .055)) !important;
  box-shadow: 0 16px 30px rgba(0, 0, 0, .16) !important;
}

.ocv-sidebar .ocv-logout button {
  border: 1px solid var(--ocv-sidebar-line) !important;
  background: rgba(255, 255, 255, .07) !important;
  justify-content: flex-start !important;
}

.ocv-sidebar .ocv-switch {
  background: linear-gradient(135deg, #7c3aed 0%, #ec4899 100%) !important;
  border-color: rgba(255, 255, 255, .22) !important;
}

.ocv-sidebar a:focus-visible,
.ocv-sidebar button:focus-visible {
  outline: 3px solid rgba(236, 72, 153, .45) !important;
  outline-offset: 2px !important;
}

/* --------------------------------------------------------------------------
   OCV UI v5.7 - hero background restore and header action alignment
   Purpose: restore the purple hero/background shape from the selected mockup,
   keep straight panel corners, align Concept + Basisgegevens wijzigen, and keep
   the workspace responsive across browser widths.
   -------------------------------------------------------------------------- */

/* Full-width responsive workspace, but keep comfortable reading gutters. */
.ocv-content {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding-left: clamp(28px, 4vw, 56px) !important;
  padding-right: clamp(28px, 4vw, 56px) !important;
}

/* Rebuild the visual hero area behind the organization summary card. */
.ocv-detail-header {
  position: relative !important;
  isolation: isolate !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 24px !important;
  margin: -2px 0 -48px !important;
  padding: 42px clamp(26px, 3vw, 44px) 92px !important;
  min-height: 196px !important;
  overflow: hidden !important;
  background:
    radial-gradient(circle at 88% 6%, rgba(236, 72, 153, .16), transparent 18rem),
    linear-gradient(110deg, rgba(255,255,255,.96) 0%, rgba(239,246,255,.92) 44%, rgba(237,233,254,.90) 100%) !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* The large purple arc in the top-right, without requiring an image asset. */
.ocv-detail-header::after {
  content: "" !important;
  position: absolute !important;
  top: -118px !important;
  right: -72px !important;
  width: clamp(260px, 24vw, 390px) !important;
  height: clamp(260px, 24vw, 390px) !important;
  border: clamp(12px, 1.4vw, 18px) solid rgba(139, 92, 246, .22) !important;
  background: radial-gradient(circle, rgba(255,255,255,.18) 0%, rgba(255,255,255,.05) 58%, transparent 60%) !important;
  z-index: -1 !important;
  pointer-events: none !important;
}

.ocv-detail-header::before {
  content: "" !important;
  position: absolute !important;
  inset: auto 0 0 0 !important;
  height: 70px !important;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(237,242,248,.65)) !important;
  z-index: -1 !important;
  pointer-events: none !important;
}

html[data-theme="dark"] .ocv-detail-header {
  background:
    radial-gradient(circle at 88% 6%, rgba(236, 72, 153, .18), transparent 18rem),
    linear-gradient(110deg, rgba(15, 23, 42, .98) 0%, rgba(30, 41, 59, .96) 52%, rgba(49, 36, 90, .88) 100%) !important;
}

html[data-theme="dark"] .ocv-detail-header::before {
  background: linear-gradient(180deg, rgba(11,18,32,0), rgba(11,18,32,.72)) !important;
}

/* Keep title and actions above the generated hero art. */
.ocv-detail-header > * {
  position: relative !important;
  z-index: 1 !important;
}

.ocv-detail-header h1 {
  margin-bottom: 0 !important;
}

.ocv-detail-header .ocv-eyebrow {
  color: #7c5aa6 !important;
}

html[data-theme="dark"] .ocv-detail-header .ocv-eyebrow {
  color: #c4b5fd !important;
}

/* Header action alignment: Concept and button line up visually. */
.ocv-header-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  padding-top: 34px !important;
}

.ocv-header-actions .ocv-status,
.ocv-header-actions .button {
  min-height: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
}

.ocv-header-actions .ocv-status {
  padding: 0 16px !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  font-weight: 850 !important;
}

.ocv-header-actions .button {
  padding: 0 22px !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  text-align: center !important;
  background: linear-gradient(135deg, #6d4aff 0%, #8b5cf6 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 18px 34px rgba(91, 53, 245, .24) !important;
}

/* Pull the summary card up into the hero background, like the mockup. */
.ocv-summary-card {
  position: relative !important;
  z-index: 2 !important;
  margin-top: 0 !important;
  margin-bottom: 22px !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 20px 44px rgba(15, 23, 42, .08) !important;
}

html[data-theme="dark"] .ocv-summary-card {
  background: rgba(18, 28, 46, .96) !important;
}

/* Keep every major panel straight-edged. This intentionally excludes avatars/switches. */
.ocv-card,
.ocv-summary-card,
.ocv-panel,
.ocv-side-card,
.ocv-tabs,
.ocv-tab,
.ocv-step-card,
.ocv-location-candidate-card,
.ocv-source-card,
.ocv-source-preview,
.ocv-source-drawer,
.placeholder,
.ocv-action-link,
.ocv-empty-state,
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
select,
textarea,
button:not(.ocv-switch):not(.ocv-icon-button),
input[type="submit"],
.button,
.btn-primary,
.btn-secondary,
.ocv-secondary {
  border-radius: 0 !important;
}

/* Preserve the actual switch shape from the mockup. */
.ocv-switch,
.ocv-switch::after,
.ocv-avatar,
.ocv-logo,
.ocv-icon-button {
  border-radius: 999px !important;
}

/* The OCV logo in the mockup is softly squared, not fully rectangular. */
.ocv-logo {
  border-radius: 10px !important;
}

@media (max-width: 900px) {
  .ocv-detail-header {
    display: grid !important;
    min-height: auto !important;
    padding: 32px 22px 76px !important;
  }

  .ocv-header-actions {
    justify-content: flex-start !important;
    padding-top: 0 !important;
  }

  .ocv-header-actions .ocv-status,
  .ocv-header-actions .button {
    height: 40px !important;
    min-height: 40px !important;
  }
}

/* --------------------------------------------------------------------------
   OCV UI v6.0 - print-style dark dossier header + aligned workspace
   Doel:
   - webweergave dichter bij de PDF/printstijl brengen;
   - donkere header/backdrop met witte organisatienaam;
   - summary-card en tabbar exact op dezelfde linker/rechter lijn;
   - geen curve/radius op hoofdpanelen;
   - analyse/SWOT rustiger renderen; details achter uitklapknop.
   -------------------------------------------------------------------------- */

:root {
  --ocv-workspace-max: 1440px;
  --ocv-print-bg: #e8eef6;
  --ocv-print-panel: #ffffff;
  --ocv-print-border: #cfd8e5;
  --ocv-print-dark: #08111f;
  --ocv-print-dark-2: #182342;
  --ocv-print-purple: #6d3ff2;
  --ocv-print-pink: #ec4899;
}

body {
  background:
    linear-gradient(90deg, rgba(12, 22, 39, .04), transparent 26rem),
    var(--ocv-print-bg) !important;
}

.ocv-main {
  min-width: 0 !important;
  overflow-x: hidden !important;
}

.ocv-content {
  width: min(var(--ocv-workspace-max), calc(100vw - var(--ocv-sidebar-width) - 72px)) !important;
  max-width: var(--ocv-workspace-max) !important;
  margin: 0 auto !important;
  padding: 32px 36px 52px !important;
}

/* Alle hoofdblokken exact even breed en niet naar rechts verschoven. */
.ocv-detail-header,
.ocv-summary-card,
.ocv-tabs,
.ocv-tab-panel {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Donkere printachtige dossierkop. Geen lichte backdrop meer. */
.ocv-detail-header {
  position: relative !important;
  isolation: isolate !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 220px !important;
  margin: 0 !important;
  padding: 48px 62px !important;
  overflow: hidden !important;
  color: #ffffff !important;
  background:
    linear-gradient(90deg, rgba(8, 17, 31, .98) 0%, rgba(10, 19, 35, .98) 42%, rgba(32, 31, 72, .96) 72%, rgba(49, 39, 97, .95) 100%) !important;
  border: 1px solid rgba(15, 23, 42, .92) !important;
  border-radius: 0 !important;
  box-shadow: 0 28px 58px rgba(15, 23, 42, .16) !important;
}

/* Grafische print-elementen: rechte band + cirkelvorm rechts, zoals het PDF-effect. */
.ocv-detail-header::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 auto 0 34% !important;
  width: 22px !important;
  height: 100% !important;
  background: rgba(124, 58, 237, .22) !important;
  z-index: -1 !important;
  pointer-events: none !important;
}

.ocv-detail-header::after {
  content: "" !important;
  position: absolute !important;
  right: -44px !important;
  bottom: -128px !important;
  width: clamp(310px, 28vw, 500px) !important;
  height: clamp(310px, 28vw, 500px) !important;
  border: 28px solid rgba(124, 58, 237, .22) !important;
  border-radius: 50% !important;
  background:
    radial-gradient(circle at 50% 50%, rgba(236, 72, 153, .92) 0 27%, rgba(124, 58, 237, .36) 28% 49%, transparent 50%) !important;
  z-index: -1 !important;
  pointer-events: none !important;
}

.ocv-detail-header > * {
  position: relative !important;
  z-index: 1 !important;
}

.ocv-detail-header .ocv-eyebrow {
  margin-bottom: 14px !important;
  color: #d8ccff !important;
  letter-spacing: .22em !important;
  font-weight: 900 !important;
}

.ocv-detail-header h1 {
  margin: 0 !important;
  max-width: 720px !important;
  color: #ffffff !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .22) !important;
}

.ocv-header-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 14px !important;
  flex: 0 0 auto !important;
  padding: 0 !important;
}

.ocv-header-actions .ocv-status,
.ocv-header-actions .button {
  min-height: 48px !important;
  height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 0 !important;
  line-height: 1 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

.ocv-header-actions .ocv-status {
  padding: 0 22px !important;
  color: #087443 !important;
  background: #dcfce7 !important;
  border: 1px solid #86efac !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

.ocv-header-actions .button {
  padding: 0 28px !important;
  color: #ffffff !important;
  background: linear-gradient(90deg, var(--ocv-print-purple) 0%, var(--ocv-print-pink) 100%) !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

/* Summary-card ligt onder de donkere kop, met exact dezelfde breedte. */
.ocv-summary-card {
  position: relative !important;
  z-index: 2 !important;
  margin-top: 0 !important;
  margin-bottom: 22px !important;
  padding: 30px 36px !important;
  background: var(--ocv-print-panel) !important;
  border: 1px solid var(--ocv-print-border) !important;
  border-radius: 0 !important;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .08) !important;
}

.ocv-summary-card .ocv-meta-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.ocv-summary-card .ocv-meta-item {
  min-width: 0 !important;
}

/* Rechte, printachtige tabbar. */
.ocv-tabs {
  display: flex !important;
  gap: 0 !important;
  min-height: 58px !important;
  margin: 0 0 22px !important;
  padding: 0 !important;
  overflow-x: auto !important;
  background: var(--ocv-print-panel) !important;
  border: 1px solid var(--ocv-print-border) !important;
  border-radius: 0 !important;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .05) !important;
}

.ocv-tab {
  min-height: 58px !important;
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 24px !important;
  border: 0 !important;
  border-right: 1px solid var(--ocv-print-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #53627a !important;
  box-shadow: none !important;
  font-weight: 900 !important;
}

.ocv-tab.is-active,
.ocv-tab[aria-selected="true"] {
  color: #ffffff !important;
  background: linear-gradient(90deg, var(--ocv-print-purple), #7c3aed) !important;
}

.ocv-tab:hover:not(.is-active) {
  color: #30127a !important;
  background: #f3efff !important;
}

/* Hoofdpanelen recht, lichter en uitgelijnd. */
.ocv-card,
.ocv-panel,
.ocv-side-card,
.placeholder,
.ocv-table-card,
.ocv-step-card,
.ocv-source-card,
.ocv-location-candidate-card,
.ocv-action-link,
.ocv-empty-state,
.ocv-analysis-section,
.ocv-analysis-finding,
.ocv-swot-quadrant,
.ocv-finding-details,
.ocv-finding-details summary,
.ocv-source-preview,
.ocv-source-drawer,
form:not(.ocv-logout) {
  border-radius: 0 !important;
}

.ocv-card,
.ocv-panel,
.ocv-side-card,
.placeholder {
  background: #ffffff !important;
  border: 1px solid var(--ocv-print-border) !important;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .06) !important;
}

.ocv-layout-grid {
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr) !important;
  gap: 20px !important;
  width: 100% !important;
}

#panel-organization .ocv-layout-grid {
  grid-template-columns: minmax(330px, .92fr) minmax(0, 1.38fr) !important;
}

/* Analysepaneel: compact, zakelijk en scanbaar. */
.ocv-analysis-panel {
  padding: 28px 32px !important;
}

.ocv-analysis-panel > h2 {
  font-size: 24px !important;
  margin-bottom: 14px !important;
}
.ocv-analysis-technical-details {
  max-width: 1180px !important;
  margin: 12px 0 18px !important;
  border: 1px solid var(--ocv-print-border) !important;
  border-radius: 14px !important;
  background: #fbfcff !important;
  padding: 12px 14px !important;
}

.ocv-analysis-technical-details > summary {
  cursor: pointer !important;
  font-weight: 700 !important;
}

.ocv-analysis-technical-details .ocv-analysis-status {
  margin-top: 12px !important;
}


.ocv-analysis-disclaimer,
.ocv-analysis-provider-notice,
.ocv-analysis-meta,
.ocv-analysis-source-ids {
  max-width: 1180px !important;
}

.ocv-analysis-start-form,
.ocv-analysis-review-form {
  border: 1px solid var(--ocv-print-border) !important;
  background: #fbfcff !important;
  padding: 18px !important;
  margin: 18px 0 !important;
  box-shadow: none !important;
}

.ocv-analysis-section {
  margin-top: 24px !important;
  padding-top: 20px !important;
  border-top: 1px solid var(--ocv-print-border) !important;
}

.ocv-analysis-section > h3 {
  margin: 0 0 16px !important;
  font-size: 21px !important;
}

/* SWOT als overzichtelijke kaarten; details zitten achter een uitklapper. */
.ocv-swot-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.ocv-swot-quadrant {
  padding: 18px !important;
  background: #fbfcff !important;
  border: 1px solid var(--ocv-print-border) !important;
  box-shadow: none !important;
}

.ocv-swot-quadrant > h4 {
  margin: 0 0 14px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--ocv-print-border) !important;
  font-size: 18px !important;
}

.ocv-analysis-finding {
  padding: 16px !important;
  margin: 0 0 12px !important;
  background: #ffffff !important;
  border: 1px solid #d9e2ef !important;
  box-shadow: none !important;
}

.ocv-analysis-finding h4,
.ocv-analysis-finding h5 {
  margin: 0 0 8px !important;
  font-size: 16px !important;
}

.ocv-finding-body {
  margin: 0 0 12px !important;
  color: #1f2937 !important;
}

.ocv-finding-details {
  margin-top: 12px !important;
  border: 1px solid var(--ocv-print-border) !important;
  background: #f8fbff !important;
}

.ocv-finding-details > summary {
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 14px !important;
  cursor: pointer !important;
  color: #4f2de1 !important;
  background: #f1ecff !important;
  font-weight: 900 !important;
  list-style: none !important;
}

.ocv-finding-details > summary::-webkit-details-marker {
  display: none !important;
}

.ocv-finding-details > summary::before {
  content: "▸" !important;
  transform: translateY(-1px) !important;
}

.ocv-finding-details[open] > summary::before {
  content: "▾" !important;
}

.ocv-finding-details-body {
  padding: 14px !important;
  display: grid !important;
  gap: 12px !important;
}

.ocv-finding-meta {
  display: grid !important;
  gap: 10px !important;
  margin: 0 !important;
}

.ocv-finding-edit {
  margin: 0 !important;
  border-top: 1px solid var(--ocv-print-border) !important;
  padding-top: 12px !important;
}

.ocv-finding-edit summary {
  cursor: pointer !important;
  color: #4f2de1 !important;
  font-weight: 900 !important;
}

.ocv-finding-edit form {
  margin-top: 12px !important;
  padding: 14px !important;
  background: #ffffff !important;
  border: 1px solid var(--ocv-print-border) !important;
  box-shadow: none !important;
}

/* Stakeholdertabel blijft tabel, maar rustiger en beter leesbaar. */
.ocv-stakeholder-table th,
.ocv-stakeholder-table td {
  vertical-align: top !important;
}

.ocv-stakeholder-description {
  line-height: 1.45 !important;
}

/* Dark theme behoudt leesbaarheid, maar de gekozen donkere printkop blijft leidend. */
html[data-theme="dark"] body {
  background: #0b1220 !important;
}

html[data-theme="dark"] .ocv-detail-header {
  background:
    linear-gradient(90deg, rgba(8, 17, 31, 1) 0%, rgba(10, 19, 35, 1) 42%, rgba(32, 31, 72, .98) 72%, rgba(49, 39, 97, .98) 100%) !important;
}

html[data-theme="dark"] .ocv-summary-card,
html[data-theme="dark"] .ocv-tabs,
html[data-theme="dark"] .ocv-card,
html[data-theme="dark"] .ocv-panel,
html[data-theme="dark"] .placeholder,
html[data-theme="dark"] .ocv-analysis-finding,
html[data-theme="dark"] .ocv-swot-quadrant {
  background: #111c2f !important;
  border-color: #344054 !important;
}

html[data-theme="dark"] .ocv-finding-body {
  color: #e5e7eb !important;
}

@media (max-width: 1100px) {
  .ocv-content {
    width: calc(100vw - var(--ocv-sidebar-width)) !important;
    padding: 24px !important;
  }

  .ocv-detail-header {
    padding: 36px !important;
    min-height: 190px !important;
  }

  .ocv-layout-grid,
  #panel-organization .ocv-layout-grid,
  .ocv-swot-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  .ocv-content {
    width: 100% !important;
    padding: 18px !important;
  }

  .ocv-detail-header {
    display: grid !important;
    gap: 24px !important;
    padding: 30px 24px !important;
  }

  .ocv-header-actions {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }

  .ocv-summary-card .ocv-meta-grid {
    grid-template-columns: 1fr !important;
  }
}

/* OCV UX fix - clickable dossier breadcrumb and cleaner dossier header actions */
.ocv-breadcrumb-link {
  text-decoration: none !important;
}
.ocv-breadcrumb-link:hover {
  color: var(--ocv-primary) !important;
  text-decoration: none !important;
}
.ocv-summary-actions {
  display: flex !important;
  justify-content: flex-end !important;
  margin-bottom: 18px !important;
}
@media (max-width: 720px) {
  .ocv-summary-actions {
    justify-content: stretch !important;
  }
  .ocv-summary-actions .button {
    width: 100% !important;
  }
}

/* OCV UX fix - summary edit action bottom-aligned and vertically centered */
.ocv-summary-actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 26px !important;
  margin-bottom: 0 !important;
}

.ocv-summary-actions .button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  height: 46px !important;
  padding: 0 28px !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

@media (max-width: 720px) {
  .ocv-summary-actions {
    justify-content: stretch !important;
  }
  .ocv-summary-actions .button {
    width: 100% !important;
  }
}

/* OCV UX fix - admin user chip links to user management */
.ocv-user-chip-link {
  text-decoration: none !important;
  color: inherit !important;
  cursor: pointer !important;
}

.ocv-user-chip-link:hover,
.ocv-user-chip-link:focus-visible {
  text-decoration: none !important;
  border-color: rgba(255, 255, 255, .28) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .07)) !important;
}

.ocv-user-chip-link:focus-visible {
  outline: 3px solid rgba(236, 72, 153, .45) !important;
  outline-offset: 2px !important;
}

/* OCV Slice 7 - Word export action */
.ocv-export-word-form {
  display: grid;
  gap: 8px;
}
.ocv-export-word-button {
  justify-self: start;
}

/* OCV UX fix - regulatory findings as expandable cards without horizontal overflow */
.regulations {
  display: grid;
  gap: 16px;
  width: 100%;
  max-width: 100%;
  overflow: visible;
}

.regulation-card {
  background: var(--ocv-card);
  border: 1px solid var(--ocv-line);
  border-radius: 0;
  overflow: hidden;
  box-shadow: var(--ocv-shadow-sm);
}

.regulation-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: color-mix(in srgb, var(--ocv-bg-soft) 74%, var(--ocv-card));
  cursor: pointer;
  list-style: none;
}

.regulation-header::-webkit-details-marker {
  display: none;
}

.regulation-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-weight: 750;
  font-size: 15px;
  line-height: 1.35;
}

.regulation-meta {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
}

.regulation-summary {
  padding: 16px 20px;
  color: var(--ocv-text);
  font-size: 14px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.regulation-details {
  border-top: 1px solid var(--ocv-line);
  padding: 16px 20px;
  background: color-mix(in srgb, var(--ocv-bg-soft) 64%, var(--ocv-card));
}

.regulation-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}

.regulation-grid label {
  display: block;
  margin-bottom: 4px;
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.regulation-grid p {
  margin: 0;
  overflow-wrap: anywhere;
}

.tag,
.badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border: 1px solid var(--ocv-line);
  background: var(--ocv-card-soft);
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.2;
}

.badge.fact {
  background: #e0f2fe;
  color: #0369a1;
  border-color: #bae6fd;
}

.badge.inference {
  background: #fef3c7;
  color: #92400e;
  border-color: #fde68a;
}

.toggle-details {
  color: var(--ocv-primary);
  font-weight: 850;
  white-space: nowrap;
}

.regulation-card[open] .toggle-details::after {
  content: " sluiten";
}

@media (max-width: 760px) {
  .regulation-header,
  .regulation-meta {
    align-items: flex-start;
    flex-direction: column;
  }
  .regulation-meta {
    width: 100%;
  }
}

.regulation-section-title {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

.regulation-expand-all {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--ocv-line);
  background: var(--ocv-card);
  color: var(--ocv-primary);
  box-shadow: none;
}

@media (max-width: 760px) {
  .regulation-section-title {
    align-items: stretch;
    flex-direction: column;
  }
  .regulation-expand-all {
    width: 100%;
  }
}

/* OCV Slice 8 - archive lifecycle panel */
.ocv-lifecycle-panel {
  display: grid;
  gap: 20px;
}
.ocv-lifecycle-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.ocv-lifecycle-card,
.ocv-archive-card,
.ocv-danger-zone {
  border: 1px solid var(--ocv-line);
  background: var(--ocv-card);
  padding: 18px;
  min-width: 0;
}
.ocv-lifecycle-warning {
  border-left: 4px solid var(--ocv-primary);
}
.ocv-archive-list {
  display: grid;
  gap: 14px;
}
.ocv-archive-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, auto);
  gap: 16px;
  align-items: start;
}
.ocv-archive-card-main {
  min-width: 0;
}
.ocv-archive-card code {
  white-space: normal;
  overflow-wrap: anywhere;
}
.ocv-archive-actions {
  display: grid;
  justify-items: stretch;
  gap: 12px;
}
.ocv-cleanup-form {
  display: grid !important;
  gap: 10px;
}
.ocv-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
}
.ocv-danger-zone {
  border-color: color-mix(in srgb, var(--ocv-danger) 34%, var(--ocv-line));
  background: color-mix(in srgb, var(--ocv-danger-bg) 62%, var(--ocv-card));
}
.ocv-danger-button {
  background: var(--ocv-danger) !important;
  color: #fff !important;
}
@media (max-width: 980px) {
  .ocv-lifecycle-grid,
  .ocv-archive-card {
    grid-template-columns: 1fr;
  }
}

/* OCV UX release - beheer submenu, account settings and button alignment */
.ocv-brand-link {
  color: inherit !important;
  text-decoration: none !important;
}
.ocv-brand-link:hover,
.ocv-brand-link:focus-visible {
  text-decoration: none !important;
  filter: brightness(1.05);
}
.ocv-admin-menu {
  display: grid;
  gap: 6px;
}
.ocv-admin-menu > summary {
  list-style: none;
}
.ocv-admin-menu > summary::-webkit-details-marker {
  display: none;
}
.ocv-admin-menu-summary {
  justify-content: flex-start;
}
.ocv-admin-submenu {
  display: grid;
  gap: 5px;
  margin-left: 18px;
  padding-left: 12px;
  border-left: 1px solid var(--ocv-sidebar-line, var(--ocv-line));
}
.ocv-nav-sublink {
  min-height: 38px !important;
  font-size: 14px;
}
.ocv-avatar-link {
  text-decoration: none !important;
  color: #fff !important;
  box-shadow: 0 0 0 0 transparent;
}
.ocv-avatar-link:hover,
.ocv-avatar-link:focus-visible {
  text-decoration: none !important;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .22) !important;
}
.ocv-page-header .button,
.ocv-page-header a.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}
.ocv-meta-item-action {
  align-self: end;
  display: flex;
  align-items: end;
  justify-content: flex-end;
}
.ocv-summary-actions {
  gap: 12px;
  margin-top: 0 !important;
  padding-top: 18px;
}
.ocv-summary-actions .button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 46px !important;
  min-height: 46px !important;
  line-height: 1 !important;
  white-space: nowrap;
}
.ocv-settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 22px;
}
.ocv-account-form {
  grid-template-columns: 1fr !important;
}
.ocv-account-dossiers {
  margin-top: 22px;
}
.ocv-pagination {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
  margin-top: 16px;
  color: var(--ocv-muted);
  font-weight: 750;
}
@media (max-width: 900px) {
  .ocv-settings-grid {
    grid-template-columns: 1fr;
  }
  .ocv-meta-item-action,
  .ocv-summary-actions .button {
    width: 100%;
  }
  .ocv-summary-actions {
    padding-top: 0;
  }
}

/* OCV UI alignment fix - organization tab uses the same tab panel gutters as other dossier tabs */
#panel-organization .ocv-layout-grid {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* OCV AI legal judgment warning - non-blocking validation notice */
.ocv-analysis-warning {
  margin: 12px 0 18px;
  padding: 14px 16px;
  border: 1px solid #f59e0b;
  background: #fffbeb;
  color: #92400e;
  font-weight: 750;
}
.ocv-analysis-warning p { margin: 0; }
html[data-theme="dark"] .ocv-analysis-warning {
  background: #2f240d;
  color: #fde68a;
  border-color: #b45309;
}

/* OCV Slice 9 - source collection and manual source UI */
.ocv-source-panel .ocv-card-header-row {
  align-items: flex-start;
}
.ocv-manual-source-card {
  margin: 18px 0 22px;
  padding: 18px;
  border: 1px solid var(--ocv-line);
  background: color-mix(in srgb, var(--ocv-card-soft) 74%, var(--ocv-card));
}
.ocv-manual-source-card h3 {
  margin-top: 0;
}
.ocv-manual-source-form {
  margin-top: 14px !important;
}
.ocv-source-label {
  font-weight: 850;
  overflow-wrap: anywhere;
}
.ocv-source-card[data-source-type="manual_url"] {
  border-left: 4px solid var(--ocv-primary) !important;
}

/* OCV analysis recovery action - manual release for stuck worker runs */
.ocv-analysis-release-form {
  margin-top: 12px !important;
  padding: 14px !important;
  border: 1px solid var(--ocv-line) !important;
  background: var(--ocv-card-soft) !important;
  box-shadow: none !important;
}
.ocv-analysis-release-form .ocv-secondary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* OCV UX slice - manual location entry and blocked source reason disclosure */
.ocv-manual-location-card,
.ocv-source-block-reason {
  margin-top: 12px;
}
.ocv-manual-location-card {
  padding: 16px;
  border: 1px solid var(--ocv-line);
  border-radius: 16px;
  background: var(--ocv-card-soft);
}
.ocv-manual-location-card > summary,
.ocv-source-block-reason > summary {
  cursor: pointer;
  font-weight: 850;
}
.ocv-manual-location-form {
  margin-top: 14px !important;
}
.ocv-source-block-reason-body {
  margin-top: 8px;
  padding: 10px 12px;
  border: 1px solid var(--ocv-line);
  border-radius: 12px;
  background: var(--ocv-card-soft);
  max-width: 360px;
}
.ocv-source-block-reason-body p {
  margin: 4px 0 0;
}
.ocv-source-block-reason code {
  overflow-wrap: anywhere;
}

.ocv-source-job-status {
  margin: 1rem 0;
  padding: .75rem 1rem;
  border: 1px solid var(--ocv-border, #d8dee9);
  border-radius: .75rem;
  background: var(--ocv-surface-muted, #f8fafc);
  font-weight: 600;
}


.ocv-analysis-correction-card {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid var(--ocv-border, #d7dde8);
  border-radius: 0.75rem;
  background: var(--ocv-card-bg, #fff);
}
.ocv-analysis-correction-form textarea {
  width: 100%;
  min-height: 8rem;
}
.ocv-analysis-correction-history {
  margin-top: 0.75rem;
}
.ocv-analysis-correction-history li {
  margin: 0.5rem 0;
}

/* OCV slice 12 - navigation, document sources and status refinements */
.ocv-nav-empty {
  display: block;
  padding: 10px 12px;
  color: var(--ocv-muted);
  font-size: .9rem;
}
.ocv-top-actions {
  position: relative;
}
.ocv-top-admin-menu {
  position: relative;
}
.ocv-top-admin-button {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--ocv-line);
  border-radius: 999px;
  background: var(--ocv-card);
  color: var(--ocv-text);
  font-weight: 800;
}
.ocv-top-admin-button::-webkit-details-marker { display: none; }
.ocv-top-admin-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 40;
  min-width: 190px;
  padding: 8px;
  border: 1px solid var(--ocv-line);
  border-radius: 14px;
  background: var(--ocv-card);
  box-shadow: var(--ocv-shadow);
}
.ocv-top-admin-dropdown a {
  display: block;
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--ocv-text);
  text-decoration: none;
  font-weight: 700;
}
.ocv-top-admin-dropdown a:hover { background: var(--ocv-card-soft); }
.ocv-source-input-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.ocv-document-source-card {
  padding: 16px;
  border: 1px solid var(--ocv-line);
  border-radius: 16px;
  background: var(--ocv-card-soft);
}
.ocv-source-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.2em;
  padding: 2px 6px;
  border: 1px solid var(--ocv-line);
  border-radius: 999px;
  background: var(--ocv-card-soft);
  font-size: .82rem;
  font-weight: 850;
}
.ocv-source-status {
  border-radius: 0 !important;
  border: 1px solid #16803a;
  background: #dcfce7;
  color: #166534;
}
.ocv-source-status-failed {
  border-color: #991b1b !important;
  background: #fee2e2 !important;
  color: #7f1d1d !important;
}
.ocv-source-status-blocked {
  border-color: #92400e !important;
  background: #ffedd5 !important;
  color: #7c2d12 !important;
}
.ocv-analysis-status-visible {
  margin: 8px 0 12px;
}
.ocv-analysis-status-visible .ocv-analysis-progress {
  border-radius: 0 !important;
}
.ocv-analysis-status-visible .ocv-analysis-status-message {
  margin-top: 8px;
}
.ocv-policy-pages {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--ocv-line);
}
.ocv-policy-page-card {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid var(--ocv-line);
  border-radius: 14px;
  background: var(--ocv-card-soft);
}
.ocv-policy-page-card > summary {
  cursor: pointer;
  font-weight: 850;
}
.ocv-policy-page-card pre {
  white-space: pre-wrap;
  max-height: 280px;
  overflow: auto;
}
.ocv-step-card {
  position: relative;
}
.ocv-step-state {
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-weight: 900;
  font-size: .9rem;
}
.ocv-step-state-complete {
  border: 1px solid #166534;
  background: #dcfce7;
  color: #166534;
}
.ocv-step-state-progress {
  border: 1px solid #a16207;
  background: #fef3c7;
  color: #854d0e;
}
@media (max-width: 900px) {
  .ocv-source-input-grid { grid-template-columns: 1fr; }
}

/* OCV slice 12 fix - basic data status badge uses straight corners */
.ocv-basic-status {
  border-radius: 0 !important;
}

/* OCV slice 12 fix - square source, analysis, regulatory and organization disclosure panels */
.ocv-document-source-card {
  margin: 18px 0 22px !important;
  padding: 18px !important;
  border: 1px solid var(--ocv-line) !important;
  border-radius: 0 !important;
  background: color-mix(in srgb, var(--ocv-card-soft) 74%, var(--ocv-card)) !important;
}

.ocv-manual-location-card,
.ocv-analysis-technical-details,
.ocv-analysis-correction-card,
.ocv-analysis-correction-history,
.ocv-market-context,
.ocv-nis2-indication,
.ocv-regulatory-findings,
.ocv-regulatory-overrule,
.ocv-policy-pages,
.ocv-policy-page-card,
.ocv-regulatory-disclaimer,
.ocv-regulatory-meta,
#panel-regulatory .ocv-analysis-section,
#panel-regulatory .ocv-card,
#panel-regulatory .ocv-panel {
  border-radius: 0 !important;
}


/* OCV slice 12 fix 3 - admin overview, gear entry and dossier list status squares */
.ocv-dossier-list-status {
  border-radius: 0 !important;
}
.ocv-admin-gear-link {
  display: inline-grid;
  place-items: center;
  text-decoration: none !important;
  border: 1px solid var(--ocv-line);
  background: var(--ocv-card);
  color: var(--ocv-text) !important;
  box-shadow: none;
}
.ocv-admin-gear-link.is-active,
.ocv-admin-gear-link:hover,
.ocv-admin-gear-link:focus-visible {
  background: var(--ocv-primary-soft);
  border-color: color-mix(in srgb, var(--ocv-primary) 32%, var(--ocv-line));
  color: var(--ocv-primary) !important;
}
.ocv-admin-task-nav {
  margin-top: 18px;
}
.ocv-admin-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}
.ocv-admin-overview-card {
  display: grid;
  gap: 8px;
  padding: 18px;
  border: 1px solid var(--ocv-line);
  border-radius: 0;
  background: var(--ocv-card);
  color: var(--ocv-text);
  text-decoration: none;
  box-shadow: var(--ocv-shadow-sm);
}
.ocv-admin-overview-card:hover,
.ocv-admin-overview-card:focus-visible {
  border-color: color-mix(in srgb, var(--ocv-primary) 38%, var(--ocv-line));
  text-decoration: none;
  filter: brightness(1.02);
}
.ocv-admin-overview-title {
  font-weight: 900;
  font-size: 1.05rem;
}
.ocv-admin-overview-description {
  color: var(--ocv-muted);
  line-height: 1.45;
}

/* OCV slice 12 fix 4 - topbar gear sizing, theme shadow and admin overview task buttons */
.ocv-top-actions .ocv-icon-button,
.ocv-top-actions .ocv-admin-gear-link,
.ocv-top-actions .ocv-avatar-link {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
  line-height: 1 !important;
}
.ocv-top-actions .ocv-admin-gear-link {
  font-size: 21px !important;
  font-weight: 850 !important;
  border-radius: 999px !important;
}
.ocv-top-actions [data-theme-toggle],
.ocv-top-actions .ocv-icon-button[data-theme-toggle],
.ocv-top-actions .ocv-icon-button[data-theme-toggle]:hover,
.ocv-top-actions .ocv-icon-button[data-theme-toggle]:focus-visible {
  box-shadow: none !important;
}
.ocv-admin-overview-grid {
  grid-template-columns: 1fr !important;
}
.ocv-admin-overview-card {
  display: grid !important;
  grid-template-columns: minmax(180px, 240px) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 18px !important;
  border-radius: 0 !important;
}
.ocv-admin-task-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--ocv-primary);
  border-radius: 0;
  background: color-mix(in srgb, var(--ocv-primary-soft) 76%, var(--ocv-card));
  color: var(--ocv-primary);
  font-weight: 900;
  text-align: center;
}
.ocv-admin-task-copy {
  color: var(--ocv-muted);
  line-height: 1.45;
}
@media (max-width: 760px) {
  .ocv-admin-overview-card {
    grid-template-columns: 1fr !important;
  }
  .ocv-admin-task-button {
    justify-content: flex-start;
  }
  .ocv-admin-settings-links {
    flex-direction: column;
  }
}

/* OCV slice 12 fix 5 - consistent square sidebar navigation */
.ocv-sidebar .ocv-nav-link,
.ocv-sidebar .ocv-logout button,
.ocv-sidebar .ocv-admin-task-nav .ocv-nav-link,
.ocv-sidebar .ocv-admin-task-nav .ocv-nav-link.is-active,
.ocv-sidebar .ocv-admin-task-nav .ocv-nav-link[aria-current="page"] {
  border-radius: 0 !important;
}
.ocv-sidebar .ocv-admin-task-nav .ocv-nav-link::before {
  content: "" !important;
  display: none !important;
}
.ocv-sidebar .ocv-admin-task-nav nav {
  gap: 8px !important;
}

/* OCV slice 12 fix 6 - auditlog pagination and filters */
.ocv-audit-filter-panel,
.ocv-audit-log-table,
.ocv-pagination {
  border-radius: 0 !important;
}
.ocv-audit-filter-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
}
.ocv-audit-filter-form label {
  display: grid;
  gap: 6px;
  color: var(--ocv-muted);
  font-weight: 850;
}
.ocv-audit-filter-form input[type="search"] {
  width: 100%;
}
.ocv-audit-filter-actions {
  grid-column: 1 / -1;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.ocv-table-summary {
  padding: 12px 14px;
  border-bottom: 1px solid var(--ocv-line);
  color: var(--ocv-muted);
}
.ocv-pagination {
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.ocv-pagination .is-disabled {
  opacity: .5;
  pointer-events: none;
}
.ocv-pagination-current {
  color: var(--ocv-muted);
  font-weight: 800;
}
@media (max-width: 900px) {
  .ocv-audit-filter-form {
    grid-template-columns: 1fr;
  }
}

/* OCV slice 12 fix 7 - auditlog dropdown filters */
.ocv-audit-filter-form select {
  width: 100%;
  min-height: 42px;
  border-radius: 0 !important;
  border: 1px solid var(--ocv-line);
  background: var(--ocv-surface);
  color: var(--ocv-text);
  padding: 8px 10px;
  font: inherit;
}

/* OCV slice 12 fix 8 - compact user management cards */
.ocv-admin-users-header {
  align-items: flex-end;
}
.ocv-page-intro {
  color: var(--ocv-muted);
  font-weight: 650;
  margin: 8px 0 0;
}
.ocv-admin-user-new,
.ocv-admin-user-edit,
.ocv-admin-user-delete {
  border-radius: 0 !important;
}
.ocv-admin-users-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 14px;
}
.ocv-admin-user-card {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--ocv-line);
  border-radius: 0 !important;
  background: color-mix(in srgb, var(--ocv-card) 96%, transparent);
  box-shadow: var(--ocv-shadow-sm);
}
.ocv-admin-user-main {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.ocv-admin-user-avatar {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 0;
  background: linear-gradient(135deg, var(--ocv-primary), var(--ocv-primary-2));
  color: #fff;
  font-weight: 900;
}
.ocv-admin-user-identity h2 {
  margin: 0;
  font-size: 18px;
  line-height: 1.15;
}
.ocv-admin-user-identity p {
  margin: 4px 0 0;
  color: var(--ocv-muted);
  font-weight: 650;
  overflow-wrap: anywhere;
}
.ocv-admin-user-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}
.ocv-admin-user-meta div {
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--ocv-line);
  background: color-mix(in srgb, var(--ocv-bg-soft) 58%, var(--ocv-card));
}
.ocv-admin-user-meta dt {
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 850;
  margin-bottom: 4px;
}
.ocv-admin-user-meta dd {
  margin: 0;
  font-weight: 850;
  overflow-wrap: anywhere;
}
.ocv-admin-user-status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 0;
  font-size: 12px;
  font-weight: 900;
}
.ocv-admin-user-status.is-active {
  border: 1px solid color-mix(in srgb, var(--ocv-success) 38%, transparent);
  background: var(--ocv-success-bg);
  color: var(--ocv-success);
}
.ocv-admin-user-status.is-inactive {
  border: 1px solid color-mix(in srgb, #92400e 40%, transparent);
  background: #fef3c7;
  color: #92400e;
}
.ocv-admin-user-actions {
  display: grid;
  grid-template-columns: minmax(96px, auto) minmax(0, 1fr);
  gap: 12px;
  align-items: end;
}
.ocv-admin-user-edit {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid var(--ocv-primary);
  background: color-mix(in srgb, var(--ocv-primary-soft) 78%, var(--ocv-card));
  color: var(--ocv-primary);
  font-weight: 900;
  text-decoration: none;
}
.ocv-admin-user-delete-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.ocv-admin-user-delete-form label {
  display: grid;
  gap: 5px;
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 850;
}
.ocv-admin-user-delete-form select {
  min-height: 40px;
  border-radius: 0 !important;
}
.ocv-admin-user-delete {
  background: #fee2e2 !important;
  border: 1px solid #991b1b !important;
  color: #991b1b !important;
  box-shadow: none !important;
}
.ocv-admin-users-empty {
  border-radius: 0 !important;
}
@media (max-width: 760px) {
  .ocv-admin-users-header,
  .ocv-admin-user-actions,
  .ocv-admin-user-delete-form {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .ocv-admin-user-new,
  .ocv-admin-user-edit,
  .ocv-admin-user-delete {
    width: 100%;
  }
}

/* OCV Slice 13 - multi-format export */
.ocv-export-form {
  display: grid;
  gap: 10px;
  align-items: start;
}

.ocv-export-format-fieldset {
  border: 1px solid var(--ocv-line);
  border-radius: 0;
  padding: 12px;
  margin: 0;
  background: rgba(255, 255, 255, .02);
}

.ocv-export-format-fieldset legend {
  padding: 0 6px;
  font-weight: 700;
}

.ocv-export-format-options {
  display: grid;
  gap: 8px;
}

.ocv-export-format-option {
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 32px;
}

.ocv-export-generate-button {
  justify-self: start;
  border-radius: 0 !important;
}

/* OCV slice 13 fix 1 - export radios inline */
.ocv-export-format-option {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 8px !important;
}
.ocv-export-format-radio {
  flex: 0 0 auto;
  margin: 0;
}
.ocv-export-format-label {
  display: inline !important;
}

/* OCV slice 13 fix 1 - export radios inline */
.ocv-export-format-option {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 8px !important;
}
.ocv-export-format-radio {
  flex: 0 0 auto;
  margin: 0;
}
.ocv-export-format-label {
  display: inline !important;
}

.ocv-admin-settings-card {
  border-radius: 0;
  max-width: 760px;
}

.ocv-admin-settings-form {
  display: grid;
  gap: 1rem;
}

.ocv-admin-settings-form label {
  display: grid;
  gap: 0.45rem;
  font-weight: 700;
}

.ocv-admin-settings-form select {
  border-radius: 0;
}

.ocv-admin-settings-save {
  border-radius: 0;
  justify-self: start;
}

/* OCV quality dashboard */
.ocv-quality-header { margin-bottom: 20px; }
.ocv-quality-section { margin: 0 0 26px; }
.ocv-quality-section > h2,
.ocv-quality-list-heading > h2 { margin: 0 0 12px; font-size: 22px; }
.ocv-quality-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.ocv-quality-card { border: 1px solid var(--ocv-line); background: var(--ocv-card); padding: 16px; box-shadow: var(--ocv-shadow-sm); display: grid; gap: 8px; min-height: 138px; }
.ocv-quality-card-label { color: var(--ocv-muted); font-size: 13px; font-weight: 850; }
.ocv-quality-card-value { font-size: clamp(28px, 4vw, 42px); line-height: 1; font-weight: 900; color: var(--ocv-text); }
.ocv-quality-card-help { color: var(--ocv-muted); font-size: 13px; line-height: 1.35; }
.ocv-quality-chip { display: inline-flex; align-items: center; justify-content: center; width: max-content; min-height: 24px; padding: 3px 8px; border: 1px solid var(--ocv-line); background: var(--ocv-card-soft); font-size: 12px; font-weight: 850; white-space: nowrap; }
.ocv-quality-chip-ok { color: var(--ocv-success); background: var(--ocv-success-bg); border-color: color-mix(in srgb, var(--ocv-success) 40%, var(--ocv-line)); }
.ocv-quality-chip-warning { color: #92400e; background: #fef3c7; border-color: #f59e0b; }
.ocv-quality-chip-attention { color: var(--ocv-primary); background: var(--ocv-primary-soft); border-color: var(--ocv-primary-border); }
.ocv-quality-chip-failed { color: #991b1b; background: #fee2e2; border-color: #b91c1c; }
.ocv-quality-chip-unknown { color: var(--ocv-muted); background: var(--ocv-card-soft); border-color: var(--ocv-line); }
.ocv-quality-card-failed { border-color: color-mix(in srgb, #b91c1c 45%, var(--ocv-line)); }
.ocv-quality-card-warning { border-color: color-mix(in srgb, #f59e0b 45%, var(--ocv-line)); }
.ocv-quality-card-attention { border-color: color-mix(in srgb, var(--ocv-primary) 45%, var(--ocv-line)); }
.ocv-quality-table-card { max-width: 100%; }
.ocv-quality-table th, .ocv-quality-table td { vertical-align: top; }
.ocv-quality-issues { margin: 0; padding-left: 18px; min-width: 190px; }
.ocv-quality-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.ocv-quality-detail-card { padding: 18px; }
.ocv-quality-detail-card h2 { margin-top: 0; font-size: 18px; }
.ocv-quality-dl { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(80px, 1fr); gap: 8px 14px; margin: 0; }
.ocv-quality-dl dt { color: var(--ocv-muted); font-weight: 850; }
.ocv-quality-dl dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
@media (max-width: 800px) { .ocv-quality-dl { grid-template-columns: 1fr; } }

/* OCV slice 17 fix 3 - system report security indicator */
.ocv-admin-task-button-with-alert,
.ocv-nav-link,
.ocv-top-admin-menu {
  position: relative;
}
.ocv-security-alert-dot {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  margin-left: 8px;
  border-radius: 999px;
  background: var(--ocv-danger);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}
.ocv-gear-alert-dot {
  position: absolute;
  top: -6px;
  right: -6px;
  margin-left: 0;
  width: 16px;
  height: 16px;
  font-size: 11px;
}
.ocv-nav-alert-dot {
  margin-left: auto;
  flex: 0 0 auto;
}
.ocv-system-report-card + .ocv-system-report-card { margin-top: 18px; }
.ocv-system-report-status-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ocv-system-report-status { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: 6px 12px; font-weight: 850; border: 1px solid var(--ocv-line); }
.ocv-system-report-status.is-alert { color: var(--ocv-danger); background: var(--ocv-danger-bg); border-color: color-mix(in srgb, var(--ocv-danger) 36%, var(--ocv-line)); }
.ocv-system-report-status.is-ok { color: var(--ocv-success); background: var(--ocv-success-bg); border-color: color-mix(in srgb, var(--ocv-success) 36%, var(--ocv-line)); }
.ocv-system-report-status.is-muted { color: var(--ocv-muted); background: var(--ocv-soft); }
.ocv-system-report-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 18px 0; }
.ocv-system-report-facts div { border: 1px solid var(--ocv-line); border-radius: 14px; padding: 12px; background: var(--ocv-soft); }
.ocv-system-report-facts dt { color: var(--ocv-muted); font-size: 13px; font-weight: 800; }
.ocv-system-report-facts dd { margin: 4px 0 0; font-size: 18px; font-weight: 900; }

/* Slice 19 fix6: align regulatory/privacy headings and status chips. */
.ocv-policy-pages > h3,
.ocv-privacy-assessment-summary > h3 {
  margin: 0 0 16px;
  font-size: 21px;
  line-height: 1.25;
  font-weight: 850;
  color: var(--ocv-text);
}

.ocv-policy-source-status {
  border: 1px solid color-mix(in srgb, var(--ocv-success) 38%, transparent);
  background: var(--ocv-success-bg);
  color: var(--ocv-success);
  border-radius: 0;
  padding: 12px 16px;
  margin: 0 0 18px;
  font-weight: 750;
}

.ocv-policy-source-link {
  margin: 4px 0 10px;
  font-size: 13px;
  overflow-wrap: anywhere;
  color: var(--ocv-muted);
}
.ocv-policy-source-link span {
  font-weight: 850;
  color: var(--ocv-text);
}

.ocv-privacy-check-list li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  margin: 6px 0;
  border: 1px solid var(--ocv-line);
  border-radius: 0;
}
.ocv-privacy-check-list li.is-present {
  border-color: color-mix(in srgb, var(--ocv-success) 40%, var(--ocv-line));
  background: var(--ocv-success-bg);
  color: var(--ocv-success);
}
.ocv-privacy-check-list li.is-missing {
  border-color: color-mix(in srgb, #f59e0b 44%, var(--ocv-line));
  background: #fffbeb;
  color: #92400e;
}

/* Slice 21 UX polish: dashboard filters, topbar buttons, dossier sorting and detail cards. */
.ocv-top-actions .ocv-icon-button,
.ocv-top-actions .ocv-admin-gear-link {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  font-size: 28px !important;
  display: inline-grid !important;
  place-items: center !important;
}
.ocv-top-actions .ocv-theme-icon-button [data-theme-icon],
.ocv-top-actions .ocv-admin-gear-link {
  line-height: 1 !important;
}
.ocv-top-actions .ocv-avatar-link {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
}
/* Slice 21 fix 3: keep the original quality card appearance while preserving filter links. */
.ocv-quality-card-link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.ocv-quality-card-link:hover,
.ocv-quality-card-link:focus-visible {
  color: inherit;
  text-decoration: none;
  border-color: color-mix(in srgb, var(--ocv-primary) 24%, var(--ocv-line));
  outline: 2px solid color-mix(in srgb, var(--ocv-primary) 25%, transparent);
  outline-offset: 2px;
}
.ocv-quality-card-link.is-active {
  border-color: color-mix(in srgb, var(--ocv-primary) 45%, var(--ocv-line));
  box-shadow: inset 4px 0 0 var(--ocv-primary), var(--ocv-shadow-sm);
}
.ocv-quality-list-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 12px;
}
.ocv-quality-filter-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-left: auto;
  flex-wrap: wrap;
}
.ocv-quality-filter-label {
  color: var(--ocv-muted);
  font-weight: 750;
}
.ocv-quality-reset-button {
  min-height: 40px;
  padding: 0 16px;
  white-space: nowrap;
}
@media (max-width: 760px) {
  .ocv-quality-list-heading {
    display: block;
  }
  .ocv-quality-filter-actions {
    justify-content: flex-start;
    margin: 8px 0 0;
  }
}
.ocv-sort-header {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: inherit;
  text-decoration: none;
  font-weight: 850;
}
.ocv-sort-header.is-active,
.ocv-sort-header:hover,
.ocv-sort-header:focus-visible {
  color: var(--ocv-accent);
}
.ocv-analysis-intro-details,
.ocv-privacy-analysis-details,
.ocv-policy-page-card details {
  border: 1px solid var(--ocv-line);
  background: var(--ocv-soft);
  padding: 12px 14px;
  margin: 14px 0;
}
.ocv-analysis-intro-details > summary,
.ocv-privacy-analysis-details > summary,
.ocv-policy-page-card summary {
  cursor: pointer;
  font-weight: 850;
}
.ocv-market-context-card,
.ocv-policy-pages,
.ocv-privacy-assessment-summary,
.ocv-nis2-indication,
.ocv-regulatory-findings,
.ocv-regulatory-overrule,
.ocv-failure-detail-card {
  padding: 20px;
  border: 1px solid var(--ocv-line);
  background: var(--ocv-card);
  border-radius: 0;
  box-shadow: var(--ocv-shadow-sm);
}
.ocv-safe-json-block {
  max-height: 520px;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid var(--ocv-line);
  background: var(--ocv-soft);
  padding: 14px;
}

.ocv-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* Slice 21 fix 2 - admin failures placement, audit filter alignment, rounded theme topbar button. */
.ocv-audit-filter-actions {
  align-items: center !important;
}
.ocv-audit-filter-actions button,
.ocv-audit-filter-actions .button,
.ocv-audit-filter-actions .ocv-audit-reset-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 10px 14px !important;
  font: inherit !important;
  font-size: inherit !important;
  line-height: 1.2 !important;
}
.ocv-top-actions .ocv-icon-button,
.ocv-top-actions .ocv-theme-icon-button,
.ocv-top-actions .ocv-admin-gear-link,
.ocv-top-actions .ocv-avatar-link {
  border-radius: 999px !important;
}
.ocv-top-actions .ocv-theme-icon-button {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
}
.ocv-top-actions .ocv-theme-icon-button [data-theme-icon] {
  display: inline-grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  font-size: 30px !important;
  line-height: 1 !important;
}

.ocv-finding-body-list {
  margin: 0.5rem 0 0.85rem 1.35rem;
  padding-left: 1.1rem;
}

.ocv-finding-body-list li {
  margin: 0.35rem 0;
  line-height: 1.55;
}

.ocv-source-card-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ocv-source-delete-form {
  margin: 0;
  display: inline-flex;
}
.ocv-source-delete-button {
  min-height: 32px;
  padding: 0 10px;
  font-size: 0.82rem;
  font-weight: 850;
  line-height: 1;
  box-shadow: none !important;
}
.ocv-source-delete-form .ocv-source-delete-button {
  background: #fee2e2 !important;
  border: 1px solid #991b1b !important;
  color: #991b1b !important;
}


/* OCV Cbw UX alignment */
.ocv-cbw-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.ocv-cbw-info-card {
  border: 1px solid var(--ocv-line);
  border-radius: 0;
  background: var(--ocv-card);
  box-shadow: var(--ocv-shadow-sm);
  padding: 18px 20px;
}

.ocv-cbw-info-card h3 {
  margin: 0 0 14px;
  font-size: 18px;
  letter-spacing: -.02em;
}

.ocv-cbw-definition-list {
  display: grid;
  gap: 12px;
  margin: 0;
}

.ocv-cbw-definition-list dt {
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.ocv-cbw-definition-list dd {
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}

.ocv-cbw-list {
  margin: 0;
  padding-left: 18px;
}

.ocv-cbw-list li + li {
  margin-top: 8px;
}

.ocv-cbw-inline-status {
  margin: 4px 0 18px;
}

.ocv-cbw-details-toggle {
  margin-top: 18px;
}

.ocv-cbw-detail-sections {
  display: grid;
  gap: 16px;
}

.ocv-cbw-panel .ocv-empty-state {
  margin-top: 18px;
}


/* OCV Cbw run options */
.ocv-cbw-start-form {
  display: grid;
  gap: 14px;
  width: 100%;
  margin-top: 18px;
}
.ocv-cbw-run-options {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}
.ocv-cbw-form-actions {
  display: grid;
  gap: 8px;
  justify-items: start;
}
.ocv-cbw-start-button {
  min-height: 44px;
  padding: 0 26px;
  font-size: 16px;
}
.ocv-cbw-start-button[disabled] {
  opacity: 0.65;
  cursor: not-allowed;
}
.ocv-cbw-run-help {
  margin: 0;
}
.ocv-cbw-restart-details {
  margin-top: 16px;
}
.ocv-cbw-restart-details .ocv-analysis-technical-body {
  display: grid;
  gap: 12px;
}
.ocv-cbw-checkbox,
.ocv-cbw-radio-option {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ocv-text);
  font-size: 14px;
  font-weight: 700;
}
.ocv-cbw-checkbox input,
.ocv-cbw-radio-option input {
  width: auto;
  min-height: auto;
}
.ocv-cbw-scan-mode-fieldset {
  border: 1px solid var(--ocv-line);
  border-radius: 0;
  padding: 10px 12px;
  display: grid;
  gap: 8px;
}
.ocv-cbw-scan-mode-fieldset legend {
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .03em;
  text-transform: uppercase;
  padding: 0 4px;
}

/* OCV Cbw status UX fix */
.ocv-cbw-status-card {
  margin-top: 18px;
  margin-bottom: 18px;
  width: 100%;
}
.ocv-cbw-status-card h3 {
  margin: 0 0 14px;
}
.ocv-cbw-status-definition-list {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.ocv-cbw-two-column-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.ocv-cbw-source-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: baseline;
}
.ocv-cbw-source-reference {
  color: var(--ocv-muted);
  font-size: 13px;
  font-weight: 750;
  overflow-wrap: anywhere;
}
.ocv-cbw-source-reference a {
  color: var(--ocv-primary);
}
@media (max-width: 900px) {
  .ocv-cbw-status-definition-list,
  .ocv-cbw-two-column-grid {
    grid-template-columns: 1fr;
  }
  .ocv-cbw-source-list li {
    grid-template-columns: 1fr;
  }
}

/* OCV Cbw evidence and quality warnings */
.ocv-cbw-quality-warning {
  margin-top: 16px;
}
.ocv-cbw-item-meta,
.ocv-cbw-source-ref-list {
  display: block;
  margin-top: 4px;
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 750;
}
.ocv-cbw-source-ref-chip {
  display: inline-block;
  margin: 2px 4px 0 0;
  padding: 2px 6px;
  border: 1px solid var(--ocv-line);
  border-radius: 999px;
  background: var(--ocv-soft-bg);
  color: var(--ocv-primary);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

/* OCV Cbw/Regulatory indication handoff */
.info {
  border: 1px solid #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
  border-radius: 10px;
  padding: 12px 16px;
  margin: 0 0 28px;
  font-weight: 750;
}
.ocv-regulatory-global-indication-banner,
.ocv-cbw-leading-result-banner {
  align-items: flex-start;
}
.ocv-regulatory-global-indication-banner a,
.ocv-cbw-leading-result-banner a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* OCV Cbw export controls */
.ocv-cbw-export-card {
  display: grid;
  gap: 10px;
}
.ocv-cbw-export-form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* OCV Cbw body text alignment */
.ocv-cbw-status-card .ocv-cbw-definition-list,
.ocv-cbw-two-column-grid .ocv-cbw-definition-list {
  font-size: 15px;
  line-height: 1.55;
}
.ocv-cbw-status-card .ocv-cbw-definition-list dd,
.ocv-cbw-two-column-grid .ocv-cbw-definition-list dd {
  font-size: 15px;
  line-height: 1.55;
}


/* OCV Cbw visual/layout slice - export tab, Cbw cards and stakeholder sources */
.ocv-square-warning,
.ocv-cbw-disclaimer {
  border-radius: 0 !important;
}

.ocv-cbw-status-definition-list {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: start !important;
  gap: 14px 18px !important;
}
.ocv-cbw-status-definition-list dt,
.ocv-cbw-status-definition-list dd {
  line-height: 1.45 !important;
  margin: 0 !important;
}
.ocv-cbw-status-definition-list dd {
  padding-top: 4px !important;
}
.ocv-cbw-status-definition-list [data-cbw-classification-label] {
  font-weight: 900 !important;
}

.ocv-cbw-supervisor-card {
  margin-top: 18px !important;
  width: 100% !important;
}

.regulation-card[open] .ocv-cbw-toggle-label::after {
  content: "" !important;
}
.ocv-toggle-close-label {
  display: none !important;
}
.regulation-card[open] .ocv-toggle-open-label {
  display: none !important;
}
.regulation-card[open] .ocv-toggle-close-label {
  display: inline !important;
}

.ocv-export-panel-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.ocv-export-card {
  min-width: 0 !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
.ocv-export-card .ocv-card-header {
  min-height: 96px !important;
}
.ocv-export-card .ocv-export-form,
.ocv-export-card .ocv-empty-state {
  margin-top: auto !important;
}
.ocv-radio-download-form,
.ocv-lifecycle-control-form {
  display: grid !important;
  gap: 12px !important;
  justify-items: start !important;
}
.ocv-export-format-options {
  display: grid !important;
  gap: 9px !important;
}
.ocv-export-format-option.is-disabled {
  opacity: .58 !important;
  cursor: not-allowed !important;
}
.ocv-export-generate-button,
.ocv-lifecycle-action-button,
.ocv-cbw-start-button,
.ocv-archive-button,
.ocv-danger-button,
.ocv-analysis-review-form input[type="submit"] {
  min-height: 44px !important;
  padding: 0 22px !important;
  font-size: 15px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.ocv-lifecycle-admin-grid {
  margin-bottom: 18px !important;
}
.ocv-lifecycle-control-form select {
  min-width: min(100%, 280px) !important;
}

.ocv-stakeholder-table-collapsible th,
.ocv-stakeholder-table-collapsible td {
  vertical-align: top !important;
}
.ocv-stakeholder-source-row td {
  padding-top: 0 !important;
  border-top: 0 !important;
  background: color-mix(in srgb, var(--ocv-card-soft) 72%, transparent) !important;
}
.ocv-stakeholder-source-details {
  border: 1px solid var(--ocv-line) !important;
  background: var(--ocv-card) !important;
}
.ocv-stakeholder-source-details > summary {
  padding: 10px 12px !important;
  cursor: pointer !important;
  color: var(--ocv-primary) !important;
  font-weight: 850 !important;
  list-style: none !important;
}
.ocv-stakeholder-source-details > summary::-webkit-details-marker {
  display: none !important;
}
.ocv-stakeholder-source-details > summary::before {
  content: "▸" !important;
  margin-right: 8px !important;
}
.ocv-stakeholder-source-details[open] > summary::before {
  content: "▾" !important;
}
.ocv-stakeholder-source-body {
  padding: 0 12px 12px !important;
}
.ocv-stakeholder-source-body .ocv-finding-sources {
  margin: 0 !important;
  padding-left: 20px !important;
}

@media (max-width: 980px) {
  .ocv-export-panel-grid {
    grid-template-columns: 1fr !important;
  }
}

/* OCV fix9: align tab action buttons and overview step cards. */
#panel-organization input[type="submit"],
#panel-sources input[type="submit"],
#panel-sources button:not(.ocv-switch):not(.ocv-icon-button),
#panel-analysis input[type="submit"],
#panel-analysis button:not(.ocv-switch):not(.ocv-icon-button),
#panel-regulatory input[type="submit"],
#panel-regulatory button:not(.ocv-switch):not(.ocv-icon-button),
.ocv-location-lookup-button,
.ocv-location-select-button,
.ocv-analysis-review-form input[type="submit"],
.ocv-regulatory-generate-button {
  min-height: 44px !important;
  padding: 0 22px !important;
  font-size: 15px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.ocv-regulatory-header-stack {
  align-items: start !important;
}

.ocv-regulatory-generate-form {
  justify-self: start !important;
}

.ocv-step-card {
  font-size: 15px !important;
  line-height: 1.42 !important;
  font-weight: 400 !important;
}

.ocv-step-card strong {
  font-size: 15px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}

.ocv-step-card span:not(.ocv-step-icon):not(.ocv-step-state) {
  font-weight: 400 !important;
}

.ocv-step-card span:last-child {
  font-size: 15px !important;
  line-height: 1.42 !important;
}

/* OCV MT-6 UX Fix1 - tenant admin layout alignment */
.ocv-tenant-admin-header {
  margin-bottom: 22px;
}

.ocv-tenant-admin-add-card {
  display: grid;
  gap: 16px;
  margin-bottom: 18px;
}

.ocv-tenant-admin-add-card h2 {
  margin: 0;
}

.ocv-tenant-admin-add-form {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(180px, 280px) auto;
  gap: 12px;
  align-items: end;
  margin: 0 !important;
  padding: 14px !important;
  border: 1px solid var(--ocv-line) !important;
  background: color-mix(in srgb, var(--ocv-bg-soft) 58%, var(--ocv-card)) !important;
  box-shadow: none !important;
}

.ocv-tenant-admin-add-form label,
.ocv-tenant-member-role-form label {
  display: grid;
  gap: 6px;
  color: var(--ocv-muted);
  font-size: 12px;
  font-weight: 850;
}

.ocv-tenant-admin-add-form input,
.ocv-tenant-admin-add-form select,
.ocv-tenant-member-role-form select {
  min-height: 40px;
  border-radius: 0 !important;
}

.ocv-tenant-admin-add-submit {
  min-height: 40px;
  align-self: end;
}

.ocv-tenant-member-grid {
  gap: 16px;
  align-items: stretch;
}

.ocv-tenant-member-card {
  gap: 16px;
}

.ocv-tenant-member-actions {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  border-top: 1px solid var(--ocv-line);
  padding-top: 14px;
}

.ocv-tenant-member-role-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ocv-tenant-member-revoke-form {
  display: flex;
  justify-content: flex-end;
  align-items: end;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ocv-tenant-member-revoke-form .ocv-admin-user-delete {
  min-height: 40px;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .ocv-tenant-admin-add-form,
  .ocv-tenant-member-actions,
  .ocv-tenant-member-role-form {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .ocv-tenant-member-revoke-form,
  .ocv-tenant-member-revoke-form .ocv-admin-user-delete,
  .ocv-tenant-admin-add-submit {
    width: 100%;
  }
}

/* MT-18A background process progress visibility */
.ocv-background-progress-card {
  border: 1px solid var(--ocv-border, #d8dee9);
  background: var(--ocv-card-soft, #f8fafc);
  padding: .9rem 1rem;
  margin: 1rem 0;
}

.ocv-background-progress-card.is-active,
.ocv-background-progress-card[data-analysis-status="pending"],
.ocv-background-progress-card[data-analysis-status="running"],
.ocv-background-progress-card[data-cbw-run-status="pending"],
.ocv-background-progress-card[data-cbw-run-status="running"] {
  border-left: 4px solid var(--ocv-primary, #2563eb);
}

.ocv-background-progress-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .5rem;
}

.ocv-background-progress-title {
  font-weight: 850;
  color: var(--ocv-text, #111827);
}

.ocv-background-progress-pill {
  display: inline-flex;
  align-items: center;
  padding: .25rem .6rem;
  border: 1px solid var(--ocv-border, #d8dee9);
  border-radius: 999px;
  background: var(--ocv-card, #ffffff);
  color: var(--ocv-muted, #475569);
  font-size: .88rem;
  font-weight: 750;
}

.ocv-background-progress {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  margin: .35rem 0 .45rem;
  padding: .45rem .65rem;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--ocv-primary-soft, #dbeafe) 60%, var(--ocv-card, #fff));
  color: var(--ocv-primary, #2563eb);
  font-weight: 750;
}

.ocv-background-progress[hidden] {
  display: none !important;
}

.ocv-background-progress-message {
  margin: .35rem 0 0;
  color: var(--ocv-muted, #475569);
}

/* MT-18C - source tab action panel and button spacing */
.ocv-source-action-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 14px 0 18px;
  padding: 16px;
  border: 1px solid var(--ocv-line);
  border-radius: 16px;
  background: color-mix(in srgb, var(--ocv-card-soft) 82%, var(--ocv-card));
}
.ocv-source-action-panel h3 {
  margin: 0 0 6px;
}
.ocv-source-action-panel p {
  margin: 0;
}
.ocv-source-action-buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.ocv-source-action-buttons .ocv-inline-form {
  margin: 0 !important;
}
@media (max-width: 780px) {
  .ocv-source-action-panel {
    align-items: stretch;
    flex-direction: column;
  }
  .ocv-source-action-buttons {
    justify-content: flex-start;
  }
}

.ocv-source-row-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ocv-source-candidate-fetch-form, .ocv-source-delete-form { margin: 0; }
.ocv-source-candidate-fetch-button { white-space: nowrap; }

/* MT-18N - organization tab address-only layout */
#panel-organization .ocv-location-layout-grid {
  grid-template-columns: minmax(360px, 0.95fr) minmax(480px, 1.2fr);
  gap: 22px;
  align-items: start;
}
.ocv-location-current-panel,
.ocv-location-search-panel {
  min-width: 0;
}
.ocv-location-empty-state {
  margin-top: 18px;
}
@media (max-width: 980px) {
  #panel-organization .ocv-location-layout-grid {
    grid-template-columns: 1fr;
  }
}

/* MT-19B tenant theme management */
.ocv-theme-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
}

.ocv-theme-form-grid label,
.ocv-theme-form-grid select,
.ocv-theme-form-grid input {
  width: 100%;
}

.ocv-theme-form-grid input[type="color"] {
  min-height: 2.75rem;
  padding: 0.2rem;
}

.ocv-theme-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.ocv-theme-reset-form {
  margin-top: 1rem;
}

.ocv-theme-preview-header {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.ocv-theme-preview-pill {
  border: 1px solid var(--ocv-line);
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
  font-size: 0.85rem;
}

.ocv-theme-preview {
  border: 1px solid var(--ocv-line);
  display: grid;
  grid-template-columns: minmax(120px, 180px) 1fr;
  margin-top: 1rem;
  min-height: 220px;
  overflow: hidden;
  font-family: var(--preview-font);
}

.ocv-theme-preview-sidebar {
  background: var(--preview-primary);
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem;
}

.ocv-theme-preview-logo {
  background: var(--preview-secondary);
  border-radius: 0.75rem;
  font-weight: 700;
  padding: 0.75rem;
  text-align: center;
}

.ocv-theme-preview-logo-img {
  display: block;
  max-width: 100%;
  max-height: 48px;
  object-fit: contain;
  margin: 0 auto;
}

.ocv-theme-preview-main {
  background: var(--ocv-card);
  padding: 1rem;
}

.ocv-theme-preview-main button {
  background: var(--preview-primary);
  border: 0;
  border-radius: 0.65rem;
  color: #fff;
  font-weight: 700;
  padding: 0.65rem 1rem;
}

.ocv-theme-preview-strip {
  background: var(--preview-accent);
  border: 1px solid color-mix(in srgb, var(--preview-primary) 24%, var(--ocv-line));
  border-radius: 0.75rem;
  margin-top: 1rem;
  padding: 1rem;
}

/* MT-19C tenant logo handling */
.ocv-logo-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

.ocv-theme-logo-card {
  margin-top: 18px;
}

.ocv-theme-logo-current {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 12px 0;
}

.ocv-theme-logo-preview {
  max-width: 180px;
  max-height: 96px;
  object-fit: contain;
  border: 1px solid var(--ocv-line);
  border-radius: 10px;
  background: var(--ocv-bg);
  padding: 10px;
}

.ocv-theme-logo-empty {
  border: 1px dashed var(--ocv-line);
  border-radius: 10px;
  padding: 12px;
  color: var(--ocv-muted);
  background: var(--ocv-bg);
}

.ocv-theme-logo-form,
.ocv-theme-logo-remove-form {
  margin-top: 12px;
}
