/* ZCW Duofiets Frontend Calendar */
.zcw-df-wrap{font-family:'Open Sans',sans-serif;color:#1a1a1a;max-width:100%;margin:0 auto;background-color:#f5f3f0;background-image:none !important;border-radius:18px;padding:2rem;box-sizing:border-box;}
.zcw-df-wrap *,.zcw-df-wrap *::before,.zcw-df-wrap *::after{box-sizing:border-box;}
.zcw-df-wrap svg{display:inline-block;vertical-align:middle;max-width:none;max-height:none;}

/* Header */
.zcw-df-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem;}
.zcw-df-title{font-size:28px;font-weight:700;margin:0;}
.zcw-df-subtitle{font-size:16px;color:#626262;margin-top:2px;}
.zcw-df-wrap .zcw-df-btn-reserveer{
    background:#0392ad;color:#fff;font-family:'Open Sans',sans-serif;
    font-size:16px;font-weight:600;padding:14px 36px;border-radius:36px;
    border:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;
    transition:background .2s,transform .1s;box-shadow:0 4px 16px rgba(3,146,173,.3);
    line-height:1.4;text-decoration:none;text-transform:none;letter-spacing:0;
    -webkit-appearance:none;appearance:none;
}
.zcw-df-wrap .zcw-df-btn-reserveer svg{width:18px;height:18px;flex-shrink:0;}
.zcw-df-wrap .zcw-df-btn-reserveer:hover{background:#027a91;transform:translateY(-1px);color:#fff;}
.zcw-df-wrap .zcw-df-btn-reserveer:disabled{opacity:.5;cursor:not-allowed;transform:none;}

/* Month nav */
.zcw-df-month-nav{
    background:#fff;border-radius:14px;padding:1.1rem 1.5rem;
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:1.5rem;box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.zcw-df-month-title{font-size:22px;font-weight:700;}
.zcw-df-month-sub{font-size:14px;color:#626262;margin-left:8px;}
.zcw-df-month-center{display:flex;align-items:baseline;gap:6px;}
.zcw-df-wrap .zcw-df-month-btn{
    width:40px;height:40px;min-width:40px;min-height:40px;border-radius:50%;background:#f6f6f6;
    border:1px solid #e0e0e0;cursor:pointer;display:inline-flex;align-items:center;
    justify-content:center;transition:background .2s;padding:0;margin:0;
    line-height:1;font-size:0;text-decoration:none;box-shadow:none;
    -webkit-appearance:none;appearance:none;
}
.zcw-df-wrap .zcw-df-month-btn svg{width:16px;height:16px;flex-shrink:0;}
.zcw-df-wrap .zcw-df-month-btn:hover{background:#0392ad;border-color:#0392ad;}
.zcw-df-wrap .zcw-df-month-btn:hover path{stroke:white;}

/* Weekdays */
.zcw-df-wrap .zcw-df-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px;text-align:center;width:100%;}
.zcw-df-wrap .zcw-df-weekdays div{font-size:13px;font-weight:600;color:#626262;text-transform:uppercase;letter-spacing:.06em;padding:6px 0;width:auto;max-width:none;}

/* Grid */
.zcw-df-wrap .zcw-df-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;width:100%;}
.zcw-df-wrap .zcw-df-day{
    background:#fff;border-radius:10px;border:1px solid #e0e0e0;
    min-height:90px;padding:10px 8px;cursor:pointer;
    transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    width:auto;max-width:none;
}
.zcw-df-day:hover{border-color:#0392ad;box-shadow:0 2px 12px rgba(3,146,173,.15);}
.zcw-df-day.other{background:#fafafa;opacity:.5;cursor:default;}
.zcw-df-day.today{border-color:#0392ad;border-width:2px;}
.zcw-df-day.today .zcw-df-day-num{background:#0392ad;color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;}
.zcw-df-day.selected{border-color:#0392ad;border-width:2px;box-shadow:0 2px 14px rgba(3,146,173,.18);background:#eaf7fa;}
.zcw-df-day.past{opacity:.4;cursor:default;}
.zcw-df-day-num{font-size:15px;font-weight:600;width:28px;height:28px;display:flex;align-items:center;justify-content:center;}

/* Day status colors */
.zcw-df-day.status-vrij{background:#e6f4eb;}
.zcw-df-day.status-deels{background:#e6f4eb;}
.zcw-df-day.status-bezet{background:#fde8e8;}
.zcw-df-day.status-vrij:hover{border-color:#2e9e5a;}
.zcw-df-day.status-deels:hover{border-color:#2e9e5a;}
.zcw-df-day.status-bezet:hover{border-color:#d63638;}

/* Availability label in day cell */
.zcw-df-avail{font-size:12px;font-weight:600;margin-top:4px;letter-spacing:.02em;}
.zcw-df-day.status-vrij .zcw-df-avail{color:#2e9e5a;}
.zcw-df-day.status-deels .zcw-df-avail{color:#2e9e5a;}
.zcw-df-day.status-bezet .zcw-df-avail{color:#d63638;}

/* Legend */
.zcw-df-legend{display:flex;gap:1.5rem;margin-top:1.2rem;flex-wrap:wrap;}
.zcw-df-legend-item{display:flex;align-items:center;gap:6px;font-size:14px;color:#626262;}
.zcw-df-legend-dot{width:12px;height:12px;border-radius:50%;}

/* Day detail */
.zcw-df-detail{
    background:#fff;border-radius:14px;padding:1.5rem;
    margin-top:1.5rem;box-shadow:0 2px 12px rgba(0,0,0,.07);
    border-left:4px solid #0392ad;
}
.zcw-df-detail h3{font-size:20px;font-weight:700;margin:0 0 1rem 0;}
.zcw-df-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.zcw-df-slot{
    border:1.5px solid #e0e0e0;border-radius:12px;padding:1.2rem;
    text-align:center;cursor:pointer;transition:all .2s;
}
.zcw-df-slot:hover{border-color:#0392ad;background:#eaf7fa;}
.zcw-df-slot.bezet{background:#fde8e8;border-color:#e0a0a0;cursor:default;}
.zcw-df-slot.selected{border-color:#0392ad;background:#eaf7fa;}
.zcw-df-slot-icon{font-size:24px;margin-bottom:6px;}
.zcw-df-slot-label{font-size:15px;font-weight:600;}
.zcw-df-slot-time{font-size:13px;color:#626262;margin-top:2px;}
.zcw-df-slot-status{font-size:13px;font-weight:600;margin-top:8px;padding:4px 12px;border-radius:20px;display:inline-block;}
.zcw-df-slot-status.vrij{background:#e6f4eb;color:#2e9e5a;}
.zcw-df-slot-status.bezet{background:#fde8e8;color:#d63638;}
.zcw-df-wrap .zcw-df-slot-btn{
    margin-top:10px;background:#0392ad;color:#fff;
    font-size:14px;font-weight:600;padding:8px 18px;
    border-radius:36px;border:none;cursor:pointer;transition:background .2s;
    line-height:1.4;text-decoration:none;text-transform:none;letter-spacing:0;
    -webkit-appearance:none;appearance:none;
}
.zcw-df-wrap .zcw-df-slot-btn:hover{background:#027a91;color:#fff;}
.zcw-df-slot.bezet .zcw-df-slot-btn{display:none;}

/* Modal */
.zcw-df-modal-overlay{
    position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100000;
    display:none;align-items:center;justify-content:center;padding:1rem;
}
.zcw-df-modal-overlay.open{display:flex;}
.zcw-df-modal{
    background:#fff;border-radius:18px;padding:2rem;width:100%;max-width:500px;
    max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2);
    transform:translateY(20px);transition:transform .25s;
}
.zcw-df-modal-overlay.open .zcw-df-modal{transform:translateY(0);}
.zcw-df-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;}
.zcw-df-modal-header h2{font-size:20px;font-weight:700;margin:0;}
.zcw-df-modal-close{
    width:34px;height:34px;min-width:34px;border-radius:50%;border:1px solid #e0e0e0;
    background:#f6f6f6;cursor:pointer;font-size:16px;color:#626262;
    display:inline-flex;align-items:center;justify-content:center;
    padding:0;margin:0;line-height:1;text-decoration:none;
    -webkit-appearance:none;appearance:none;
}
.zcw-df-modal-summary{background:#f6f6f6;border-radius:10px;padding:12px 16px;margin-bottom:1.5rem;}
.zcw-df-modal-summary p{font-size:14px;color:#626262;margin:2px 0;}
.zcw-df-modal-summary strong{color:#1a1a1a;}

/* Form */
.zcw-df-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.zcw-df-form-group{margin-bottom:1rem;}
.zcw-df-form-group label{display:block;font-size:14px;font-weight:600;margin-bottom:5px;}
.zcw-df-form-group input,
.zcw-df-form-group textarea{
    width:100%;padding:11px 14px;border:1.5px solid #e0e0e0;
    border-radius:10px;font-family:'Open Sans',sans-serif;font-size:15px;
    transition:border-color .2s;outline:none;box-sizing:border-box;
}
.zcw-df-form-group input:focus,
.zcw-df-form-group textarea:focus{border-color:#0392ad;}
.zcw-df-form-group textarea{resize:vertical;}
.zcw-df-btn-submit{
    width:100%;background:#0392ad;color:#fff;font-family:'Open Sans',sans-serif;
    font-size:16px;font-weight:600;padding:14px;border-radius:36px;
    border:none;cursor:pointer;margin-top:.5rem;transition:background .2s;
    line-height:1.4;text-decoration:none;text-transform:none;letter-spacing:0;
    -webkit-appearance:none;appearance:none;
}
.zcw-df-btn-submit:hover{background:#027a91;color:#fff;}
.zcw-df-btn-submit:disabled{opacity:.6;cursor:not-allowed;}
.zcw-df-form-note{font-size:13px;color:#626262;text-align:center;margin-top:10px;}

/* Success / Error */
.zcw-df-success,.zcw-df-error{text-align:center;padding:1rem 0;}
.zcw-df-success-icon{font-size:48px;margin-bottom:1rem;}
.zcw-df-success h3{font-size:20px;font-weight:700;color:#2e9e5a;margin:0 0 .5rem 0;}
.zcw-df-error h3{font-size:20px;font-weight:700;color:#d63638;margin:0 0 .5rem 0;}
.zcw-df-success p,.zcw-df-error p{font-size:15px;color:#626262;}
.zcw-df-success-tagline{margin-top:1rem;font-size:14px;color:#0392ad;font-weight:600;}

/* Responsive */
@media(max-width:767px){
    .zcw-df-wrap{padding:1rem;}
    .zcw-df-day{min-height:70px;padding:8px 4px;}
    .zcw-df-day-num{font-size:13px;}
    .zcw-df-avail{font-size:10px;}
    .zcw-df-slots{grid-template-columns:1fr;}
    .zcw-df-header{flex-direction:column;align-items:flex-start;}
    .zcw-df-form-row{grid-template-columns:1fr;}
    .zcw-df-month-sub{display:none;}
}
@media(min-width:768px) and (max-width:1023px){
    .zcw-df-day{min-height:80px;}
}
