:root {
  --cop-blue: #283380;
  --cop-orange: #f39321;
  --cop-green: #1f8f5f;
  --cop-violet: #6a45b8;
  --cop-ink: #243042;
  --cop-muted: #667085;
  --cop-line: #d9e0ea;
  --cop-bg: #f6f8fb;
  --cop-card: #ffffff;
}

.cop-tool-error { padding: 14px 16px; border: 1px solid #f0b8b8; background: #fff5f5; color: #8a1f1f; border-radius: 12px; }
.cop-assessment, .cop-admin-shell { font-family: "Open Sans", "PT Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--cop-ink); }

.cop-assessment-wrap { border: 1px solid var(--cop-line); border-radius: 24px; overflow: hidden; background: var(--cop-card); box-shadow: 0 18px 45px rgba(29, 41, 57, 0.12); margin: 24px auto; max-width: 1120px; }
.cop-width-narrow { max-width: 760px; }
.cop-width-standard { max-width: 960px; }
.cop-width-wide { max-width: 1120px; }
.cop-width-full { max-width: none; width: 100%; }
.cop-radius-none { border-radius: 0; }
.cop-radius-small { border-radius: 10px; }
.cop-radius-medium { border-radius: 16px; }
.cop-radius-large { border-radius: 24px; }
.cop-radius-pill { border-radius: 32px; }
.cop-shadow-none { box-shadow: none; }
.cop-shadow-soft { box-shadow: 0 18px 45px rgba(29, 41, 57, 0.12); }
.cop-shadow-strong { box-shadow: 0 26px 70px rgba(29, 41, 57, 0.22); }
.cop-text-small { font-size: 14px; }
.cop-text-medium { font-size: 16px; }
.cop-text-large { font-size: 18px; }

.cop-scene { position: relative; overflow: hidden; padding: 34px; color: #fff; background: linear-gradient(135deg, var(--scene-a, #283380), var(--scene-b, #f39321)); }
.cop-scene-size-small { padding: 22px 28px; }
.cop-scene-size-medium { padding: 30px 34px; }
.cop-scene-size-large { padding: 42px 34px; }
.cop-scene-ornament-rings::after { content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px; border-radius: 999px; border: 42px solid rgba(255, 255, 255, .12); }
.cop-scene-ornament-dots::after { content: ""; position: absolute; right: 24px; top: 18px; width: 180px; height: 180px; background-image: radial-gradient(rgba(255,255,255,.28) 2px, transparent 2px); background-size: 18px 18px; opacity: .55; }
.cop-scene-ornament-wave::after { content: ""; position: absolute; right: -70px; bottom: -110px; width: 380px; height: 230px; border-radius: 50%; background: rgba(255,255,255,.12); transform: rotate(-9deg); }
.cop-scene__kicker { display: inline-flex; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .9; }
.cop-scene h2, .cop-scene h3 { color: #fff; margin: 10px 0 8px; font-weight: 800; line-height: 1.15; }
.cop-scene h2 { font-size: clamp(30px, 4vw, 44px); }
.cop-scene p { max-width: 840px; margin: 0; opacity: .92; line-height: 1.7; }

.cop-theme-navy-orange { --scene-a: #283380; --scene-b: #f39321; --accent: #f39321; --accent-2: #283380; }
.cop-theme-green-community { --scene-a: #0f7a55; --scene-b: #78c850; --accent: #1f8f5f; --accent-2: #0b5b44; }
.cop-theme-sunset { --scene-a: #db4d2f; --scene-b: #f3a321; --accent: #e05b38; --accent-2: #9b2d1d; }
.cop-theme-violet { --scene-a: #382a83; --scene-b: #a35fd1; --accent: #6a45b8; --accent-2: #382a83; }
.cop-theme-sky { --scene-a: #0a69a8; --scene-b: #35b9d7; --accent: #0a7ac2; --accent-2: #07598f; }
.cop-theme-aqua { --scene-a: #006d77; --scene-b: #45c4b0; --accent: #0e9384; --accent-2: #005f67; }
.cop-theme-red { --scene-a: #7f1d1d; --scene-b: #f97316; --accent: #ea580c; --accent-2: #7f1d1d; }
.cop-theme-indigo { --scene-a: #312e81; --scene-b: #818cf8; --accent: #6366f1; --accent-2: #312e81; }
.cop-theme-mono { --scene-a: #334155; --scene-b: #94a3b8; --accent: #475569; --accent-2: #1e293b; }

.cop-assessment-body { padding: 22px; background: var(--cop-bg); }
.cop-density-compact .cop-assessment-body { padding: 14px; }
.cop-density-spacious .cop-assessment-body { padding: 32px; }

.cop-btn, .cop-assessment button, .cop-admin-builder button { border: 0; border-radius: 12px; padding: 10px 14px; font-weight: 800; cursor: pointer; background: var(--accent, #283380); color: #fff; box-shadow: 0 8px 18px rgba(29, 41, 57, .14); transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease; }
.cop-btn:hover, .cop-assessment button:hover, .cop-admin-builder button:hover { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(29, 41, 57, .18); }
.cop-assessment button:disabled, .cop-admin-builder button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.cop-btn.secondary, .cop-assessment button.secondary, .cop-admin-builder button.secondary { background: #eef2f7; color: var(--cop-ink); box-shadow: none; }
.cop-btn.danger, .cop-admin-builder button.danger { background: #e5484d; }
.cop-btn.small, .cop-admin-builder button.small { padding: 7px 10px; border-radius: 10px; font-size: 12px; }
.cop-buttonstyle-pill button { border-radius: 999px; }
.cop-buttonstyle-square button { border-radius: 4px; }
.cop-buttonstyle-ghost button { background: transparent; color: var(--accent-2, #283380); border: 1px solid var(--accent, #283380); box-shadow: none; }
.cop-buttonstyle-ghost button.secondary { color: var(--cop-ink); border-color: #cfd7e4; }

.cop-progress { width: 100%; height: 10px; border-radius: 999px; overflow: hidden; background: #e6ebf2; margin-bottom: 18px; }
.cop-progress span { display: block; height: 100%; width: 0; background: var(--accent, #283380); transition: width .25s ease; }
.cop-progress-steps { display: inline-flex; gap: 7px; align-items: center; margin: 0 0 18px; background: #fff; border: 1px solid var(--cop-line); border-radius: 999px; padding: 7px 13px; font-weight: 900; }

.cop-question-card, .cop-result-card, .cop-category-card { background: #fff; border: 1px solid var(--cop-line); border-radius: 22px; padding: 22px; }
.cop-density-compact .cop-question-card, .cop-density-compact .cop-result-card, .cop-density-compact .cop-category-card { padding: 16px; border-radius: 16px; }
.cop-density-spacious .cop-question-card, .cop-density-spacious .cop-result-card, .cop-density-spacious .cop-category-card { padding: 32px; border-radius: 26px; }
.cop-intro-card .cop-count { color: var(--cop-muted); }
.cop-question-meta { color: var(--cop-muted); font-weight: 800; margin-bottom: 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; }
.cop-question-title { font-size: 24px; line-height: 1.25; font-weight: 900; margin: 0 0 10px; }
.cop-question-help { margin: 0 0 16px; color: var(--cop-muted); }

.cop-disclaimer { margin-bottom: 16px; padding: 16px 18px; border-radius: 18px; background: #fff; border: 1px solid var(--cop-line); }
.cop-disclaimer-title { font-weight: 900; margin-bottom: 6px; color: var(--accent-2, #283380); }
.cop-disclaimer p { margin: 0; line-height: 1.65; }
.cop-disclaimer-soft { background: #fff; }
.cop-disclaimer-accent { background: color-mix(in srgb, var(--accent, #283380) 10%, #fff); border-color: color-mix(in srgb, var(--accent, #283380) 30%, #fff); }
.cop-disclaimer-border { border-left: 6px solid var(--accent, #283380); }
.cop-disclaimer-plain { background: transparent; border-style: dashed; }

.cop-answer-list { display: grid; gap: 10px; }
.cop-answer { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border: 1px solid #d8e0ea; border-radius: 16px; background: #fbfcfe; cursor: pointer; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.cop-answer:hover { border-color: var(--accent, #283380); transform: translateY(-1px); }
.cop-answer input { margin-top: 4px; }
.cop-answer.selected { border-color: var(--accent, #283380); background: color-mix(in srgb, var(--accent, #283380) 10%, #fff); }
.cop-answerstyle-buttons .cop-answer-list { display: flex; flex-wrap: wrap; }
.cop-answerstyle-buttons .cop-answer { min-width: 145px; justify-content: center; align-items: center; }
.cop-answerstyle-buttons .cop-answer input { position: absolute; opacity: 0; pointer-events: none; }
.cop-answerstyle-minimal .cop-answer { border-color: transparent; background: transparent; border-bottom: 1px solid #e4e9f2; border-radius: 0; }

.cop-nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; }
.cop-results-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); gap: 16px; }
.cop-results-single { grid-template-columns: 1fr; }
.cop-results-profile-first .cop-category-card { order: -1; }
.cop-resultstyle-minimal .cop-result-card, .cop-resultstyle-minimal .cop-category-card { box-shadow: none; border-color: #edf1f6; }
.cop-resultstyle-report .cop-result-card, .cop-resultstyle-report .cop-category-card { border-radius: 8px; }
.cop-score { font-size: 54px; line-height: 1; font-weight: 900; color: var(--accent-2, #283380); margin: 8px 0 12px; }
.cop-category-list { display: grid; gap: 10px; }
.cop-category-item strong { display: block; }
.cop-category-bar { height: 9px; background: #e6ebf2; border-radius: 999px; overflow: hidden; margin-top: 8px; }
.cop-category-bar span { display: block; height: 100%; background: var(--accent, #283380); }
.cop-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }

.cop-json-panel { border: 1px solid var(--cop-line); border-radius: 14px; padding: 10px 14px; margin: 12px 0 18px; background: #fff; }
.cop-json-panel summary { cursor: pointer; font-weight: 900; }
.cop-json-textarea { margin: 12px 0 8px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
.cop-admin-builder { padding: 18px; border: 1px solid var(--cop-line); border-radius: 18px; background: #fff; }
.cop-admin-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; border-bottom: 1px solid var(--cop-line); padding-bottom: 8px; }
.cop-admin-tabs button { background: #eef2f7; color: var(--cop-ink); box-shadow: none; }
.cop-admin-tabs button.is-active, .cop-admin-tabs button[aria-selected="true"] { background: var(--cop-blue); color: #fff; }
.cop-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.cop-admin-field label { display: block; font-weight: 800; margin-bottom: 6px; }
.cop-admin-builder input, .cop-admin-builder select, .cop-admin-builder textarea { width: 100%; box-sizing: border-box; border: 1px solid #cfd7e4; border-radius: 10px; padding: 9px 10px; background: #fff; color: var(--cop-ink); font: inherit; }
.cop-admin-card { border: 1px solid var(--cop-line); border-radius: 18px; background: #f8fafc; padding: 14px; margin: 12px 0; }
.cop-admin-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: center; margin: 8px 0; }
.cop-admin-answer-row { display: grid; grid-template-columns: 1fr 90px auto; gap: 8px; align-items: center; margin: 8px 0; }
.cop-admin-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.cop-admin-check { display: flex; gap: 8px; align-items: flex-start; padding: 10px; background: #fff; border: 1px solid #dfe6ef; border-radius: 12px; font-weight: 700; }
.cop-admin-check input { width: auto; margin-top: 2px; }
.cop-admin-check em { display: block; font-style: normal; font-weight: 400; color: var(--cop-muted); font-size: 12px; margin-top: 3px; }
.cop-admin-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cop-admin-preview-note { padding: 12px 14px; background: #f8fafc; border: 1px solid var(--cop-line); border-radius: 12px; margin-bottom: 12px; }
.cop-admin-preview-json { overflow: auto; background: #0f172a; color: #e2e8f0; padding: 14px; border-radius: 12px; }

@media (max-width: 760px) {
  .cop-scene { padding: 24px 18px; }
  .cop-assessment-body { padding: 14px; }
  .cop-results-grid, .cop-admin-grid, .cop-admin-row, .cop-admin-answer-row, .cop-admin-checks { grid-template-columns: 1fr; }
  .cop-question-title { font-size: 20px; }
  .cop-answerstyle-buttons .cop-answer { width: 100%; }
}

@media print {
  .cop-toolbar, .cop-nav, .cop-admin-builder { display: none !important; }
  .cop-assessment-wrap { box-shadow: none; border: 0; }
  .cop-scene { color: #000; background: #fff; border-bottom: 1px solid #ddd; }
  .cop-scene h2, .cop-scene h3 { color: #000; }
}


/* =========================================================
   Denys Sobol Unified Interface Patch
   Scope: visual layer only. Logic, post types, shortcodes and JSON structures are unchanged.
   ========================================================= */
:root {
  --ds-blue: #283380;
  --ds-blue-900: #202965;
  --ds-orange: #f39321;
  --ds-ink: #172033;
  --ds-muted: #667085;
  --ds-line: #d7deea;
  --ds-soft-line: #e7edf6;
  --ds-bg: #f5f7fb;
  --ds-card: #ffffff;
  --ds-success: #16a34a;
  --ds-danger: #dc2626;
  --ds-radius-xs: 8px;
  --ds-radius-sm: 12px;
  --ds-radius-md: 16px;
  --ds-radius-lg: 22px;
  --ds-shadow-sm: 0 6px 18px rgba(23,32,51,.08);
  --ds-shadow-md: 0 18px 45px rgba(23,32,51,.12);
  --ds-focus: 0 0 0 3px rgba(243,147,33,.22);
}

.cop-document-tool,
.cop-assessment,
.cop-admin-shell,
.cop-admin-builder {
  --cop-blue: var(--ds-blue);
  --cop-orange: var(--ds-orange);
  --cop-ink: var(--ds-ink);
  --cop-muted: var(--ds-muted);
  --cop-line: var(--ds-line);
  --cop-bg: var(--ds-bg);
  --cop-card: var(--ds-card);
}

.cop-admin-shell,
.cop-admin-builder,
.cop-doc-wrap,
.cop-assessment-wrap {
  border-radius: var(--ds-radius-lg) !important;
}

.cop-admin-builder,
.cop-json-panel,
.cop-raw-json-box,
.cop-admin-card,
.cop-question-card,
.cop-result-card,
.cop-category-card,
.cop-block,
.cop-budget-shell,
.cop-table-wrap {
  border-color: var(--ds-line) !important;
  box-shadow: none;
}

.cop-admin-field label,
.cop-field-label,
.cop-question-meta,
.cop-scene__kicker,
.cop-builder-hero span {
  color: var(--ds-blue) !important;
  font-weight: 800 !important;
  letter-spacing: .04em;
}

.cop-admin-builder input,
.cop-admin-builder select,
.cop-admin-builder textarea,
.cop-document-tool input,
.cop-document-tool select,
.cop-document-tool textarea,
.cop-assessment input,
.cop-assessment select,
.cop-assessment textarea {
  border: 1px solid var(--ds-line) !important;
  border-radius: var(--ds-radius-sm) !important;
  background: #fff !important;
  color: var(--ds-ink) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7) !important;
}

.cop-admin-builder input:focus,
.cop-admin-builder select:focus,
.cop-admin-builder textarea:focus,
.cop-document-tool input:focus,
.cop-document-tool select:focus,
.cop-document-tool textarea:focus,
.cop-assessment input:focus,
.cop-assessment select:focus,
.cop-assessment textarea:focus {
  border-color: var(--ds-orange) !important;
  box-shadow: var(--ds-focus) !important;
  outline: none !important;
}

.cop-admin-tabs {
  gap: 8px !important;
  border-bottom: 1px solid var(--ds-soft-line) !important;
}

.cop-admin-tabs button,
.cop-admin-actions button,
.cop-doc-toolbar button,
.cop-toolbar button,
.cop-nav button,
.cop-answerstyle-buttons .cop-answer,
.cop-budget-control button,
.cop-budget-add-row button,
.cop-budget-add-table button,
.cop-budget-final-row button {
  border-radius: 999px !important;
  font-weight: 800 !important;
}

.cop-admin-tabs button.is-active,
.cop-admin-tabs button[aria-selected="true"] {
  background: var(--ds-blue) !important;
  color: #fff !important;
  box-shadow: var(--ds-shadow-sm) !important;
}

.cop-admin-actions button,
.cop-doc-toolbar button,
.cop-toolbar button,
.cop-nav button {
  min-height: 38px;
}

.cop-admin-actions button:not(.danger),
.cop-doc-toolbar button:not(.danger),
.cop-toolbar button:not(.danger),
.cop-nav button:not(.danger) {
  background: var(--ds-orange) !important;
  color: #fff !important;
  border-color: transparent !important;
}

.cop-admin-actions button.secondary,
.cop-doc-toolbar button.secondary,
.cop-toolbar button.secondary,
.cop-nav button.secondary {
  background: #eef3fb !important;
  color: var(--ds-ink) !important;
}

.cop-admin-actions button.danger,
.cop-doc-toolbar button.danger,
.cop-toolbar button.danger,
.cop-nav button.danger,
button.danger {
  background: var(--ds-danger) !important;
  color: #fff !important;
  border-color: transparent !important;
}

.cop-doc-table th,
.cop-budget-table th {
  background: var(--ds-blue) !important;
  color: #fff !important;
  font-weight: 900 !important;
}

.cop-budget-table,
.cop-doc-table {
  border-radius: var(--ds-radius-md) !important;
  overflow: hidden;
}

.cop-budget-section-row,
.cop-budget-subsection-row,
.cop-budget-subtotal-row,
.cop-budget-section-total-row,
.cop-budget-final-row {
  background: #f8fafc;
}

.cop-budget-final-row {
  background: #d9ecff !important;
}

.cop-edit-icon,
.cop-icon-button,
.cop-budget-control button,
.cop-structure-actions button {
  width: 34px;
  height: 34px;
  min-width: 34px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 999px !important;
}

.cop-scene,
.cop-builder-hero {
  border-radius: var(--ds-radius-lg) var(--ds-radius-lg) 0 0;
}

.cop-json-textarea {
  border-radius: var(--ds-radius-md) !important;
  background: #0f172a !important;
  color: #e5e7eb !important;
}
