Improve CEO cockpit clarity and Revenue visuals, with Hermes briefing.

Tighten overview KPIs/pipeline height, add selectable Revenue views and a resizable sidebar, and keep supporting Hermes/Wereldexport updates.
This commit is contained in:
Aissa
2026-07-30 11:53:43 +00:00
parent 5dd69a1138
commit 62239f0a4e
14 changed files with 1876 additions and 647 deletions
+495
View File
@@ -894,3 +894,498 @@
.herman-rss-side-item small { color: #64748b; font-size: 0.65rem; }
.herman-rss-col-side .hm-chart-panel { margin-bottom: 0.75rem; }
.herman-rss-col-side h4 { margin: 0 0 0.5rem; font-size: 0.75rem; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.06em; }
/* CEO clean layout — briefing first, less noise */
.hm-ceo-clean .hm-briefing-hero {
order: -1;
}
.hm-briefing-clean {
grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.9fr);
gap: 1.25rem;
}
.hm-briefing-clean .briefing-card.summary {
padding: 1.35rem 1.5rem;
}
.hm-briefing-clean .live-digest-body {
font-size: 0.95rem;
line-height: 1.55;
color: #e2e8f0;
}
.hm-briefing-clean .live-digest-section {
margin-bottom: 1.1rem;
padding-bottom: 0.85rem;
border-bottom: 1px solid rgba(148, 163, 184, 0.12);
}
.hm-briefing-clean .live-digest-section:last-child {
border-bottom: 0;
}
.hm-ceo-clean .hm-section-title {
letter-spacing: 0.02em;
}
.hm-ceo-clean .beurs-mini-chip {
border-radius: 10px;
padding: 0.4rem 0.75rem;
}
.hm-ceo-clean .hm-eq { display: none; }
@media (max-width: 960px) {
.hm-briefing-clean { grid-template-columns: 1fr; }
}
/* Retail & markt removed from CEO overview — RSS lives in RSS tab */
.hm-ceo-clean [data-widget="retail"] { display: none !important; }
/* CEO overview: only dagmemo, no horizon/activity */
.hm-ceo-clean .briefing-horizon-col,
.hm-ceo-clean .horizon-card,
.hm-ceo-clean .hm-activity-timeline { display: none !important; }
.hm-ceo-clean .hm-briefing-solo {
grid-template-columns: 1fr;
}
.hm-ceo-clean .hm-briefing-solo .briefing-card.summary {
max-width: none;
}
/* Force CEO overview order (prefs/JS cannot override) */
.hm-ceo-clean {
display: flex;
flex-direction: column;
}
.hm-ceo-clean > [data-widget="kpis"] { order: 1; }
.hm-ceo-clean > [data-widget="executive"] { order: 2; }
.hm-ceo-clean > [data-widget="analytics"] { order: 3; }
.hm-ceo-clean > [data-widget="briefing"] { order: 4; }
.hm-ceo-clean > [data-widget="news"] { order: 5; }
.hm-ceo-clean > [data-widget="feed"] { order: 6; }
.hm-ceo-clean > [data-widget="approvals"] { order: 7; }
.hm-ceo-clean > [data-widget="retail"] { order: 99; display: none !important; }
/* ═══ CEO PRO LAYOUT ═══ */
.hm-ceo-pro {
gap: 1.15rem;
}
.hm-ceo-pro .hm-dash-section {
margin: 0;
}
.hm-ceo-pro .hm-section-title { display: block; }
/* KPI row — bold hierarchy */
.hm-ceo-kpi-row {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 0.75rem;
}
@media (max-width: 1100px) {
.hm-ceo-kpi-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
.hm-ceo-kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.hm-ceo-kpi-link { text-decoration: none; color: inherit; display: block; }
.hm-ceo-kpi {
background: linear-gradient(165deg, rgba(18, 28, 42, 0.95), rgba(8, 12, 20, 0.98));
border: 1px solid rgba(255,255,255,0.07);
border-top: 2px solid var(--kpi-accent, #00e5ff);
border-radius: 14px;
padding: 1rem 1.05rem 0.9rem;
min-height: 92px;
transition: border-color 0.15s, transform 0.15s;
}
.hm-ceo-kpi-link:hover .hm-ceo-kpi {
border-color: rgba(0, 229, 255, 0.35);
transform: translateY(-1px);
}
.hm-ceo-kpi-label {
font-size: 0.68rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #8b9cb3;
margin-bottom: 0.35rem;
}
.hm-ceo-kpi-value {
font-size: 1.55rem;
font-weight: 700;
letter-spacing: -0.02em;
color: #f1f5f9;
line-height: 1.15;
font-variant-numeric: tabular-nums;
}
.hm-ceo-kpi-sub {
margin-top: 0.3rem;
font-size: 0.7rem;
color: #64748b;
}
/* B2B | B2C */
.hm-ceo-brand-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.9rem;
}
@media (max-width: 860px) {
.hm-ceo-brand-grid { grid-template-columns: 1fr; }
}
.hm-ceo-brand-card {
background: rgba(10, 16, 26, 0.92);
border: 1px solid rgba(255,255,255,0.07);
border-radius: 16px;
padding: 1.1rem 1.2rem 1rem;
}
.hm-ceo-brand-card.brand-foodlinkk { border-left: 3px solid #38bdf8; }
.hm-ceo-brand-card.brand-cucina { border-left: 3px solid #fb923c; }
.hm-ceo-brand-card header {
display: flex;
align-items: center;
gap: 0.55rem;
margin-bottom: 0.75rem;
}
.hm-ceo-brand-card h3 {
margin: 0;
font-size: 0.95rem;
font-weight: 650;
color: #e2e8f0;
letter-spacing: 0.01em;
}
.hm-ceo-brand-icon { font-size: 1.15rem; }
.hm-ceo-brand-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 0.45rem;
}
.hm-ceo-brand-list li {
font-size: 0.84rem;
line-height: 1.45;
color: #cbd5e1;
padding-left: 0.7rem;
border-left: 2px solid rgba(148,163,184,0.2);
}
/* Focus + Trends */
.hm-ceo-mid-grid {
display: grid;
grid-template-columns: 1.25fr 1fr;
gap: 0.9rem;
}
@media (max-width: 860px) {
.hm-ceo-mid-grid { grid-template-columns: 1fr; }
}
.hm-ceo-panel {
background: rgba(10, 16, 26, 0.92);
border: 1px solid rgba(255,255,255,0.07);
border-radius: 16px;
padding: 1rem 1.15rem;
}
.hm-ceo-panel header h3 {
margin: 0 0 0.7rem;
font-size: 0.88rem;
font-weight: 650;
color: #e2e8f0;
}
.hm-ceo-focus { border-top: 2px solid #f472b6; }
.hm-ceo-trends { border-top: 2px solid #34d399; }
.hm-ceo-action-list,
.hm-ceo-trend-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 0.55rem;
}
.hm-ceo-action-list li,
.hm-ceo-trend-list li {
font-size: 0.88rem;
color: #e2e8f0;
line-height: 1.4;
}
.hm-ceo-bullet {
color: #f472b6;
font-weight: 700;
margin-right: 0.25rem;
}
.hm-ceo-trend-list li {
color: #a7f3d0;
font-weight: 500;
}
/* Herman memo — collapsed by default */
.hm-ceo-memo {
margin-top: 0.9rem;
background: rgba(10, 16, 26, 0.7);
border: 1px solid rgba(255,255,255,0.06);
border-radius: 12px;
padding: 0.55rem 0.9rem;
}
.hm-ceo-memo summary {
cursor: pointer;
color: #94a3b8;
font-size: 0.78rem;
letter-spacing: 0.04em;
text-transform: uppercase;
list-style: none;
}
.hm-ceo-memo summary::-webkit-details-marker { display: none; }
.hm-ceo-memo[open] summary { margin-bottom: 0.65rem; color: #cbd5e1; }
.hm-ceo-memo-body {
font-size: 0.86rem;
color: #cbd5e1;
line-height: 1.55;
}
.hm-ceo-memo-body .live-digest-body {
display: block !important;
grid-template-columns: none !important;
}
/* News collapsible */
.hm-ceo-news-details {
background: rgba(10, 16, 26, 0.85);
border: 1px solid rgba(255,255,255,0.07);
border-radius: 14px;
padding: 0.75rem 1rem 0.9rem;
}
.hm-ceo-news-details summary {
cursor: pointer;
font-size: 0.9rem;
font-weight: 650;
color: #e2e8f0;
list-style: none;
display: flex;
align-items: baseline;
gap: 0.6rem;
}
.hm-ceo-news-details summary::-webkit-details-marker { display: none; }
.hm-ceo-news-details summary small {
font-weight: 400;
font-size: 0.72rem;
color: #64748b;
}
.hm-ceo-news-details summary a { color: #38bdf8; }
.hm-ceo-news-list {
list-style: none;
margin: 0.75rem 0 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.hm-ceo-news-list li {
display: flex;
flex-direction: column;
gap: 0.15rem;
padding: 0.45rem 0.55rem;
border-radius: 8px;
background: rgba(0,0,0,0.22);
}
.hm-ceo-news-list a {
color: #e2e8f0;
text-decoration: none;
font-size: 0.86rem;
line-height: 1.35;
}
.hm-ceo-news-list a:hover { color: #7dd3fc; }
.hm-ceo-news-list small { color: #64748b; font-size: 0.7rem; }
/* Hide noisy chrome on CEO pro */
.hm-ceo-pro ~ .herman-browser,
.herman-shell:has(.hm-ceo-pro) .hm-eq { display: none; }
.hm-ceo-memo-open {
margin-top: 0.9rem;
background: rgba(10, 16, 26, 0.85);
border: 1px solid rgba(255,255,255,0.07);
border-radius: 14px;
padding: 0.9rem 1.1rem;
}
.hm-ceo-memo-label {
font-size: 0.72rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #94a3b8;
margin-bottom: 0.55rem;
}
/* Pipeline HTML bars — geen Chart.js ghosting */
.hm-pipeline-host { min-height: 140px; }
.hm-pipeline-bars { padding: 0.25rem 0.15rem 0.5rem; }
.hm-pipeline-head {
display: flex; justify-content: space-between; align-items: baseline;
margin-bottom: 0.85rem; gap: 0.75rem;
}
.hm-pipeline-head strong { color: #f1f5f9; font-size: 1.05rem; }
.hm-pipeline-head span { color: #94a3b8; font-size: 0.82rem; }
.hm-pipeline-list { display: flex; flex-direction: column; gap: 0.7rem; }
.hm-pipeline-meta {
display: flex; justify-content: space-between; gap: 0.75rem;
margin-bottom: 0.3rem; font-size: 0.82rem;
}
.hm-pipeline-stage { color: #e2e8f0; font-weight: 600; text-transform: capitalize; }
.hm-pipeline-vals { color: #94a3b8; }
.hm-pipeline-track {
height: 10px; border-radius: 999px;
background: rgba(255,255,255,0.06); overflow: hidden;
}
.hm-pipeline-fill {
height: 100%; border-radius: 999px;
background: linear-gradient(90deg, #fbbf24, #f59e0b);
}
.hm-pipeline-foot { margin: 0.85rem 0 0; font-size: 0.78rem; }
.hm-pipeline-foot a { color: #38bdf8; text-decoration: none; }
/* CEO context-rich overview */
.hm-overview-panel { border-color: rgba(0,229,255,0.14); }
.hm-context-banner {
background: linear-gradient(120deg, rgba(14, 116, 144, 0.18), rgba(15, 23, 42, 0.4));
border: 1px solid rgba(56, 189, 248, 0.2);
border-radius: 12px;
padding: 0.85rem 1rem;
margin-bottom: 0.9rem;
}
.hm-context-banner p {
margin: 0;
color: #e2e8f0;
font-size: 0.92rem;
line-height: 1.5;
}
.hm-exec-grid-rich {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.65rem;
}
@media (max-width: 900px) {
.hm-exec-grid-rich { grid-template-columns: 1fr 1fr; }
}
.hm-exec-rich {
background: rgba(8, 12, 20, 0.65);
border: 1px solid rgba(255,255,255,0.06);
border-radius: 12px;
padding: 0.75rem 0.85rem;
text-decoration: none;
color: inherit;
display: flex;
gap: 0.65rem;
align-items: flex-start;
transition: border-color 0.15s, transform 0.15s;
}
.hm-exec-rich:hover { border-color: rgba(0,229,255,0.35); transform: translateY(-1px); }
.hm-exec-rich .hm-exec-val { font-size: 1.2rem; font-weight: 700; color: #f8fafc; margin-top: 0.15rem; }
.hm-exec-sub { font-size: 0.7rem; color: #64748b; margin-top: 0.15rem; }
.hm-context-block { margin-top: 0.95rem; }
.hm-context-block h4 {
margin: 0 0 0.45rem;
font-size: 0.68rem;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #94a3b8;
}
.hm-deal-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.hm-deal-chip {
display: inline-flex; align-items: center; gap: 0.45rem;
background: rgba(0,0,0,0.28);
border: 1px solid rgba(255,255,255,0.07);
border-radius: 999px;
padding: 0.35rem 0.7rem;
text-decoration: none;
color: #e2e8f0;
font-size: 0.78rem;
}
.hm-deal-chip span { color: #86efac; font-weight: 650; }
.hm-deal-chip em { color: #94a3b8; font-style: normal; font-size: 0.7rem; }
.hm-deal-chip-client span { color: #7dd3fc; }
.hm-context-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.hm-context-list li { font-size: 0.84rem; color: #cbd5e1; }
.hm-score {
display: inline-block; margin-left: 0.25rem;
font-size: 0.68rem; color: #fbbf24;
background: rgba(251,191,36,0.12);
border-radius: 4px; padding: 0.05rem 0.35rem;
}
.hm-ceo-brand-card { min-height: 160px; }
.hm-ceo-pro .hm-briefing-hero, .hm-ceo-pro .hm-ceo-mid { margin-top: 0.15rem; }
/* v32-kpi-six — 6 kerncijfers */
.hm-neo-kpi-row {
display: grid !important;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 0.65rem;
}
@media (max-width: 1400px) {
.hm-neo-kpi-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
.hm-neo-kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* v33: CEO pipeline compact — geen lege scroll-ruimte */
.hm-ceo-clean .hm-dash-analytics .hm-analytics-panel,
.hm-ceo-pro .hm-dash-analytics .hm-analytics-panel {
min-height: 0 !important;
height: auto !important;
padding: 0.75rem 0.9rem;
}
.hm-ceo-clean .hm-pipeline-host,
.hm-ceo-pro .hm-pipeline-host,
.hm-ceo-clean .hm-dash-analytics .hm-chart-wrap,
.hm-ceo-pro .hm-dash-analytics .hm-chart-wrap {
height: auto !important;
min-height: 0 !important;
}
.hm-ceo-clean .hm-neo-charts,
.hm-ceo-pro .hm-neo-charts {
display: block;
margin-bottom: 0;
}
.hm-ceo-clean .hm-dash-analytics .hm-section-title {
display: none; /* panel head is genoeg — geen dubbele Pipeline-titel */
}
.hm-ceo-clean .hm-pipeline-bars {
padding: 0;
}
.hm-ceo-clean .hm-pipeline-list {
gap: 0.45rem;
}
.hm-ceo-clean .hm-pipeline-foot {
margin: 0.55rem 0 0;
}
/* Briefing + nieuws compacter */
.hm-ceo-clean .hm-ceo-mid-grid {
gap: 0.65rem;
}
.hm-ceo-clean .hm-ceo-panel {
padding: 0.7rem 0.85rem;
}
.hm-ceo-clean .hm-ceo-memo {
margin-top: 0.65rem;
max-height: none;
}
.hm-ceo-clean .hm-ceo-memo-body {
max-height: 180px;
overflow-y: auto;
font-size: 0.88rem;
line-height: 1.45;
}
.hm-ceo-clean .hm-ceo-memo:not([open]) .hm-ceo-memo-body {
display: none;
}
.hm-ceo-clean .hm-ceo-news-details {
margin: 0;
}
.hm-ceo-clean .hm-ceo-action-list,
.hm-ceo-clean .hm-ceo-trend-list {
max-height: 140px;
overflow-y: auto;
margin: 0;
}
/* Minder verticale gap tussen secties */
.hm-ceo-pro {
gap: 0.85rem !important;
}
.hm-ceo-clean .hm-dash-section {
margin-bottom: 0 !important;
}