.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:#eaf0ec; border:1px solid #cbd8d0; 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 #316d61; border-radius:9px; background:#fff; 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:#fff; 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 #9aada7; border-radius:6px; background:#fff; 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:#316d61; }
.planning-filters button { font-size:.85rem; }.planning-filters button:disabled { opacity:.45; cursor:default; }
.planning-filters .planning-reset { background:#fff; 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 #bbcfc5; margin-left:18px; padding-left:26px; }
.planning-week { position:relative; background:#fff; 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:#7a9e92; border:4px solid var(--wiki-paper); left:-37px; top:27px; }
.planning-week[data-current="true"] { border-color:#467d6e; box-shadow:0 0 0 2px #dfece5; }
.planning-week[data-current="true"]::before { background:#a93a15; }
.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:#54766a; }
.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:#edf3ef; color:#28584a; }
.planning-week-current,.planning-today { display:inline-block; white-space:nowrap; font-size:.7rem; line-height:1.5; font-weight:650; background:#f9e6d9; color:#87320e; padding:4px 8px; border-radius:5px; }
.planning-week-content { padding:0 24px 24px; border-top:1px solid #e7ece8; }
.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 #dce3df; 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:#fff9f5; }
.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 #e1e9e2; padding-top:10px; }
.planning-supports summary { cursor:pointer; font-weight:650; font-size:.8rem; color:#2b6351; 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:#f0f1eb; 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 #dce3df; }
.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 #d86632; 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:#173d32; color:#fff; 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; }
