*{box-sizing:border-box}body{font:var(--afsr-fontSize-base)/1.55 var(--afsr-font-body-family);color:var(--afsr-role-text);background:var(--afsr-role-surface-tint);margin:0}h1,h2,h3{font-family:var(--afsr-font-heading-family);font-weight:var(--afsr-fontWeight-bold);margin:0;line-height:1.25}h1{font-size:var(--afsr-fontSize-2xl)}h2{font-size:var(--afsr-fontSize-xl);margin-bottom:12px}h3{font-size:var(--afsr-fontSize-lg);margin-bottom:8px}a{color:var(--afsr-role-primary)}:focus-visible{outline:3px solid var(--afsr-role-primary);outline-offset:2px}small,.discret{font-size:var(--afsr-fontSize-sm);color:var(--afsr-role-text-soft)}.vide{color:var(--afsr-role-text-soft);font-style:italic}.centre{justify-items:start;gap:16px;max-width:520px;margin:10vh auto;padding:0 16px;display:grid}.page{max-width:1200px;margin:0 auto;padding:24px 16px 64px}.entete{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:20px;display:flex}.entete p{color:var(--afsr-role-text-soft);margin:4px 0 0}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fil{font-size:var(--afsr-fontSize-sm);margin-bottom:8px}.grille{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:16px;display:grid}.grille.deux{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.cols{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}@media (max-width:900px){.cols{grid-template-columns:1fr}}.carte{background:var(--afsr-role-surface);border:1px solid var(--afsr-role-border-strong);border-radius:var(--afsr-radius-md);box-shadow:var(--afsr-shadow-sm);margin-bottom:16px;padding:16px 20px}.carte>:last-child{margin-bottom:0}.carte.accent{border-color:var(--afsr-role-primary)}.btn,.btn-sec,.btn-petit{font:inherit;font-weight:var(--afsr-fontWeight-semibold);cursor:pointer;border-radius:var(--afsr-radius-lg);border:1px solid var(--afsr-color-magenta-90);background:var(--afsr-role-primary);color:var(--afsr-role-on-primary);padding:8px 20px;text-decoration:none;display:inline-block}.btn:hover{background:var(--afsr-role-primary-hover)}.btn-sec{background:var(--afsr-role-surface);color:var(--afsr-role-primary);border-color:var(--afsr-role-border-strong)}.btn-sec:hover{background:var(--afsr-role-primary-soft)}.btn-petit{font-size:var(--afsr-fontSize-sm);background:var(--afsr-role-surface);color:var(--afsr-role-primary);border-color:var(--afsr-role-border-strong);padding:3px 12px}.btn-petit:hover{background:var(--afsr-role-primary-soft)}.btn-danger{color:var(--afsr-color-danger)}button:disabled{opacity:.5;cursor:not-allowed}.alerte{border-radius:var(--afsr-radius-sm);border:1px solid;margin:0 0 16px;padding:10px 14px}.alerte.erreur{background:var(--afsr-color-danger-soft);color:var(--afsr-color-danger);border-color:var(--afsr-color-danger)}.alerte.ok{background:var(--afsr-color-success-soft);color:var(--afsr-color-success);border-color:var(--afsr-color-success)}.alerte.attention{background:var(--afsr-color-warning-soft);color:var(--afsr-color-warning);border-color:var(--afsr-color-warning)}.alerte.info{background:var(--afsr-role-surface);color:var(--afsr-role-text);border-color:var(--afsr-role-border-strong)}.badge{border-radius:var(--afsr-radius-pill);font-size:var(--afsr-fontSize-xs);font-weight:var(--afsr-fontWeight-semibold);background:var(--afsr-role-primary-soft);color:var(--afsr-color-magenta-120);white-space:nowrap;padding:1px 10px;display:inline-block}.badge.ok{background:var(--afsr-color-success-soft);color:var(--afsr-color-success)}.badge.attention{background:var(--afsr-color-warning-soft);color:var(--afsr-color-warning)}.badge.erreur{background:var(--afsr-color-danger-soft);color:var(--afsr-color-danger)}.badge.neutre{background:var(--afsr-color-neutral-5);color:var(--afsr-color-neutral-1)}form.champs{gap:12px;display:grid}label.champ{font-weight:var(--afsr-fontWeight-semibold);font-size:var(--afsr-fontSize-sm);gap:4px;display:grid}label.champ>span small{font-weight:var(--afsr-fontWeight-normal)}input,select,textarea{font:inherit;color:var(--afsr-role-text);background:var(--afsr-role-surface);border:1px solid var(--afsr-role-border-input);border-radius:var(--afsr-radius-sm);width:100%;padding:7px 10px}input[type=checkbox],input[type=radio]{width:auto}textarea{resize:vertical;min-height:90px}.ligne{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.ligne>label.champ{flex:160px}.case{font-weight:var(--afsr-fontWeight-medium);align-items:center;gap:8px;display:flex}table{border-collapse:collapse;width:100%;font-size:var(--afsr-fontSize-sm)}th,td{text-align:left;border-bottom:1px solid var(--afsr-role-border);vertical-align:top;padding:8px 10px}th{color:var(--afsr-role-text-soft);font-weight:var(--afsr-fontWeight-semibold)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.tableau{overflow-x:auto}tr.fait td{color:var(--afsr-role-text-soft)}.kpi .delta{font-size:var(--afsr-fontSize-sm);color:var(--afsr-role-text-soft)}.liste{gap:8px;margin:0;padding:0;list-style:none;display:grid}.liste>li{border-bottom:1px solid var(--afsr-role-border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;padding-bottom:8px;display:flex}.liste>li:last-child{border-bottom:0;padding-bottom:0}.barre{background:var(--afsr-role-border);border-radius:var(--afsr-radius-pill);height:10px;position:relative;overflow:visible}.barre>b{background:var(--afsr-role-text);width:2px;position:absolute;top:-4px;bottom:-4px}.rangee{font-size:var(--afsr-fontSize-sm);grid-template-columns:minmax(140px,1.2fr) 3fr minmax(120px,1fr);align-items:center;gap:4px 12px;margin-bottom:10px;display:grid}@media (max-width:700px){.rangee{grid-template-columns:1fr}}.pv{background:var(--afsr-role-surface);border:1px solid var(--afsr-role-border-strong);border-radius:var(--afsr-radius-md);max-width:820px;padding:24px 32px}.pv h1{font-size:var(--afsr-fontSize-2xl);margin-bottom:12px}.pv h2{font-size:var(--afsr-fontSize-lg);color:var(--afsr-role-tertiary);margin:22px 0 8px}.pv h3{font-size:var(--afsr-fontSize-base);margin:16px 0 4px}.pv ul,.pv ol{padding-left:22px}.chrono{font-variant-numeric:tabular-nums;font-weight:var(--afsr-fontWeight-bold)}.chrono.depasse{color:var(--afsr-color-danger)}.etapes{font-size:var(--afsr-fontSize-sm);flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0;list-style:none;display:flex}.etapes li{border-radius:var(--afsr-radius-pill);background:var(--afsr-role-surface);border:1px solid var(--afsr-role-border-strong);padding:3px 12px}.etapes li.fait{background:var(--afsr-color-success-soft);border-color:var(--afsr-color-success);color:var(--afsr-color-success)}.etapes li.courant{background:var(--afsr-role-primary);border-color:var(--afsr-role-primary);color:var(--afsr-role-on-primary);font-weight:var(--afsr-fontWeight-bold)}.graphique svg{width:100%;height:auto;display:block}.regle{font-size:var(--afsr-fontSize-sm);color:var(--afsr-role-text-soft);border-left:3px solid var(--afsr-role-border-strong);margin:8px 0;padding-left:10px}.barre{background:var(--afsr-role-border);border-radius:var(--afsr-radius-pill);height:10px;position:relative}.barre>i{border-radius:var(--afsr-radius-pill);background:var(--afsr-role-primary);max-width:100%;height:100%;display:block}.legende{font-size:var(--afsr-fontSize-sm);flex-wrap:wrap;gap:6px 16px;margin:8px 0;display:flex}.legende i{vertical-align:middle;border-radius:2px;width:14px;height:8px;margin-right:6px;display:inline-block}.kpi{gap:2px;display:grid}.kpi .valeur{font-family:var(--afsr-font-heading-family);font-size:var(--afsr-fontSize-3xl);font-weight:var(--afsr-fontWeight-bold);color:var(--afsr-role-primary);font-variant-numeric:tabular-nums;line-height:1.1}.kpi .libelle{font-weight:var(--afsr-fontWeight-semibold)}details>summary{cursor:pointer;font-weight:var(--afsr-fontWeight-semibold);color:var(--afsr-role-primary)}details[open]>summary{margin-bottom:8px}.notes{white-space:pre-wrap;margin:6px 0}.onglets{border-bottom:2px solid var(--afsr-role-border);flex-wrap:wrap;gap:4px;margin:0 0 16px;padding:0;list-style:none;display:flex}.onglets a{font-weight:var(--afsr-fontWeight-semibold);color:var(--afsr-role-text);border-radius:var(--afsr-radius-sm) var(--afsr-radius-sm) 0 0;padding:8px 16px;text-decoration:none;display:block}.onglets a:hover{background:var(--afsr-role-primary-soft)}.onglets a[aria-current=page]{color:var(--afsr-role-primary);border-bottom:3px solid var(--afsr-role-primary);margin-bottom:-2px}.btn-petit.actif,.btn-petit[aria-current=true]{background:var(--afsr-role-primary);color:var(--afsr-role-on-primary)}.inline{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline input[type=number]{width:5.5em}.inline select{width:auto}tr.phase td{background:var(--afsr-role-primary-soft);font-weight:var(--afsr-fontWeight-semibold)}td.indent{padding-left:28px}tr.retard td:first-child{border-left:4px solid var(--afsr-color-danger)}tr.bloquee td:first-child{border-left:4px solid var(--afsr-color-warning)}.avertissement{font-size:var(--afsr-fontSize-sm);color:var(--afsr-role-text-soft);border-left:3px solid var(--afsr-role-border-strong);margin:8px 0;padding-left:10px}.gantt-corps{border:1px solid var(--afsr-role-border-strong);border-radius:var(--afsr-radius-md);background:var(--afsr-role-surface);margin-top:8px;display:flex;overflow:hidden}.gantt-libelles{border-right:1px solid var(--afsr-role-border-strong);width:260px;font-size:var(--afsr-fontSize-sm);flex:0 0 260px;margin:0;padding:0;list-style:none}.gantt-libelles li{border-bottom:1px solid var(--afsr-role-border);align-items:center;padding:0 10px;display:flex;overflow:hidden}.gantt-libelles li.enfant{padding-left:24px}.gantt-libelles li.phase{font-weight:var(--afsr-fontWeight-bold)}.gantt-libelles a{color:var(--afsr-role-text);white-space:nowrap;text-overflow:ellipsis;text-decoration:none;overflow:hidden}.gantt-libelles a:hover{text-decoration:underline}.gantt-defile{flex:auto;overflow-x:auto}.gantt-defile svg{display:block}.g-mois{fill:var(--afsr-role-surface-tint)}.g-mois.alt{fill:var(--afsr-role-primary-soft)}.g-texte{fill:var(--afsr-role-text);font-size:11px}.g-texte.petit{fill:var(--afsr-role-text-soft)}.g-texte.barre{fill:var(--afsr-role-on-primary);font-weight:600}.g-texte.aujourdhui{fill:var(--afsr-color-danger);font-weight:700}.g-grille{stroke:var(--afsr-role-border);stroke-width:1px}.g-grille.fort{stroke:var(--afsr-role-border-strong)}.g-ligne{fill:#0000}.g-ligne.alt{fill:var(--afsr-role-surface-tint);opacity:.6}.g-aujourdhui{stroke:var(--afsr-color-danger);stroke-width:2px;stroke-dasharray:4 3}.g-barre{fill:var(--afsr-role-primary-soft);stroke:var(--afsr-role-primary);stroke-width:1.5px}.g-fait{fill:var(--afsr-role-primary)}.g-barre.phase{fill:var(--afsr-role-border);stroke:var(--afsr-role-tertiary)}.g-fait.phase{fill:var(--afsr-role-tertiary)}.g-barre.termine{stroke:var(--afsr-color-success);fill:var(--afsr-color-success-soft)}.g-fait.termine{fill:var(--afsr-color-success)}.g-barre.retard{stroke:var(--afsr-color-danger);fill:var(--afsr-color-danger-soft);stroke-dasharray:5 2}.g-fait.retard{fill:var(--afsr-color-danger)}.g-barre.bloquee{stroke:var(--afsr-color-warning);fill:var(--afsr-color-warning-soft);stroke-width:2.5px}.g-fait.bloquee{fill:var(--afsr-color-warning)}.g-jalon{fill:var(--afsr-role-tertiary);stroke:var(--afsr-role-surface);stroke-width:1.5px}.g-jalon.termine{fill:var(--afsr-color-success)}.g-jalon.retard{fill:var(--afsr-color-danger)}.g-jalon.bloquee{fill:var(--afsr-color-warning)}.g-lien{stroke:var(--afsr-role-text-soft);stroke-width:1.4px}.g-lien.conflit{stroke:var(--afsr-color-danger);stroke-width:2px}.g-fleche{fill:var(--afsr-role-text-soft)}.gantt a:focus-visible rect,.gantt a:focus-visible polygon{outline:3px solid var(--afsr-role-primary)}.l-barre{background:var(--afsr-role-primary)}.l-phase{background:var(--afsr-role-tertiary)}.l-retard{background:var(--afsr-color-danger)}.l-bloquee{background:var(--afsr-color-warning)}.l-termine{background:var(--afsr-color-success)}:target{scroll-margin-top:80px}tr:target td{background:var(--afsr-color-warning-soft)}.synthese .feu{font-size:var(--afsr-fontSize-lg)}@media print{afsr-toolbar,.sans-impression,.actions,.btn,.btn-sec,.btn-petit,details{display:none!important}body{background:#fff}.page{max-width:none;padding:0}.carte{box-shadow:none;break-inside:avoid}.gantt-defile{overflow:visible}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
