/* ═════════════════════════════════════════════════════════════════════════════
   Module « Calendrier prévisionnel » — styles isolés (classes .pv-), variables existantes
   (--card, --border, --text...) : le thème sombre suit automatiquement.
   ═════════════════════════════════════════════════════════════════════════════ */
.pv-wrap{max-width:1500px;--pv:#7E57C2;--pv-light:rgba(126,87,194,.13);}
.pv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:10px;}
.pv-head-main{display:flex;align-items:center;gap:18px;flex-wrap:wrap;flex:1;min-width:280px;}
.pv-year{display:flex;align-items:center;gap:6px;}
.pv-year select{font-family:var(--font-display);font-weight:700;font-size:18px;border:1.5px solid var(--border);border-radius:8px;padding:4px 10px;background:var(--card);color:var(--text);}
.pv-year .icon-btn-sm{width:30px;height:30px;justify-content:center;font-size:18px;}
.pv-intro{margin:0;color:var(--text-muted);font-size:13.3px;line-height:1.5;max-width:760px;}
.pv-head-actions{display:flex;gap:8px;}
.pv-tabs{margin-bottom:16px;}
.pv-tag{display:inline-flex;align-items:center;background:var(--pv-light, rgba(126,87,194,.13));color:#6A44B0;border-radius:12px;padding:1px 9px;font-size:11.5px;font-weight:700;white-space:nowrap;}
[data-theme="dark"] .pv-tag{color:#C7B1F0;}
.pv-empty{padding:18px 4px;}

/* ---------- mon planning ---------- */
.pv-grid2{display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:16px;align-items:start;}
@media (max-width:980px){.pv-grid2{grid-template-columns:1fr;}}
.pv-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;}
.pv-kpis div{background:var(--paper);border-radius:10px;padding:10px 12px;}
.pv-kpis span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-weight:700;}
.pv-kpis b{font-family:var(--font-display);font-size:20px;}
.pv-bars{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;align-items:end;height:180px;padding-top:6px;}
.pv-bar{display:flex;flex-direction:column;align-items:center;gap:3px;height:100%;background:none;border:none;padding:0;cursor:pointer;color:var(--text-muted);}
.pv-bar-track{position:relative;flex:1;width:100%;max-width:26px;background:var(--grey-light);border-radius:5px;overflow:hidden;}
.pv-bar-fill{position:absolute;left:0;right:0;bottom:0;background:var(--pv, #7E57C2);opacity:.55;border-radius:5px 5px 0 0;transition:height .3s;}
.pv-bar-fill.high{background:var(--amber);opacity:.75;}
.pv-bar-fill.over{background:var(--brick);opacity:.8;}
.pv-bar-done{position:absolute;left:0;right:0;bottom:0;background:var(--pv, #7E57C2);border-radius:5px 5px 0 0;}
.pv-bar-cap{position:absolute;left:-2px;right:-2px;border-top:2px dashed var(--text-faint);}
.pv-bar-v{font-size:9.5px;font-family:var(--font-mono);min-height:12px;}
.pv-bar-m{font-size:10.5px;font-weight:600;}
.pv-bar.active .pv-bar-m{color:var(--text);font-weight:800;}
.pv-bar.active .pv-bar-track{outline:2px solid var(--pv, #7E57C2);outline-offset:1px;}
.pv-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.8px;color:var(--text-muted);margin-top:10px;align-items:center;}
.pv-legend span{display:inline-flex;align-items:center;gap:5px;}
.pv-sw{display:inline-block;width:12px;height:10px;border-radius:3px;background:var(--pv, #7E57C2);opacity:.55;}
.pv-sw.done{opacity:1;}
.pv-sw.cap{background:none;border-top:2px dashed var(--text-faint);height:0;}
.pv-month-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.pv-month-head h3{margin:0;font-family:var(--font-display);min-width:150px;text-align:center;}
.pv-month-head .icon-btn-sm{width:30px;height:30px;justify-content:center;font-size:17px;}
.pv-month-total{margin-left:auto;font-size:13px;color:var(--text-muted);font-weight:600;}
.pv-blocks{display:flex;flex-direction:column;gap:6px;}
.pv-block{display:grid;grid-template-columns:auto 92px 1fr auto auto;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--border);border-left:4px solid var(--pv, #7E57C2);border-radius:9px;background:var(--card);}
.pv-block.done{opacity:.62;}
.pv-block.done .pv-block-title{text-decoration:line-through;}
.pv-block-date{display:flex;flex-direction:column;font-size:12.6px;}
.pv-block-date span{color:var(--text-faint);font-family:var(--font-mono);font-size:11.5px;}
.pv-block-title{font-weight:700;font-size:13.6px;}
.pv-block-title em{font-style:normal;font-weight:500;color:var(--text-muted);}
.pv-block-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:3px;font-size:11.8px;color:var(--text-faint);}
.pv-moved{color:var(--amber);font-weight:700;}
.pv-block-dur{font-family:var(--font-display);font-weight:800;font-size:15px;}
.pv-dot{width:10px;height:10px;border-radius:50%;background:var(--pv, #7E57C2);}
@media (max-width:700px){.pv-block{grid-template-columns:auto 1fr auto;}.pv-block-date{grid-column:2;}.pv-block .btn{grid-column:1 / -1;}}
.pv-bm-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:13px;margin-bottom:14px;color:var(--text-muted);}
.pv-split{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--paper);border-radius:9px;padding:10px 12px;margin-top:6px;font-size:13px;}
.pv-split input{width:80px;}
.pv-split .field-hint{flex-basis:100%;margin:0;}
.pv-period{margin-top:12px;border-top:1px solid var(--border);padding-top:10px;font-size:13px;}
.pv-period-row{padding:3px 0;color:var(--text-muted);}
.pv-period-row.current{color:var(--text);font-weight:700;}

/* ---------- charge de l'équipe ---------- */
.pv-charge-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px;}
.pv-cap{margin-left:auto;font-size:13px;display:flex;align-items:center;gap:6px;}
.pv-cap input{width:56px;text-align:right;}
.pv-table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px;}
.pv-charge{border-collapse:collapse;width:100%;font-size:12.8px;}
.pv-charge th,.pv-charge td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;}
.pv-charge thead th{background:var(--grey-light);font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);position:sticky;top:0;}
.pv-charge tbody th,.pv-charge tfoot th,.pv-charge thead th:first-child{text-align:left;}
.pv-charge tbody th{min-width:170px;background:var(--card);position:sticky;left:0;}
.pv-who{font-weight:700;color:var(--text);}
.pv-who-sub{font-size:11px;font-weight:500;color:var(--text-faint);}
.pv-charge td[data-user]{cursor:pointer;font-family:var(--font-mono);}
.pv-charge td[data-user]:hover{outline:2px solid var(--pv, #7E57C2);outline-offset:-2px;}
.pv-heat.z{background:transparent;}
.pv-heat.low{background:rgba(20,99,86,.10);}
.pv-heat.mid{background:rgba(20,99,86,.24);}
.pv-heat.high{background:rgba(184,121,15,.28);}
.pv-heat.over{background:rgba(178,58,46,.30);font-weight:800;}
.pv-legend .pv-heat{display:inline-block;width:14px;height:12px;border-radius:3px;}
.pv-tot{font-weight:800;}
.pv-done-tot{color:var(--text-muted);font-weight:600;}
.pv-charge tfoot td,.pv-charge tfoot th{font-weight:800;background:var(--paper);}

/* ---------- tableau des lignes ---------- */
.pv-table-panel{padding-bottom:12px;}
.pv-table-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.pv-table-tools input[type=search]{min-width:240px;flex:1;max-width:360px;}
.pv-tools-right{margin-left:auto;display:flex;gap:8px;}
.pv-bulk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--pv-light, rgba(126,87,194,.13));border-radius:9px;padding:8px 12px;margin-bottom:10px;font-size:13px;font-weight:600;}
.pv-lines{border-collapse:collapse;width:100%;font-size:13px;}
.pv-lines th,.pv-lines td{padding:5px 7px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;}
.pv-lines thead th{background:var(--grey-light);font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);white-space:nowrap;position:sticky;top:0;z-index:1;}
.pv-lines .num{text-align:right;}
.pv-per{display:inline-block;margin-left:4px;font-size:10px;color:var(--pv, #7E57C2);font-weight:800;}
.pv-in{width:100%;min-width:70px;border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 6px;font:inherit;color:var(--text);}
.pv-in:hover{border-color:var(--border);}
.pv-in:focus{border-color:var(--pv, #7E57C2);background:var(--card);outline:none;box-shadow:0 0 0 3px var(--pv-light, rgba(126,87,194,.13));}
.pv-in.num{text-align:right;max-width:90px;font-family:var(--font-mono);}
.pv-in[data-f="mission"]{min-width:150px;}
.pv-in.invalid{border-color:var(--brick);background:var(--brick-light);}
.pv-cell-btn{background:none;border:1px dashed transparent;border-radius:6px;padding:5px 6px;text-align:left;cursor:pointer;font:inherit;color:var(--text);max-width:260px;}
.pv-cell-btn:hover{border-color:var(--border);background:var(--paper);}
.pv-total{font-weight:800;font-family:var(--font-display);white-space:nowrap;}
.pv-done-cell{color:var(--text-muted);white-space:nowrap;}
.pv-c-sel{width:28px;}
.pv-c-act{width:34px;}
.pv-unassigned .pv-c-who{background:var(--amber-light);}
.pv-nouser{font-size:10.5px;font-weight:700;color:var(--amber);text-transform:uppercase;}
.pv-saved{animation:pvsaved .7s;}
@keyframes pvsaved{from{background:var(--emerald-light);}to{background:transparent;}}
.pv-lines tfoot td,.pv-lines tfoot th{font-weight:800;background:var(--paper);}
.pv-ufilter{margin-bottom:6px;}
#pv-l-user{width:100%;min-height:130px;}
.pv-dres{display:flex;flex-direction:column;gap:2px;margin:4px 0;max-height:150px;overflow-y:auto;}
.pv-dopt{padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px;}
.pv-dopt:hover{background:var(--grey-light);}
.pv-dsel{font-size:13px;margin:4px 0 8px;}
.pv-l-values{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;}
.pv-l-total{margin-top:10px;font-size:14px;background:var(--pv-light, rgba(126,87,194,.13));border-radius:9px;padding:10px 12px;}
.pv-col-row{display:grid;grid-template-columns:1.6fr 110px 1.4fr 120px 1fr 34px;gap:8px;align-items:center;margin-bottom:6px;}
.pv-col-new{grid-template-columns:1.6fr 110px 1.4fr 120px auto;}
.pv-col-info{font-size:11.5px;color:var(--text-faint);}
@media (max-width:760px){.pv-col-row,.pv-col-new{grid-template-columns:1fr 1fr;}}

/* ---------- import ---------- */
.pv-map{border-collapse:collapse;width:100%;font-size:13px;}
.pv-map th,.pv-map td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;}
.pv-map th{font-size:11px;text-transform:uppercase;color:var(--text-faint);}
.pv-map-new{display:flex;gap:6px;flex-wrap:wrap;}
.pv-map-new.hidden{display:none;}
.pv-collabs{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto;padding-right:4px;}
.pv-collab{display:grid;grid-template-columns:minmax(200px,1fr) minmax(220px,1.3fr) auto;gap:10px;align-items:center;padding:6px 10px;border-radius:8px;border:1px solid var(--border);}
.pv-collab .btn{white-space:nowrap;}
.pv-collab select{min-width:0;width:100%;}
@media (max-width:700px){.pv-collab{grid-template-columns:1fr;}}
.pv-collab.ok{border-color:rgba(20,99,86,.35);background:var(--emerald-light);}
.pv-collab.todo{border-color:rgba(184,121,15,.4);background:var(--amber-light);}
.pv-collab-name{font-size:13px;}
.pv-imp-summary{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:var(--paper);border-radius:9px;padding:10px 12px;font-size:13.5px;margin-bottom:8px;}
.pv-imp-summary .cl-faint{flex-basis:100%;font-size:12.5px;}

/* ---------- droits ---------- */
.pv-acc-row{display:grid;grid-template-columns:180px 150px 1fr auto 34px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);}
.pv-acc-teams{display:flex;gap:10px;flex-wrap:wrap;font-size:12.8px;}
.pv-acc-add{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
@media (max-width:860px){.pv-acc-row{grid-template-columns:1fr 1fr;}}

/* Barre d'outils du tableau : champs au même style que le reste d'AsMa (clair et sombre). */
.pv-table-tools input[type=search], .pv-table-tools select, .pv-charge-tools select, .pv-tools select {
  height:34px;border:1.5px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);
  padding:0 10px;font:inherit;font-size:13px;
}
.pv-table-tools input[type=search]:focus, .pv-table-tools select:focus{outline:none;border-color:var(--pv, #7E57C2);}
