/* Planning façon agenda (interrupteur planning_v2) : mêmes jetons que « Ma semaine » (--card, --ink, --muted, --line, --accent, --grad, --wk-*),
   thème clair et sombre suivis automatiquement, cibles de 44 px, focus visible, « réduire les animations » respecté. Grille : heures à gauche,
   une colonne par jour, 1 heure = --pl-hour (48 px, 64 px pour les seniors). */
:root{
  --pl-cours:#2f6fd6; --pl-controle:#c2410c; --pl-now:#d6336c; --pl-grid:color-mix(in srgb,var(--ink) 9%,transparent); --pl-half:color-mix(in srgb,var(--ink) 4.5%,transparent);
  --pl-today:color-mix(in srgb,var(--accent) 6%,transparent);
}
@media (prefers-color-scheme:dark){ :root{ --pl-cours:#8ac5fd; --pl-controle:#ffa07a; --pl-now:#ff6b9a; --pl-grid:color-mix(in srgb,var(--ink) 12%,transparent); --pl-half:color-mix(in srgb,var(--ink) 6%,transparent); --pl-today:color-mix(in srgb,var(--accent) 12%,transparent) } }

.pl{gap:12px}
.pl-shell{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:24px;padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0;box-shadow:0 1px 2px rgba(13,27,77,.04),0 8px 24px rgba(106,93,240,.06)}
.pl-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}
.pl-title{font-size:22px;line-height:1.2;margin:0;font-weight:800;letter-spacing:-.01em;flex:1 1 220px;min-width:0;text-wrap:balance;font-variant-numeric:tabular-nums}
.pl-nav{display:flex;align-items:center;gap:6px}
.pl-tbtn{min-height:44px;min-width:44px;padding:0 14px;border-radius:14px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:15px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.pl-tbtn:hover{background:var(--wk-soft)}
.pl-tbtn:disabled{opacity:.5;cursor:default}
.pl-tbtn.icon{padding:0;font-size:22px;line-height:1}
.pl-views{display:inline-grid;grid-auto-flow:column;gap:3px;padding:3px;border-radius:15px;background:var(--wk-soft)}
.pl-vbtn{min-height:40px;padding:0 14px;border:0;border-radius:12px;background:transparent;color:var(--muted);font:inherit;font-size:15px;font-weight:650;cursor:pointer;white-space:nowrap}
.pl-vbtn[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:0 1px 4px rgba(13,27,77,.16)}
.pl .wk-add{min-height:44px}
.pl :focus-visible,.pl-card :focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.pl-empty,.pl-hint{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.pl-links{display:flex;flex-wrap:wrap;gap:8px}
.pl-links .btn{width:auto;margin:0;min-height:44px;padding:8px 16px;font-size:14px}
#pl-foot{display:flex;flex-direction:column;gap:10px}
#pl-foot:empty{display:none}

/* --- grille horaire (Jour, Semaine, 3 jours) --- */
.pl-grid{--pl-gut:46px;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card)}
.pl-head,.pl-allday{display:grid;grid-template-columns:var(--pl-gut) repeat(var(--pl-days),minmax(0,1fr));border-bottom:1px solid var(--line)}
.pl-allday{grid-template-columns:var(--pl-gut) minmax(0,1fr)}
.pl-gut{font-size:11px;color:var(--muted);display:flex;align-items:center;justify-content:center;font-weight:650;letter-spacing:.02em}
.pl-dh{display:flex;justify-content:center;padding:4px 2px;min-width:0;border-left:1px solid var(--pl-grid)}
.pl-dh-btn{display:flex;flex-direction:column;align-items:center;gap:0;min-height:48px;min-width:44px;padding:4px 6px;border:0;border-radius:14px;background:transparent;color:var(--ink);font:inherit;cursor:pointer}
.pl-dh-btn:hover{background:var(--wk-soft)}
.pl-dh-d{font-size:12px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.pl-dh-n{font-size:20px;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}
.pl-grid[aria-label^="Journée"] .pl-dh{flex-direction:column;align-items:center;padding:6px}
.pl-dh.today .pl-dh-n{color:#fff;background:var(--grad);border-radius:999px;min-width:32px;padding:0 6px;text-align:center}
.pl-dh.today .pl-dh-d{color:var(--h2-strong,var(--accent))}
.pl-adtrack{display:grid;grid-template-columns:repeat(var(--pl-days),minmax(0,1fr));grid-auto-rows:minmax(26px,auto);gap:3px 0;padding:4px 0;min-height:34px;cursor:pointer;position:relative;background:linear-gradient(90deg,transparent calc(100% - 1px),var(--pl-grid) 0) 0 0/calc(100% / var(--pl-days)) 100% repeat-x}
.pl-scroll{overflow-y:auto;overflow-x:hidden;height:clamp(420px,calc(100dvh - 300px),760px);overscroll-behavior:contain;position:relative}
.pl-rows{display:grid;grid-template-columns:var(--pl-gut) minmax(0,1fr);position:relative;height:calc(var(--pl-hour) * 24)}
.pl-hours{position:relative}
.pl-hl{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.pl-cols{display:grid;grid-template-columns:repeat(var(--pl-days),minmax(0,1fr));position:relative;
  background:repeating-linear-gradient(to bottom,var(--pl-grid) 0 1px,transparent 1px calc(var(--pl-hour) / 2),var(--pl-half) calc(var(--pl-hour) / 2) calc(var(--pl-hour) / 2 + 1px),transparent calc(var(--pl-hour) / 2 + 1px) var(--pl-hour))}
.pl-col{position:relative;border-left:1px solid var(--pl-grid);min-width:0;cursor:pointer}
.pl-col.today{background:var(--pl-today)}
.pl-col:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.pl-now{position:absolute;left:-1px;right:0;height:2px;background:var(--pl-now);z-index:3;pointer-events:none}
.pl-now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--pl-now)}

/* --- événements : couleur par type, texte toujours en --ink sur une teinte légère (contraste du texte courant) --- */
.pl-ev{--tc:var(--wk-rappel);font:inherit;color:var(--ink);text-align:left;cursor:pointer;border:1px solid color-mix(in srgb,var(--tc) 55%,transparent);background:color-mix(in srgb,var(--tc) 20%,var(--card));border-radius:10px;min-width:0;overflow:hidden;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
.pl-ev.t-tache{--tc:var(--wk-tache)} .pl-ev.t-intention{--tc:var(--wk-intention)} .pl-ev.t-cours{--tc:var(--pl-cours)} .pl-ev.t-controle{--tc:var(--pl-controle)}
.pl-ev:hover{background:color-mix(in srgb,var(--tc) 30%,var(--card))}
.pl-ev.done .pl-ev-t,.pl-ev.cancelled .pl-ev-t{text-decoration:line-through;text-decoration-thickness:1.5px}
.pl-ev.done,.pl-ev.cancelled{background:color-mix(in srgb,var(--tc) 8%,var(--card));border-style:dashed}
.pl-ev.late:not(.done){opacity:.78}
/* cours Pronote terminé : grisé mais lisible (texte --muted ≥ 4,5:1 sur ce fond, mesuré), dit « Terminé » en mots ; les cours à venir gardent leur couleur */
.pl-ev.past{--tc:var(--muted);background:color-mix(in srgb,var(--ink) 5%,var(--card));border-color:var(--line);border-style:solid}
.pl-ev.past .pl-ev-t{color:var(--muted);font-weight:600}
.pl-ev.past .pl-ev-h{color:var(--muted)}
.pl-chip.done{--tc:var(--muted)}
.pl-ev.ro{cursor:default}
.pl-ev-t{display:block;font-weight:700;font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal;hyphens:manual}
.pl-ev-h{display:block;font-size:12px;line-height:1.25;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-tev{position:absolute;padding:3px 6px;z-index:2;display:flex;flex-direction:column;gap:1px}
.pl-tev.short{flex-direction:row;align-items:center;gap:6px;padding:0 6px}
.pl-tev.short .pl-ev-t{white-space:nowrap}
.pl-tev .pl-ev-t.one{display:block!important;white-space:nowrap;text-overflow:ellipsis;-webkit-line-clamp:unset}
.pl-tev .pl-ev-t.tiny{display:block!important;white-space:nowrap;text-align:left;letter-spacing:.05em}
.pl-tev .pl-ev-h[hidden],.pl-tev[hidden]{display:none}
.pl-tev>span{flex:none}
.pl-tev.short>.pl-ev-t{flex:0 1 auto;min-width:0}
.pl-more{position:absolute;z-index:2;border:1px dashed color-mix(in srgb,var(--ink) 35%,transparent);border-radius:10px;background:var(--wk-soft);color:var(--ink);font:inherit;font-size:13px;font-weight:800;cursor:pointer;padding:2px 0;display:flex;align-items:flex-start;justify-content:center;min-height:24px}
.pl-more:hover{background:color-mix(in srgb,var(--accent) 16%,var(--card))}
.pl-tev:not(.short) .pl-ev-t{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.pl-adev{margin:0 2px;padding:3px 8px;min-height:26px;display:flex;align-items:center}
.pl-adev .pl-ev-t{white-space:nowrap}
.pl-admore{margin:0 2px;min-height:24px;border:0;border-radius:8px;background:var(--wk-soft);color:var(--ink);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.pl-dragging{opacity:.35}
.pl-lift{box-shadow:0 0 0 3px var(--accent)}
.pl-ghost{z-index:5;pointer-events:none;box-shadow:0 10px 26px rgba(13,27,77,.28);opacity:.95}
body.pl-dragbody{cursor:grabbing;user-select:none;-webkit-user-select:none}
body.pl-dragbody .pl-ev{cursor:grabbing}

/* --- mois --- */
.pl-month{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card);min-width:0}
.pl-mhead,.pl-mrow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.pl-mhead{border-bottom:1px solid var(--line)}
.pl-mh{text-align:center;font-size:12px;font-weight:650;color:var(--muted);padding:8px 2px;text-transform:uppercase;letter-spacing:.04em}
.pl-mrow+.pl-mrow{border-top:1px solid var(--pl-grid)}
.pl-mcell{min-height:124px;padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0;cursor:pointer;position:relative}
.pl-mcell+.pl-mcell{border-left:1px solid var(--pl-grid)}
.pl-mcell.out{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.pl-mcell.out .pl-mnum{color:var(--muted);font-weight:600}
.pl-mcell.today{background:var(--pl-today)}
.pl-mcell.drop{box-shadow:inset 0 0 0 3px var(--accent)}
.pl-mcell:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.pl-mnum{align-self:center;min-width:30px;height:30px;border:0;border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-size:14px;font-weight:750;cursor:pointer;font-variant-numeric:tabular-nums}
.pl-mnum:hover{background:var(--wk-soft)}
.pl-mcell.today .pl-mnum{background:var(--grad);color:#fff}
.pl-mlist{display:flex;flex-direction:column;gap:3px;min-width:0}
.pl-mev{display:flex;align-items:center;gap:5px;padding:2px 6px;min-height:24px;border-radius:7px;font-size:12px}
.pl-mev .pl-ev-t{font-size:12px;white-space:nowrap}
.pl-mev-h{font-size:11px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}
.pl-mmore{align-self:flex-start;border:0;background:transparent;color:var(--h2-strong,var(--accent));font:inherit;font-size:12px;font-weight:750;padding:2px 6px;min-height:24px;border-radius:7px;cursor:pointer}
.pl-mmore:hover{background:var(--wk-soft)}

/* --- feuilles (détails, formulaire) : base .sp-sheet / .sp-card des suppressions protégées --- */
.pl-card{max-width:560px;gap:12px}
.pl-stitle{overflow-wrap:anywhere}
.pl-meta{display:flex;flex-wrap:wrap;gap:6px}
.pl-chip{--tc:var(--wk-rappel);display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:750;background:color-mix(in srgb,var(--tc) 18%,var(--card));color:var(--ink);border:1px solid color-mix(in srgb,var(--tc) 45%,transparent)}
.pl-chip.t-tache{--tc:var(--wk-tache)} .pl-chip.t-intention{--tc:var(--wk-intention)} .pl-chip.t-cours{--tc:var(--pl-cours)} .pl-chip.t-controle{--tc:var(--pl-controle)}
.pl-chip.ok{--tc:var(--ok)} .pl-chip.late{--tc:var(--wk-late)}
.pl-when{color:var(--ink);font-size:16px;margin:0}
.pl-acts .btn{flex:1 1 130px}
.pl-del{color:var(--wk-late)!important}
.pl-form input[type=date]{width:100%;min-height:48px;padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:16px;margin:0}
.pl-form input[type=text],.pl-form input[type=time]{margin:0}
.pl-form .wk-form-row{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.pl-form .wk-form-row.one{grid-template-columns:minmax(0,1fr)}
.pl-form [hidden]{display:none!important}
.pl-switch{display:flex;align-items:center;gap:10px;min-height:44px}
.pl-switch input{width:24px;height:24px;margin:0;accent-color:var(--accent);flex:none}
.pl-switch label{font-size:15px;font-weight:650;color:var(--ink);cursor:pointer}
.pl-form .sp-row .btn{margin:0}
.pl-form .err:empty{display:none}
.wk-opt{font-weight:500;color:var(--muted)}

/* --- âges : senior (grand texte, cibles plus grandes), enfant (un peu plus grand) --- */
.pl[data-band="senior"] .pl-title{font-size:27px}
.pl[data-band="senior"] .pl-tbtn,.pl[data-band="senior"] .pl-vbtn{min-height:52px;font-size:18px}
.pl[data-band="senior"] .pl-ev-t{font-size:16px}
.pl[data-band="senior"] .pl-ev-h,.pl[data-band="senior"] .pl-hl{font-size:14px}
.pl[data-band="senior"] .pl-dh-n{font-size:24px}
.pl[data-band="senior"] .pl-hint,.pl[data-band="senior"] .pl-empty{font-size:17px}
.pl[data-band="senior"] .pl-grid{--pl-gut:54px}
.pl-card[data-band="senior"] .sp-title{font-size:24px}
.pl-card[data-band="senior"] .pl-when,.pl-card[data-band="senior"] .sp-detail{font-size:19px}
.pl-card[data-band="senior"] .btn{min-height:56px;font-size:19px}
.pl-card[data-band="senior"] input,.pl-card[data-band="senior"] select{min-height:56px!important;font-size:19px!important}
.pl-card[data-band="senior"] .wk-field label,.pl-card[data-band="senior"] .wk-label,.pl-card[data-band="senior"] .pl-switch label{font-size:17px}
.pl[data-band="enfant"] .pl-ev-t{font-size:14px}

/* --- téléphone : barre sur deux lignes, 3 jours, mois compact (toucher un jour ouvre la journée) --- */
@media (max-width:599px){
  .pl-shell{padding:10px;border-radius:20px;gap:10px}
  .pl-title{font-size:19px;flex-basis:100%;order:-1}
  .pl-bar{gap:8px}
  .pl-views{flex:1 1 auto;grid-auto-columns:1fr}
  .pl-vbtn{padding:0 8px}
  .pl-grid{--pl-gut:38px}
  .pl-hl{font-size:10px;right:4px}
  .pl-tev{padding:2px 4px}
  .pl-ev-t{font-size:12px}
  .pl-ev-h{font-size:11px}
  .pl-mcell{min-height:96px;padding:3px 2px}
  .pl-mnum{min-width:26px;height:26px;font-size:13px}
  .pl-mev{padding:1px 3px;min-height:18px;border-radius:5px;pointer-events:none}
  .pl-mev .pl-ev-t{font-size:10.5px;font-weight:650}
  .pl-mev-h{display:none}
  .pl-mmore{font-size:11px;padding:0 3px;min-height:18px;pointer-events:none}
  .pl-scroll{height:clamp(380px,calc(100dvh - 330px),640px)}
  .pl[data-band="senior"] .pl-title{font-size:23px}
}
@media (max-width:599px){ body.h2-home .pl-shell{margin-bottom:8px} }
@media (prefers-reduced-motion:no-preference){ .pl-ev,.pl-vbtn,.pl-tbtn{transition:background .15s,box-shadow .15s} }
@media (prefers-reduced-motion:reduce){ .pl *{transition:none!important;animation:none!important} }

/* Agendas reliés (interrupteur agenda_sync) : événements importés de Google ou d'Apple, en lecture seule, avec une pastille. */
:root{ --pl-ext:#64748b; --pl-google:#1a73e8; --pl-apple:#1f2937 }
@media (prefers-color-scheme:dark){ :root{ --pl-ext:#a5b4c8; --pl-google:#8ab4f8; --pl-apple:#e5e7eb } }
.pl-ev.src-ext{--tc:var(--pl-ext);border-style:dashed}
.pl-src{display:inline-block;flex:none;font-size:10px;font-weight:700;line-height:1;padding:3px 5px;border-radius:6px;letter-spacing:.02em;color:var(--card);background:var(--pl-google)}
.src-apple .pl-src{background:var(--pl-apple)}
.pl-tev .pl-src{position:absolute;top:3px;right:3px}
.pl-src[hidden]{display:none}
@media (max-width:599px){ .pl-mev .pl-src{display:none} }

/* Paramètres > Agenda (construit par planning.js, seulement si agenda_sync est ouvert pour le compte et le profil adulte) */
.ag-box{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}
.ag-h{font-size:17px;margin:0 0 2px}
.ag-h3{font-size:15px;margin:16px 0 4px}
.ag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ag-btn{font-family:inherit;font-size:15px;font-weight:600;line-height:1.25}
.ag-row .ag-btn{width:auto;margin:0;min-height:48px;padding:10px 16px;display:inline-flex;align-items:center;text-decoration:none}
.ag-part>.ag-btn{width:auto;min-height:48px;padding:10px 16px;margin-top:10px}
.ag-url{width:100%;box-sizing:border-box;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font-size:13px;font-family:ui-monospace,Menlo,monospace}
.ag-cals{border:1px solid var(--line);border-radius:12px;margin:10px 0 0;padding:6px 12px 8px}
.ag-cals legend{font-size:13px;color:var(--muted);padding:0 4px}
.ag-cal{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;overflow-wrap:anywhere}
.ag-cal input{width:22px;height:22px;flex:none;margin:0}
.ag-live{min-height:1.2em;margin:10px 0 0;font-size:14px;color:var(--ink)}
@media (max-width:479px){ .ag-row .ag-btn{width:100%;justify-content:center} }
/* Agenda Apple simplifié (07/10/2026) : l'état en une ligne (pastille + texte, jamais la couleur seule), 3 étapes numérotées, « Changer d'appareil ou arrêter » replié */
.ag-state{display:flex;align-items:center;gap:10px;margin:8px 0 4px;font-size:16px;line-height:1.35;color:var(--ink);overflow-wrap:anywhere}
.ag-state:focus{outline:none}
.ag-state:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}
.ag-dot{width:12px;height:12px;border-radius:50%;flex:none;box-sizing:border-box}
.ag-state.ok .ag-dot{background:var(--ok,#2fae7a);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok,#2fae7a) 24%,transparent)}
.ag-state.wait .ag-dot{background:#d08a16;box-shadow:0 0 0 4px color-mix(in srgb,#d08a16 24%,transparent)}
.ag-state.off .ag-dot{border:2px solid var(--muted)}
.ag-facts{margin:2px 0 0}
.ag-hint{margin:8px 0 0;padding:10px 12px;border-radius:12px;background:var(--alpha);color:var(--ink)}
.ag-once{margin:2px 0 0}
.ag-steps{list-style:none;counter-reset:ags;margin:12px 0 8px;padding:0;display:grid;gap:12px}
.ag-steps li{counter-increment:ags;position:relative;min-height:32px;padding:5px 0 0 44px;font-size:15px;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.ag-steps li::before{content:counter(ags);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;background:var(--alpha);color:var(--ink)}
.ag-steps b,.ag-path b{font-weight:700;color:var(--ink)}
.ag-more{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:0 12px}
.ag-more summary{min-height:44px;padding:11px 0;box-sizing:border-box;cursor:pointer;font-weight:600;font-size:15px;line-height:22px;color:var(--ink)}
.ag-more[open]{padding-bottom:12px}
.ag-more>.ag-btn{width:auto;min-height:48px;padding:10px 16px;margin-top:10px}
@media (max-width:479px){ .ag-more>.ag-btn,.ag-apple>.ag-btn{width:100%;justify-content:center} }
