/* =========================================================
   CFI · Calendari de disponibilitat
   ========================================================= */

.cfi-cal-wrap{
    --cfi-accent:#c0492e;
    --cfi-ink:#1c1c1c;
    --cfi-border:#e4ddd5;
    --cfi-lliure:#16a34a;
    --cfi-taronja:#f59e0b;
    --cfi-roig:#dc2626;
    max-width:860px;
    margin:0 auto;
    font-family:inherit;
    color:var(--cfi-ink);
}
.cfi-cal-wrap *{box-sizing:border-box;}
.cfi-cal-wrap [hidden]{display:none !important;}

/* ---- Tabs de sales ---- */
.cfi-cal-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    background:var(--cfi-ink);
    border-radius:40px;
    padding:6px;
    margin-bottom:22px;
}
.cfi-cal-tab{
    flex:1 1 auto;
    text-align:center;
    padding:10px 16px;
    border-radius:30px;
    color:#fff;
    text-decoration:none;
    font-weight:600;
    font-size:14px;
    white-space:nowrap;
    transition:background .15s, color .15s;
}
.cfi-cal-tab:hover{background:rgba(255,255,255,.12);color:#fff;}
.cfi-cal-tab.is-active{background:#fff;color:var(--cfi-ink);}

/* ---- Capçalera de mes ---- */
.cfi-cal-head{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    margin-bottom:14px;
}
.cfi-cal-head h3{margin:0;font-size:22px;font-weight:700;min-width:180px;text-align:center;}
.cfi-cal-nav{
    display:inline-flex;align-items:center;justify-content:center;
    width:38px;height:38px;border-radius:50%;
    background:#f3efea;color:var(--cfi-ink);
    text-decoration:none;font-size:22px;line-height:1;
    transition:background .15s;
}
.cfi-cal-nav:hover{background:#e7e0d8;color:var(--cfi-ink);}
.cfi-cal-nav.is-disabled{opacity:.3;cursor:default;}

/* ---- Graella ---- */
.cfi-cal-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:6px;
}
.cfi-cal-dow{
    text-align:center;
    font-size:12px;
    font-weight:700;
    color:#8a847c;
    text-transform:uppercase;
    padding-bottom:4px;
}
.cfi-cal-cell{
    min-height:78px;
    border:1px solid var(--cfi-border);
    border-radius:8px;
    padding:5px;
    background:#fff;
    display:flex;
    flex-direction:column;
    gap:3px;
}
.cfi-cal-cell.is-empty{border:none;background:transparent;}
.cfi-cal-cell.is-past{opacity:.4;}
.cfi-cal-cell.is-soon{opacity:.45;}
.cfi-cal-cell.is-selectable{cursor:pointer;transition:border-color .12s, box-shadow .12s, transform .08s;}
.cfi-cal-cell.is-selectable:hover{border-color:var(--cfi-accent);box-shadow:0 2px 8px rgba(192,73,46,.18);}
.cfi-cal-cell.is-selected{border-color:var(--cfi-accent);box-shadow:0 0 0 2px var(--cfi-accent);}
.cfi-cal-num{font-size:13px;font-weight:700;color:#3a3631;}

.cfi-pill{
    display:block;
    font-size:10.5px;
    font-weight:600;
    text-align:center;
    padding:2px 4px;
    border-radius:5px;
    color:#fff;
    line-height:1.3;
}
.cfi-pill-link{text-decoration:none;}
.cfi-pill-link:hover .cfi-pill{filter:brightness(1.08);}
.cfi-lliure{background:var(--cfi-lliure);}
.cfi-taronja{background:var(--cfi-taronja);}
.cfi-roig{background:var(--cfi-roig);}
.cfi-parcial{background:linear-gradient(90deg,var(--cfi-lliure) 0 50%,var(--cfi-roig) 50% 100%);}

/* ---- Llegenda ---- */
.cfi-cal-legend{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    justify-content:center;
    margin-top:18px;
    font-size:13px;
    color:#3a3631;
}
.cfi-cal-legend i{
    display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:middle;
}
.cfi-cal-legend .cfi-lliure{background:var(--cfi-lliure);}
.cfi-cal-legend .cfi-taronja{background:var(--cfi-taronja);}
.cfi-cal-legend .cfi-roig{background:var(--cfi-roig);}
.cfi-cal-legend .cfi-parcial{background:linear-gradient(90deg,var(--cfi-lliure) 0 50%,var(--cfi-roig) 50% 100%);}

/* ---- CTA / Panell de selecció ---- */
.cfi-cal-back{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:none !important;
    border:none !important;
    color:var(--cfi-accent) !important;
    -webkit-text-fill-color:var(--cfi-accent) !important;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    padding:0;
    margin-bottom:16px;
    box-shadow:none !important;
}
.cfi-cal-back:hover{text-decoration:underline;}
.cfi-cal-select{
    margin-top:0;
    text-align:center;
    background:#fbf9f7;
    border:1px solid var(--cfi-border);
    border-radius:14px;
    padding:24px;
}
.cfi-sel-hint{margin:0;color:#6f6a64;font-size:14px;}
.cfi-sel-fecha{font-size:15px;margin-bottom:14px;}
.cfi-slot-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:16px;}
.cfi-slot{
    padding:9px 18px;
    border:1.5px solid var(--cfi-border);
    border-radius:14px;
    background:#fff;
    font-size:14px;
    font-weight:600;
    color:var(--cfi-ink);
    cursor:pointer;
    transition:all .12s;
    line-height:1.25;
}
.cfi-slot small{display:block;font-size:11px;font-weight:500;opacity:.7;margin-top:2px;}
.cfi-slot:hover:not(:disabled){border-color:var(--cfi-accent);}
.cfi-slot.is-active{background:var(--cfi-accent);border-color:var(--cfi-accent);color:#fff;}
.cfi-slot:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through;}
.cfi-slot-nota{font-size:13px;color:#6f6a64;margin:0 0 14px;}
.cfi-slot-hores{display:block;margin-bottom:16px;font-size:14px;}
.cfi-hores-tria{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px;}
.cfi-hores-tria select{
    padding:9px 12px;
    border:1.5px solid var(--cfi-border);
    border-radius:8px;
    font-size:14px;
    background:#fff;
}
.cfi-slot-hores .cfi-dash{color:#8a847c;}

/* ---- Timeline tipus Teams ---- */
.cfi-timeline{margin:6px auto 4px;max-width:520px;text-align:left;}
.cfi-tl-bar{
    position:relative;
    height:30px;
    background:var(--cfi-lliure);
    border-radius:7px;
    overflow:hidden;
    opacity:.95;
}
.cfi-tl-busy{
    position:absolute;top:0;bottom:0;
    background:var(--cfi-roig);
    border-left:2px solid #fff;border-right:2px solid #fff;
}
.cfi-tl-tick{
    position:absolute;top:0;bottom:0;width:1px;
    background:rgba(255,255,255,.45);
}
.cfi-tl-sel{
    position:absolute;top:0;bottom:0;
    background:rgba(37,99,235,.8);
    border:2px solid #1d4ed8;
    box-sizing:border-box;
    pointer-events:none;
}
.cfi-tl-labels{position:relative;height:16px;margin-top:5px;}
.cfi-tl-labels span{
    position:absolute;
    transform:translateX(-50%);
    font-size:11px;
    color:#8a847c;
    white-space:nowrap;
}
.cfi-tl-labels span:first-child{transform:translateX(0);}
.cfi-tl-labels span:last-child{transform:translateX(-100%);}
.cfi-tl-info{font-size:13px;color:#3a3631;margin-top:10px;text-align:center;}
.cfi-tl-info strong{color:var(--cfi-roig);}

.cfi-cal-btn{
    display:inline-block;
    padding:13px 28px;
    background:var(--cfi-accent);
    color:#fff !important;
    text-decoration:none;
    border-radius:10px;
    font-weight:700;
}
.cfi-cal-btn:hover{background:#9a3a24;}
.cfi-sol-btn[aria-disabled="true"]{opacity:.4;cursor:not-allowed;pointer-events:none;}

/* ---- Responsiu ---- */
@media (max-width:560px){
    .cfi-cal-cell{min-height:64px;}
    .cfi-pill{font-size:9px;}
    .cfi-cal-tab{flex-basis:calc(50% - 6px);}
}

/* ---- Selecció múltiple: peu i configuració per dia ---- */
.cfi-cal-foot{
    position:sticky;
    bottom:12px;
    z-index:20;
    display:flex;align-items:center;justify-content:center;gap:16px;
    margin-top:18px;flex-wrap:wrap;
    background:#fff;
    border:1.5px solid var(--cfi-accent);
    border-radius:40px;
    padding:12px 22px;
    box-shadow:0 6px 22px rgba(0,0,0,.16);
}
.cfi-cal-count{font-weight:700;color:var(--cfi-ink);}
#cfi-continuar{flex:0 0 auto;}
@media (max-width:560px){
    .cfi-cal-foot{
        position:fixed;
        left:12px;right:12px;bottom:12px;
        margin-top:0;
        justify-content:space-between;
    }
    #cfi-continuar{flex:1 1 auto;}
}
.cfi-cal-ajuda{
    text-align:center;font-size:13px;color:#8a847c;margin:10px 0 0;
}
.cfi-config-intro{font-weight:600;margin-bottom:14px;color:var(--cfi-ink);}
.cfi-config-list{display:flex;flex-direction:column;gap:14px;margin-bottom:18px;}
.cfi-config-card{
    border:1.5px solid var(--cfi-border);
    border-radius:12px;
    padding:14px 16px;
    background:#fff;
    text-align:center;
}
.cfi-config-dia{font-weight:700;margin-bottom:10px;color:var(--cfi-accent-dark,#9c3a23);}
.cfi-config-card .cfi-slot-btns{margin-bottom:0;}
.cfi-config-card .cfi-slot-hores{margin-bottom:0;}
