/* Dakar 2026 module only. Global Climae/header/footer styles come from /css and /js. */
.dakar2026-app{
  --dkr-navy:var(--navy,#020e40);--dkr-blue:var(--blue,#036ca5);--dkr-teal:var(--teal,#0ea6ac);
  --dkr-green:var(--green,#4dc876);--dkr-bg:var(--bg,#f4f8f9);--dkr-panel:#fff;
  --dkr-text:var(--text,#0c2940);--dkr-muted:var(--muted,#5e7380);--dkr-line:var(--line,#dce7ea);
  --dkr-yellow:#e7d94b;--dkr-orange:#e99a42;--dkr-red:#c84646;--dkr-shadow:0 10px 30px rgba(2,40,101,.08);
  max-width:1480px;margin:0 auto;padding:26px 24px 52px;color:var(--dkr-text)
}
.dakar2026-app *{box-sizing:border-box}.dakar2026-app button,.dakar2026-app select{font:inherit}.dakar2026-app .hidden{display:none!important}
.dakar2026-app .heading{display:flex;align-items:flex-start;justify-content:space-between;gap:26px;padding:12px 0 20px}
.dakar2026-app .eyebrow{margin:0 0 5px;color:var(--dkr-teal);font-size:12px;letter-spacing:.11em;font-weight:800;text-transform:uppercase}
.dakar2026-app .heading h1{font-size:clamp(34px,5vw,62px);letter-spacing:-.055em;line-height:.95;margin:0;color:var(--dkr-navy)}
.dakar2026-app .module-name{font-size:22px;font-weight:730;margin:8px 0 5px;color:#022865}.dakar2026-app .heading-copy>p:last-child{margin:0;color:var(--dkr-muted)}
.dakar2026-app .event-lockup{display:flex;align-items:center;gap:16px}.dakar2026-app .event-lockup>img{width:112px;height:112px;object-fit:contain;background:#fff;border:1px solid var(--dkr-line);border-radius:12px;padding:5px}
.dakar2026-app .run-card{min-width:260px;background:#fff;border:1px solid var(--dkr-line);border-left:4px solid var(--dkr-green);border-radius:10px;padding:12px 14px;box-shadow:var(--dkr-shadow)}
.dakar2026-app .run-card strong{display:block;color:#022865;font-size:13px}.dakar2026-app .run-card span{display:block;color:var(--dkr-muted);font-size:12px;margin-top:4px}
.dakar2026-app .notice{margin:0 0 14px;background:#eef8f5;border:1px solid #cfe7df;border-radius:10px;padding:10px 13px;font-size:13px;color:#315d54}.dakar2026-app .notice.error{background:#fff0f0;border-color:#efcaca;color:#842e2e}
.dakar2026-app .controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--dkr-line);border-radius:12px;padding:11px 12px;margin-bottom:12px}
.dakar2026-app .controls label,.dakar2026-app .local-controls label{display:grid;gap:4px;color:var(--dkr-muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.dakar2026-app select{min-width:170px;padding:8px 10px;border:1px solid #cfdcdf;border-radius:8px;background:#fff;color:var(--dkr-text)}
.dakar2026-app .status-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-radius:999px;background:#f2f7f8;color:#58707c;font-size:12px}.dakar2026-app .status-pill i{width:8px;height:8px;background:var(--dkr-green);border-radius:50%}.dakar2026-app .status-pill.pending i{background:#c7a928}.dakar2026-app .source-pill{margin-left:auto;background:#f6f7ef;color:#6c7145}
.dakar2026-app .view-tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--dkr-line);margin-bottom:17px}.dakar2026-app .view-tab{border:0;background:transparent;color:#667c87;padding:11px 13px;white-space:nowrap;cursor:pointer;border-bottom:3px solid transparent;font-weight:650}.dakar2026-app .view-tab.active{color:#022865;border-bottom-color:var(--dkr-teal)}.dakar2026-app .view{display:none}.dakar2026-app .view.active{display:block}
.dakar2026-app .hero-grid{display:grid;grid-template-columns:1.45fr .9fr;gap:14px}.dakar2026-app .panel,.dakar2026-app .mini-panel,.dakar2026-app .zone-card{background:#fff;border:1px solid var(--dkr-line);border-radius:14px;box-shadow:var(--dkr-shadow)}.dakar2026-app .panel{padding:19px}
.dakar2026-app .hero-panel{position:relative;overflow:hidden;padding:25px}.dakar2026-app .hero-panel:after{content:"";position:absolute;width:250px;height:250px;border-radius:50%;right:-70px;top:-90px;background:radial-gradient(circle,rgba(14,166,172,.18),rgba(77,200,118,.05) 55%,transparent 70%)}
.dakar2026-app .panel h2{margin:0 0 9px;color:var(--dkr-navy);font-size:23px;letter-spacing:-.025em}.dakar2026-app .panel h3{margin:0;color:var(--dkr-navy);font-size:18px}.dakar2026-app .hero-panel>p:not(.eyebrow){max-width:780px;color:var(--dkr-muted);line-height:1.55}.dakar2026-app .insight{position:relative;z-index:1;background:linear-gradient(90deg,#e7f7f4,#eef6fb);border:1px solid #cde7e7;border-left:4px solid var(--dkr-teal);border-radius:9px;padding:13px;color:#295866}
.dakar2026-app .data-stack .layer{display:grid;grid-template-columns:125px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--dkr-line)}.dakar2026-app .data-stack .layer:first-of-type{margin-top:8px}.dakar2026-app .layer b{color:#022865}.dakar2026-app .layer span{color:var(--dkr-muted);font-size:13px}
.dakar2026-app .section-title{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:24px 2px 10px}.dakar2026-app .section-title.compact{margin-top:0}.dakar2026-app .section-title h2{margin:0;color:var(--dkr-navy);font-size:22px}.dakar2026-app .section-title>span{font-size:12px;color:var(--dkr-muted)}
.dakar2026-app .zone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dakar2026-app .zone-card{padding:17px;position:relative;overflow:hidden}.dakar2026-app .zone-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--dkr-teal),var(--dkr-green))}.dakar2026-app .zone-card h3{margin:0;color:var(--dkr-navy);font-size:20px}.dakar2026-app .zone-card .sub{font-size:12px;color:var(--dkr-muted);margin-top:2px}
.dakar2026-app .metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:15px}.dakar2026-app .metric{min-width:0}.dakar2026-app .metric b{display:block;font-size:26px;letter-spacing:-.04em;color:#022865}.dakar2026-app .metric span{display:block;font-size:11px;color:var(--dkr-muted);margin-top:2px}.dakar2026-app .riskline{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:11px;border-top:1px solid var(--dkr-line);font-size:12px;color:var(--dkr-muted)}
.dakar2026-app .badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.dakar2026-app .badge.ok{background:#e6f7ee;color:#28764a}.dakar2026-app .badge.watch{background:#fff7d8;color:#816614}.dakar2026-app .badge.elevated{background:#fff0df;color:#9c511a}.dakar2026-app .badge.pending{background:#edf2f4;color:#687c86}
.dakar2026-app .kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dakar2026-app .mini-panel{padding:13px}.dakar2026-app .mini-panel span{display:block;font-size:11px;color:var(--dkr-teal);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.dakar2026-app .mini-panel b{display:block;color:var(--dkr-navy);font-size:18px;margin-top:4px}
.dakar2026-app .two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dakar2026-app .chart{width:100%;min-height:260px;margin-top:8px}.dakar2026-app .chart svg{display:block;width:100%;height:auto}.dakar2026-app .empty-chart{height:260px;display:grid;place-items:center;color:var(--dkr-muted);font-size:12px}
.dakar2026-app .legend{display:flex;gap:15px;flex-wrap:wrap;font-size:12px;color:var(--dkr-muted)}.dakar2026-app .legend i{display:inline-block;width:13px;height:3px;margin-right:5px;vertical-align:middle}.dakar2026-app .c-teal{background:var(--dkr-teal)}.dakar2026-app .c-blue{background:var(--dkr-blue)}.dakar2026-app .c-yellow{background:var(--dkr-yellow)}.dakar2026-app .c-orange{background:var(--dkr-orange)}
.dakar2026-app .note{margin-top:18px;background:#f3f7f8;border-left:3px solid var(--dkr-blue);border-radius:6px;padding:10px 12px;color:var(--dkr-muted);font-size:12px;line-height:1.5}.dakar2026-app .source{color:#728690;font-size:11px}.dakar2026-app .source-link{color:var(--dkr-blue);text-decoration:none;font-weight:750;font-size:12px}.dakar2026-app .source-link:hover{text-decoration:underline}
.dakar2026-app .marine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.dakar2026-app .marine-grid .metric{background:#f4f8f9;border:1px solid #e4edef;border-radius:9px;padding:10px}.dakar2026-app .probbar{height:7px;background:#e5eef0;border-radius:99px;overflow:hidden;margin-top:7px}.dakar2026-app .probbar span{display:block;height:100%;background:linear-gradient(90deg,var(--dkr-teal),var(--dkr-blue));border-radius:99px}
.dakar2026-app .table-wrap{overflow:auto}.dakar2026-app .data-table{width:100%;border-collapse:collapse;font-size:13px}.dakar2026-app .data-table th,.dakar2026-app .data-table td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--dkr-line);white-space:nowrap}.dakar2026-app .data-table th{color:#71858f;font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:#f8fafb}.dakar2026-app .data-table tbody tr:hover{background:#f5faf9}
.dakar2026-app .climate-browser{margin-bottom:14px}.dakar2026-app .local-controls{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 14px}.dakar2026-app .day-strip{display:grid;grid-template-columns:repeat(14,minmax(52px,1fr));gap:5px;margin:4px 0 16px;overflow-x:auto;padding-bottom:3px}.dakar2026-app .day-chip{border:1px solid var(--dkr-line);background:#f8fbfb;border-radius:9px;padding:7px 4px;color:var(--dkr-navy);cursor:pointer;min-width:52px}.dakar2026-app .day-chip small,.dakar2026-app .day-chip span{display:block;color:var(--dkr-muted);font-size:9px;text-transform:uppercase}.dakar2026-app .day-chip b{display:block;font-size:18px;line-height:1.05;margin:2px 0}.dakar2026-app .day-chip:hover{border-color:#98cfd0}.dakar2026-app .day-chip.active{background:var(--dkr-navy);border-color:var(--dkr-navy);color:#fff}.dakar2026-app .day-chip.active small,.dakar2026-app .day-chip.active span{color:#dce8ec}
.dakar2026-app .climate-day-head{display:flex;justify-content:space-between;align-items:end;gap:12px;padding-top:12px;border-top:1px solid var(--dkr-line)}.dakar2026-app .climate-day-head h3{margin:0;color:var(--dkr-navy);font-size:22px}.dakar2026-app .grid-point{font-size:11px;color:var(--dkr-muted);background:#f3f7f8;border-radius:999px;padding:6px 9px;white-space:nowrap}.dakar2026-app .climate-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px}.dakar2026-app .climate-kpi{background:#f6f9fa;border:1px solid #e2ecee;border-radius:9px;padding:10px;min-width:0}.dakar2026-app .climate-kpi>span{display:block;color:var(--dkr-teal);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:9px}.dakar2026-app .climate-kpi b{display:block;color:var(--dkr-navy);font-size:15px;margin-top:5px;line-height:1.25}.dakar2026-app .climate-kpi small{display:block;color:var(--dkr-muted);font-size:9px;margin-top:4px;line-height:1.3}.dakar2026-app .climate-sample-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dakar2026-app .climate-sample-grid .metric:last-child{grid-column:1/-1}
.dakar2026-app .heatmap-panel{overflow:hidden}.dakar2026-app .climate-heatmap{display:grid;grid-template-columns:86px repeat(24,minmax(16px,1fr));gap:2px;align-items:stretch;overflow-x:auto;padding-bottom:4px}.dakar2026-app .hm-corner,.dakar2026-app .hm-hour{font-size:9px;color:var(--dkr-muted);text-align:center;padding:2px 0}.dakar2026-app .hm-corner{text-align:left}.dakar2026-app .hm-date{border:0;background:transparent;color:var(--dkr-muted);font-size:9px;text-align:left;padding:0 4px;cursor:pointer;border-radius:4px}.dakar2026-app .hm-date.active{background:#e9f3f4;color:var(--dkr-navy);font-weight:800}.dakar2026-app .hm-cell{min-width:16px;height:17px;border:0;border-radius:2px;cursor:pointer;outline-offset:1px}.dakar2026-app .hm-cell:hover{box-shadow:inset 0 0 0 1px rgba(0,0,0,.28)}
.hm-tooltip{position:fixed;z-index:9999;max-width:min(340px,calc(100vw - 24px));padding:8px 10px;border-radius:8px;background:rgba(5,27,58,.96);color:#fff;font-size:12px;line-height:1.35;box-shadow:0 8px 24px rgba(0,0,0,.18);pointer-events:none;white-space:normal}.hm-tooltip[hidden]{display:none}.dakar2026-app .hm-cell:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--dkr-teal)}
.dakar2026-app .news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px}.dakar2026-app .news-card{border:1px solid var(--dkr-line);border-radius:12px;padding:16px;background:#fbfdfd}.dakar2026-app .news-meta{display:flex;justify-content:space-between;gap:12px;color:var(--dkr-muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.dakar2026-app .news-card h3{margin:9px 0 7px;color:var(--dkr-navy);font-size:18px;line-height:1.28}.dakar2026-app .news-card p{margin:0 0 12px;color:var(--dkr-muted);font-size:13px;line-height:1.5}.dakar2026-app .news-card a{color:var(--dkr-blue);text-decoration:none;font-weight:750;font-size:12px}.dakar2026-app .news-card a:hover{text-decoration:underline}.dakar2026-app .feed-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--dkr-line)}
.dakar2026-app .results-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:14px}.dakar2026-app .results-toolbar h2{margin:0}.dakar2026-app .result-filters{display:flex;gap:10px;flex-wrap:wrap}.dakar2026-app .result-filters label{display:grid;gap:4px;color:var(--dkr-muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.dakar2026-app .result-filters select{min-width:165px}.dakar2026-app .medal-table th:nth-child(n+3),.dakar2026-app .medal-table td:nth-child(n+3){text-align:center}.dakar2026-app .latest-results{display:grid;gap:9px}.dakar2026-app .result-card{border:1px solid var(--dkr-line);border-radius:10px;padding:12px;background:#fbfdfd}.dakar2026-app .result-card-top{display:flex;justify-content:space-between;gap:12px;color:var(--dkr-muted);font-size:10px;text-transform:uppercase}.dakar2026-app .result-sport{color:var(--dkr-teal);font-weight:800}.dakar2026-app .result-card h3{margin:6px 0 4px;color:var(--dkr-navy);font-size:15px}.dakar2026-app .result-outcome{font-size:13px;color:var(--dkr-text);font-weight:650}.dakar2026-app .result-medal{display:inline-flex;margin-top:8px;border-radius:999px;background:#fff5cf;padding:4px 8px;font-size:11px;font-weight:800;color:#7d6510}.dakar2026-app .empty-feed,.dakar2026-app .pending-box{padding:22px;border:1px dashed #cfdcdf;border-radius:10px;background:#f8fbfb;color:var(--dkr-muted);font-size:13px;line-height:1.5;text-align:center}
@media(max-width:1100px){.dakar2026-app .hero-grid,.dakar2026-app .two-col{grid-template-columns:1fr}.dakar2026-app .event-lockup{align-items:flex-start}.dakar2026-app .zone-grid{grid-template-columns:1fr 1fr}.dakar2026-app .kpi-grid{grid-template-columns:1fr 1fr}.dakar2026-app .metric-grid{grid-template-columns:1fr 1fr}.dakar2026-app .climate-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dakar2026-app .day-strip{grid-template-columns:repeat(14,58px)}}
@media(max-width:720px){.dakar2026-app{padding:18px 13px 40px}.dakar2026-app .heading{display:block}.dakar2026-app .event-lockup{margin-top:14px}.dakar2026-app .event-lockup>img{width:90px;height:90px}.dakar2026-app .run-card{min-width:0;flex:1}.dakar2026-app .source-pill{margin-left:0}.dakar2026-app .zone-grid,.dakar2026-app .kpi-grid{grid-template-columns:1fr}.dakar2026-app .metric-grid{grid-template-columns:1fr 1fr}.dakar2026-app .marine-grid{grid-template-columns:1fr 1fr}.dakar2026-app .climate-day-head{align-items:flex-start;flex-direction:column}.dakar2026-app .climate-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dakar2026-app .local-controls label,.dakar2026-app .local-controls select{width:100%}.dakar2026-app .local-controls select{min-width:0}.dakar2026-app .climate-heatmap{grid-template-columns:74px repeat(24,18px)}.dakar2026-app .hm-cell{height:18px}.dakar2026-app .grid-point{white-space:normal}.dakar2026-app .news-grid{grid-template-columns:1fr}.dakar2026-app .results-toolbar{align-items:stretch;flex-direction:column}.dakar2026-app .result-filters{width:100%}.dakar2026-app .result-filters label{flex:1}.dakar2026-app .result-filters select{min-width:0;width:100%}.dakar2026-app .feed-footer{align-items:flex-start;flex-direction:column}}

/* Programme Dakar 2026 */
.dakar2026-app .schedule-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:14px 0 10px;padding:12px;background:#f7fafb;border:1px solid var(--dkr-line);border-radius:11px}
.dakar2026-app .schedule-filters label{display:grid;gap:4px;color:var(--dkr-muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.dakar2026-app .schedule-filters select{min-width:190px}
.dakar2026-app .schedule-filters .secondary-button{min-height:38px;align-self:end}
.dakar2026-app .schedule-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 1px 12px;color:var(--dkr-muted);font-size:12px}
.dakar2026-app .schedule-meta strong{color:var(--dkr-navy);font-size:13px}
.dakar2026-app .schedule-table td{vertical-align:top}
.dakar2026-app .schedule-table th:nth-child(1){min-width:150px}.dakar2026-app .schedule-table th:nth-child(2){min-width:115px}.dakar2026-app .schedule-table th:nth-child(3){min-width:165px}.dakar2026-app .schedule-table th:nth-child(4){min-width:210px}.dakar2026-app .schedule-table th:nth-child(6){min-width:190px}
.dakar2026-app .time-slots{display:flex;flex-direction:column;gap:4px;font-variant-numeric:tabular-nums}.dakar2026-app .time-slots span{display:inline-block;color:#173e5c;font-weight:700}
.dakar2026-app .schedule-pending{display:inline-flex;align-items:center;gap:6px;color:var(--dkr-muted);font-size:11px}.dakar2026-app .schedule-pending:before{content:"";width:7px;height:7px;border-radius:50%;background:#c7a928}
.dakar2026-app .weather-chips{display:flex;gap:5px;flex-wrap:wrap}.dakar2026-app .weather-chip{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef6f7;color:#315d68;font-size:10px;font-weight:750;white-space:nowrap}
.dakar2026-app .schedule-note{margin-bottom:0}
@media(max-width:720px){.dakar2026-app .schedule-filters{align-items:stretch}.dakar2026-app .schedule-filters label{width:100%}.dakar2026-app .schedule-filters select{min-width:0;width:100%}.dakar2026-app .schedule-filters .secondary-button{width:100%}.dakar2026-app .schedule-meta{align-items:flex-start;flex-direction:column}.dakar2026-app .schedule-table-wrap{margin-left:-6px;margin-right:-6px}.dakar2026-app .schedule-table th,.dakar2026-app .schedule-table td{padding:10px 8px}}

.dakar2026-app .metric-grid-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.dakar2026-app .utci-note{margin-top:8px;font-size:11px;color:var(--dkr-muted)}
.dakar2026-app .weather-chip.heat{background:#fff4df;color:#805000}
.dakar2026-app .weather-chip.prob{background:#fff7e8;color:#805000}
.dakar2026-app .weather-chip.prob.strong{background:#fde9e5;color:#9a3f2f}
.dakar2026-app .weather-chip.utci{background:#f0eefb;color:#54448d}
.dakar2026-app .weather-chip.night{background:#edf2fb;color:#34527a}
.dakar2026-app .weather-chip.marine{background:#e9f5fa;color:#24617b}
@media(max-width:1100px){.dakar2026-app .metric-grid-five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.dakar2026-app .metric-grid-five{grid-template-columns:1fr 1fr}}


/* v4 — activity cards, tropical nights, UTCI and separate frontend deployment */
.dakar2026-app .c-purple{background:#7a63a8}.dakar2026-app .kpi-grid-six{grid-template-columns:repeat(3,minmax(0,1fr))}.dakar2026-app .forecast-prob-panel{margin-top:14px}.dakar2026-app .probability-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.dakar2026-app .probability-grid .metric{padding:10px;border:1px solid var(--dkr-line);border-radius:10px;background:#f8fbfb}.dakar2026-app .marine-controls{margin-bottom:12px}
.dakar2026-app .activity-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dakar2026-app .overview-activity-grid{margin-bottom:8px}.dakar2026-app .activity-card{position:relative;background:#fff;border:1px solid var(--dkr-line);border-radius:14px;padding:15px;box-shadow:var(--dkr-shadow);overflow:hidden}.dakar2026-app .activity-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--dkr-blue),var(--dkr-teal))}.dakar2026-app .activity-card.best-slot{border-color:#9dd7bf;box-shadow:0 10px 30px rgba(42,139,87,.12)}.dakar2026-app .activity-card.best-slot:before{background:linear-gradient(#4dc876,#0ea6ac)}.dakar2026-app .activity-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.dakar2026-app .activity-sport{margin:0 0 3px;color:var(--dkr-teal);font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.dakar2026-app .activity-card h3{font-size:17px;line-height:1.2}.dakar2026-app .activity-card-top>div>span{font-size:11px;color:var(--dkr-muted)}.dakar2026-app .activity-badges{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap;max-width:52%}.dakar2026-app .data-kind,.dakar2026-app .best-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 7px;font-size:9px;font-weight:850;letter-spacing:.04em}.dakar2026-app .data-kind.forecast{background:#e7f7f4;color:#26705f}.dakar2026-app .data-kind.climate{background:#edf2f4;color:#58707c}.dakar2026-app .best-badge{background:#e8f8ef;color:#28764a}.dakar2026-app .activity-time{display:flex;justify-content:space-between;gap:10px;margin-top:12px;padding:8px 0;border-top:1px solid var(--dkr-line);border-bottom:1px solid var(--dkr-line);font-size:11px}.dakar2026-app .activity-time b{color:var(--dkr-navy)}.dakar2026-app .activity-time span{color:var(--dkr-muted);font-variant-numeric:tabular-nums}.dakar2026-app .activity-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.dakar2026-app .activity-metrics>div{background:#f7fafb;border:1px solid #e4edef;border-radius:9px;padding:9px;min-width:0}.dakar2026-app .activity-metrics>div>span{display:block;color:var(--dkr-muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.dakar2026-app .activity-metrics>div>b{display:block;margin:3px 0;color:var(--dkr-navy);font-size:19px}.dakar2026-app .activity-metrics small{display:block;color:var(--dkr-muted);font-size:9px;line-height:1.35}.dakar2026-app .activity-metrics .night-metric{background:#f1f5fb}.dakar2026-app .activity-metrics .marine-metric{background:#edf7fa}.dakar2026-app .activity-metrics.compact>div:nth-child(n+4){display:none}.dakar2026-app .activity-note{margin:9px 0 0;color:var(--dkr-muted);font-size:9px;line-height:1.4}.dakar2026-app .weather-chip.night.tropical{background:#f3ecfb;color:#64498d;font-weight:850}.dakar2026-app .activity-panel{margin:14px 0}.dakar2026-app .secondary-button{padding:8px 11px;border:1px solid #cfdcdf;border-radius:8px;background:#fff;color:var(--dkr-navy);cursor:pointer;font-weight:700}.dakar2026-app .secondary-button:hover{background:#f3f7f8}
@media(max-width:1100px){.dakar2026-app .activity-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dakar2026-app .probability-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dakar2026-app .kpi-grid-six{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.dakar2026-app .activity-card-grid{grid-template-columns:1fr}.dakar2026-app .activity-card-top{flex-direction:column}.dakar2026-app .activity-badges{justify-content:flex-start;max-width:none}.dakar2026-app .activity-time{flex-direction:column}.dakar2026-app .probability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dakar2026-app .kpi-grid-six{grid-template-columns:1fr}.dakar2026-app .activity-metrics{grid-template-columns:1fr 1fr}}

/* v4.1 — explicit styles for v4 utility classes */
.dakar2026-app .schedule-panel{overflow:hidden}
.dakar2026-app .pending-metric{color:var(--dkr-muted);font-style:italic}

/* v4.2 — wave partitions, ensemble components and explicit marine uncertainty */
.dakar2026-app .marine-grid-rich{grid-template-columns:repeat(2,minmax(0,1fr))}
.dakar2026-app .marine-grid-rich .metric small{display:block;margin-top:4px;color:var(--dkr-muted);font-size:10px;line-height:1.35}
.dakar2026-app .marine-detail-grid{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px}
.dakar2026-app .marine-detail{padding:11px 12px;border:1px solid var(--dkr-line);border-radius:10px;background:#f7fafb}
.dakar2026-app .marine-detail>span{display:block;color:var(--dkr-muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.dakar2026-app .marine-detail>b{display:block;margin:4px 0;color:var(--dkr-navy);font-size:17px;line-height:1.25}
.dakar2026-app .marine-detail>small{display:block;color:var(--dkr-muted);font-size:10px;line-height:1.35}
.dakar2026-app .marine-charts{margin-top:14px}.dakar2026-app .marine-prob-panel{margin-top:14px}
.dakar2026-app .marine-prob-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.dakar2026-app .marine-prob-grid .metric{padding:12px;border:1px solid var(--dkr-line);border-radius:10px;background:#f8fbfb}
.dakar2026-app .marine-disclaimer{margin:10px 2px 0}.dakar2026-app .weather-chip.marine.strong{background:#dff0f7;color:#174d68;font-weight:850}
@media(max-width:720px){.dakar2026-app .marine-grid-rich,.dakar2026-app .marine-prob-grid{grid-template-columns:1fr}.dakar2026-app .marine-detail-grid{grid-template-columns:1fr}}
