/* =========================================================================================
   CALENDARIS: una fila per casa, recordatoris d'un toc. Mòbil primer (cada fila és una targeta); a l'ordinador, una taula neta.
   Mateixa paleta pastel i icones de traç fi que la resta del mòdul.
   ========================================================================================= */
.solic-tab .cal-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;margin-left:7px;border-radius:999px;background:#17211D;color:#fff;font-size:10.5px;font-weight:800;line-height:1;vertical-align:1px}
.solic-tab .cal-badge[hidden]{display:none}

.cal{--c-tinta:#17211D;--c-gris:#6B7585;--c-linia:#ECEEF1;--c-verd:#1E7A45;--c-verd-f:#DCF3E4;--c-groc:#8A5A07;--c-groc-f:#FDF0CF;--c-roig:#B03A32;--c-roig-f:#FBE4E2;display:flex;flex-direction:column;gap:14px;color:var(--c-tinta)}

.cal-cap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cal-titol h3{margin:0;font-family:'Playfair Display',Georgia,serif;font-size:24px;letter-spacing:-.3px}
.cal-titol p{margin:2px 0 0;font-size:13px;color:var(--c-gris);max-width:560px}
.cal-accions{display:flex;align-items:center;gap:8px}
.cal-bt{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border:none;border-radius:999px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .14s,transform .08s,box-shadow .14s}
.cal-bt:active{transform:scale(.97)}
.cal-bt:disabled{opacity:.4;cursor:default;transform:none}
.cal-bt-primari{background:var(--c-tinta);color:#fff;box-shadow:0 6px 16px rgba(23,33,29,.22)}
.cal-bt-primari:hover:not(:disabled){background:#000}
.cal-bt-primari em{font-style:normal;font-size:12px;font-weight:800;background:rgba(255,255,255,.2);border-radius:999px;padding:2px 9px}
.cal-bt-rod{width:42px;padding:0;background:#fff;color:#4C5C54;box-shadow:0 1px 3px rgba(16,24,40,.12)}
.cal-bt-suau{width:38px;height:38px;background:#F1F4F2;color:#2B3A33;box-shadow:none}
.cal-bt-suau:hover:not(:disabled){background:var(--c-verd-f);color:var(--c-verd)}
.cal-bt-mini{height:32px;padding:0 13px;font-size:12.5px;background:#fff;color:#3F4A45;box-shadow:0 1px 3px rgba(16,24,40,.12)}
.cal-bt-ok{background:var(--c-tinta);color:#fff;box-shadow:none}

.cal-eines{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cal-kpis{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;margin:0 -2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;max-width:100%}
.cal-kpis::-webkit-scrollbar{display:none}
.cal-kpi{flex:0 0 auto;display:flex;align-items:baseline;gap:8px;padding:9px 16px;border-radius:999px;border:none;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.1);font:inherit;cursor:pointer;color:var(--c-gris)}
.cal-kpi b{font-size:17px;font-weight:800;color:var(--c-tinta)}
.cal-kpi span{font-size:13px;font-weight:700}
.cal-kpi.on{background:var(--c-tinta);color:rgba(255,255,255,.85);box-shadow:0 6px 16px rgba(23,33,29,.2)}
.cal-kpi.on b{color:#fff}
.cal-seg{display:inline-flex;background:#E9ECEF;border-radius:999px;padding:3px}
.cal-seg button{display:inline-flex;align-items:center;gap:7px;border:none;background:none;border-radius:999px;padding:8px 15px;font:inherit;font-size:13px;font-weight:700;color:#6B7585;cursor:pointer}
.cal-seg button.on{background:#fff;color:var(--c-tinta);box-shadow:0 1px 3px rgba(16,24,40,.15)}

.cal-sel{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:0 4px}
.cal-sel small{font-size:12px;color:var(--c-gris)}
.cal-nota{margin:0;padding:12px 16px;border-radius:14px;background:#F1F7F3;color:#3F5A4A;font-size:13px}
.cal-chk{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:#3F4A45;cursor:pointer;-webkit-user-select:none;user-select:none}
.cal-chk input{width:20px;height:20px;accent-color:var(--c-tinta);cursor:pointer;margin:0;flex-shrink:0}
.cal-chk-fila span{display:none}
.cal-chk input:disabled{opacity:.35;cursor:default}

/* Llista: cada casa és una targeta (mòbil) */
.cal-llista{display:flex;flex-direction:column;gap:10px}
.cal-fila{position:relative;display:grid;grid-template-columns:auto 40px minmax(0,1fr) auto;grid-template-areas:"chk av nom bts" "chk av edat bts" "estat estat estat estat" "conf conf conf conf";gap:4px 12px;align-items:center;background:#fff;border-radius:20px;padding:14px 14px 14px 16px;box-shadow:0 1px 2px rgba(16,24,40,.05),0 6px 18px rgba(16,24,40,.05)}
.cal-fila.pend{box-shadow:0 0 0 2px #F3D58A,0 6px 18px rgba(16,24,40,.06)}
.cal-fila.auto{background:#FAFBFA;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.cal-fila > .cal-chk,.cal-fila > .cal-ico-auto{grid-area:chk;align-self:center}
.cal-ico-auto{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:#1E9E5A}
.cal-av{grid-area:av;grid-row:1 / span 2;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#EDEFF3;color:#6B7585;font-size:12px;font-weight:800}
.cal-nom{grid-area:nom;min-width:0}
.cal-nom b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-nom small{display:block;font-size:12px;color:var(--c-gris);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-edat{grid-area:edat;display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:#3F4A45}
.cal-punt{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.cal-punt-a{background:#22C55E}.cal-punt-b{background:#F59E0B}.cal-punt-c{background:#EF4444}
.cal-estat{grid-area:estat;display:flex;flex-wrap:wrap;gap:6px;padding-top:6px}
.cal-bts{grid-area:bts;grid-row:1 / span 2;display:flex;align-items:center;gap:6px}
.cal-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:800;white-space:nowrap}
.cal-pill-ok{background:var(--c-verd-f);color:var(--c-verd)}
.cal-pill-mig{background:var(--c-groc-f);color:var(--c-groc)}
.cal-pill-gris{background:#EEF0F3;color:#6B7280}
.cal-pill-roig{background:var(--c-roig-f);color:var(--c-roig)}
.cal-conf{grid-area:conf;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding:10px 12px;border-radius:14px;background:#FFF8E6;font-size:13px;color:#6B4D07}
.cal-conf > span{flex:1;min-width:180px}
.cal-mes{align-self:center;display:inline-flex;align-items:baseline;gap:8px;padding:11px 22px;border:none;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.12);font:inherit;font-size:14px;font-weight:700;cursor:pointer;color:#2B3A33}
.cal-mes small{font-weight:600;color:#9AA2AD}
.cal-buit{text-align:center;padding:40px 12px;color:#9AA2AD;font-size:14px}

/* Escriptori: una sola línia per casa */
@media(min-width:900px){
  .cal-fila{grid-template-columns:24px 40px minmax(0,1.5fr) minmax(0,.9fr) minmax(0,1.5fr) auto;grid-template-areas:"chk av nom edat estat bts" "conf conf conf conf conf conf";gap:4px 16px;padding:12px 16px}
  .cal-av{grid-row:auto}
  .cal-estat{padding-top:0}
  .cal-bts{grid-row:auto}
}
@media(max-width:560px){
  .cal-titol h3{font-size:21px}
  .cal-cap{align-items:flex-start}
  .cal-accions{width:100%}
  .cal-accions .cal-bt-primari{flex:1}
  .cal-fila{border-radius:18px;padding:13px 12px 13px 14px;gap:4px 10px}
  .cal-seg{width:100%}
  .cal-seg button{flex:1;justify-content:center}
}
@media(prefers-reduced-motion:reduce){.cal-bt{transition:none}}

/* Les tres pestanyes (Sol·licituds · Calendaris · Disponibilitat) caben sempre, també en un mòbil estret */
@media(max-width:560px){
  .solic-tabs{display:flex;width:100%}
  .solic-tab{flex:1 1 0;min-width:0;padding:11px 4px;font-size:12.5px;white-space:nowrap;text-align:center}
  .solic-tab .cal-badge{margin-left:5px;min-width:17px;height:17px;padding:0 5px;font-size:10px}
}
