/* fonctions/planning/planning.css — fenêtre Planning (rythme, légende, jours fériés) et interrupteur
   Séparé de agenda.css à l'étape 9 du découpage, à la même place dans l'ordre de chargement
   (juste après agenda.css, voir index.html) : la cascade ne change pas. */
 /* Interrupteur générique. */
 .ck-switch{position:relative; width:calc(32px * var(--ui-scale-factor)); height:calc(18px * var(--ui-scale-factor)); border-radius:calc(999px * var(--ui-scale-factor)); background:var(--surface-3); border:calc(1px * var(--ui-scale-factor)) solid var(--border); padding:0; flex-shrink:0; cursor:pointer; transition:background .15s,border-color .15s;}
 .ck-switch::after{content:''; position:absolute; top:calc(1.5px * var(--ui-scale-factor)); left:calc(1.5px * var(--ui-scale-factor)); width:calc(13px * var(--ui-scale-factor)); height:calc(13px * var(--ui-scale-factor)); border-radius:50%; background:var(--text-dim); transition:transform .15s,background .15s;}
 .ck-switch[aria-checked="true"]{background:var(--accent); border-color:var(--accent);}
 .ck-switch[aria-checked="true"]::after{background:#fff; transform:translateX(calc(14px * var(--ui-scale-factor)));}
 @media (prefers-reduced-motion:reduce){.ck-switch,.ck-switch::after{transition:none;}}
 /* Fenêtre Planning. */
 .modal.planning-modal{width:min(calc(484px * var(--ui-scale-factor)),calc(100vw - calc(18px * var(--ui-scale-factor)))); max-width:none;}
 /* Suite : ces règles l’emportent sur des styles génériques de même spécificité (champs, pastilles, fenêtres) ; elles doivent rester après eux. */
 .planning-modal .modal-head{padding:calc(9px * var(--ui-scale-factor)) calc(12px * var(--ui-scale-factor)) calc(8px * var(--ui-scale-factor));}
 .planning-modal .modal-body{padding:calc(10px * var(--ui-scale-factor)) calc(12px * var(--ui-scale-factor)) calc(12px * var(--ui-scale-factor)); gap:calc(11px * var(--ui-scale-factor)); max-height:min(74vh,calc(660px * var(--ui-scale-factor))); overflow-y:auto;}
 .pl-top{display:flex; align-items:center; justify-content:space-between; gap:calc(10px * var(--ui-scale-factor)); flex-wrap:wrap;}
 .pl-switch-row{display:flex; align-items:center; gap:calc(8px * var(--ui-scale-factor)); font-size:calc(10px * var(--ui-scale-factor)); font-weight:600; color:var(--text);}
 .pl-tabs{display:flex; width:100%;}
 .pl-tabs button{flex:1;}
 .pl-section{display:flex; flex-direction:column; gap:calc(9px * var(--ui-scale-factor));}
 .pl-row{display:flex; align-items:center; gap:calc(8px * var(--ui-scale-factor)); flex-wrap:wrap; font-size:calc(10px * var(--ui-scale-factor)); color:var(--text-dim);}
 .pl-row > .lbl{min-width:calc(112px * var(--ui-scale-factor));}
 .pl-stepper{display:inline-flex; align-items:center; border:calc(1px * var(--ui-scale-factor)) solid var(--border); border-radius:calc(6px * var(--ui-scale-factor)); overflow:hidden; background:var(--surface-2);}
 .pl-stepper button{width:calc(24px * var(--ui-scale-factor)); height:calc(24px * var(--ui-scale-factor)); border:0; background:transparent; color:var(--text); font:600 calc(13px * var(--ui-scale-factor))/1 system-ui,sans-serif; padding:0; cursor:pointer;}
 .pl-stepper button:hover:not(:disabled){background:var(--surface-3);}
 .pl-stepper button:disabled{opacity:.3; cursor:default;}
 .pl-stepper output{min-width:calc(62px * var(--ui-scale-factor)); text-align:center; font-size:calc(10px * var(--ui-scale-factor)); font-weight:650; color:var(--text); font-variant-numeric:tabular-nums;}
 .pl-select,.pl-input{background:var(--surface-3); border:calc(1px * var(--ui-scale-factor)) solid var(--border); border-radius:calc(6px * var(--ui-scale-factor)); color:var(--text); font:500 calc(10px * var(--ui-scale-factor)) system-ui,sans-serif; padding:calc(5px * var(--ui-scale-factor)) calc(7px * var(--ui-scale-factor)); color-scheme:dark;}
 .pl-select:focus,.pl-input:focus{outline:none; border-color:var(--accent);}
 .pl-help{font-size:calc(9px * var(--ui-scale-factor)); color:var(--text-faint); line-height:1.5;}
 .pl-brushes{display:flex; flex-wrap:wrap; gap:calc(4px * var(--ui-scale-factor));}
 .pl-brush{display:inline-flex; align-items:center; gap:calc(6px * var(--ui-scale-factor)); padding:calc(3.5px * var(--ui-scale-factor)) calc(9px * var(--ui-scale-factor)) calc(3.5px * var(--ui-scale-factor)) calc(7px * var(--ui-scale-factor)); border-radius:calc(999px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); background:var(--surface-2); color:var(--text); font:600 calc(9.5px * var(--ui-scale-factor)) system-ui,sans-serif; cursor:pointer;}
 .pl-brush:hover{border-color:var(--text-faint);}
 .pl-brush[aria-pressed="true"]{border-color:var(--st,var(--text-dim)); box-shadow:0 0 0 calc(1px * var(--ui-scale-factor)) var(--st,var(--text-dim)); background:color-mix(in srgb,var(--st,#888) 16%,var(--surface-2));}
 .pl-weeks{display:flex; flex-direction:column; gap:calc(6px * var(--ui-scale-factor));}
 .pl-week{border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); border-radius:calc(8px * var(--ui-scale-factor)); padding:calc(6px * var(--ui-scale-factor)) calc(7px * var(--ui-scale-factor)) calc(7px * var(--ui-scale-factor)); background:color-mix(in srgb,var(--surface-2) 55%,transparent);}
 .pl-week.current{border-color:color-mix(in srgb,var(--accent) 55%,transparent);}
 .pl-week-title{display:flex; align-items:center; gap:calc(7px * var(--ui-scale-factor)); font-size:calc(9.5px * var(--ui-scale-factor)); font-weight:650; margin-bottom:calc(5px * var(--ui-scale-factor));}
 .pl-week-title .badge{font-size:calc(8px * var(--ui-scale-factor)); font-weight:600; color:var(--accent);}
 .pl-grid{display:grid; grid-template-columns:calc(52px * var(--ui-scale-factor)) repeat(7,minmax(0,1fr)); gap:calc(3px * var(--ui-scale-factor)); touch-action:none;}
 .pl-grid .dh{font-size:calc(8.5px * var(--ui-scale-factor)); color:var(--text-dim); text-align:center; font-weight:600; cursor:pointer; border-radius:calc(4px * var(--ui-scale-factor)); padding:calc(1px * var(--ui-scale-factor)) 0; user-select:none;}
 .pl-grid .dh:hover{background:var(--surface-3); color:var(--text);}
 .pl-grid .dh.empty{visibility:hidden;}
 .pl-grid .rh{font-size:calc(8.5px * var(--ui-scale-factor)); color:var(--text-faint); align-self:center; white-space:nowrap;}
 .pl-half{height:calc(22px * var(--ui-scale-factor)); border-radius:calc(5px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); background:var(--surface); cursor:crosshair; font-size:calc(7.5px * var(--ui-scale-factor)); font-weight:650; color:color-mix(in srgb,var(--st,#fff) 35%,#fff); display:flex; align-items:center; justify-content:center; overflow:hidden; white-space:nowrap; padding:0 calc(2px * var(--ui-scale-factor)); user-select:none;}
 .pl-half.set{background:color-mix(in srgb,var(--st) 32%,var(--surface)); border-color:color-mix(in srgb,var(--st) 60%,transparent);}
 .pl-half:hover{border-color:var(--text-dim);}
 .pl-half.empty{visibility:hidden; pointer-events:none;}
 .pl-legend{display:flex; flex-direction:column; gap:calc(5px * var(--ui-scale-factor));}
 .pl-legend-row{display:flex; align-items:center; gap:calc(6px * var(--ui-scale-factor));}
 .pl-color-btn{width:calc(24px * var(--ui-scale-factor)); height:calc(24px * var(--ui-scale-factor)); border-radius:calc(6px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) solid rgba(255,255,255,.18); background:var(--st); flex-shrink:0; padding:0; cursor:pointer;}
 .pl-color-btn[aria-expanded="true"]{box-shadow:0 0 0 calc(2px * var(--ui-scale-factor)) var(--surface),0 0 0 calc(3.5px * var(--ui-scale-factor)) var(--text-dim);}
 .pl-legend-row .pl-input{flex:1; min-width:0;}
 .pl-legend-row .tag{font-size:calc(8px * var(--ui-scale-factor)); color:var(--text-faint); white-space:nowrap;}
 .pl-icon-btn{width:calc(24px * var(--ui-scale-factor)); height:calc(24px * var(--ui-scale-factor)); flex-shrink:0; border:calc(1px * var(--ui-scale-factor)) solid transparent; background:transparent; color:var(--text-faint); border-radius:calc(6px * var(--ui-scale-factor)); padding:0; font-size:calc(13px * var(--ui-scale-factor)); line-height:1; cursor:pointer;}
 .pl-icon-btn:hover:not(:disabled){color:var(--danger); background:var(--surface-2); border-color:var(--border-soft);}
 .pl-icon-btn:disabled{opacity:.25; cursor:default;}
 .pl-palette{display:grid; grid-template-columns:repeat(9,calc(20px * var(--ui-scale-factor))); gap:calc(5px * var(--ui-scale-factor)); padding:calc(7px * var(--ui-scale-factor)); margin-left:calc(30px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); border-radius:calc(7px * var(--ui-scale-factor)); background:var(--surface-2); width:max-content;}
 .pl-palette button{width:calc(20px * var(--ui-scale-factor)); height:calc(20px * var(--ui-scale-factor)); border-radius:calc(5px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) solid rgba(255,255,255,.12); padding:0; cursor:pointer;}
 .pl-palette button.current{box-shadow:0 0 0 calc(2px * var(--ui-scale-factor)) var(--surface-2),0 0 0 calc(3.5px * var(--ui-scale-factor)) #fff;}
 .pl-add-btn{display:flex; align-items:center; justify-content:center; gap:calc(6px * var(--ui-scale-factor)); width:100%; padding:calc(6px * var(--ui-scale-factor)); border:calc(1px * var(--ui-scale-factor)) dashed var(--border); border-radius:calc(6px * var(--ui-scale-factor)); background:transparent; color:var(--text-dim); font:600 calc(9.5px * var(--ui-scale-factor)) system-ui,sans-serif; cursor:pointer;}
 .pl-add-btn:hover:not(:disabled){border-color:var(--accent); color:var(--text);}
 .pl-add-btn:disabled{opacity:.4; cursor:default;}
 .pl-year{display:flex; align-items:center; gap:calc(6px * var(--ui-scale-factor)); font-size:calc(11px * var(--ui-scale-factor)); font-weight:650; color:var(--text);}
 .pl-year output{min-width:calc(40px * var(--ui-scale-factor)); text-align:center; font-variant-numeric:tabular-nums;}
 .pl-hol-list{display:flex; flex-direction:column; border:calc(1px * var(--ui-scale-factor)) solid var(--border-soft); border-radius:calc(7px * var(--ui-scale-factor)); overflow:hidden;}
 .pl-hol{display:grid; grid-template-columns:calc(13px * var(--ui-scale-factor)) calc(92px * var(--ui-scale-factor)) minmax(0,1fr) auto; align-items:center; gap:calc(8px * var(--ui-scale-factor)); padding:calc(5px * var(--ui-scale-factor)) calc(8px * var(--ui-scale-factor)); font-size:calc(9.5px * var(--ui-scale-factor)); border-top:calc(1px * var(--ui-scale-factor)) solid var(--border-soft);}
 .pl-hol:first-child{border-top:0;}
 .pl-hol input[type=checkbox]{accent-color:var(--accent); margin:0;}
 .pl-hol .d{color:var(--text-dim); font-variant-numeric:tabular-nums;}
 .pl-hol .n{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
 .pl-hol .tag{font-size:calc(8px * var(--ui-scale-factor)); color:var(--text-faint);}
 .pl-hol.off .d,.pl-hol.off .n{opacity:.45; text-decoration:line-through;}
 .pl-hol-add{display:grid; grid-template-columns:calc(116px * var(--ui-scale-factor)) minmax(0,1fr) auto; gap:calc(6px * var(--ui-scale-factor)); align-items:center;}
 .pl-check{display:inline-flex; align-items:center; gap:calc(6px * var(--ui-scale-factor)); font-size:calc(9.5px * var(--ui-scale-factor)); color:var(--text-dim); cursor:pointer;}
 .pl-check input{accent-color:var(--accent); margin:0;}
