:root { --bg-primary: #0F1419; --bg-card: #1C232C; --text-primary: #E5E7EB; --text-secondary: #6B7280; --green: #0EA29A; --red: #EF4444; --blue: #0D6EFA; --yellow: #F5C542; --border: #2E3440; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Inter, system-ui, sans-serif; font-size: 16px; color: var(--text-primary); background: var(--bg-primary); padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); } .app-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 24px 16px 24px; background: var(--bg-card); } .app-header-left { display: flex; flex-direction: column; } .app-header-left h1 { font-family: IBM Plex Sans, system-ui, sans-serif; font-size: 28px; font-weight: 700; line-height: 32px; } .app-header-left p { font-family: IBM Plex Mono, monospace; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--text-secondary); } .app-header-right { display: flex; align-items: center; gap: 12px; } .status-indicator { display: flex; align-items: center; gap: 6px; padding: 10px 14px; border-radius: 8px; font-family: IBM Plex Mono, monospace; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; } .status-indicator.active { background: rgba(239, 68, 68, 0.12); color: var(--red); } .status-indicator.inactive { background: rgba(14, 162, 154, 0.12); color: var(--green); } .status-indicator span { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; } .status-indicator span.red { background: var(--red); } .status-indicator span.green { background: var(--green); } .lang-switcher { color: var(--text-secondary); text-decoration: none; padding: 4px 8px; font-size: 12px; } .app-content { padding: 16px 24px; } .status-hero { display: flex; flex-direction: column; margin: 12px 0 32px 0; } .status-hero-label { font-family: IBM Plex Mono, monospace; font-size: 14px; color: var(--text-secondary); } .status-hero-value { font-family: IBM Plex Sans, system-ui, sans-serif; font-size: 32px; font-weight: 700; } .status-legend { margin-top: 16px; display: flex; list-style: none; gap: 16px; } .status-legend li { display: flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 8px; background: var(--bg-card); } .status-legend span { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--green); } .status-legend span.red { background: var(--red); } .status-legend p { font-size: 12px; color: var(--text-secondary); } .zone-detail { display: flex; flex-direction: column; gap: 16px; margin-bottom: 32px; } .zone-row { display: flex; justify-content: space-between; align-items: center; background: var(--bg-card); padding: 20px; border-radius: 12px; position: relative; overflow: hidden; } .zone-row::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: var(--green); } .zone-row.in-progress::before { background: var(--red); } .zone-row .zone-badge { font-family: IBM Plex Mono, monospace; font-size: 11px; font-weight: 700; letter-spacing: 1px; padding: 3px 6px; border-radius: 6px; } .zone-row .zone-badge.green { background: rgba(14, 162, 154, 0.15); color: var(--green); } .zone-row .zone-badge.red { background: rgba(239, 68, 68, 0.15); color: var(--red); } .zone-row .zone-name { flex: 1 1 auto; font-family: IBM Plex Sans, system-ui, sans-serif; font-size: 16px; font-weight: 700; padding-left: 10px; color: var(--text-primary); } .zone-row .zone-time { display: flex; align-items: center; font-family: IBM Plex Mono, monospace; font-size: 12px; color: var(--text-secondary); } .zone-row .zone-time.in-progress { color: var(--red); } .zone-activities { display: flex; flex-direction: column; gap: 16px; } .activities-header { font-family: IBM Plex Sans, system-ui, sans-serif; font-size: 18px; font-weight: 700; } #chart-container { min-height: 300px; } .activity-link { font-size: 14px; color: var(--blue); text-decoration: underline; } @media (min-width: 600px) { .app-content { padding: 16px 48px; } } .ch-container{display:block}.ch-container,.ch-domain,.ch-domain-container,.ch-domain-container-animation-wrapper{overflow:visible}.ch-domain-container.in-transition .ch-domain-container-animation-wrapper{overflow:hidden}.ch-domain-bg{fill:transparent}.ch-domain-text{fill:currentColor;font-size:12px}.ch-subdomain{overflow:visible}.ch-subdomain-bg{fill:#ededed}.ch-subdomain-bg.highlight{stroke:#444;stroke-width:1px}.ch-subdomain-bg:hover{stroke:#000;stroke-width:1px}.ch-subdomain-text{font-size:8px;pointer-events:none}[data-theme=dark] .ch-subdomain-bg{fill:#2d333b}[data-theme=dark] .ch-subdomain-bg.highlight{stroke:#768390}[data-theme=dark] .ch-subdomain-bg:hover{stroke:#636e7b}#ch-plugin-legend>svg{background:transparent;color:currentColor}#ch-tooltip{background:#222;border-radius:2px;box-shadow:2px 2px 2px rgba(0,0,0,.2);box-sizing:border-box;color:#bbb;display:none;font-size:12px;line-height:1.4;padding:5px 10px;text-align:center}#ch-tooltip[data-show]{display:block}#ch-tooltip-arrow,#ch-tooltip-arrow:before{background:inherit;height:8px;position:absolute;width:8px}#ch-tooltip-arrow{visibility:hidden}#ch-tooltip-arrow:before{content:"";-webkit-transform:rotate(45deg);transform:rotate(45deg);visibility:visible}#ch-tooltip[data-popper-placement^=top]>#ch-tooltip-arrow{bottom:-4px;margin-left:-4px}#ch-tooltip[data-popper-placement^=bottom]>#ch-tooltip-arrow{margin-left:-4px;top:-4px}#ch-tooltip[data-popper-placement^=left]>#ch-tooltip-arrow{right:-4px}#ch-tooltip[data-popper-placement^=right]>#ch-tooltip-arrow{left:-4px}#ch-tooltip[data-theme=dark]{background:#636e7b;color:#cdd9e5} .ch-container svg { overflow: visible; }

🕓 Zones R158

active
🇬🇧 EN
Zone active
R158A
A R158A Encore 0-12h0-54min
A R158B Encore 0-12h0-54min
Activité aujourd'hui
Voir toutes les statistiques →