/* PRPscore · shared identity. Load last, after each module's functional styles. */
:root {
  --prp-bg:#f8f8fc; --prp-panel:#fff; --prp-panel-soft:#f4f1fb;
  --prp-ink:#302e45; --prp-muted:#68667c; --prp-line:#e5e2ee;
  --prp-accent:#7051c6; --prp-accent-strong:#6141b4; --prp-accent-deep:#49328a;
  --prp-hover:#f0ebfb; --prp-hover-strong:#e7dff8; --prp-radius:18px;
  --prp-blue:#4269c5; --prp-peach:#f9b499; --prp-lilac:#9e9ae0;
  --prp-ok:#207653; --prp-warn:#925619; --prp-danger:#b43e58;
  --ink:var(--prp-ink); --text:var(--prp-ink); --muted:var(--prp-muted);
  --line:var(--prp-line); --border:var(--prp-line); --paper:#fff;
  --soft:#f4f1fb; --accent:var(--prp-accent); --teal:var(--prp-accent);
  --mint:#f0ebfb; --bg:var(--prp-bg);
}
html { scroll-padding-top:92px; }
body:not(.platform-dark) { background:var(--prp-bg)!important; color:var(--prp-ink)!important; font-family:'Source Sans 3',system-ui,sans-serif!important; }
body:not(.platform-dark) :is(h1,h2,h3,h4,.page-title) { letter-spacing:-.035em; text-wrap:balance; }
body:not(.platform-dark) :is(button,input,select,textarea) { font-family:inherit; }
body:not(.platform-dark) :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #7051c6!important; outline-offset:3px; }
body:not(.platform-dark) :is(.button,.btn,.btn-primary,.btn-cta,.nav-login) { border-radius:12px!important; transition:background .18s,border-color .18s,box-shadow .18s; }
body:not(.platform-dark) :is(.button.primary,.btn.primary,.btn-cta,.btn-primary) { background:var(--prp-accent)!important; border-color:var(--prp-accent)!important; color:#fff!important; box-shadow:0 4px 10px #7051c618!important; }
body:not(.platform-dark) :is(.button.primary,.btn.primary,.btn-cta,.btn-primary):hover { background:var(--prp-accent-strong)!important; }
body:not(.platform-dark) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { border-radius:10px; border-color:var(--prp-line); accent-color:var(--prp-accent); }
body:not(.platform-dark) :is(.glass,.glass-soft,.panel,.hero-card,.da-document,.da-metric,.partner-card,.account-panel,.dialog) { border-radius:18px!important; }
body:not(.platform-dark) :is(.site-header,header.site-nav) { background:#ffffffed; border-color:var(--prp-line); }
body:not(.platform-dark) :is(.eyebrow,.dashboard-eyebrow,.kicker) { color:var(--prp-accent-strong)!important; }
body:not(.platform-dark) :is(.site-footer,footer.footer) { background:#f0edf7; border-color:var(--prp-line); }
body:not(.platform-dark) .text-link { color:var(--prp-accent-strong); }

/* Ranking, profile, methodology and vigilance share the same palette. */
.platform-benchmark { --teal:#7051c6; --blue:#4269c5; --soft:#f2eefb; --ink:#302e45; --muted:#68667c; --line:#e5e2ee; }
.platform-benchmark .intro { padding-block:46px 28px; }
.platform-benchmark :is(.panel,.card,.filters,.profile-hero,.attention-card,.vigilance-directory,.profile-section,.criteria-framework,.training-slide,.exam-panel) { border-color:#e5e2ee; border-radius:20px; }
.platform-benchmark :is(.intro-row,.profile-hero) { position:relative; }
.platform-benchmark .intro-row { padding:28px; border-radius:24px; background:linear-gradient(120deg,#f0ebfb,#fdf7ef); }
.platform-benchmark :is(.account-toggle,.section-icon) { background:#eee8fa; color:#6141b4; border-radius:14px; }
.platform-benchmark .publication-note { border-color:#9e9ae0; background:#f4f1fb; border-radius:0 14px 14px 0; color:#68667c; }
.platform-benchmark .publication-note strong { color:#6141b4; }
.platform-benchmark .vigilance-companies>button[aria-current] { background:#f0ebfb; border-left-color:#7051c6; }
.platform-benchmark :is(.attention-evidence,.scope-explanation,.scope-limits,.internal-criteria) { background:#f4f1fb; border-color:#ded5ed; border-radius:14px; }
.platform-benchmark .criterion-id { background:#eee8fa; color:#6141b4; border-radius:8px; }
.platform-benchmark :is(.profile-score-card,.profile-metric):nth-child(2n) { background:#f1f4ff; }
.platform-benchmark .company-profile { --profile-blue:#7051c6; --profile-line:#e5e2ee; --profile-muted:#68667c; color:#302e45; }
.platform-benchmark .company-monogram { background:#eae3fa; color:#6141b4; }
.platform-benchmark .company-labels .pill { background:#eee8fa; color:#6141b4; }
.platform-benchmark .stat-score { background:#7051c6; border-color:#7051c6; }
.platform-benchmark .stat-score p { color:#f3edff; }
.platform-benchmark .stat-score .profile-info:focus-visible { outline-color:#fff!important; }
.platform-benchmark .stat-coverage { background:#edf2ff; border-color:#dce4f7; }
.platform-benchmark .stat-coverage .profile-stat-value { color:#4269c5; }
.platform-benchmark .company-profile .tabs { background:#ede8f5; }
.platform-benchmark .company-profile .tabs button[aria-pressed=true] { color:#6141b4; }
.platform-benchmark .data-card-number { background:#eee8fa; color:#6141b4; }
.platform-benchmark .data-source a { color:#6141b4; }
.platform-benchmark .company-profile .theme-track i { background:#9e9ae0; }
.platform-benchmark .profile-help-copy p { color:#68667c; }

/* Existing dashboard keeps all data and account hooks. */
.dashboard-page { --prp-bg:#f8f8fc; --prp-ink:#302e45; --prp-muted:#68667c; --prp-line:#e5e2ee; --prp-accent:#7051c6; --prp-accent-strong:#6141b4; --prp-radius:18px; }
.dashboard-page .dashboard-topbar { border-bottom-color:#e5e2ee; }
.dashboard-page #dashboard-sidebar { background:#fff!important; border-right-color:#e5e2ee; }
.dashboard-page .dashboard-nav-current { background:#eee8fa!important; color:#6141b4!important; border-radius:12px!important; }
.dashboard-page .sidebar .nav>.btn { border-radius:12px!important; }
.dashboard-page .sidebar .nav>.btn:hover { background:#f4f0fc!important; color:#6141b4!important; }
.dashboard-page .sidebar .nav>.btn .ui-icon { color:#8f77b6!important; }
.dashboard-page .sidebar .nav>.btn:nth-child(3n) .ui-icon { color:#bf7456!important; }
.dashboard-page .sidebar-support { background:#f4f0fc; padding:18px!important; border-radius:18px; margin:24px 12px 12px; }
.dashboard-page .dashboard-page-heading { padding:28px; background:linear-gradient(115deg,#eee8fa,#fdf3eb); border-radius:24px; border:1px solid #e6def0; }
.dashboard-page .metric { border-radius:18px!important; background:#f1ecfb!important; border:0!important; }
.dashboard-page .metric:nth-child(2) { background:#edf2ff!important; }
.dashboard-page .metric:nth-child(3) { background:#fff0e7!important; }
.dashboard-page :is(.card,.dashboard-detail-card,.dashboard-chart-card) { border-radius:20px!important; }
.dashboard-page .account-avatar { background:#f0ebfb!important; border-color:#e5dbf5!important; color:#7051c6!important; }
.dashboard-page .dashboard-popover { border-radius:16px!important; box-shadow:0 14px 45px #302e4518!important; }
.dashboard-page .dashboard-help-link { color:#68667c!important; }
.dashboard-page .dashboard-detail-actions [data-dashboard-programme-link] { background:#f0ebfb!important; border-color:#ddd2f0!important; color:#6141b4!important; }
.dashboard-page :is(.nav-section-title,.dashboard-sidebar-heading) { color:#71687f!important; }

/* Questionnaires and policy analysis: quiet reading areas, colourful orientation. */
.workspace-page .intro-shell { background:linear-gradient(120deg,#f1ebfb,#fff7f0)!important; padding:26px!important; border:1px solid #e4dcef!important; }
.workspace-page .intro-grid { grid-template-columns:minmax(0,1fr) minmax(220px,.6fr)!important; gap:24px; }
.workspace-page .intro-subtitle { max-width:66ch; font-size:15px; line-height:1.6; }
.workspace-page .question-tools { background:#ffffffad!important; border:0!important; }
.workspace-page .question-tools>summary { cursor:pointer; font-size:14px; font-weight:650; color:#6141b4; padding:6px 0; }
.workspace-page .question-tools[open]>summary { margin-bottom:14px; }
.workspace-page .question-tools .tools-label { display:none; }
.workspace-page .question-tools[open] { align-self:start; }
.workspace-page .intro-grid { align-items:center!important; }
.workspace-page #question { color:#302e45!important; }
.workspace-page :is(.micro-pill,.chip) { border-radius:9px!important; }
.workspace-page #question { font-size:clamp(20px,2vw,28px)!important; line-height:1.4!important; font-weight:600!important; }
.workspace-page .answer-btn { border-radius:14px!important; padding:17px 20px!important; text-align:left; }
.workspace-page .answer-btn:hover { background:#f4f0fc!important; border-color:#aa92d8!important; }
.workspace-page .answer-btn.selected { background:#eee7fb!important; color:#49328a!important; border-color:#7051c6!important; }
.workspace-page .question-status-background { padding:16px; border-radius:16px; background:#faf9fc; }
.workspace-page #progress-background { border-radius:20px!important; }
.workspace-page .da-shell { max-width:1400px; margin:0 auto; }
.workspace-page .da-topbar { background:linear-gradient(120deg,#f0ebfb,#fff5ed); border:1px solid #e5dfee; border-radius:22px; padding:22px; }
.workspace-page .da-doc-symbol { background:#e3d8f6; color:#6141b4; border-radius:14px; }
.workspace-page .da-metric { background:#f0ebfb; border:0; }
.workspace-page .da-metric:nth-child(2n) { background:#edf2ff; }
.workspace-page .da-metric:nth-child(3n) { background:#fff0e7; }
.workspace-page .da-view-tabs { gap:8px; flex-wrap:wrap; }
.workspace-page .da-tab { border-radius:10px; }
.workspace-page .da-tab.is-active { background:#eee8fa; color:#6141b4; border-color:#d5c5ef; }
.workspace-page .da-document { box-shadow:0 6px 30px #302e4505; border-color:#e5e2ee; }
.workspace-page :is(.da-helper,.da-score-note,.da-source-note,.da-legal-note p) { font-weight:400!important; line-height:1.6; }
.workspace-page :is(.da-source,.da-source-panel,.da-input-panel) { border-radius:18px; box-shadow:none; padding:20px; }
.workspace-page :is(.da-kicker,.da-title-stack>span) { color:#6141b4; }
.dashboard-page .dashboard-tab.active { color:#6141b4!important; border-bottom-color:#7051c6!important; }
.platform-dark #prp-lang-switcher { border-color:#49405d!important; background:#242038!important; }
.platform-dark #prp-lang-switcher button[aria-pressed=true] { background:#b5a2fb!important; color:#201b36!important; }
.workspace-page .da-metric:nth-child(2) { background:#edf6ef; }
.workspace-page .da-metric:nth-child(3) { background:#fff5df; }
.workspace-page .da-metric:nth-child(4) { background:#fff0e7; }
.workspace-page .da-metric:nth-child(6) { background:#edf2ff; }
.workspace-programme .main { display:flex!important; flex-direction:column-reverse; gap:24px; }
.workspace-programme .main>.sidebar { position:static!important; width:100%!important; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:start; }
.workspace-programme .main>.sidebar>.divider { display:none; }
.workspace-programme .main>.sidebar>h3 { grid-column:1/-1; }
.workspace-programme .content-col { width:100%; min-width:0; }
.workspace-programme .col { border-radius:18px!important; padding:14px!important; min-width:0; }
.workspace-programme .col.todo { background:#f1edfa!important; border-color:#e2d9ef!important; }
.workspace-programme .col.doing { background:#edf2ff!important; border-color:#dce5f7!important; }
.workspace-programme .col.blocked { background:#fff0e7!important; border-color:#f3ddd0!important; }
.workspace-programme .col.done { background:#edf6ef!important; border-color:#d9eadf!important; }
.workspace-programme .col .card { background:#fff!important; border-radius:13px!important; box-shadow:0 3px 12px #302e4505!important; }
.workspace-programme .main>.sidebar { display:block; padding:18px 22px; }
.programme-controls>summary { cursor:pointer; color:#6141b4; font-weight:600; list-style:disclosure-closed; }
.programme-controls[open]>summary { list-style:disclosure-open; margin-bottom:18px; }
.programme-controls-body { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.programme-controls-body>h3,.programme-controls-body>.divider { display:none; }
.programme-controls-body>.muted,.programme-controls-body>input { grid-column:1/-1; }
.programme-controls-body>input { max-width:480px; }
.workspace-programme .kanban { grid-template-columns:repeat(4,minmax(0,1fr)); }
.workspace-programme .col-title { font-weight:650; }
.workspace-programme .card :is(.title,.card-title) { font-weight:600!important; }
.workspace-programme #kanbanView .col.todo { background:#f1edfa!important; border-color:#e2d9ef!important; border-top:3px solid #9e9ae0!important; }
.workspace-programme #kanbanView .col.doing { background:#edf2ff!important; border-color:#dce5f7!important; border-top:3px solid #7395de!important; }
.workspace-programme #kanbanView .col.blocked { background:#fff0e7!important; border-color:#f3ddd0!important; border-top:3px solid #e59b7d!important; }
.workspace-programme #kanbanView .col.done { background:#edf6ef!important; border-color:#d9eadf!important; border-top:3px solid #82b89a!important; }
.workspace-programme #kanbanView .drop { background:transparent!important; border:0!important; padding:0!important; min-height:70px; }
.workspace-programme #kanbanView .card { border-color:#e5e2ee!important; border-radius:14px!important; box-shadow:0 3px 12px #302e4505!important; }
.workspace-programme #kanbanView .badge { background:#ffffffa8!important; color:#4e4664!important; border-color:#ded8e9!important; }
.workspace-programme #kanbanView .k-btn { border-radius:8px!important; padding:7px 9px!important; font:600 12px/1.3 'Source Sans 3',sans-serif!important; min-height:34px; }
.workspace-programme #kanbanView .k-actions { gap:6px; }
.workspace-page .da-law-reminder { background:#f1edfa; border-color:#dfd6ef; border-radius:14px; }
.workspace-page .da-law-reminder :is(strong,a) { color:#6141b4; }
.workspace-page .da-law-reminder p { font-weight:400; color:#68667c; }
.workspace-page .da-btn { border-radius:11px; font-weight:600; }

/* A welcoming entry to the same workspace. */
.platform-auth { padding:60px 24px!important; }
.platform-auth main.card { display:grid!important; grid-template-columns:.85fr 1fr!important; width:min(1060px,100%)!important; max-width:1060px!important; padding:0!important; border-radius:28px!important; overflow:hidden; border:1px solid #e5dfee!important; box-shadow:0 20px 70px #49328a08!important; }
.platform-auth .auth-art { display:flex; flex-direction:column; justify-content:center; padding:42px; background:linear-gradient(145deg,#eee6fc,#fff0e5); }
.platform-auth .auth-art img { width:100%; height:auto; margin-bottom:36px; }
.platform-auth .auth-art h2 { font-size:34px; line-height:1.15; margin:0 0 14px; }
.platform-auth .auth-art p { line-height:1.65; margin:0; font-size:16px; }
.auth-art-dots { display:flex; gap:8px; margin-top:26px; }
.auth-art-dots i { width:12px; height:12px; border-radius:50%; background:#8f66e5; }
.auth-art-dots i:nth-child(2) { background:#9e9ae0; }
.auth-art-dots i:nth-child(3) { background:#f9b499; }
.platform-auth .form-side { padding:36px!important; }
.platform-auth .form-side :is(input,.tab) { border-radius:12px!important; }
.platform-auth .tab.active { box-shadow:none!important; }
.platform-auth #login-reset-password { color:#6141b4!important; }
.platform-auth .brand-copy>span { color:#68667c!important; }
.platform-auth .status:empty { display:none; }

/* The EFVP/AIPD studio deliberately retains a dark canvas. */
body.platform-dark { --ef-bg:#171727; --ef-panel:#202035; --ef-panel2:#25253d; --ef-line:#393750; --ef-line-strong:#8174ba; --ef-cyan:#b5a2fb; --ef-text:#f3f0fb; --ef-muted:#bdb7d1; background:#171727; }
.platform-dark :is(.efvp-commandbar,.efvp-steps,.efvp-inspector,.efvp-panel-head) { background:#202035; }
.platform-dark .efvp-start { background:radial-gradient(ellipse at 80% 10%,#40345b80,transparent 55%),#171727; }
.platform-dark :is(.efvp-mode-card,.efvp-project-card,.efvp-dialog) { border-radius:18px; background:#24233b; }
.platform-dark .efvp-mode-card.primary { background:linear-gradient(130deg,#44315c,#272a45); border-color:#8174ba; }
.platform-dark .efvp-start-graphic .ring { border-color:#9e9ae080; }
.platform-dark .efvp-start-graphic .ring-c { border-color:#f9b49980; }
.platform-dark .efvp-start-brand img,.platform-dark .efvp-brand img { background:#f1ecfb; border-radius:12px; }
.platform-dark .efvp-inspector-footer .primary { background:#b5a2fb; color:#201b36; border-color:#b5a2fb; }
@media(max-width:1000px) { .workspace-page .intro-grid { grid-template-columns:1fr!important; } }
@media(max-width:1200px) and (min-width:1001px) { .workspace-programme .kanban { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
  .home-page .hero:before { border-radius:0 0 30px 30px; }
  .home-page .stats-grid>div { padding:18px; }
  .home-page .hero-art-halo:after { box-shadow:none; }
  .platform-benchmark .intro-row { padding:22px; }
  .dashboard-page .dashboard-page-heading { padding:22px; }
  .workspace-page .intro-shell { padding:20px!important; }
  .workspace-programme .main>.sidebar { display:block; }
  .workspace-programme .main>.sidebar>* { margin-bottom:12px; }
  .workspace-programme .kanban,.programme-controls-body { grid-template-columns:1fr; }
  .platform-auth { padding:65px 16px 24px!important; }
  .platform-auth main.card { display:block!important; }
  .platform-auth .auth-art { display:none; }
  .platform-auth .form-side { padding:24px!important; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media print { body:not(.platform-dark) { background:#fff!important; } .home-page .hero:before { display:none; } }
