/*
 * Shared Bessy Bulk UI styles
 * Centralized for frontend + admin rendering surfaces.
 */

.bessy-hidden { display:none !important; }

.bessy-user-list-shell .bessy-user-filters {
    display:grid;
    grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) auto;
    gap:10px;
    align-items:end;
    margin:0 0 10px;
}
.bessy-user-list-shell .bessy-user-filters p { margin:0; }
.bessy-user-list-shell .bessy-user-list {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(520px,1fr));
    gap:8px 10px;
}
.bessy-user-list-shell .bessy-user-list-item {
    display:grid;
    grid-template-columns:max-content max-content 1fr;
    align-items:center;
    column-gap:10px;
    row-gap:4px;
    padding:8px 10px;
    border:1px solid var(--prosper-color-border, #d8dde2);
}
.bessy-user-list-shell .bessy-user-list-item .button { margin:0; }
.bessy-user-list-shell .bessy-user-id { white-space:nowrap; }
.bessy-user-list-shell .bessy-user-groups { min-width:0; }
.bessy-user-list-shell .bessy-user-label {
    display:inline-block;
    margin-left:8px;
    padding:2px 8px;
    border:1px solid var(--prosper-color-success, #1f7a64);
    border-radius: 0;
    background:var(--prosper-color-success-soft, #e7f4ef);
    color:var(--prosper-color-success, #1f7a64);
    font-size:11px;
    font-weight:600;
    line-height:1.3;
    vertical-align:middle;
}
.bessy-user-list-shell .bessy-user-label-sync {
    border-color:var(--prosper-color-info, #0088d0);
    background:var(--prosper-color-info-soft, #e6f4ff);
    color:var(--prosper-color-info, #0088d0);
}

.bessy-bulk-email-groep-taaklijst {
    margin-top: 12px;
    border: 1px solid var(--prosper-color-border, #d8dde2);
    padding: 10px;
    background: var(--prosper-color-surface, #ffffff);
}
.bessy-bulk-email-groep-taaklijst__samenvatting {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 4px 12px;
    margin-bottom: 10px;
}
.bessy-bulk-email-groep-taaklijst__samenvatting p {
    margin: 0;
}
.bessy-bulk-email-groep-taaklijst__tabel-wrap {
    max-height: 420px;
    overflow: auto;
    border: 1px solid var(--prosper-color-border, #d8dde2);
}
.bessy-bulk-email-groep-taaklijst__tabel {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    background: var(--prosper-color-surface, #ffffff);
}
.bessy-bulk-email-groep-taaklijst__tabel th,
.bessy-bulk-email-groep-taaklijst__tabel td {
    border: 1px solid var(--prosper-color-border, #d8dde2);
    padding: 6px 8px;
    vertical-align: top;
    text-align: left;
    word-break: break-word;
}
.bessy-bulk-email-groep-taaklijst__tabel th {
    position: sticky;
    top: 0;
    background: var(--prosper-color-surface-soft, #f3f4f5);
    z-index: 1;
}
.bessy-bulk-email-groep-taaklijst__tabel th:first-child,
.bessy-bulk-email-groep-taaklijst__tabel td:first-child {
    width: 56px;
}
.bessy-bulk-email-groep-taaklijst__tabel th:nth-child(2),
.bessy-bulk-email-groep-taaklijst__tabel td:nth-child(2) {
    width: 170px;
}
.bessy-bulk-email-groep-taaklijst__tabel th:nth-child(3),
.bessy-bulk-email-groep-taaklijst__tabel td:nth-child(3) {
    width: 150px;
}
.bessy-bulk-email-groep-taaklijst__tabel th:nth-child(4),
.bessy-bulk-email-groep-taaklijst__tabel td:nth-child(4) {
    width: 140px;
}
.bessy-bulk-email-groep-taaklijst__tabel th:nth-child(5),
.bessy-bulk-email-groep-taaklijst__tabel td:nth-child(5) {
    width: 260px;
}
.bessy-bulk-email-groep-taaklijst__tabel th:nth-child(6),
.bessy-bulk-email-groep-taaklijst__tabel td:nth-child(6) {
    width: 300px;
}
.bessy-bulk-email-groep-taaklijst__tabel th:nth-child(7),
.bessy-bulk-email-groep-taaklijst__tabel td:nth-child(7) {
    width: 200px;
}
.bessy-bulk-email-groep-taaklijst__tabel th:nth-child(8),
.bessy-bulk-email-groep-taaklijst__tabel td:nth-child(8) {
    width: 200px;
}
.bessy-bulk-email-taak-status {
    display: inline-block;
    min-width: 88px;
    padding: 2px 8px;
    border: 1px solid var(--prosper-color-border, #d8dde2);
    border-radius: 0;
    font-weight: 600;
    text-align: center;
    background: var(--prosper-color-surface-soft, #f3f4f5);
    color: var(--prosper-color-ink, #1d1c1d);
}
.bessy-bulk-email-taak-status--geannuleerd {
    border-color: var(--prosper-color-danger, #a53a2a);
    color: var(--prosper-color-danger, #a53a2a);
    background: #fdecea;
}
.bessy-bulk-email-taak-status--ingepland,
.bessy-bulk-email-taak-status--confirmed {
    border-color: var(--prosper-color-info, #0088d0);
    color: var(--prosper-color-info, #0088d0);
    background: var(--prosper-color-info-soft, #e6f4ff);
}
.bessy-bulk-email-taak-status--uitgevoerd,
.bessy-bulk-email-taak-status--gesloten {
    border-color: var(--prosper-color-success, #1f7a64);
    color: var(--prosper-color-success, #1f7a64);
    background: var(--prosper-color-success-soft, #e7f4ef);
}
.bessy-bulk-email-status {
    display: inline-block;
    min-width: 84px;
    padding: 2px 8px;
    border: 1px solid var(--prosper-color-border, #d8dde2);
    border-radius: 0;
    font-weight: 600;
    text-align: center;
    background: var(--prosper-color-surface, #ffffff);
}
.bessy-bulk-email-status--ja {
    border-color: var(--prosper-color-success, #1f7a64);
    color: var(--prosper-color-success, #1f7a64);
    background: var(--prosper-color-success-soft, #e7f4ef);
}
.bessy-bulk-email-status--nee {
    border-color: var(--prosper-color-border, #d8dde2);
    color: var(--prosper-color-ink, #1d1c1d);
    background: var(--prosper-color-surface-soft, #f3f4f5);
}
.bessy-bulk-email-status--onbekend {
    border-color: var(--prosper-color-warning, #b56a0a);
    color: var(--prosper-color-warning, #b56a0a);
    background: #fff6e9;
}

@media (max-width: 1200px) {
    .bessy-user-list-shell .bessy-user-list { grid-template-columns:1fr; }
}

@media (max-width: 900px) {
    .bessy-user-list-shell .bessy-user-filters { grid-template-columns:1fr; }
    .bessy-user-list-shell .bessy-user-list-item {
        grid-template-columns:1fr;
        align-items:start;
    }
    .bessy-user-list-shell .bessy-user-id { white-space:normal; }
}

.bessy-user-summary-head { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; justify-content:space-between; margin-bottom:6px; }
    .bessy-user-summary-head h3 { margin:0; }
    .bessy-inline-meta { margin:4px 0; }
    .bessy-duration-form { margin:0; }
    .bessy-duration-row { display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; margin-bottom:6px; }
    .bessy-duration-row label { margin:0; white-space:nowrap; }
    .bessy-duration-row input[type="number"] { width:120px; max-width:100%; }
    .bessy-medewerkersinstellingen-head { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:flex-end; justify-content:space-between; margin-bottom:8px; }
    .bessy-medewerkersinstellingen-head h3 { margin:0; }
    .bessy-medewerkersinstellingen-meta { margin:0; }
    .bessy-medewerkersinstellingen-form { margin:0; }
    .bessy-medewerkersinstellingen-table-wrap {
        margin-top:8px;
        border:1px solid var(--prosper-color-border, #d8dde2);
        overflow:auto;
        background:var(--prosper-color-surface, #ffffff);
    }
    .bessy-medewerkersinstellingen-table {
        min-width:920px;
        border-collapse:collapse;
        border-spacing:0;
        margin:0;
    }
    .bessy-medewerkersinstellingen-table th,
    .bessy-medewerkersinstellingen-table td {
        border-bottom:1px solid var(--prosper-color-border, #d8dde2);
        vertical-align:top;
    }
    .bessy-medewerkersinstellingen-table th {
        position:sticky;
        top:0;
        z-index:1;
        background:var(--prosper-color-surface-soft, #f3f4f5);
    }
    .bessy-medewerkersinstellingen-table input[type="number"] {
        width:110px;
        max-width:100%;
    }
    .bessy-medewerkersinstellingen-table input[type="text"] {
        width:120px;
        max-width:100%;
        text-transform:uppercase;
    }
    .bessy-filter-row { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:flex-end; margin:0 0 6px; }
    .bessy-filter-row label { display:inline-flex; align-items:center; gap:6px; margin:0; }
    .bessy-filter-row .button { margin:0; }
    .bessy-product-filter { margin-top: 6px; }
    .bessy-product-group { margin: 6px 0; }
    .bessy-product-group summary { cursor: pointer; }
    .bessy-product-items { display: flex; flex-wrap: wrap; gap: 6px; padding: 6px 0; }
    .bessy-product-pill { border: 1px solid var(--prosper-color-accent, #0088d0); background-color: var(--prosper-color-accent, #0088d0); background-image: var(--prosper-wave-gradient); background-size: var(--prosper-wave-loop-size, 320px) 100%; background-repeat: repeat; animation: prosper-wave-flow var(--prosper-wave-duration, 7.2s) linear infinite; color:#fff; padding: 4px 10px; border-radius: 0; cursor: pointer; font-size: 12px; }
    .bessy-product-pill.is-selected { background-color: var(--prosper-color-accent-strong, #006fb0); background-image: var(--prosper-wave-gradient-strong); border-color: var(--prosper-color-accent, #0088d0); }
    .bessy-bag-log-list { display: grid; gap: 10px; }
    .bessy-bag-entry { border: 1px solid var(--prosper-color-border, #d8dde2); border-radius: 0; padding: 10px; background: var(--prosper-color-surface, #ffffff); }
    .bessy-bag-entry.is-error { border-color: var(--bessy-danger-border); background: var(--bessy-danger-bg); }
    .bessy-bag-summary { margin-bottom: 6px; }
    .bessy-bag-pause { border: 1px solid var(--bessy-warning-border); background: var(--prosper-color-surface, #ffffff); border-radius: 0; padding: 10px; }
    .bessy-bag-pause-title { font-weight: 700; margin-bottom: 6px; }
    .bessy-bag-pause-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 6px 16px; margin: 8px 0; }
    .bessy-bag-pause-label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--bessy-warning-text); }
    .bessy-bag-pause-item input { width: 100%; box-sizing: border-box; padding: 6px 8px; border: 1px solid var(--bessy-warning-border); border-radius: 0; background: var(--prosper-color-surface, #ffffff); }
    .bessy-bag-actions { display: flex; flex-wrap: wrap; gap: 8px; }
    .bessy-bag-status { margin-top: 6px; font-size: 12px; }
    .bessy-actions-row {
        display:flex;
        flex-wrap:wrap;
        gap:10px;
        align-items:center;
        margin:4px 0 12px;
    }
    .bessy-actions-row .button,
    .bessy-actions-row .button.button-primary {
        margin:0;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:46px;
        padding:0 24px;
        border-radius: 0;
        border:1px solid var(--bessy-accent);
        background-color:var(--bessy-accent);
        background-image: var(--prosper-wave-gradient);
        background-size: var(--prosper-wave-loop-size, 320px) 100%;
        background-repeat: repeat;
        color:#fff;
        font-weight:800;
        letter-spacing:0.04em;
        text-transform:uppercase;
        box-shadow: none;
        animation: prosper-wave-flow var(--prosper-wave-duration, 7.2s) linear infinite;
    }
    .bessy-actions-row .button:hover,
    .bessy-actions-row .button.button-primary:hover {
        background-color:var(--prosper-color-accent-strong, #006fb0);
        background-image: var(--prosper-wave-gradient-strong);
        border-color:var(--prosper-color-accent-strong, #006fb0);
    }
    .bessy-actions-row .button[disabled],
    .bessy-actions-row .button.button-primary[disabled] {
        opacity:0.56;
        box-shadow: none;
        cursor:not-allowed;
    }
    .bessy-agenda-item.is-selection-disabled .bessy-agenda-select { opacity: 0.45; }
    .bessy-agenda-item.is-selection-disabled .bessy-agenda-select input { cursor: not-allowed; }

    .bessy-planner-shell {
        --bessy-accent: var(--prosper-color-accent, #0088d0);
        --bessy-border: var(--prosper-color-border, #d8dde2);
        --bessy-warning-border: var(--prosper-color-warning, #b56a0a);
        --bessy-warning-bg: var(--prosper-color-warning-soft, #fff4e5);
        --bessy-warning-soft-bg: var(--prosper-color-warning-soft, #fff4e5);
        --bessy-warning-soft: rgba(219,166,23,0.18);
        --bessy-warning-soft-strong: rgba(219,166,23,0.55);
        --bessy-warning-soft-stronger: rgba(219,166,23,0.75);
        --bessy-warning-text: var(--prosper-color-warning, #b56a0a);
        --bessy-danger-border: var(--prosper-color-danger, #a53a2a);
        --bessy-danger-bg: var(--prosper-color-danger-soft, #fdeceb);
        --bessy-danger-soft: rgba(176,0,32,0.18);
        --bessy-danger-soft-strong: rgba(176,0,32,0.55);
        --bessy-danger-soft-mid: rgba(176,0,32,0.45);
        --bessy-danger-text: var(--prosper-color-danger, #a53a2a);
        --bessy-success-border: var(--prosper-color-success, #1f7a64);
        --bessy-success-bg: var(--prosper-color-success-soft, #e7f4ef);
        --bessy-success-text: var(--prosper-color-success, #1f7a64);
        --bessy-info-border: var(--prosper-color-info, #0088d0);
        --bessy-info-bg: var(--prosper-color-info-soft, #e6f4ff);
        --bessy-info-text: var(--prosper-color-info, #0088d0);
        --bessy-muted-border: var(--prosper-color-border, #d8dde2);
        --bessy-muted-bg: var(--prosper-color-surface-soft, #f3f4f5);
        --bessy-muted-border-strong: var(--prosper-color-border, #d8dde2);
        --bessy-muted-bg-strong: var(--prosper-color-surface-soft, #f3f4f5);
        --bessy-muted-text: var(--prosper-color-muted, #5b6167);
        display:grid;
        gap:10px;
    }
    .bessy-planner-toolbar { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; justify-content:flex-start; padding:14px 16px; border:1px solid var(--bessy-border); border-radius: 0; background: var(--prosper-color-surface, #ffffff); box-shadow: none; }
    .bessy-planner-toolbar label { margin:0; }
    .bessy-planner-toolbar-group { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; }
    .bessy-planner-toolbar-group--filters { align-items:center; position:relative; }
    .bessy-planner-datebar { position:relative; display:flex; align-items:center; gap:8px; padding:6px; border:1px solid var(--bessy-border); border-radius: 0; background:var(--prosper-color-surface, #ffffff); color:var(--prosper-color-text, #0b0c0d); box-shadow: none; z-index:3; isolation:isolate; }
    .bessy-planner-datebar.is-disabled { opacity:0.52; }
    .bessy-planner-datebar.is-disabled button { pointer-events:none; }
    .bessy-planner-datebar button { appearance:none; border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; transition:background-color .18s ease, border-color .18s ease, color .18s ease; }
    .bessy-planner-datebar-today,
    .bessy-planner-datebar-nav {
        display:inline-flex;
        align-items:center;
        justify-content:center;
        border:1px solid var(--bessy-accent);
        border-radius: 0;
        background-color:var(--bessy-accent);
        background-image: var(--prosper-wave-gradient);
        background-size: var(--prosper-wave-loop-size, 320px) 100%;
        background-repeat: repeat;
        animation: prosper-wave-flow var(--prosper-wave-duration, 7.2s) linear infinite;
        color:#fff;
        font-weight:800;
    }
    .bessy-planner-datebar-today {
        min-height:34px;
        padding:8px 16px;
        letter-spacing:0.04em;
        text-transform:uppercase;
    }
    .bessy-planner-datebar-nav { width:34px; height:34px; font-size:18px; line-height:1; }
    .bessy-planner-datebar-today:hover,
    .bessy-planner-datebar-nav:hover {
        background-color:var(--prosper-color-accent-strong, #006fb0);
        background-image: var(--prosper-wave-gradient-strong);
        border-color:var(--prosper-color-accent-strong, #006fb0);
    }
    .bessy-planner-datebar-label { display:inline-flex; align-items:center; padding:4px 8px; border-radius: 0; font-size:36px; font-weight:800; line-height:1.1; letter-spacing:-0.02em; min-height:40px; }
    .bessy-planner-datebar-label:hover { background:var(--prosper-color-accent-soft, #e6f4ff); }
    .bessy-planner-scope-indicator {
        display:inline-flex;
        align-items:center;
        gap:6px;
        min-height:28px;
        padding:4px 10px;
        border:1px solid var(--bessy-border);
        border-radius:0;
        background:var(--prosper-color-surface-soft, #f3f4f5);
        font-size:12px;
        font-weight:700;
        color:var(--prosper-color-text, #0b0c0d);
    }
    .bessy-planner-scope-indicator:empty { display:none; }
    .bessy-planner-scope-indicator:before {
        content:"";
        width:8px;
        height:8px;
        border-radius:0;
        border:1px solid currentColor;
        background:transparent;
    }
    .bessy-planner-scope-indicator.is-has-tasks {
        border-color:var(--prosper-color-accent, #0088d0);
        color:var(--prosper-color-accent, #0088d0);
        background:var(--prosper-color-accent-soft, #e6f4ff);
    }
    .bessy-planner-scope-indicator.is-has-tasks:before {
        background:currentColor;
        border-color:currentColor;
    }
    .bessy-planner-scope-indicator.is-no-tasks {
        border-color:var(--bessy-muted-border, #d8dde2);
        color:var(--prosper-color-muted, #5b6167);
        background:var(--bessy-muted-bg, #f3f4f5);
    }
    .bessy-planner-calendar { position:absolute; top:calc(100% + 10px); left:0; z-index:20; width:min(320px, calc(100vw - 40px)); max-width:calc(100vw - 24px); padding:14px; border-radius: 0; border:1px solid var(--bessy-border); background:var(--prosper-color-surface, #ffffff); color:var(--prosper-color-text, #0b0c0d); box-shadow: none; box-sizing:border-box; overflow:hidden; }
    .bessy-planner-calendar * { box-sizing:border-box; }
    .bessy-planner-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
    .bessy-planner-calendar-month-label { min-width:0; text-align:center; font-size:30px; font-weight:800; letter-spacing:-0.02em; text-transform:capitalize; line-height:1.1; }
    .bessy-planner-calendar-month-nav { width:30px; height:30px; border-radius: 0; font-size:18px; font-weight:700; margin:0; padding:0; flex:0 0 30px; min-width:0; }
    .bessy-planner-calendar-month-nav:hover { background:var(--prosper-color-accent-soft, #e6f4ff); }
    .bessy-planner-calendar-weekdays { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:6px; margin-bottom:6px; width:100%; font-size:12px; font-weight:700; text-transform:uppercase; color:var(--prosper-color-muted, #5b6167); }
    .bessy-planner-calendar-weekdays span { display:flex; align-items:center; justify-content:center; min-height:22px; }
    .bessy-planner-calendar-grid { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:6px; width:100%; }
    .bessy-planner-calendar-day { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:36px; min-height:36px; min-width:0; margin:0; padding:0; border:1px solid transparent; border-radius: 0; font-size:14px; font-weight:700; line-height:1; color:var(--prosper-color-text, #0b0c0d); }
    .bessy-planner-calendar-day:hover { background:var(--prosper-color-accent-soft, #e6f4ff); }
    .bessy-planner-calendar-day.is-outside { color:var(--prosper-color-muted, #5b6167); }
    .bessy-planner-calendar-day.is-today { border-color:var(--prosper-color-accent, #0088d0); }
    .bessy-planner-calendar-day.is-selected { background:var(--prosper-color-accent, #0088d0); border-color:var(--prosper-color-accent, #0088d0); color:#fff; }
    .bessy-planner-calendar-day.is-selected.is-today { border-color:var(--prosper-color-accent-strong, #006fb0); }
    .bessy-planner-calendar-day.has-tasks::after {
        content:"";
        position:absolute;
        left:50%;
        bottom:4px;
        transform:translateX(-50%);
        width:6px;
        height:6px;
        border-radius:0;
        background:var(--prosper-color-accent, #0088d0);
    }
    .bessy-planner-calendar-day.is-selected.has-tasks::after {
        background:#fff;
    }
    .bessy-planner-calendar-day.is-outside.has-tasks::after {
        opacity:0.45;
    }
    .bessy-planner-calendar-day:focus-visible,
    .bessy-planner-datebar button:focus-visible { outline:none; box-shadow: none; }
    .bessy-planner-toolbar-group--selection {
        margin-left:auto;
        align-items:center;
        gap:8px 12px;
        padding:8px 10px;
        border:1px solid var(--bessy-border);
        border-radius: 0;
        background:var(--prosper-color-surface-soft, #f3f4f5);
    }
    .bessy-dagplanner-viewbar { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:6px; padding:8px; border:1px solid var(--bessy-border); border-radius: 0; background:var(--prosper-color-surface-soft, #f3f4f5); }
    .bessy-dagplanner-viewbtn { position:relative; appearance:none; border:1px solid var(--prosper-color-accent, #0088d0); background-color:var(--prosper-color-accent, #0088d0); background-image: var(--prosper-wave-gradient); background-size: var(--prosper-wave-loop-size, 320px) 100%; background-repeat: repeat; animation: prosper-wave-flow var(--prosper-wave-duration, 7.2s) linear infinite; border-radius: 0; padding:6px 16px 6px 10px; font-size:12px; font-weight:800; letter-spacing:0.02em; cursor:pointer; color:#fff; }
    .bessy-dagplanner-viewbtn:hover { border-color: rgba(0,136,208,0.45); box-shadow: none; }
    .bessy-dagplanner-viewbtn.is-active { background-color: var(--prosper-color-accent-strong, #006fb0); background-image: var(--prosper-wave-gradient-strong); border-color: var(--bessy-accent); color:#fff; box-shadow: none; }
    .bessy-dagplanner-viewbtn[data-bessy-planner-view-btn="day"]::after,
    .bessy-dagplanner-viewbtn[data-bessy-planner-view-btn="week"]::after,
    .bessy-dagplanner-viewbtn[data-bessy-planner-view-btn="month"]::after {
        content:"";
        position:absolute;
        right:6px;
        top:50%;
        transform:translateY(-50%);
        width:7px;
        height:7px;
        border-radius:0;
        border:1px solid rgba(255,255,255,0.75);
        background:transparent;
    }
    .bessy-dagplanner-viewbtn.is-has-tasks[data-bessy-planner-view-btn="day"]::after,
    .bessy-dagplanner-viewbtn.is-has-tasks[data-bessy-planner-view-btn="week"]::after,
    .bessy-dagplanner-viewbtn.is-has-tasks[data-bessy-planner-view-btn="month"]::after {
        background:#fff;
        border-color:#fff;
    }
    .bessy-dagplanner-checkall { display:inline-flex; align-items:center; gap:8px; font-weight:700; }
    .bessy-selection-count { margin-left:0; }
    .bessy-dagplanner-days { margin-top:0; display:grid; gap:14px; }

    .bessy-dagplanner-day { border:1px solid var(--bessy-border); border-radius: 0; background:var(--prosper-color-surface, #ffffff); overflow:hidden; box-shadow: none; }
    .bessy-dagplanner-day.is-outside-hours,
    .bessy-dagplanner-day.is-suggestie-incomplete { border-color: var(--bessy-warning-border); background: rgba(219,166,23,0.08); }
    .bessy-dagplanner-day.is-impossible,
    .bessy-dagplanner-day.is-has-cancelled { border-color: var(--bessy-danger-border); background: rgba(176,0,32,0.06); }
    .bessy-dagplanner-day.is-impossible .bessy-day-column-head,
    .bessy-dagplanner-day.is-has-cancelled .bessy-day-column-head { border-color: var(--bessy-danger-soft-mid); }
    .bessy-dagplanner-day.is-outside-hours .bessy-day-column-head,
    .bessy-dagplanner-day.is-suggestie-incomplete .bessy-day-column-head { border-color: var(--bessy-warning-soft-strong); }
    .bessy-dagplanner-day.is-has-cancelled.is-outside-hours .bessy-day-column-head,
    .bessy-dagplanner-day.is-has-cancelled.is-suggestie-incomplete .bessy-day-column-head { border-color: var(--bessy-danger-soft-mid); }
    .bessy-dagplanner-day.is-active { box-shadow: none; }
    .bessy-dagplanner-day.is-collapsed .bessy-day-timeline { padding:10px 12px; background:none; }
    .bessy-dagplanner-day.is-collapsed .bessy-day-timeline:before { display:none; }
    .bessy-dagplanner-day.is-collapsed .bessy-agenda-item:before { display:none; }
    .bessy-dagplanner-day.is-collapsed .bessy-day-timeline > :not(:first-child) { display:none; }
    .bessy-dagplanner-day.is-collapsed .bessy-agenda-item--summary { cursor:pointer; }

    .bessy-day-kpis { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:8px 10px; margin-top:8px; }
    .bessy-day-kpi { padding:8px 10px; border:1px solid var(--bessy-border); border-radius: 0; background:var(--prosper-color-surface, #ffffff); }
    .bessy-day-kpi.is-ok { border-color: var(--bessy-success-border); background: var(--bessy-success-bg); color: var(--bessy-success-text); }
    .bessy-day-kpi.is-bad { border-color: var(--bessy-danger-border); background: var(--bessy-danger-bg); color: var(--bessy-danger-text); }
    .bessy-day-kpi-label { font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--prosper-color-muted, #5b6167); }
    .bessy-day-kpi-value { font-weight:700; font-variant-numeric: tabular-nums; }
    .bessy-day-alert { margin-top:8px; padding:8px 10px; border-radius: 0; font-weight:700; }
    .bessy-day-alert.is-warning { background:var(--bessy-warning-bg); border:1px solid var(--bessy-warning-border); color:var(--bessy-warning-text); }
    .bessy-day-alert.is-error { background:var(--bessy-danger-bg); border:1px solid var(--bessy-danger-border); color:var(--bessy-danger-text); }

    .bessy-day-timeline { --bessy-time-col: 140px; --bessy-col-gap: 12px; --bessy-item-pad-x: 12px; --bessy-rail-inside: calc(var(--bessy-time-col) + (var(--bessy-col-gap) / 2)); position:relative; padding:14px; display:grid; gap:10px; background: var(--prosper-color-surface, #ffffff); }
    .bessy-day-timeline:before { display:none; }

    .bessy-day-columns { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:12px 14px; align-items:start; }
    .bessy-day-cell { min-width:0; }
    .bessy-day-column-head { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; border:1px solid var(--bessy-border); border-radius: 0; background:var(--prosper-color-surface-soft, #f3f4f5); font-size:12px; font-weight:900; letter-spacing:0.12em; text-transform:uppercase; color:var(--prosper-color-text, #0b0c0d); }
    .bessy-day-columns > .bessy-day-column-head:nth-child(2) { border-color: var(--prosper-color-accent, #0088d0); }
    .bessy-day-cell--suggestie .bessy-agenda-item { grid-template-columns:var(--bessy-time-col) 1fr; border-color: var(--bessy-border); }
    .bessy-day-cell--suggestie .bessy-agenda-select { display:none; }
    .bessy-agenda-item--suggestie.is-changed { border-color: var(--bessy-warning-soft-stronger); background: var(--prosper-color-surface, #ffffff); }
    .bessy-agenda-item--suggestie.is-changed:before { border-color: var(--bessy-warning-soft-stronger); background: var(--bessy-warning-soft); }
    .bessy-agenda-item--suggestie.is-handmatig { border-color: var(--prosper-color-accent, #0088d0); background: var(--prosper-color-accent-soft, #e6f4ff); }
    .bessy-agenda-item--suggestie.is-handmatig:before { border-color: var(--prosper-color-accent, #0088d0); background: rgba(0,136,208,0.16); }
    .bessy-agenda-item--suggestie.is-skipped { opacity:0.72; border-style:dashed; border-color: var(--bessy-muted-border); background: var(--bessy-muted-bg); }
    .bessy-agenda-item--suggestie.is-skipped .bessy-agenda-title { text-decoration: line-through; }
    .bessy-agenda-item--travel.is-skipped .bessy-agenda-title { text-decoration: line-through; }
    .bessy-agenda-item--suggestie.is-not-fit { opacity:1; border-style:solid; border-color: var(--bessy-danger-soft-strong); background: var(--prosper-color-surface, #ffffff); }
    .bessy-agenda-item--suggestie.is-not-fit:before { border-color: var(--bessy-danger-soft-strong); background: var(--bessy-danger-soft); }
    .bessy-agenda-item--skip { background: var(--bessy-muted-bg); border-style: dashed; border-color: var(--bessy-muted-border); }
    .bessy-agenda-item--skip:before { border-color: var(--bessy-muted-border-strong); background: var(--bessy-muted-bg-strong); }
    .bessy-agenda-item { position:relative; display:grid; grid-template-columns:var(--bessy-time-col) 1fr 44px; gap:10px var(--bessy-col-gap); align-items:start; padding:10px var(--bessy-item-pad-x); border:1px solid var(--bessy-border); border-radius: 0; background:var(--prosper-color-surface, #ffffff); }
    .bessy-agenda-item:before { content:""; position:absolute; top:22px; left: var(--bessy-rail-inside); transform: translateX(-50%); width:12px; height:12px; border-radius: 0; background:var(--prosper-color-surface, #ffffff); border:2px solid var(--bessy-border); box-shadow: none; }
    .bessy-agenda-item--summary { grid-template-columns:var(--bessy-time-col) 1fr; border-color: rgba(0,136,208,0.35); background: var(--prosper-color-surface, #ffffff); }
    .bessy-agenda-item--summary:before { border-color: rgba(0,136,208,0.55); background: rgba(0,136,208,0.18); }
    .bessy-dagplanner-day.is-impossible .bessy-agenda-item--summary { border-color: var(--bessy-danger-soft-mid); background: var(--prosper-color-surface, #ffffff); }
    .bessy-dagplanner-day.is-impossible .bessy-agenda-item--summary:before { border-color: var(--bessy-danger-soft-strong); background: var(--bessy-danger-soft); }
    .bessy-dagplanner-day.is-has-cancelled .bessy-agenda-item--summary { border-color: var(--bessy-danger-soft-mid); background: var(--prosper-color-surface, #ffffff); }
    .bessy-dagplanner-day.is-has-cancelled .bessy-agenda-item--summary:before { border-color: var(--bessy-danger-soft-strong); background: var(--bessy-danger-soft); }
    .bessy-dagplanner-day.is-outside-hours .bessy-agenda-item--summary { border-color: var(--bessy-warning-soft-strong); background: var(--prosper-color-surface, #ffffff); }
    .bessy-dagplanner-day.is-outside-hours .bessy-agenda-item--summary:before { border-color: var(--bessy-warning-soft-stronger); background: var(--bessy-warning-soft); }
    .bessy-dagplanner-day.is-has-cancelled.is-outside-hours .bessy-agenda-item--summary,
    .bessy-dagplanner-day.is-has-cancelled.is-suggestie-incomplete .bessy-agenda-item--summary { border-color: var(--bessy-danger-soft-mid); }
    .bessy-dagplanner-day.is-has-cancelled.is-outside-hours .bessy-agenda-item--summary:before,
    .bessy-dagplanner-day.is-has-cancelled.is-suggestie-incomplete .bessy-agenda-item--summary:before { border-color: var(--bessy-danger-soft-strong); background: var(--bessy-danger-soft); }
    .bessy-agenda-item--summary .bessy-agenda-select { display:none; }
    .bessy-agenda-item.is-selected { border-color: var(--bessy-accent); box-shadow: none; }
    .bessy-agenda-item--start { background:var(--prosper-color-surface-soft, #f3f4f5); }
    .bessy-agenda-item--travel, .bessy-agenda-item--return { background:var(--prosper-color-accent-soft, #e6f4ff); border-style:dashed; }
    .bessy-agenda-item.is-impossible { border-color:var(--bessy-danger-border); background: var(--bessy-danger-bg); }
    .bessy-agenda-item--afspraak.is-status-cancelled { border-color:var(--bessy-danger-border); background: var(--bessy-danger-bg); }
    .bessy-agenda-item--afspraak.is-status-warning { border-color:var(--bessy-warning-border); background: var(--bessy-warning-bg); }
    .bessy-agenda-item--start:before { border-color: var(--bessy-border); background:var(--prosper-color-surface-soft, #f3f4f5); }
    .bessy-agenda-item--travel:before, .bessy-agenda-item--return:before { border-color: rgba(0,136,208,0.35); background: rgba(0,136,208,0.10); }
    .bessy-agenda-item--afspraak:before { border-color: rgba(0,136,208,0.55); background: rgba(0,136,208,0.16); }
    .bessy-agenda-item--afspraak.is-impossible:before { border-color: var(--bessy-danger-soft-strong); background: var(--bessy-danger-soft); }
    .bessy-agenda-item--afspraak.is-status-cancelled:before { border-color: var(--bessy-danger-soft-strong); background: var(--bessy-danger-soft); }
    .bessy-agenda-item--afspraak.is-status-warning:before { border-color: var(--bessy-warning-soft-stronger); background: var(--bessy-warning-soft); }
    .bessy-agenda-time { font-weight:700; font-variant-numeric: tabular-nums; color:var(--prosper-color-text, #0b0c0d); }
    .bessy-agenda-time-main { font-weight:700; font-variant-numeric: tabular-nums; }
    .bessy-agenda-time-meta {
        margin-top:4px;
        font-size:12px;
        font-weight:600;
        color:var(--prosper-color-muted, #5b6167);
    }
    .bessy-agenda-time-suggestie { margin-top:4px; font-size:12px; font-weight:600; color:var(--prosper-color-muted, #5b6167); }
    .bessy-agenda-time-suggestie.is-changed { color:var(--bessy-warning-text); }
    .bessy-agenda-time-suggestie.is-skipped { color:var(--bessy-muted-text); }
    .bessy-agenda-type { font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:var(--prosper-color-muted, #5b6167); margin-bottom:2px; }
    .bessy-agenda-title { font-weight:700; }
    .bessy-agenda-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
    .bessy-agenda-chips--route { margin-top:10px; }
    .bessy-agenda-chips--priority-order { margin-top:8px; }
    .bessy-chip { display:inline-flex; align-items:center; padding:2px 10px; border:1px solid var(--bessy-border); border-radius: 0; background:var(--prosper-color-surface-soft, #f3f4f5); color:var(--prosper-color-text, #0b0c0d); font-size:12px; font-weight:600; box-shadow: none; animation:none; }
    .bessy-chip--new { background:var(--prosper-color-accent-soft, #e6f4ff); border-color:var(--prosper-color-accent, #0088d0); color:var(--prosper-color-accent, #0088d0); }
    .bessy-chip--new.is-changed { background:var(--prosper-color-surface, #ffffff); border-color:var(--bessy-warning-border); color:var(--bessy-warning-text); }
    .bessy-chip--window { background:var(--bessy-muted-bg); border-color:var(--bessy-muted-border); color:var(--bessy-muted-text); }
    .bessy-chip--move { background:var(--prosper-color-surface, #ffffff); border-color:var(--bessy-warning-border); color:var(--bessy-warning-text); }
    .bessy-chip--status { background:var(--bessy-info-bg); border-color:var(--bessy-info-border); color:var(--bessy-info-text); }
    .bessy-chip--status.is-cancelled { background:var(--bessy-danger-bg); border-color:var(--bessy-danger-border); color:var(--bessy-danger-text); }
    .bessy-chip--status.is-warning { background:var(--bessy-warning-bg); border-color:var(--bessy-warning-border); color:var(--bessy-warning-text); }
    .bessy-chip--route { background:var(--bessy-muted-bg-strong); border-color:var(--bessy-muted-border); color:var(--bessy-muted-text); }
    .bessy-chip--suggestie { background:var(--prosper-color-accent-soft, #e6f4ff); border-color:var(--prosper-color-accent, #0088d0); color:var(--prosper-color-accent, #0088d0); }
    .bessy-chip--suggestie.is-muted { background:var(--bessy-muted-bg); border-color:var(--bessy-muted-border); color:var(--bessy-muted-text); }
    .bessy-chip--planner { background:var(--prosper-color-surface, #ffffff); border-color:var(--prosper-color-border, #d8dde2); color:var(--prosper-color-text, #0b0c0d); }
    .bessy-chip--planner.is-bot { background:var(--prosper-color-accent-soft, #e6f4ff); border-color:var(--prosper-color-accent, #0088d0); color:var(--prosper-color-accent, #0088d0); }
    .bessy-chip--planner.is-backoffice { background:var(--prosper-color-surface-soft, #f3f4f5); border-color:var(--prosper-color-border, #d8dde2); color:var(--prosper-color-text, #0b0c0d); }
    .bessy-chip--planner.is-onbekend { background:var(--bessy-warning-bg); border-color:var(--bessy-warning-border); color:var(--bessy-warning-text); }
    .bessy-chip--manual { background:var(--prosper-color-accent-soft, #e6f4ff); border-color:var(--prosper-color-accent, #0088d0); color:var(--prosper-color-accent, #0088d0); }
    .bessy-chip--priority { min-width:66px; justify-content:center; font-family:Consolas, "Liberation Mono", Menlo, monospace; font-weight:700; letter-spacing:0.03em; }
    .bessy-agenda-item--suggestie.is-changed .bessy-chip { background:var(--prosper-color-surface, #ffffff); border-color:var(--bessy-warning-border); color:var(--bessy-warning-text); }
    .bessy-agenda-item--afspraak.is-status-cancelled .bessy-chip { background:var(--prosper-color-surface, #ffffff); border-color:var(--bessy-danger-border); color:var(--bessy-danger-text); }
    .bessy-agenda-item--afspraak.is-status-warning .bessy-chip { background:var(--prosper-color-surface, #ffffff); border-color:var(--bessy-warning-border); color:var(--bessy-warning-text); }
    .bessy-agenda-item.is-impossible .bessy-chip,
    .bessy-agenda-item--suggestie.is-not-fit .bessy-chip { background:var(--prosper-color-surface, #ffffff); border-color:var(--bessy-danger-border); color:var(--bessy-danger-text); }
    .bessy-suggestie-handmatig { margin-top:8px; padding:8px 10px; border:1px solid var(--prosper-color-border, #d8dde2); border-radius: 0; background:var(--prosper-color-surface, #ffffff); }
    .bessy-suggestie-handmatig.is-active { border-color: var(--prosper-color-accent, #0088d0); background: var(--prosper-color-accent-soft, #e6f4ff); }
    .bessy-suggestie-handmatig-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
    .bessy-suggestie-handmatig-grid label { display:flex; flex-direction:column; gap:4px; margin:0; font-size:11px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--prosper-color-muted, #5b6167); }
    .bessy-suggestie-handmatig-start,
    .bessy-suggestie-handmatig-duur { width:100%; min-height:34px; border:1px solid var(--prosper-color-border, #d8dde2); border-radius: 0; background:var(--prosper-color-surface, #ffffff); color:var(--prosper-color-text, #0b0c0d); font-size:13px; font-weight:600; padding:0 8px; box-shadow:none; }
    .bessy-suggestie-handmatig.is-active .bessy-suggestie-handmatig-start,
    .bessy-suggestie-handmatig.is-active .bessy-suggestie-handmatig-duur { border-color: var(--prosper-color-accent, #0088d0); }
    .bessy-suggestie-handmatig-acties { margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; }
    .bessy-suggestie-handmatig-acties .button { min-height:32px; border-radius: 0; box-shadow:none; }
    .bessy-suggestie-handmatig-acties .bessy-suggestie-handmatig-toepassen { border-color:var(--prosper-color-accent, #0088d0); background:var(--prosper-color-accent, #0088d0); color:#fff; }
    .bessy-suggestie-handmatig-acties .bessy-suggestie-handmatig-toepassen:hover { border-color:var(--prosper-color-accent-strong, #006fb0); background:var(--prosper-color-accent-strong, #006fb0); color:#fff; }
    .bessy-suggestie-handmatig-acties .bessy-suggestie-handmatig-reset { border-color:var(--prosper-color-border, #d8dde2); background:var(--prosper-color-surface-soft, #f3f4f5); color:var(--prosper-color-text, #0b0c0d); }
    .bessy-suggestie-handmatig-acties .bessy-suggestie-handmatig-reset:hover { border-color:var(--prosper-color-accent, #0088d0); background:var(--prosper-color-surface, #ffffff); color:var(--prosper-color-accent, #0088d0); }
    .bessy-agenda-select { display:flex; justify-content:flex-end; padding-top:2px; }
    .bessy-agenda-warning { color:var(--bessy-danger-text); font-weight:700; }
    .bessy-agenda-strike { text-decoration:line-through; opacity:0.76; }
    .bessy-agenda-bag { margin:-6px 0 0; padding:10px 12px; border:1px solid var(--bessy-warning-border); border-radius: 0; background:var(--bessy-warning-bg); }
    .bessy-agenda-bag.is-impossible { border-color:var(--bessy-danger-border); background:var(--bessy-danger-bg); }
@media (max-width: 900px) {
    .bessy-user-summary-head { align-items:flex-start; }
    .bessy-actions-row { gap:8px; }
    .bessy-actions-row .button,
    .bessy-actions-row .button.button-primary {
        width:100%;
        min-height:44px;
        padding:0 16px;
        justify-content:center;
    }
    .bessy-load-status {
        margin-left:0;
        width:100%;
        justify-content:center;
    }
    .bessy-planner-toolbar-group--filters { width:100%; }
    .bessy-planner-datebar { width:100%; flex-wrap:wrap; }
    .bessy-planner-datebar-label { flex:1; min-width:0; font-size:26px; }
    .bessy-planner-calendar { width:min(100%, 320px); }
    .bessy-planner-toolbar-group--selection {
        margin-left:0;
        width:100%;
    }
    .bessy-dagplanner-viewbar { width:100%; }
        .bessy-day-columns { grid-template-columns:1fr; }
        .bessy-day-timeline:before { display:none; }
        .bessy-agenda-item:before { display:none; }
        .bessy-agenda-item { grid-template-columns:1fr; }
        .bessy-agenda-select { justify-content:flex-start; }
        .bessy-suggestie-handmatig-grid { grid-template-columns:1fr; }
    }

.bessy-load-status {
    margin-left:2px;
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:0 12px;
    border:1px solid var(--prosper-color-border, #d8dde2);
    border-radius: 0;
    background:var(--prosper-color-surface-soft, #f3f4f5);
    color:var(--prosper-color-muted, #5b6167);
    font-size:13px;
    font-weight:600;
}

.bessy-appointments-card.is-loading #bessy-range-text,
.bessy-appointments-card.is-loading .bessy-appointments-intro,
.bessy-appointments-card.is-loading #bessy-filters-form,
.bessy-appointments-card.is-loading .bessy-actions-row .button,
.bessy-appointments-card.is-loading .bessy-actions-row .description:not(#bessy-load-status) {
    display:none;
}

.bessy-notice { border-left:4px solid var(--prosper-color-warning, #b56a0a); }
.bessy-notice.is-success { border-left-color:var(--prosper-color-success, #1f7a64); }
.bessy-notice.is-error { border-left-color:var(--prosper-color-danger, #a53a2a); }

.bessy-product-pill,
.bessy-actions-row .button,
.bessy-actions-row .button.button-primary,
.bessy-dagplanner-viewbtn,
.bessy-planner-datebar-today,
.bessy-planner-datebar-nav {
    animation-delay: var(--prosper-wave-phase-offset, -2.4s);
}

.bessy-table {
    width:100%;
    border-collapse:separate;
    border-spacing:0 6px;
}
.bessy-table th {
    text-align:left;
    padding:8px;
    border-bottom:1px solid var(--prosper-color-border, #d8dde2);
}
.bessy-table td {
    padding:8px;
    border-bottom:1px solid var(--prosper-color-border, #d8dde2);
}
.bessy-table--compact th,
.bessy-table--compact td {
    padding:6px 8px;
}
.bessy-table-col-fixed { width:200px; }

.bessy-admin-table-users { max-width:640px; }
.bessy-admin-result-card { max-width:900px; }

.bessy-debug-card {
    margin-top: 12px;
}

.bessy-debug-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px 10px;
    margin-bottom: 6px;
}

.bessy-debug-card-head h3 {
    margin: 0;
}

.bessy-debug-card-actions {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
}

.bessy-debug-log {
    margin: 0;
    min-height: 140px;
    max-height: 320px;
    overflow: auto;
    padding: 10px;
    border: 1px solid var(--prosper-color-border, #d8dde2);
    border-radius: 0;
    background: #101417;
    color: #dce4eb;
    font: 12px/1.45 Consolas, "Liberation Mono", Menlo, monospace;
    white-space: pre-wrap;
}
