/* Coworking Booking — Planning public v1.5.1
   Architecture : hauteurs fixes explicites partout pour résister aux thèmes WordPress */

/* ── Wrap ── */
.cwb-planning-wrap {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    max-width: 960px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}
.cwb-planning-wrap *, .cwb-planning-wrap *::before, .cwb-planning-wrap *::after {
    box-sizing: border-box !important;
}

/* ── Toolbar ── */
.cwb-pl-toolbar {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 14px !important;
    flex-wrap: wrap !important;
}
.cwb-pl-title {
    flex: 1 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #222 !important;
    text-align: center !important;
    margin: 0 !important;
}
.cwb-pl-btn {
    border: 1.5px solid #ddd !important;
    background: #fff !important;
    border-radius: 6px !important;
    padding: 7px 13px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    font-family: inherit !important;
    color: #444 !important;
    line-height: 1.4 !important;
    transition: border-color .12s, background .12s !important;
    white-space: nowrap !important;
}
.cwb-pl-btn:hover:not(:disabled) { border-color: #DD3757 !important; color: #DD3757 !important; }
.cwb-pl-btn:disabled { opacity: .35 !important; cursor: default !important; }
.cwb-pl-btn-today { background: #DD3757 !important; color: #fff !important; border-color: #DD3757 !important; }
.cwb-pl-btn-today:hover:not(:disabled) { background: #c12d4a !important; color: #fff !important; }

/* ── Legend ── */
.cwb-pl-legend {
    display: flex !important;
    gap: 16px !important;
    flex-wrap: wrap !important;
    margin-bottom: 10px !important;
    font-size: 12px !important;
    color: #555 !important;
    list-style: none !important;
    padding: 0 !important;
}
.cwb-pl-leg-item { display: flex !important; align-items: center !important; gap: 6px !important; margin: 0 !important; padding: 0 !important; }
.cwb-pl-leg-dot  { width: 12px !important; height: 12px !important; border-radius: 3px !important; flex-shrink: 0 !important; display: inline-block !important; }

/* ── Outer grid container ── */
#cwb-pl-grid {
    display: flex !important;
    flex-direction: row !important;
    gap: 0 !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background: #fff !important;
    /* Hauteur totale = header (40px) + body (520px) */
    height: 560px !important;
    min-height: 560px !important;
    width: 100% !important;
}

/* ── Columns ── */
.cwb-pl-col {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    height: 560px !important;       /* égal au parent */
    overflow: visible !important;
}
.cwb-pl-timecol {
    flex: 0 0 48px !important;
    max-width: 48px !important;
    background: #fafafa !important;
    border-right: 1px solid #eee !important;
}

/* ── Column header ── */
.cwb-pl-col-head {
    height: 40px !important;
    min-height: 40px !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #555 !important;
    background: #f7f7f7 !important;
    border-bottom: 1px solid #eee !important;
    text-transform: capitalize !important;
    padding: 0 4px !important;
    text-align: center !important;
    white-space: nowrap !important;
}
.cwb-pl-today .cwb-pl-col-head {
    background: #fff6f8 !important;
    color: #DD3757 !important;
    border-bottom-color: #DD3757 !important;
}
.cwb-pl-past .cwb-pl-col-head { color: #ccc !important; }

/* ── Column body — hauteur fixe explicite ── */
.cwb-pl-col-body {
    position: relative !important;
    height: 520px !important;       /* 560 - 40 header */
    min-height: 520px !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
}

/* Alternating 30min stripes (via CSS gradient — pas de DOM) */
.cwb-pl-col-body {
    background-image: repeating-linear-gradient(
        to bottom,
        transparent 0px,
        transparent 31px,
        rgba(0,0,0,.025) 31px,
        rgba(0,0,0,.025) 32px,
        transparent 32px,
        transparent 64px,
        #f0f0f0 64px,
        #f0f0f0 65px
    ) !important;
}

/* ── Time axis ── */
.cwb-pl-timeaxis {
    background: #fafafa !important;
    background-image: none !important;
}
.cwb-pl-hour {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    font-size: 10px !important;
    color: #bbb !important;
    text-align: right !important;
    padding-right: 5px !important;
    transform: translateY(-50%) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    display: block !important;
}

/* ── Booking blocks ── */
.cwb-pl-block {
    position: absolute !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    opacity: .9 !important;
    transition: opacity .12s !important;
    cursor: default !important;
    min-height: 16px !important;
    z-index: 2 !important;
}
.cwb-pl-block:hover { opacity: 1 !important; z-index: 3 !important; }
.cwb-pl-block-inner {
    padding: 3px 5px !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 1px !important;
    overflow: hidden !important;
}
.cwb-pl-block-room {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #fff !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
    line-height: 1.3 !important;
}
.cwb-pl-block-dur {
    font-size: 9px !important;
    color: rgba(255,255,255,.85) !important;
    display: block !important;
    line-height: 1.2 !important;
}

/* ── Past day ── */
.cwb-pl-past .cwb-pl-col-body {
    background-color: #fafafa !important;
    background-image:
        repeating-linear-gradient(
            45deg,
            transparent,
            transparent 5px,
            rgba(0,0,0,.02) 5px,
            rgba(0,0,0,.02) 10px
        ) !important;
}
.cwb-pl-past .cwb-pl-block { opacity: .4 !important; }

/* ── Free label ── */
.cwb-pl-free {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important; right: 0 !important;
    transform: translateY(-50%) !important;
    text-align: center !important;
    font-size: 10px !important;
    color: #ccc !important;
    pointer-events: none !important;
    z-index: 1 !important;
    line-height: 1.4 !important;
    padding: 0 4px !important;
}

/* ── Loading ── */
.cwb-pl-loading {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 20px !important;
    color: #ddd !important;
    z-index: 1 !important;
}

/* ── Footer note ── */
.cwb-pl-footnote {
    font-size: 11px !important;
    color: #bbb !important;
    text-align: right !important;
    margin-top: 8px !important;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    #cwb-pl-grid          { height: 440px !important; min-height: 440px !important; }
    .cwb-pl-col           { height: 440px !important; }
    .cwb-pl-col-body      { height: 400px !important; min-height: 400px !important; }
    .cwb-pl-timecol       { flex: 0 0 32px !important; max-width: 32px !important; }
    .cwb-pl-col-head      { font-size: 10px !important; }
    .cwb-pl-hour          { font-size: 9px !important; }
    .cwb-pl-block-room    { font-size: 9px !important; }
}
