@font-face {
  font-family: "Manrope";
  src: url("../fonts/manrope-latin-ext-variable.woff2") format("woff2-variations");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root {
  --bs-body-font-family: "Manrope", sans-serif;
  --app-bg: #f4f7fb;
  --surface: #ffffff;
  --surface-muted: #f8fafc;
  --line: #e2e8f0;
  --text: #0f172a;
  --text-muted: #64748b;
  --brand: #0f766e;
  --brand-dark: #134e4a;
  --brand-soft: #e6f5f2;
  --accent: #d97706;
  --danger-soft: #fee2e2;
  --success-soft: #dcfce7;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 8px 24px rgba(15, 23, 42, 0.08);
}

html,
body {
  height: 100%;
}
.skip-link { position:fixed; z-index:2000; top:.5rem; left:.5rem; padding:.65rem .9rem; border-radius:8px; color:white; background:#0f172a; transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline:3px solid rgba(13,148,136,.35); outline-offset:2px; }

body {
  background: radial-gradient(1200px 600px at 10% -10%, #dbeafe 0%, transparent 60%), var(--app-bg);
  color: var(--text);
  font-family: "Manrope", sans-serif;
}

.app-topbar {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
  position: sticky;
  top: 0;
  z-index: 1030;
}

.app-topbar .navbar-brand {
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.2px;
}

.app-subtitle {
  font-size: 0.78rem;
  color: var(--text-muted);
}

.app-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 1rem 1.25rem 2rem;
}

.container,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl {
  max-width: none !important;
  width: 100%;
}

.app-nav {
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.app-nav .nav-link {
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 0.45rem 0.8rem;
  color: #334155;
  font-weight: 500;
}

.app-nav .nav-link:hover {
  background: var(--surface-muted);
  border-color: var(--line);
}

.app-nav .nav-link.active {
  color: var(--brand);
  background: var(--brand-soft);
  border-color: #bfdbfe;
}

.card {
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
  border-radius: 14px;
}

.table {
  --bs-table-bg: transparent;
}

.table thead th {
  color: var(--text-muted);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  border-bottom-width: 1px;
}

.table td,
.table th {
  border-color: var(--line);
  vertical-align: middle;
}

.form-control,
.form-select {
  border-radius: 10px;
  border-color: #cbd5e1;
}

.btn {
  border-radius: 10px;
}

.btn-primary {
  --bs-btn-bg: var(--brand);
  --bs-btn-border-color: var(--brand);
  --bs-btn-hover-bg: var(--brand-dark);
  --bs-btn-hover-border-color: var(--brand-dark);
  box-shadow: 0 6px 16px rgba(15, 118, 110, 0.2);
}

.alert {
  border-radius: 12px;
}

.badge {
  border-radius: 999px;
}

.app-footer {
  color: var(--text-muted);
  font-size: 0.85rem;
  border-top: 1px solid var(--line);
  padding: 0.8rem 0 1.2rem;
  margin-top: 1rem;
}

.text-muted {
  color: var(--text-muted) !important;
}

.question-card {
  border-left-width: 5px;
}

.question-card.criticality-high {
  border-left-color: #dc2626;
}

.question-card.criticality-medium {
  border-left-color: #d97706;
}

.question-card.criticality-low {
  border-left-color: #475569;
}

.criticality-pill {
  min-width: 120px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0.35rem 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-end;
}

.criticality-label {
  font-size: 0.7rem;
  color: var(--text-muted);
  line-height: 1;
}

.criticality-value {
  font-weight: 700;
  font-size: 0.86rem;
  line-height: 1.1;
}

.criticality-pill.criticality-high {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

.criticality-pill.criticality-medium {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

.criticality-pill.criticality-low {
  background: #f8fafc;
  border-color: #cbd5e1;
  color: #334155;
}

.sync-status {
  font-weight: 700;
  border: 1px solid transparent;
}

.sync-status-running {
  color: #92400e;
  background: #fef3c7;
  border-color: #fcd34d;
}

.sync-status-success {
  color: #166534;
  background: #dcfce7;
  border-color: #86efac;
}

.sync-status-failed {
  color: #991b1b;
  background: #fee2e2;
  border-color: #fca5a5;
}

.sync-status-skipped {
  color: #334155;
  background: #e2e8f0;
  border-color: #cbd5e1;
}

.sync-status-default {
  color: #1f2937;
  background: #e5e7eb;
  border-color: #d1d5db;
}

/* Primary navigation */
.app-topbar {
  margin: 0;
  min-height: 72px;
}

.app-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 185px;
  text-decoration: none;
}

.app-brand > span:last-child,
.company-menu-copy {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.app-brand small,
.company-menu-copy small {
  color: var(--text-muted);
  font-size: 0.68rem;
  font-weight: 500;
  margin-top: 0.2rem;
}

.brand-mark,
.company-avatar {
  width: 36px;
  height: 36px;
  border-radius: 11px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  color: white;
  background: linear-gradient(145deg, var(--brand), #0d9488);
  box-shadow: 0 7px 18px rgba(15, 118, 110, 0.24);
  font-family: "Manrope", sans-serif;
  font-weight: 700;
}

.app-nav {
  align-items: center;
  gap: 0.15rem;
}

.app-nav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  padding: 0.5rem 0.65rem;
  font-size: 0.9rem;
  white-space: nowrap;
}

.app-nav .nav-link.active {
  color: var(--brand-dark);
  background: var(--brand-soft);
  border-color: #99d5cd;
}

.nav-step-number,
.nav-step-icon {
  width: 22px;
  height: 22px;
  border-radius: 7px;
  display: inline-grid;
  place-items: center;
  background: #eef2f6;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 800;
}

.nav-link.active .nav-step-number,
.nav-link.active .nav-step-icon {
  background: var(--brand);
  color: white;
}

.app-admin-nav {
  margin-left: 0.35rem;
  padding-left: 0.35rem;
  border-left: 1px solid var(--line);
}

.app-admin-nav button {
  background: transparent;
}

.company-menu-button {
  border: 1px solid var(--line);
  background: var(--surface);
  border-radius: 12px;
  min-height: 46px;
  padding: 0.35rem 0.75rem 0.35rem 0.4rem;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--text);
}

.company-menu-button:hover {
  border-color: #94a3b8;
  box-shadow: var(--shadow-sm);
}

.company-avatar {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  text-transform: uppercase;
}

.company-menu-copy {
  max-width: 170px;
  text-align: left;
}

.company-menu-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.85rem;
}

/* Shared page language */
.eyebrow {
  color: var(--brand);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.dashboard-title {
  font-family: "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: -0.025em;
}

/* Dashboard */
.dashboard-page,
.questionnaire-page {
  max-width: 1540px;
  margin-inline: auto;
}

.dashboard-hero {
  position: relative;
  overflow: hidden;
  min-height: 172px;
  border-radius: 22px;
  padding: clamp(1.4rem, 3vw, 2.25rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  color: white;
  background: #123b3a;
  box-shadow: 0 18px 45px rgba(15, 48, 47, 0.18);
}

.dashboard-hero::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -120px;
  top: -210px;
  border-radius: 50%;
  border: 80px solid rgba(255,255,255,0.05);
  pointer-events: none;
}

.dashboard-hero > * {
  position: relative;
  z-index: 1;
}

.dashboard-hero .eyebrow { color: #99f6e4; }
.dashboard-hero .dashboard-title { font-size: clamp(2rem, 4vw, 3.15rem); }
.dashboard-lead { color: #cbdad8; margin-top: 0.65rem; }
.dashboard-status-critical { background: linear-gradient(120deg, #53251f, #8b2d22); }
.dashboard-status-attention { background: linear-gradient(120deg, #123b3a, #155e58); }
.dashboard-status-good { background: linear-gradient(120deg, #154532, #13734d); }

.status-beacon {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.34rem 0.65rem;
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  font-size: 0.78rem;
  font-weight: 700;
}

.status-beacon > span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fbbf24;
  box-shadow: 0 0 0 4px rgba(251,191,36,0.15);
}

.dashboard-status-good .status-beacon > span { background: #86efac; }
.dashboard-status-critical .status-beacon > span { background: #fca5a5; }

.workflow-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.workflow-step {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 78px;
  padding: 0.9rem 1rem;
  color: var(--text);
  text-decoration: none;
  border-right: 1px solid var(--line);
}

.workflow-step:last-child { border-right: 0; }
.workflow-step:hover { background: var(--surface-muted); color: var(--brand-dark); }
.workflow-step small { display: block; color: var(--text-muted); margin-top: 0.15rem; }
.workflow-number { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: #eef2f6; color: #64748b; font-weight: 800; }
.workflow-step.is-complete .workflow-number { color: transparent; background: var(--success-soft); }
.workflow-step.is-complete .workflow-number::after { content: "✓"; color: #166534; position: absolute; }
.workflow-step.is-current { box-shadow: inset 0 -3px var(--brand); background: #f5fbfa; }
.workflow-step.is-current .workflow-number { background: var(--brand); color: white; }

.metric-card {
  min-height: 148px;
  height: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 1.15rem;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.metric-label { color: var(--text-muted); font-size: 0.8rem; font-weight: 700; }
.metric-value { margin-top: 0.45rem; font-family: "Manrope", sans-serif; font-size: 2.5rem; font-weight: 700; line-height: 1; }
.metric-value span { font-family: "Manrope", sans-serif; font-size: 1rem; margin-left: 0.15rem; color: var(--text-muted); }
.metric-meta { margin-top: 0.65rem; color: var(--text-muted); font-size: 0.75rem; }
.metric-progress { height: 5px; margin-top: 0.85rem; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
.metric-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), #2dd4bf); }

.dashboard-panel { overflow: hidden; }
.panel-heading { min-height: 78px; padding: 1.15rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); }
.panel-link { color: var(--brand); font-size: 0.82rem; font-weight: 700; text-decoration: none; }
.count-chip { padding: 0.3rem 0.6rem; border-radius: 999px; background: var(--surface-muted); color: var(--text-muted); font-size: 0.75rem; }
.priority-list, .gap-list, .impact-list, .legal-mini-list { display: flex; flex-direction: column; }
.priority-item { display: flex; align-items: center; gap: 0.85rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); }
.priority-item:last-child { border-bottom: 0; }
.priority-item p { font-size: 0.82rem; }
.priority-marker { width: 4px; height: 38px; border-radius: 4px; background: #94a3b8; }
.task-critical .priority-marker { background: #dc2626; }
.task-high .priority-marker { background: #d97706; }
.task-medium .priority-marker { background: var(--brand); }
.task-low .priority-marker { background: #64748b; }
.gap-item { display: grid; grid-template-columns: auto 1fr auto; gap: 0.7rem; align-items: center; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); color: var(--text); text-decoration: none; font-size: 0.88rem; }
.gap-item:hover { background: #fff8f6; color: #991b1b; }
.gap-dot { width: 9px; height: 9px; border-radius: 50%; background: #dc2626; }
.impact-item { display: grid; grid-template-columns: auto 1fr auto; gap: 0.75rem; align-items: start; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); }
.impact-item p, .legal-mini-list small { display: block; margin: 0.2rem 0 0; color: var(--text-muted); font-size: 0.78rem; }
.impact-level { min-width: 58px; text-align: center; padding: 0.24rem 0.45rem; border-radius: 7px; background: #e2e8f0; font-size: 0.67rem; font-weight: 800; text-transform: uppercase; }
.impact-high { color: #991b1b; background: #fee2e2; }
.impact-medium { color: #92400e; background: #fef3c7; }
.impact-count { color: var(--text-muted); font-size: 0.72rem; white-space: nowrap; }
.legal-mini-list > div { padding: 0.9rem 1.25rem; border-bottom: 1px solid var(--line); }
.empty-state { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2.5rem 1.25rem; color: var(--text-muted); }
.empty-state p { margin: 0.4rem 0 0; font-size: 0.82rem; }
.empty-state.compact { padding: 1.5rem 1rem; }
.empty-icon { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 0.7rem; border-radius: 50%; color: #166534; background: var(--success-soft); font-weight: 900; }

/* Questionnaire */
.questionnaire-header { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.assessment-status { border-radius: 999px; padding: 0.3rem 0.65rem; font-size: 0.72rem; font-weight: 800; }
.status-inprogress { color: #115e59; background: #ccfbf1; }
.status-inreview { color: #92400e; background: #fef3c7; }
.status-approved { color: #166534; background: #dcfce7; }
.questionnaire-progress-card { display: grid; grid-template-columns: auto minmax(180px, 1fr) auto; align-items: center; gap: 1.25rem; padding: 0.85rem 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-sm); }
.progress-copy { display: flex; flex-direction: column; min-width: 210px; }
.progress-copy span { color: var(--text-muted); font-size: 0.75rem; }
.questionnaire-progress { height: 8px; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
.questionnaire-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), #2dd4bf); }
.assessment-actions form { margin: 0; }
.questionnaire-filterbar { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, .7fr) 160px 160px auto auto; gap: 0.6rem; align-items: center; padding: 0.75rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-sm); }
.questionnaire-filterbar .form-control, .questionnaire-filterbar .form-select { min-height: 42px; border-color: transparent; background-color: var(--surface-muted); }
.questionnaire-workspace { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.questionnaire-sections { position: sticky; top: 88px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-sm); }
.section-nav-heading { display: flex; align-items: center; justify-content: space-between; padding: 0.85rem 1rem; border-bottom: 1px solid var(--line); font-size: 0.76rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }
.section-nav-heading small { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 8px; background: var(--surface-muted); }
.section-nav-item { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 0.3rem 0.5rem; padding: 0.8rem 0.9rem; color: #334155; border-bottom: 1px solid var(--line); text-decoration: none; }
.section-nav-item:hover { background: var(--surface-muted); color: var(--brand-dark); }
.section-nav-item.active { background: var(--brand-soft); color: var(--brand-dark); }
.section-nav-item.active::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--brand); }
.section-nav-title { font-size: 0.78rem; font-weight: 700; line-height: 1.3; }
.section-nav-meta { color: var(--text-muted); font-size: 0.7rem; }
.section-mini-progress { grid-column: 1 / -1; height: 3px; overflow: hidden; border-radius: 999px; background: #dbe4e8; }
.section-mini-progress span { display: block; height: 100%; background: var(--brand); }
.questionnaire-content { min-width: 0; }
.content-heading { min-height: 72px; display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.8rem; }
.question-list { display: flex; flex-direction: column; gap: 0.8rem; padding-bottom: 96px; }
.question-work-card { position: relative; overflow: hidden; border: 1px solid var(--line); border-left: 4px solid #94a3b8; border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-sm); transition: box-shadow .18s ease, transform .18s ease; }
.question-work-card:hover { box-shadow: var(--shadow-md); }
.question-work-card.criticality-high { border-left-color: #dc2626; }
.question-work-card.criticality-medium { border-left-color: #d97706; }
.question-work-card.criticality-low { border-left-color: #64748b; }
.question-work-card.is-answered { background: linear-gradient(90deg, rgba(220,252,231,.32), transparent 22%); }
.question-main { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 0.8rem; padding: 1.15rem 1.15rem 0.85rem; }
.question-number { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: #f1f5f9; color: #475569; font-family: "Manrope", sans-serif; font-weight: 800; }
.question-copy h3 { max-width: 960px; margin: 0.4rem 0 1rem; font-size: 1.03rem; line-height: 1.45; font-weight: 700; }
.question-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem 0.7rem; color: var(--text-muted); font-size: 0.7rem; font-weight: 700; }
.question-meta > span:not(.criticality-dot) { padding-right: 0.65rem; border-right: 1px solid var(--line); }
.question-meta > span:last-child { border-right: 0; }
.criticality-dot { width: 7px; height: 7px; border-radius: 50%; background: #d97706; }
.criticality-high .criticality-dot { background: #dc2626; }
.criticality-low .criticality-dot { background: #64748b; }
.answered-label { color: #166534; }
.answer-choice { display: flex; gap: 0.6rem; }
.answer-option { min-width: 116px; padding: 0.55rem 1rem; border: 1px solid #cbd5e1; border-radius: 10px; text-align: center; font-size: 0.86rem; font-weight: 800; cursor: pointer; background: white; transition: all .15s ease; }
.answer-option span { margin-right: 0.25rem; }
.answer-option:hover { transform: translateY(-1px); border-color: #94a3b8; }
.btn-check:focus-visible + .answer-option { outline: 3px solid rgba(15,118,110,.25); outline-offset: 2px; }
.btn-check:checked + .answer-yes { color: #166534; border-color: #4ade80; background: #dcfce7; }
.btn-check:checked + .answer-no { color: #991b1b; border-color: #f87171; background: #fee2e2; }
.btn-check:disabled + .answer-option { cursor: not-allowed; opacity: .6; }
.question-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding: 0.75rem 1.15rem 0.85rem 4.3rem; border-top: 1px solid #edf1f5; background: rgba(248,250,252,.62); }
.evidence-button { display: inline-flex; align-items: center; gap: 0.3rem; color: #475569; font-size: 0.76rem; font-weight: 800; text-decoration: none; }
.evidence-button.has-evidence { color: #166534; }
.question-details { flex: 1 1 340px; }
.question-details summary { color: var(--brand-dark); font-size: 0.76rem; font-weight: 800; cursor: pointer; }
.question-details-body { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin-top: 0.75rem; padding: 0.9rem; border-radius: 10px; background: white; border: 1px solid var(--line); }
.question-details-body p { margin: 0.25rem 0 0; color: var(--text-muted); font-size: 0.78rem; line-height: 1.5; }
.source-fragment a { display: inline-block; font-weight: 700; }
.questionnaire-savebar { position: sticky; bottom: 12px; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: -76px; padding: 0.85rem 1rem; border: 1px solid #b9d8d4; border-radius: 14px; background: rgba(255,255,255,.94); backdrop-filter: blur(12px); box-shadow: 0 12px 34px rgba(15,23,42,.16); }
.questionnaire-savebar > div:first-child { display: flex; flex-direction: column; }
.questionnaire-savebar span { color: var(--text-muted); font-size: 0.72rem; }
.save-state { color: #92400e !important; font-weight: 800; }

@media (max-width: 1199.98px) {
  .app-nav { align-items: stretch; margin-top: 1rem; }
  .app-nav .nav-link { width: 100%; }
  .app-admin-nav { margin-left: 0; padding-left: 0; border-left: 0; }
  .company-nav { padding: 0.75rem 0; border-top: 1px solid var(--line); }
  .questionnaire-filterbar { grid-template-columns: 1fr 1fr 1fr; }
  .filter-search { grid-column: span 2; }
}

@media (max-width: 991.98px) {
  .workflow-strip { grid-template-columns: 1fr 1fr; }
  .workflow-step:nth-child(2) { border-right: 0; }
  .workflow-step:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .questionnaire-workspace { grid-template-columns: 1fr; }
  .questionnaire-sections { position: static; display: grid; grid-template-columns: repeat(2, 1fr); }
  .section-nav-heading { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
  .app-main { padding-inline: 0.8rem; }
  .dashboard-hero, .questionnaire-header { align-items: stretch; flex-direction: column; }
  .dashboard-hero { border-radius: 17px; }
  .workflow-strip { grid-template-columns: 1fr; }
  .workflow-step { border-right: 0; border-bottom: 1px solid var(--line); }
  .workflow-step:nth-child(3) { border-bottom: 1px solid var(--line); }
  .metric-card { min-height: 132px; padding: 0.9rem; }
  .metric-value { font-size: 2rem; }
  .priority-item { align-items: flex-start; flex-wrap: wrap; }
  .priority-item .btn { margin-left: 1rem; }
  .questionnaire-progress-card { grid-template-columns: 1fr; gap: 0.7rem; }
  .questionnaire-filterbar { grid-template-columns: 1fr 1fr; }
  .filter-search { grid-column: 1 / -1; }
  .questionnaire-sections { display: none; }
  .question-main { grid-template-columns: 34px minmax(0, 1fr); padding: 0.9rem; }
  .question-number { width: 32px; height: 32px; }
  .answer-choice { display: grid; grid-template-columns: 1fr 1fr; }
  .answer-option { min-width: 0; }
  .question-tools { padding-left: 3.8rem; }
  .questionnaire-savebar { bottom: 6px; align-items: stretch; flex-direction: column; }
  .questionnaire-savebar > div:last-child { justify-content: space-between; }
}

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

/* Shared workspaces */
.profile-wizard, .applicable-acts-page, .report-page, .review-page, .registry-page { max-width: 1700px; margin-inline: auto; }
.page-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.page-heading h1 { margin:.15rem 0 .35rem; font-family:"Manrope", sans-serif; font-size:clamp(2rem,3vw,3rem); font-weight:700; letter-spacing:-.035em; }
.page-heading p { max-width:780px; margin:0; color:var(--text-muted); }
.card-panel { overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-sm); }
.panel-body { padding:1.35rem; }
.panel-heading h2 { margin:.12rem 0 0; font-size:1.2rem; }
.panel-heading p { margin:.35rem 0 0; color:var(--text-muted); font-size:.84rem; }
.step-kicker, .source-chip { color:var(--brand); font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.source-chip { padding:.35rem .55rem; border-radius:8px; background:var(--brand-soft); letter-spacing:0; text-transform:none; }
.icon-button { width:36px; height:36px; display:inline-grid; place-items:center; flex:none; border:1px solid #b6c7d2; border-radius:10px; color:var(--brand); background:white; text-decoration:none; }
.icon-button:hover { color:white; border-color:var(--brand); background:var(--brand); }
.icon-button.danger { color:#b91c1c; border-color:#fecaca; }
.inline-filter { max-width:760px; display:flex; gap:.6rem; }

/* Profile wizard */
.profile-completion { min-width:180px; display:grid; grid-template-columns:auto 1fr; align-items:baseline; gap:0 .45rem; }
.profile-completion strong { font-family:"Manrope", sans-serif; font-size:1.7rem; }
.profile-completion span { color:var(--text-muted); font-size:.75rem; }
.profile-completion div { grid-column:1/-1; height:5px; overflow:hidden; border-radius:9px; background:#dbe4e8; }
.profile-completion i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--brand),#2dd4bf); }
.wizard-layout { display:grid; grid-template-columns:270px minmax(0,1fr); gap:1.25rem; align-items:start; }
.wizard-steps { position:sticky; top:88px; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-sm); }
.wizard-step { position:relative; width:100%; display:grid; grid-template-columns:38px 1fr; gap:.1rem .75rem; padding:1rem; border:0; border-bottom:1px solid var(--line); color:#334155; text-align:left; background:white; }
.wizard-step:last-child { border-bottom:0; }
.wizard-step > span { grid-row:1/3; width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:#64748b; background:#eef2f6; font-weight:800; }
.wizard-step strong { font-size:.82rem; }.wizard-step small { color:var(--text-muted); font-size:.68rem; }
.wizard-step:hover { background:var(--surface-muted); }.wizard-step.active { background:#f0fdfa; color:var(--brand-dark); }.wizard-step.active::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--brand); }.wizard-step.active > span { color:white; background:var(--brand); }
.wizard-panel { border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-sm); }
.wizard-panel .panel-heading { padding:1.25rem 1.35rem; }
.registry-lookup { padding:1rem; border:1px dashed #a7c5c1; border-radius:12px; background:#f4fbfa; }
.signal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; }
.signal-option { display:flex; align-items:start; gap:.7rem; padding:.9rem; border:1px solid var(--line); border-radius:12px; cursor:pointer; }
.signal-option:has(input:checked) { border-color:#5eead4; background:#f0fdfa; }
.signal-option input { margin-top:.25rem; }.signal-option span { display:flex; flex-direction:column; }.signal-option small { color:var(--text-muted); font-size:.72rem; }
.wizard-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--line); }.wizard-actions > span { color:var(--text-muted); font-size:.75rem; }
.evrk-picker { padding:1rem; border:1px solid var(--line); border-radius:12px; background:var(--surface-muted); }.evrk-search-wrap { position:relative; }
.evrk-results { position:absolute; z-index:20; top:calc(100% + 5px); width:100%; max-height:330px; overflow:auto; border:1px solid #b9c9d3; border-radius:12px; background:white; box-shadow:var(--shadow-md); }
.evrk-results button { width:100%; display:grid; grid-template-columns:70px 1fr; gap:.7rem; padding:.8rem; border:0; border-bottom:1px solid var(--line); text-align:left; background:white; }.evrk-results button:hover,.evrk-results button:focus { outline:none; background:var(--brand-soft); }.evrk-results span,.evrk-results small { display:block; }.evrk-results small { margin-top:.12rem; color:var(--text-muted); }.evrk-empty { padding:1rem; color:var(--text-muted); }
.selected-activities { overflow:hidden; border:1px solid var(--line); border-radius:12px; }.activity-row { display:grid; grid-template-columns:70px 1fr auto; gap:1rem; align-items:center; padding:.85rem 1rem; border-bottom:1px solid var(--line); }.activity-row:last-child{border-bottom:0}.activity-row small{display:block;color:var(--text-muted);}.activity-code{font-weight:800;color:var(--brand);}
.trigger-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.trigger-field { padding:1rem; border:1px solid var(--line); border-radius:12px; }.trigger-field small { display:block; margin-top:.4rem; color:var(--text-muted); }
.readiness-card { display:flex; align-items:center; gap:1.2rem; padding:1.25rem; border-radius:14px; background:#fff7ed; }.readiness-card.ready{background:#ecfdf5}.readiness-score{font-family:"Manrope", sans-serif;font-size:2.5rem;font-weight:800}.readiness-card p{margin:.2rem 0 0;color:var(--text-muted)}.missing-fields{display:flex;flex-wrap:wrap;gap:.5rem}.missing-fields h3{width:100%;font-size:1rem}.missing-fields span{padding:.35rem .6rem;border-radius:8px;background:#fef3c7;color:#92400e;font-size:.76rem}.profile-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.profile-summary>div{display:flex;flex-direction:column;padding:1rem;border:1px solid var(--line);border-radius:12px}.profile-summary span{color:var(--text-muted);font-size:.72rem}

/* Applicable acts */
.applicability-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:.85rem; }.summary-tile { display:grid; grid-template-columns:auto 1fr; gap:0 .8rem; padding:1rem 1.15rem; border:1px solid var(--line); border-radius:14px; color:var(--text); background:white; text-decoration:none; }.summary-tile>span{grid-row:1/3;font-family:"Manrope", sans-serif;font-size:2rem;font-weight:800}.summary-tile small{color:var(--text-muted)}.summary-tile.active{border-color:var(--brand);box-shadow:inset 0 -3px var(--brand)}.summary-tile.applicable>span{color:#15803d}.summary-tile.unknown>span{color:#b45309}.summary-tile.excluded>span{color:#64748b}
.legal-applicability-list{display:flex;flex-direction:column;gap:.75rem}.legal-applicability-card{display:grid;grid-template-columns:110px minmax(0,1fr) 150px;gap:1rem;padding:1.15rem;border:1px solid var(--line);border-left:4px solid #94a3b8;border-radius:14px;background:white;box-shadow:var(--shadow-sm)}.legal-applicability-card.status-applicable{border-left-color:#16a34a}.legal-applicability-card.status-unknown{border-left-color:#d97706}.legal-act-status{font-size:.76rem;font-weight:800}.legal-act-status span{display:inline-block;width:8px;height:8px;margin-right:.35rem;border-radius:50%;background:#94a3b8}.status-applicable .legal-act-status span{background:#16a34a}.status-unknown .legal-act-status span{background:#d97706}.legal-act-meta{display:flex;flex-wrap:wrap;gap:.4rem}.legal-act-meta span{padding:.2rem .45rem;border-radius:6px;color:#475569;background:#f1f5f9;font-size:.68rem;font-weight:700}.legal-act-main h2{margin:.55rem 0 .3rem;font-size:1.05rem}.legal-act-main>p{margin:0;color:var(--text-muted);font-size:.8rem}.legal-act-side{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.legal-act-side>div{display:flex;flex-direction:column;text-align:right}.legal-act-side>div strong{font-size:1.4rem}.legal-act-side>div span{color:var(--text-muted);font-size:.66rem}.legal-rationale{margin-top:.8rem}.legal-rationale summary{color:var(--brand);font-size:.76rem;font-weight:800;cursor:pointer}.rationale-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.8rem;padding:1rem;border-radius:10px;background:var(--surface-muted)}.rationale-grid h3{font-size:.8rem;text-transform:uppercase}.criterion-result{display:grid;grid-template-columns:75px 1fr;gap:.5rem;margin:.5rem 0}.criterion-result small,.requirement-preview small{display:block;color:var(--text-muted)}.criterion-state{height:max-content;padding:.2rem .35rem;border-radius:6px;background:#e2e8f0;font-size:.65rem;text-align:center}.criterion-state.applicable{color:#166534;background:#dcfce7}.criterion-state.unknown{color:#92400e;background:#fef3c7}.requirement-preview{padding:.5rem 0;border-bottom:1px solid var(--line)}.recommendation-strip{display:grid;grid-template-columns:260px 1fr;gap:2rem;padding:1.25rem;border-radius:16px;color:white;background:#123b3a}.recommendation-strip h2{margin:.2rem 0}.recommendation-strip p{margin:0 0 .5rem;color:#d4e5e2}

/* Report */
.executive-summary{display:grid;grid-template-columns:280px minmax(0,1fr) 190px;gap:1.5rem;padding:1.5rem;border-radius:18px;color:white;background:linear-gradient(120deg,#123b3a,#155e58);box-shadow:0 18px 40px rgba(15,48,47,.18)}.executive-score{display:flex;flex-direction:column}.executive-score>span,.executive-score p{color:#cbdad8;font-size:.75rem}.executive-score>strong{font-family:"Manrope", sans-serif;font-size:3.6rem;line-height:1}.executive-score small{font-size:1rem}.score-track{height:6px;margin:.6rem 0;border-radius:10px;background:rgba(255,255,255,.18)}.score-track i{display:block;height:100%;border-radius:inherit;background:#5eead4}.executive-copy h2{margin:.75rem 0 .4rem}.executive-copy p{color:#cbdad8}.executive-copy a{color:#99f6e4;font-weight:800}.executive-metrics{display:grid;gap:.6rem}.executive-metrics>div{display:flex;align-items:baseline;justify-content:space-between;padding:.65rem;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.06)}.executive-metrics span{font-size:1.2rem;font-weight:800}.executive-metrics small{color:#cbdad8}.report-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.7fr);gap:1rem;align-items:start}.action-plan-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:1rem;padding:1.1rem;border-bottom:1px solid var(--line)}.action-plan-row:last-child{border-bottom:0}.action-number{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#f1f5f9;font-weight:800}.action-plan-row h3{margin:.45rem 0 .25rem;font-size:.95rem}.action-plan-row p{margin:0;color:var(--text-muted);font-size:.78rem}.priority-pill,.action-status{padding:.2rem .45rem;border-radius:6px;background:#fef3c7;color:#92400e;font-size:.65rem;font-weight:800}.priority-high .priority-pill{color:#991b1b;background:#fee2e2}.priority-low .priority-pill{color:#475569;background:#e2e8f0}.action-status{color:#475569;background:#f1f5f9}.action-meta{display:flex;gap:.8rem;margin-top:.55rem;color:var(--text-muted);font-size:.68rem}.coverage-list>div{display:grid;grid-template-columns:26px 1fr auto;gap:.55rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--line);font-size:.75rem}.coverage-state{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-weight:800}.coverage-state.covered{color:#166534;background:#dcfce7}.coverage-state.missing{color:#991b1b;background:#fee2e2}

/* Legal review */
.review-stats{display:flex;gap:.5rem}.review-stats span{padding:.65rem .8rem;border:1px solid var(--line);border-radius:10px;background:white;font-size:.76rem}.review-toolbar{display:flex;justify-content:space-between;gap:1rem}.review-toolbar .input-group{max-width:520px}.review-workspace{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:720px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:white;box-shadow:var(--shadow-sm)}.review-queue{max-height:calc(100vh - 190px);overflow:auto;border-right:1px solid var(--line)}.review-queue-header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid var(--line);background:#f8fafc}.review-queue-item{display:block;padding:.9rem 1rem;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}.review-queue-item:hover,.review-queue-item.active{background:#f0fdfa}.review-queue-item.active{box-shadow:inset 4px 0 var(--brand)}.review-queue-item>div{display:flex;justify-content:space-between}.review-queue-item>strong{display:block;margin-top:.45rem;font-size:.75rem}.review-queue-item p{margin:.25rem 0;font-size:.8rem;line-height:1.35}.review-queue-item small{color:var(--text-muted)}.risk-score{padding:.18rem .38rem;border-radius:6px;font-weight:800}.risk-high{color:#991b1b;background:#fee2e2}.risk-medium{color:#92400e;background:#fef3c7}.risk-low{color:#475569;background:#e2e8f0}.review-status{color:var(--text-muted);font-size:.68rem}.review-document{min-width:0}.review-document-header{display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--line)}.review-document-header h2{margin:.5rem 0 .2rem;font-size:1.15rem}.review-document-header p{margin:0;color:var(--text-muted);font-size:.76rem}.review-columns{display:grid;grid-template-columns:1fr 1.1fr;max-height:calc(100vh - 330px);overflow:hidden}.review-columns>section{overflow:auto;padding:1rem}.review-columns>section:first-child{border-right:1px solid var(--line)}.review-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:.7rem}.review-section-title h3{margin:0;font-size:.86rem;text-transform:uppercase}.review-section-title span{padding:.2rem .45rem;border-radius:6px;background:#f1f5f9;font-size:.7rem}.review-finding{padding:.8rem;margin-bottom:.6rem;border:1px solid var(--line);border-radius:10px}.review-finding>div{display:flex;align-items:start;gap:.5rem}.review-finding strong{font-size:.8rem}.review-finding p{margin:.5rem 0;color:#475569;font-size:.75rem}.review-finding summary{color:var(--brand);font-size:.7rem;cursor:pointer}.review-finding blockquote{margin:.5rem 0 0;padding:.6rem;border-left:3px solid var(--brand);background:#f8fafc;font-size:.72rem}.confidence-chip{padding:.18rem .35rem;border-radius:5px;color:#115e59;background:#ccfbf1;font-size:.62rem}.source-scroll article{padding:.8rem 0;border-bottom:1px solid var(--line)}.source-scroll article>span{color:var(--brand);font-size:.7rem;font-weight:800}.source-scroll h4{margin:.2rem 0;font-size:.85rem}.source-scroll p,.source-scroll pre{white-space:pre-wrap;font-family:inherit;font-size:.75rem;line-height:1.55}.review-decisionbar{padding:.8rem 1rem;border-top:1px solid var(--line);background:#f8fafc}.review-decisionbar form{display:flex;align-items:center;gap:.6rem}.review-decisionbar form>span{margin-right:auto;color:var(--text-muted);font-size:.75rem}

/* Registry */
.registry-count{display:flex;flex-direction:column;align-items:end}.registry-count strong{font-family:"Manrope", sans-serif;font-size:2rem}.registry-count span{color:var(--text-muted);font-size:.72rem}.registry-filter{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(5,minmax(120px,.55fr)) auto;gap:.65rem;align-items:end;padding:1rem;border:1px solid var(--line);border-radius:14px;background:white;box-shadow:var(--shadow-sm)}.registry-filter .form-label{font-size:.72rem;font-weight:800}.filter-actions{display:flex;gap:.45rem}.active-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;color:var(--text-muted);font-size:.75rem}.filter-chip,.type-chip{padding:.25rem .45rem;border-radius:6px;background:#e8eef3;color:#475569;font-size:.68rem}.registry-table-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:white;box-shadow:var(--shadow-sm)}.registry-table{table-layout:fixed;font-size:.78rem}.registry-table .col-code{width:115px}.registry-table .col-type{width:100px}.registry-table .col-title{width:auto}.registry-table .col-date{width:112px}.registry-table .col-adopted{width:180px}.registry-table .col-number{width:105px}.registry-table .col-status{width:95px}.registry-table .col-updated{width:140px}.registry-table .col-action{width:54px}.registry-table thead{position:sticky;top:72px;z-index:2;background:#edf3f6}.registry-table thead th{padding:.7rem .65rem;text-transform:none;letter-spacing:0}.registry-table thead a{display:flex;justify-content:space-between;gap:.2rem;color:#334155;text-decoration:none}.registry-table td{padding:.65rem}.registry-table tbody tr:hover{background:#f8fbfc}.registry-table tr.future-effective{background:#fff9e8}.registry-title{display:-webkit-box;overflow:hidden;color:var(--text);font-weight:700;text-decoration:none;-webkit-line-clamp:2;-webkit-box-orient:vertical}.registry-title:hover{color:var(--brand)}.future-note{display:block;margin-top:.2rem;color:#a16207}.truncate-cell{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.registry-status{display:inline-block;padding:.25rem .45rem;border-radius:7px;color:#166534;background:#dcfce7;font-size:.68rem;font-weight:800}.registry-status.status-inactive{color:#475569;background:#e2e8f0}.registry-pagination{display:flex;align-items:center;justify-content:space-between}

@media (max-width:1199.98px){.registry-filter{grid-template-columns:repeat(3,1fr)}.filter-search-wide{grid-column:span 2}.filter-actions{align-self:end}.review-columns{grid-template-columns:1fr}.source-document{display:none}.legal-applicability-card{grid-template-columns:100px minmax(0,1fr)}.legal-act-side{grid-column:2;justify-content:flex-start}.report-grid{grid-template-columns:1fr}.report-side{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.report-side .mt-3{margin-top:0!important}}
@media (max-width:991.98px){.wizard-layout{grid-template-columns:1fr}.wizard-steps{position:static;display:grid;grid-template-columns:repeat(4,1fr)}.wizard-step{grid-template-columns:34px 1fr;border-right:1px solid var(--line);border-bottom:0}.wizard-step small{display:none}.signal-grid{grid-template-columns:1fr}.executive-summary{grid-template-columns:220px 1fr}.executive-metrics{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.review-workspace{grid-template-columns:260px minmax(0,1fr)}}
@media (max-width:767.98px){.page-heading{align-items:stretch;flex-direction:column;gap:1rem}.profile-completion,.registry-count{align-items:start}.wizard-steps{display:flex;overflow:auto}.wizard-step{min-width:62px;display:block;text-align:center}.wizard-step strong{display:none}.wizard-step>span{margin:auto}.trigger-grid,.profile-summary,.applicability-summary,.rationale-grid,.report-side{grid-template-columns:1fr}.wizard-actions{align-items:stretch;flex-direction:column}.wizard-actions .d-flex{width:100%}.wizard-actions .btn{flex:1}.inline-filter{display:grid;grid-template-columns:1fr auto}.legal-applicability-card{grid-template-columns:1fr;padding:1rem}.legal-act-side{grid-column:1;justify-content:space-between}.executive-summary{grid-template-columns:1fr}.executive-metrics{grid-template-columns:1fr}.action-plan-row{grid-template-columns:34px 1fr}.action-plan-row>.btn{grid-column:2;width:max-content}.review-toolbar{align-items:stretch;flex-direction:column}.review-toolbar .input-group{max-width:none}.review-workspace{display:block}.review-queue{max-height:260px;border-right:0;border-bottom:1px solid var(--line)}.review-columns{max-height:none}.review-document-header{flex-direction:column}.review-decisionbar form{align-items:stretch;flex-direction:column}.registry-filter{grid-template-columns:1fr 1fr}.filter-search-wide,.filter-actions{grid-column:1/-1}.registry-table-card{border:0;background:transparent;box-shadow:none}.registry-table colgroup,.registry-table thead{display:none}.registry-table,.registry-table tbody,.registry-table tr,.registry-table td{display:block;width:100%}.registry-table tr{position:relative;margin-bottom:.7rem;padding:.7rem;border:1px solid var(--line);border-radius:12px;background:white}.registry-table td{display:grid;grid-template-columns:118px 1fr;padding:.3rem;border:0}.registry-table td::before{content:attr(data-label);color:var(--text-muted);font-size:.68rem;font-weight:800}.registry-table td:last-child{position:absolute;right:.7rem;top:.55rem;width:auto}.registry-table td:nth-child(3){padding-right:3rem}.registry-table td:nth-child(3)::before{display:none}.registry-title{-webkit-line-clamp:3}.registry-pagination span{font-size:.72rem}}

/* Evidence-grounded answer suggestions */
.ai-suggest-button{color:#0f766e;border-color:#99d5cd;background:#f0fdfa}.ai-suggest-button:hover{color:white;background:#0f766e}.answer-suggestion{margin-top:.8rem;padding:1rem;border:1px solid #99d5cd;border-radius:12px;background:linear-gradient(135deg,#f0fdfa,#f8fafc)}.answer-suggestion>div:first-child{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.answer-suggestion>div:first-child span{color:#0f766e;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.answer-suggestion>div:first-child strong{padding:.2rem .5rem;border-radius:7px;color:#134e4a;background:#ccfbf1}.answer-suggestion>div:first-child small{color:var(--text-muted)}.answer-suggestion p{margin:.65rem 0;color:#334155;font-size:.8rem}.answer-suggestion>small{display:block;margin-top:.65rem;color:var(--text-muted);font-size:.68rem}

/* Professional minimalist visual system */
:root {
  --app-bg:#f5f7f8;
  --surface:#fff;
  --surface-muted:#f7f9f9;
  --line:#dfe6e8;
  --text:#17212b;
  --text-muted:#697681;
  --brand:#0b6b61;
  --brand-dark:#07564e;
  --brand-soft:#e9f5f2;
  --shadow-sm:0 1px 2px rgba(20,32,43,.035);
  --shadow-md:0 10px 30px rgba(20,32,43,.07);
}
body { background:var(--app-bg); color:var(--text); font-family:"Manrope",sans-serif; font-size:15px; font-weight:400; letter-spacing:-.006em; }
button,input,optgroup,select,textarea,.btn,.form-control,.form-select,.table { font-family:inherit; }
.app-main { padding:1.25rem clamp(1rem,2.2vw,2.5rem) 2.5rem; }
.btn { min-height:40px; padding:.5rem .9rem; border-radius:8px; font-weight:600; box-shadow:none; }
.btn-sm { min-height:32px; padding:.3rem .65rem; border-radius:7px; }
.btn-primary { --bs-btn-bg:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-hover-bg:var(--brand-dark); --bs-btn-hover-border-color:var(--brand-dark); --bs-btn-active-bg:var(--brand-dark); --bs-btn-active-border-color:var(--brand-dark); color:#fff!important; border-color:var(--brand)!important; background-color:var(--brand)!important; box-shadow:none; }
.btn-primary:hover,.btn-primary:focus { border-color:var(--brand-dark)!important; background-color:var(--brand-dark)!important; }
.btn-outline-primary { --bs-btn-color:var(--brand); --bs-btn-border-color:#91bdb7; --bs-btn-hover-bg:var(--brand); --bs-btn-hover-border-color:var(--brand); color:var(--brand)!important; border-color:#91bdb7!important; background:white!important; }
.btn-outline-primary:hover,.btn-outline-primary:focus { color:white!important; border-color:var(--brand)!important; background:var(--brand)!important; }
.form-control,.form-select { min-height:44px; border-color:#cbd5d8; border-radius:8px; background-color:white; box-shadow:none; }
.form-control:focus,.form-select:focus { border-color:#62a39b; box-shadow:0 0 0 3px rgba(11,107,97,.11); }
.card,.card-panel,.metric-card,.dashboard-panel { border-color:var(--line)!important; border-radius:12px; box-shadow:var(--shadow-sm); }
.eyebrow,.step-kicker { color:var(--brand); font-size:.68rem; font-weight:800; letter-spacing:.105em; }
.dashboard-title,.page-heading h1,.metric-value,.executive-score>strong,.registry-count strong,.profile-completion strong { font-family:inherit; }

/* Header and navigation */
.app-topbar { min-height:68px; padding:.45rem clamp(.9rem,1.6vw,1.75rem); border-bottom:1px solid #dce4e5; background:rgba(255,255,255,.97); backdrop-filter:blur(16px); box-shadow:0 2px 12px rgba(20,32,43,.035); }
.app-topbar .container-fluid { padding:0; gap:1rem; }
.app-brand { min-width:218px; padding:0; }
.brand-lockup { display:flex; align-items:center; width:218px; color:var(--text); }
.brand-mark { display:block; flex:0 0 auto; width:40px; height:40px; }
.brand-wordmark { display:flex; flex-direction:column; margin-left:.55rem; font-size:.83rem; font-weight:700; line-height:.9; letter-spacing:-.035em; }
.brand-wordmark strong { font:inherit; }
.brand-wordmark strong:last-child { margin-top:.23rem; color:var(--brand); }
.brand-rule { flex:1; min-width:26px; height:1px; margin-left:.65rem; background:#dce4e5; }
.app-nav { gap:.1rem; }
.app-nav .nav-link { min-height:38px; padding:.45rem .62rem; border:0; border-radius:8px; color:#44515d; font-size:.82rem; font-weight:600; }
.app-nav .nav-link:hover { border:0; color:var(--text); background:#f1f4f4; }
.app-nav .nav-link.active { border:0; color:var(--brand-dark); background:var(--brand-soft); box-shadow:inset 0 0 0 1px #c7e2dd; }
.nav-step-number,.nav-step-icon { width:20px; height:20px; border-radius:6px; background:#edf1f2; color:#53616d; font-size:.64rem; }
.nav-link.active .nav-step-number,.nav-link.active .nav-step-icon { color:var(--brand); background:#d6ebe7; }
.app-admin-nav { margin-left:.35rem; padding-left:.5rem; }
.dropdown-menu { padding:.45rem; border-color:var(--line); border-radius:10px; box-shadow:var(--shadow-md); }
.dropdown-item { padding:.55rem .7rem; border-radius:7px; font-size:.82rem; }
.company-menu-button { min-height:44px; padding:.3rem .7rem .3rem .35rem; border-color:#d8e2e3; border-radius:10px; }
.company-menu-button:hover { border-color:#aec3c1; box-shadow:none; }
.company-avatar { width:31px; height:31px; border-radius:8px; background:var(--brand); box-shadow:none; font-family:inherit; }
.company-menu-copy small { font-size:.61rem; }.company-menu-copy strong { font-size:.78rem; }
.navbar-toggler { width:40px; height:40px; margin-left:auto; padding:0; place-items:center; border:1px solid #d5dfe0; border-radius:8px; box-shadow:none!important; }
.navbar-toggler-icon { width:18px; height:14px; background-image:linear-gradient(var(--text),var(--text)),linear-gradient(var(--text),var(--text)),linear-gradient(var(--text),var(--text)); background-repeat:no-repeat; background-position:0 0,0 6px,0 12px; background-size:18px 2px; }

/* Minimal dashboard */
.dashboard-page { max-width:1600px; padding-top:1.5rem!important; }
.dashboard-hero { min-height:auto; padding:1.15rem 0 1.6rem; border:0; border-bottom:1px solid var(--line); border-radius:0; color:var(--text); background:transparent!important; box-shadow:none; }
.dashboard-hero::after { display:none; }
.dashboard-hero .eyebrow { color:var(--brand); }
.dashboard-hero .dashboard-title { margin-top:.4rem; font-size:clamp(1.85rem,2.6vw,2.5rem); font-weight:700; letter-spacing:-.04em; }
.dashboard-lead { max-width:680px; margin-top:.55rem; color:var(--text-muted); font-size:.9rem; }
.dashboard-hero .btn-light { border-color:#cfd9da; background:white; }
.status-beacon { padding:.28rem .55rem; border:1px solid #d7e0e1; color:#53606a; background:white; font-size:.68rem; }
.status-beacon>span { width:7px; height:7px; background:#d79b24; box-shadow:none; }
.dashboard-status-critical .status-beacon>span { background:#cf3d49; }.dashboard-status-good .status-beacon>span { background:#268667; }
.workflow-strip { border-radius:12px; box-shadow:none; }
.workflow-step { min-height:66px; padding:.75rem .9rem; gap:.65rem; }
.workflow-step strong { font-size:.8rem; }.workflow-step small { font-size:.69rem; }
.workflow-number { width:28px; height:28px; border-radius:8px; font-size:.72rem; }
.workflow-step.is-current { background:#f5faf9; box-shadow:inset 0 -2px var(--brand); }
.metric-card { min-height:132px; padding:1.05rem 1.1rem; }
.metric-label { font-size:.72rem; font-weight:700; }
.metric-value { margin-top:.55rem; font-size:2.15rem; font-weight:700; letter-spacing:-.045em; }
.metric-value span { font-family:inherit; font-size:.82rem; }
.metric-meta { margin-top:.55rem; font-size:.69rem; }
.metric-progress { height:4px; background:#e7ecee; }.metric-progress span { background:var(--brand); }
.dashboard-panel { background:white; }
.panel-heading { min-height:68px; padding:1rem 1.1rem; }
.panel-heading h2 { font-size:1rem; font-weight:700; letter-spacing:-.018em; }
.panel-link { font-size:.72rem; }.count-chip { border-radius:7px; font-size:.67rem; }
.priority-item,.gap-item,.impact-item { padding:.9rem 1.1rem; }
.priority-item h3 { font-size:.84rem!important; }.priority-item p,.gap-item { font-size:.74rem; }
.priority-marker { width:3px; height:34px; }.gap-dot { width:7px; height:7px; }
.legal-mini-list>div { padding:.82rem 1.1rem; }.legal-mini-list strong { font-size:.78rem; }

/* Authentication */
.auth-body { background:#f5f7f7; }
.auth-body .app-main { min-height:100vh; padding:0; }
.auth-body main { min-height:100vh; padding:0!important; }
.auth-shell { position:relative; min-height:100vh; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr auto; place-items:center; padding:clamp(1.5rem,4vw,3.5rem); background:linear-gradient(180deg,#fbfcfc 0%,#f3f6f6 100%); }
.auth-shell::before { content:""; position:fixed; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent 49.95%,rgba(20,32,43,.025) 50%,transparent 50.05%); }
.auth-brand { position:relative; z-index:1; grid-column:1; align-self:start; justify-self:center; max-width:100%; }
.auth-brand .brand-lockup { width:238px; }
.auth-brand .brand-mark { width:44px; height:44px; }
.auth-brand .brand-wordmark { font-size:.93rem; }
.auth-card { position:relative; z-index:1; grid-column:1; width:100%; max-width:430px; margin:2rem 0; padding:2.15rem; border:1px solid #dce4e4; border-radius:14px; background:white; box-shadow:0 18px 55px rgba(27,48,47,.075); }
.auth-card-wide { max-width:470px; }
.auth-card-header { margin-bottom:1.7rem; }
.auth-kicker { display:block; margin-bottom:.65rem; color:var(--brand); font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.auth-card h1 { margin:0; color:var(--text); font-size:1.75rem; font-weight:700; letter-spacing:-.04em; }
.auth-card-header p { margin:.45rem 0 0; color:var(--text-muted); font-size:.82rem; line-height:1.55; }
.auth-form { display:flex; flex-direction:column; gap:1rem; }
.auth-field label { display:block; margin-bottom:.4rem; color:#35424c; font-size:.74rem; font-weight:700; }
.auth-field .form-control { min-height:48px; padding:.7rem .8rem; font-size:.88rem; }
.auth-field .text-danger { display:block; margin-top:.3rem; font-size:.7rem; }
.auth-label-row { display:flex; align-items:center; justify-content:space-between; }
.auth-label-row>span { color:#8a959d; font-size:.62rem; }
.auth-submit { width:100%; min-height:48px; margin-top:.25rem; }
.auth-validation:empty,.validation-summary-valid { display:none; }
.auth-validation { margin:0; padding:.7rem .8rem; font-size:.75rem; }
.auth-divider { display:flex; align-items:center; gap:.75rem; margin:1.25rem 0; color:#929da4; font-size:.64rem; text-transform:uppercase; letter-spacing:.08em; }
.auth-divider::before,.auth-divider::after { content:""; flex:1; height:1px; background:#e3e8e9; }
.auth-secondary { width:100%; min-height:46px; color:#3c4a54; border-color:#cdd7d8; }
.auth-session-note { margin:1.25rem 0 0; color:#89949c; font-size:.66rem; line-height:1.5; text-align:center; }
.auth-back { margin:1.35rem 0 0; color:var(--text-muted); font-size:.76rem; text-align:center; }.auth-back a { color:var(--brand); font-weight:700; }
.auth-footer { position:relative; z-index:1; grid-column:1; align-self:end; width:100%; min-width:0; display:flex; justify-content:space-between; color:#89949c; font-size:.65rem; }

@media (max-width:1199.98px) {
  .app-brand { min-width:190px; }.app-brand .brand-lockup { width:190px; }
  .navbar-toggler { display:grid; }
}
@media (max-width:767.98px) {
  .app-main { padding-inline:.85rem; }
  .dashboard-hero { padding-top:.5rem; }
  .dashboard-hero .d-flex:last-child { width:100%; }.dashboard-hero .d-flex:last-child .btn { flex:1; }
  .auth-shell { padding:1.35rem 1rem; }
  .auth-shell::before { display:none; }
  .auth-brand .brand-lockup { width:210px; }
  .auth-card { margin:1.25rem 0; padding:1.5rem 1.25rem; border-radius:12px; box-shadow:0 12px 35px rgba(27,48,47,.06); }
  .auth-card h1 { font-size:1.5rem; }
  .auth-footer { justify-content:center; }.auth-footer span:last-child { display:none; }
}
