/* Couleurs de la frise : thème clair, puis sombre (préférence du système). */
:root { --planning-card:#fff; --planning-soft:#eaf0ec; --planning-soft-line:#cbd8d0; --planning-green:#316d61; --planning-field:#9aada7; --planning-spine:#bbcfc5; --planning-dot:#7a9e92; --planning-current:#467d6e; --planning-current-glow:#dfece5; --planning-now:#a93a15; --planning-plus:#54766a; --planning-week-bg:#edf3ef; --planning-week-ink:#28584a; --planning-tag-bg:#f9e6d9; --planning-tag-ink:#87320e; --planning-divider:#e7ece8; --planning-event-line:#dce3df; --planning-exam-bg:#fff9f5; --planning-support-line:#e1e9e2; --planning-support-ink:#2b6351; --planning-pending-bg:#f0f1eb; --planning-cta:#173d32; --planning-cta-ink:#fff; --planning-focus:#d86632; }
@media (prefers-color-scheme:dark) { :root:not([data-theme="light"]) { --planning-card:#161e27; --planning-soft:#16212a; --planning-soft-line:#2c3a45; --planning-green:#6cc3a7; --planning-field:#4f6271; --planning-spine:#2f4a42; --planning-dot:#5f8f80; --planning-current:#6cc3a7; --planning-current-glow:#1c3a32; --planning-now:#ff9466; --planning-plus:#8fb8aa; --planning-week-bg:#1c2a26; --planning-week-ink:#9fd8c4; --planning-tag-bg:#3a2418; --planning-tag-ink:#ffb48f; --planning-divider:#25313b; --planning-event-line:#2c3946; --planning-exam-bg:#241a17; --planning-support-line:#2c3946; --planning-support-ink:#8fd0b9; --planning-pending-bg:#222c35; --planning-cta:#2f6f5f; --planning-cta-ink:#fff; --planning-focus:#ff9b6b; } }
.planning-hero { display:grid; grid-template-columns:1.65fr 1fr; align-items:center; gap:48px; margin-bottom:30px; }
.planning-hero h1 { font-size:clamp(2.6rem,5.5vw,4.8rem); }
.planning-position { padding:28px; background:var(--planning-soft); border:1px solid var(--planning-soft-line); border-radius:14px; }
.planning-position strong { display:block; font-size:1.6rem; line-height:1.25; margin:14px 0; letter-spacing:-.035em; }
.planning-position p { color:var(--wiki-muted); font-size:.9rem; }
.planning-position a { font-size:.85rem; font-weight:650; }
.planning-phase-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:28px; }
.planning-phase-card { padding:20px 24px; border:1px solid var(--wiki-rule); border-top:3px solid var(--planning-green); border-radius:9px; background:var(--planning-card); text-decoration:none; display:flex; flex-direction:column; gap:8px; }
.planning-phase-card:nth-child(2) { border-top-color:var(--wiki-accent); }
.planning-phase-card strong { font-size:1.15rem; }.planning-phase-card>span:last-child { font-size:.85rem; color:var(--wiki-muted); }
.planning-phase-card .wiki-eyebrow { font-size:.65rem; letter-spacing:.055em; }
.planning-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px 16px; padding:20px; background:var(--planning-card); border:1px solid var(--wiki-rule); border-radius:12px; }
.planning-filters>div { flex:1; min-width:190px; }
.planning-filters label { display:block; font-size:.8rem; font-weight:650; margin-bottom:6px; }
.planning-filters select { font:inherit; font-size:.9rem; width:100%; min-height:44px; padding:10px; border:1px solid var(--planning-field); border-radius:6px; background:var(--planning-card); color:var(--wiki-ink); }
.planning-filters .planning-check { display:flex; align-items:center; gap:8px; min-height:44px; margin:0; font-weight:500; }
.planning-check input { width:18px; height:18px; accent-color:var(--planning-green); }
.planning-filters button { font-size:.85rem; }.planning-filters button:disabled { opacity:.45; cursor:default; }
.planning-filters .planning-reset { background:var(--planning-card); color:var(--wiki-ink); }
#planning-status { font-size:.9rem; font-weight:650; margin:18px 0 6px; }
.planning-explainer { font-size:.8rem; color:var(--wiki-muted); max-width:840px; margin:0 0 32px; }
.planning-phase { margin:36px 0 44px; scroll-margin-top:20px; }
.planning-phase-heading { display:flex; align-items:baseline; justify-content:space-between; gap:18px; margin-bottom:20px; }
.planning-phase-heading a { font-size:.8rem; white-space:nowrap; }
.planning-spine { border-left:2px solid var(--planning-spine); margin-left:18px; padding-left:26px; }
.planning-week { position:relative; background:var(--planning-card); border:1px solid var(--wiki-rule); border-radius:12px; margin-bottom:18px; scroll-margin-top:20px; }
.planning-week::before { content:""; position:absolute; width:12px; height:12px; border-radius:50%; background:var(--planning-dot); border:4px solid var(--wiki-paper); left:-37px; top:27px; }
.planning-week[data-current="true"] { border-color:var(--planning-current); box-shadow:0 0 0 2px var(--planning-current-glow); }
.planning-week[data-current="true"]::before { background:var(--planning-now); }
.planning-week>summary { cursor:pointer; display:flex; align-items:center; gap:16px; padding:22px; list-style:none; }
.planning-week>summary::-webkit-details-marker { display:none; }
.planning-week>summary::after { content:"+"; margin-left:auto; font-size:1.5rem; line-height:1; color:var(--planning-plus); }
.planning-week[open]>summary::after { content:"−"; }
.planning-week>summary strong { display:block; font-size:1.02rem; line-height:1.4; }
.planning-week>summary small { display:block; color:var(--wiki-muted); font-size:.75rem; margin-top:5px; max-width:620px; }
.planning-week-no { display:grid; place-content:center; min-width:45px; height:45px; font-size:.8rem; font-weight:750; border-radius:8px; background:var(--planning-week-bg); color:var(--planning-week-ink); }
.planning-week-current,.planning-today { display:inline-block; white-space:nowrap; font-size:.7rem; line-height:1.5; font-weight:650; background:var(--planning-tag-bg); color:var(--planning-tag-ink); padding:4px 8px; border-radius:5px; }
.planning-week-content { padding:0 24px 24px; border-top:1px solid var(--planning-divider); }
.planning-permalink { display:inline-block; font-size:.75rem; margin:14px 0 4px; }
.planning-day { margin-top:22px; }.planning-day h3 { display:flex; align-items:center; gap:12px; flex-wrap:wrap; font-size:1rem; margin:0 0 12px; }
.planning-events { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.planning-event { --subject-color:#697c73; border:1px solid var(--planning-event-line); border-left:3px solid var(--subject-color); border-radius:6px; padding:18px; min-width:0; overflow-wrap:anywhere; }
.planning-event[data-theme="metallurgie"] { --subject-color:#ab581d; }
.planning-event[data-theme="rdm"] { --subject-color:#307795; }
.planning-event[data-theme="procedes"] { --subject-color:#367a59; }
.planning-event[data-theme="fabrication"] { --subject-color:#785587; }
.planning-event[data-theme="examens"] { --subject-color:#b34337; background:var(--planning-exam-bg); }
.planning-event-meta { margin:0 0 8px; color:var(--wiki-muted); font-size:.7rem; }
.planning-code { color:var(--subject-color); font-weight:750; margin-right:4px; }
.planning-event h4 { font-size:1.05rem; line-height:1.4; margin:0 0 8px; letter-spacing:-.02em; }
.planning-time { font-size:.78rem; color:var(--wiki-muted); margin:0 0 12px; }
.planning-supports { border-top:1px solid var(--planning-support-line); padding-top:10px; }
.planning-supports summary { cursor:pointer; font-weight:650; font-size:.8rem; color:var(--planning-support-ink); padding:4px 0; }
.planning-supports ul { list-style:none; padding:0; margin:8px 0 0; }
.planning-supports li { margin-top:10px; font-size:.85rem; line-height:1.5; }.planning-supports small { display:block; color:var(--wiki-muted); font-size:.7rem; margin-top:2px; }
.planning-pending { color:var(--wiki-muted); }.planning-pending span { display:inline-block; font-size:.65rem; background:var(--planning-pending-bg); border-radius:4px; padding:2px 5px; }
.planning-missing { font-size:.75rem; color:var(--wiki-muted); margin:12px 0 0; padding-top:10px; border-top:1px dashed var(--planning-event-line); }
.planning-sources { font-size:.85rem; color:var(--wiki-muted); border-top:1px solid var(--wiki-rule); padding-top:20px; }.planning-sources summary { cursor:pointer; font-weight:650; }
#planning summary:focus-visible { outline:3px solid var(--planning-focus); outline-offset:4px; }
@media (max-width:800px) { .planning-hero { gap:20px; grid-template-columns:1fr; }.planning-position { padding:20px; }.planning-position strong { font-size:1.25rem; margin:8px 0; }.planning-events { grid-template-columns:1fr; }.planning-week-current { margin-left:0; } }
@media (max-width:640px) { .planning-phase-cards { grid-template-columns:1fr; }.planning-phase-card { padding:16px; }.planning-phase-heading { flex-direction:column; gap:0; }.planning-filters { padding:16px; gap:10px; }.planning-filters>div { flex-basis:100%; }.planning-filters .planning-check { flex-basis:100%; }.planning-filters button { flex:1; }.planning-spine { margin-left:7px; padding-left:16px; }.planning-week::before { left:-27px; }.planning-week>summary { padding:16px 12px; gap:10px; flex-wrap:wrap; }.planning-week>summary>span:nth-child(2) { flex:1; min-width:150px; }.planning-week>summary strong { font-size:.88rem; }.planning-week-no { min-width:36px; height:36px; }.planning-week-content { padding:0 12px 18px; }.planning-event { padding:14px; }.planning-day h3 { font-size:.9rem; }.planning-week>summary small { font-size:.68rem; } }
@media print { .planning-filters,.planning-phase-cards,.planning-position,.planning-permalink { display:none!important; }.planning-week { break-inside:avoid; }.planning-week::details-content { content-visibility:visible; height:auto; } }
.planning-position .planning-current-link { display:block; width:fit-content; background:var(--planning-cta); color:var(--planning-cta-ink); border-radius:7px; text-decoration:none; padding:10px 14px; margin:16px 0; font-weight:650; }

.planning-source-note { font-size:.75rem; color:var(--wiki-muted); max-width:380px; }
