#evb-app{--evb-bg:#f9f9f9;--evb-white:#fff;--evb-border:#e5e5e5;--evb-gray:#666;--evb-dark:#222;--evb-light:#f0f0f0;font-family:var(--evb-font,inherit);color:var(--evb-dark);max-width:900px;margin:0 auto;padding:0 1rem}

/* Calendar */
.evb-calendar{background:var(--evb-white);border-radius:12px;padding:1rem;border:1px solid var(--evb-border);box-shadow:0 1px 8px rgba(0,0,0,.04)}
.evb-cal-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.evb-cal-hdr h2{font-size:1.3rem;font-weight:700;margin:0}
.evb-cal-nav{display:flex;gap:.3rem}
.evb-cal-nav button{width:34px;height:34px;border-radius:50%;border:1px solid var(--evb-border);background:0;cursor:pointer;font-size:1.1rem;color:var(--evb-dark);transition:all .2s;display:flex;align-items:center;justify-content:center}
.evb-cal-nav button:hover{background:var(--evb-accent);color:#fff;border-color:var(--evb-accent)}
.evb-wk{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:2px solid var(--evb-accent)}
.evb-wk span{text-align:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--evb-accent);font-weight:700;padding:.45rem 0}
.evb-days{display:grid;grid-template-columns:repeat(7,1fr)}
.evb-day{min-height:90px;border:1px solid #eee;padding:0;display:flex;flex-direction:column;position:relative;overflow:hidden}
.evb-day-num{font-size:.7rem;font-weight:500;color:#d0d0d0;padding:2px 5px;line-height:1}
.evb-day-other{background:#fafafa}
.evb-day-other .evb-day-num{color:#e8e8e8}
.evb-day-today .evb-day-num{background:var(--evb-accent);color:#fff;font-weight:800;border-radius:0 0 4px 0;display:inline-block;padding:2px 6px}
.evb-day-has .evb-day-num{color:#555;font-weight:700}
.evb-day-has{cursor:pointer;transition:box-shadow .15s}
.evb-day-has:hover{box-shadow:inset 0 0 0 2px var(--evb-accent)}
.evb-day-sel{background:color-mix(in srgb,var(--evb-accent) 8%,transparent)}

/* Event chips filling day cells */
.evb-day-chips{display:flex;flex-direction:column;gap:2px;padding:1px 2px 2px;flex:1}
.evb-day-chip{display:flex;flex-direction:column;justify-content:center;padding:3px 6px;border-radius:4px;cursor:pointer;transition:opacity .15s;overflow:hidden;flex:1;min-height:0}
.evb-day-chip:hover{opacity:.75}
.evb-day-chip-time{font-weight:800;font-size:.72rem;line-height:1.3}
.evb-day-chip-title{font-weight:600;font-size:.74rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Event list below calendar */
.evb-evlist{margin-top:1rem}
.evb-evlist h3{font-size:.9rem;font-weight:600;color:var(--evb-accent);margin:0 0 .5rem}
.evb-ev{background:var(--evb-white);border-radius:8px;padding:.8rem 1rem;margin-bottom:.4rem;border:1px solid var(--evb-border);transition:all .2s}
.evb-ev:hover{border-color:color-mix(in srgb,var(--evb-accent) 40%,transparent);box-shadow:0 2px 8px rgba(0,0,0,.04)}
.evb-ev-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}
.evb-ev-top h4{font-size:.88rem;font-weight:600;margin:0 0 .15rem}
.evb-ev-time{font-size:.75rem;color:var(--evb-gray);margin:0}
.evb-ev-loc{display:inline-block;font-size:.7rem;color:var(--evb-gray);margin-top:.1rem}
.evb-ev-desc{font-size:.72rem;color:var(--evb-gray);margin:.2rem 0 0;line-height:1.4;max-height:2.2em;overflow:hidden}
.evb-ev-right{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;flex-shrink:0}
.evb-tag{font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;padding:.12rem .45rem;border-radius:100px;font-weight:700;white-space:nowrap}
.evb-ev-spots{font-size:.65rem;color:var(--evb-accent);font-weight:600;white-space:nowrap}
.evb-book-btn{background:var(--evb-accent);color:#fff;border:0;padding:.35rem .9rem;border-radius:6px;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .15s;font-family:inherit;white-space:nowrap}
.evb-book-btn:hover{opacity:.88}
.evb-full-badge{font-size:.65rem;color:#c0392b;font-weight:700;background:#fdeded;padding:.2rem .5rem;border-radius:4px}

/* ══ Booking Modal ══ */
.evb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99999;align-items:center;justify-content:center;padding:.5rem;box-sizing:border-box;backdrop-filter:blur(2px)}
.evb-modal{background:var(--evb-white);border-radius:12px;width:100%;max-width:560px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 16px 48px rgba(0,0,0,.18);animation:evbSlideUp .25s ease;position:relative}
@keyframes evbSlideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.evb-modal-close{position:absolute;top:8px;right:10px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.06);color:var(--evb-dark);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:2}
.evb-modal-close:hover{background:rgba(0,0,0,.12)}
.evb-modal-header{padding:.8rem 1rem .7rem;border-bottom:1px solid var(--evb-border);background:color-mix(in srgb,var(--evb-accent) 4%,transparent);flex-shrink:0}
.evb-modal-header h3{font-size:1rem;font-weight:700;margin:0 0 .4rem;padding-right:30px;color:var(--evb-dark)}
.evb-modal-details{display:flex;flex-wrap:wrap;gap:.15rem .8rem;margin-bottom:.4rem}
.evb-modal-detail{font-size:.78rem;color:var(--evb-gray);line-height:1.4}
.evb-modal-desc{font-size:.78rem;color:#555;line-height:1.5;margin-bottom:.4rem}
.evb-modal-badges{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.evb-modal-header .evb-tag{display:inline-block}
.evb-modal-spots{font-size:.72rem;font-weight:600;color:var(--evb-accent)}
.evb-modal-spots-full{color:#c0392b}

/* Scrollable form body */
#evb-form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.evb-modal-body{padding:.6rem .9rem;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}
.evb-modal-footer{padding:.5rem .9rem .7rem;border-top:1px solid var(--evb-border);background:var(--evb-bg);flex-shrink:0}

/* Compact form fields — inline layout */
.evb-field{margin-bottom:.4rem;display:flex;align-items:center;gap:.6rem}
.evb-field label{flex:0 0 110px;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:var(--evb-gray);margin:0;text-align:right;line-height:1.2}
.evb-req{color:#c0392b}
.evb-field input,.evb-field select{flex:1;padding:.4rem .6rem;border:1px solid var(--evb-border);border-radius:6px;font-size:.82rem;color:var(--evb-dark);background:var(--evb-white);transition:border-color .2s,box-shadow .2s;outline:0;font-family:inherit;box-sizing:border-box;width:auto}
.evb-field textarea{flex:1;padding:.4rem .6rem;border:1px solid var(--evb-border);border-radius:6px;font-size:.82rem;color:var(--evb-dark);background:var(--evb-white);transition:border-color .2s,box-shadow .2s;outline:0;font-family:inherit;box-sizing:border-box;width:auto;resize:vertical;min-height:36px}
.evb-field input:focus,.evb-field select:focus,.evb-field textarea:focus{border-color:var(--evb-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--evb-accent) 12%,transparent)}
/* Checkbox fields stay stacked */
.evb-field.evb-cb-field{flex-direction:row;align-items:flex-start}
.evb-field.evb-cb-field label{flex:none;text-align:left}

/* Submit */
.evb-btn-submit{width:100%;padding:.5rem;background:var(--evb-accent);color:#fff;border:0;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}
.evb-btn-submit:hover{opacity:.88}
.evb-btn-submit:disabled{background:var(--evb-border);color:var(--evb-gray);cursor:not-allowed}

/* Math CAPTCHA */
.evb-captcha{margin-top:.2rem}
.evb-math{display:flex;align-items:center;gap:.4rem}
.evb-math-q{font-size:.88rem;font-weight:700;color:var(--evb-accent);white-space:nowrap;background:color-mix(in srgb,var(--evb-accent) 8%,transparent);padding:.3rem .6rem;border-radius:6px;min-width:60px;text-align:center}
.evb-math input{width:55px!important;text-align:center;font-size:.88rem!important;font-weight:700}

/* Checkboxes */
.evb-cb-field{margin-bottom:.35rem!important}
.evb-cb{display:flex!important;align-items:flex-start;gap:.35rem;font-size:.72rem!important;font-weight:400!important;text-transform:none!important;letter-spacing:0!important;color:var(--evb-dark)!important;cursor:pointer;line-height:1.35}
.evb-cb input[type=checkbox]{width:15px!important;height:15px!important;min-width:15px;margin-top:1px;accent-color:var(--evb-accent);cursor:pointer}
.evb-cb span a{color:var(--evb-accent);text-decoration:underline}
.evb-terms-box{margin-top:.25rem;border:1px solid var(--evb-border);border-radius:6px;overflow:hidden}
.evb-terms-box summary{padding:.3rem .5rem;font-size:.65rem;font-weight:600;color:var(--evb-accent);cursor:pointer;background:var(--evb-bg)}
.evb-terms-txt{padding:.4rem;font-size:.65rem;line-height:1.4;color:var(--evb-gray);max-height:100px;overflow-y:auto}

/* Messages */
.evb-msg{padding:.35rem .6rem;border-radius:6px;font-size:.75rem;font-weight:500;margin-bottom:.4rem}
.evb-msg.ok{background:#e8f5e8;color:#2e7d32}
.evb-msg.err{background:#fdeded;color:#c0392b}
.grecaptcha-badge{visibility:hidden!important}

/* Confirmation */
.evb-confirmation{padding:1rem .9rem;text-align:center;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}
.evb-conf-icon{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#2e7d32,#43a047);color:#fff;font-size:22px;line-height:44px;margin:0 auto .5rem;font-weight:700;box-shadow:0 3px 10px rgba(46,125,50,.2)}
.evb-conf-title{font-size:.95rem;font-weight:700;color:#2e7d32;margin:0 0 .6rem}
.evb-conf-details{text-align:left;background:#f8faf8;border:1px solid #e8f0e8;border-radius:8px;padding:.1rem 0;margin:0 auto;max-width:320px}
.evb-conf-row{display:flex;justify-content:space-between;padding:.3rem .6rem;border-bottom:1px solid #eef3ee;gap:.4rem}
.evb-conf-row:last-child{border-bottom:0}
.evb-conf-label{font-size:.65rem;color:#888;text-transform:uppercase;letter-spacing:.03em;font-weight:600;flex-shrink:0}
.evb-conf-val{font-size:.78rem;color:#333;font-weight:500;text-align:right}
.evb-conf-cancel{padding:.3rem .6rem;text-align:center}
.evb-conf-cancel a{font-size:.68rem;color:#999;text-decoration:underline}
.evb-conf-cancel a:hover{color:#c0392b}
.evb-conf-note{font-size:.68rem;color:#888;margin-top:.5rem}

/* Day modal */
.evb-day-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.4);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:.5rem}
.evb-day-modal{background:#fff;border-radius:12px;max-width:500px;width:100%;max-height:80vh;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.18);display:flex;flex-direction:column;position:relative}
.evb-dm-header{padding:.7rem .9rem;border-bottom:1px solid #eee}
.evb-dm-header h3{margin:0;font-size:.9rem;font-weight:700}
.evb-dm-body{padding:.5rem .9rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.4rem;-webkit-overflow-scrolling:touch}
.evb-dm-event{display:flex;gap:.6rem;padding:.5rem;border:1px solid #eee;border-radius:8px;transition:border-color .15s}
.evb-dm-event:hover{border-color:var(--evb-accent)}

/* Price tags */
.evb-price-free{font-size:.62rem;font-weight:700;color:#2e7d32;background:#e8f5e9;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em}
.evb-price-tag{font-size:.72rem;font-weight:700;color:#c0392b;background:#fef0f0;padding:1px 5px;border-radius:3px}
.evb-price-tag-lg{font-size:.82rem;padding:2px 7px;border-radius:4px}
.evb-price-note{display:block;font-size:.6rem;color:#999;font-style:italic;margin-top:.05rem}
.evb-price-note-lg{font-size:.68rem;color:#888;font-style:italic;margin-left:.3rem}
.evb-modal-price{margin-top:.2rem;display:flex;align-items:center;flex-wrap:wrap;gap:.2rem}

/* Mobile */
@media(max-width:600px){
    .evb-calendar{padding:.4rem}
    .evb-day{min-height:60px}
    .evb-day-num{font-size:.58rem;padding:1px 3px}
    .evb-day-chip-time{font-size:.58rem}
    .evb-day-chip-title{font-size:.58rem}
    .evb-ev-top{flex-direction:column;gap:.3rem}
    .evb-ev-right{flex-direction:row;align-items:center;flex-wrap:wrap}
    .evb-overlay{padding:0}
    .evb-modal{max-width:100%;max-height:100vh;max-height:100dvh;height:100vh;height:100dvh;border-radius:0}
    .evb-modal-header{padding:.6rem .75rem .4rem}
    .evb-modal-header h3{font-size:.85rem}
    .evb-modal-body{padding:.5rem .75rem}
    .evb-modal-footer{padding:.4rem .75rem .6rem}
    .evb-field{flex-direction:column;align-items:stretch;gap:.1rem}
    .evb-field label{flex:none;text-align:left;font-size:.65rem}
    .evb-field input,.evb-field select,.evb-field textarea{padding:.38rem .5rem;font-size:.78rem}
    .evb-btn-submit{padding:.45rem;font-size:.78rem}
    .evb-day-overlay{padding:0}
    .evb-day-modal{max-width:100%;max-height:100vh;border-radius:0}
}

/* Review cards [eventbooker_reviews] */
.evb-reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;max-width:900px;margin:0 auto}
.evb-review-card{background:var(--evb-white,#fff);border:1px solid #e5e5e5;border-radius:10px;padding:1rem;transition:box-shadow .2s}
.evb-review-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.05)}
.evb-review-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}
.evb-review-stars{font-size:1rem;letter-spacing:1px}
.evb-review-name{font-weight:700;font-size:.8rem;color:#333}
.evb-review-text{font-size:.82rem;line-height:1.5;color:#444;margin-bottom:.5rem}
.evb-review-meta{display:flex;justify-content:space-between;font-size:.68rem;color:#999}
.evb-no-reviews{text-align:center;color:#999;padding:1.5rem;font-size:.85rem}
@media(max-width:600px){.evb-reviews{grid-template-columns:1fr}}

/* [eventbooker_list] shortcode */
.evb-list{display:flex;flex-direction:column;gap:.5rem}
.evb-list-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.8rem}
.evb-list-item{display:flex;gap:.8rem;align-items:flex-start;padding:.7rem .9rem;border:1px solid #eee;border-radius:10px;background:#fff;transition:box-shadow .15s}
.evb-list-item:hover{box-shadow:0 2px 10px rgba(0,0,0,.05)}
.evb-list-past{opacity:.5}
.evb-list-date{flex-shrink:0;width:40px;text-align:center;background:color-mix(in srgb,var(--evb-accent,#4A6FA5) 8%,transparent);border-radius:6px;padding:.25rem .1rem}
.evb-list-date-day{display:block;font-size:1.1rem;font-weight:800;line-height:1.1;color:var(--evb-accent,#4A6FA5)}
.evb-list-date-month{display:block;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--evb-accent,#4A6FA5);opacity:.7}
.evb-list-info{flex:1;min-width:0}
.evb-list-title{font-weight:700;font-size:.85rem;color:#222;margin-bottom:.1rem}
.evb-list-meta{font-size:.7rem;color:#888;display:flex;flex-wrap:wrap;gap:.2rem .5rem}
.evb-list-desc{font-size:.68rem;color:#aaa;margin-top:.1rem;line-height:1.3}
.evb-list-tags{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:.25rem;align-items:center}
.evb-list-spots{font-size:.6rem;color:#888}
.evb-list-action{flex-shrink:0;align-self:center}
.evb-list-book{display:inline-block;padding:.3rem .7rem;background:var(--evb-accent,#4A6FA5);color:#fff;border-radius:6px;font-size:.72rem;font-weight:600;text-decoration:none;transition:opacity .15s}
.evb-list-book:hover{opacity:.85;color:#fff}
.evb-list-empty{color:#888;font-size:.82rem;font-style:italic}
@media(max-width:600px){.evb-list-cols{grid-template-columns:1fr}.evb-list-item{flex-wrap:wrap}.evb-list-action{width:100%;text-align:right}}

/* [eventbooker_single] — standalone event booking */
.evb-single{max-width:600px;margin:0 auto}
.evb-single-header{background:var(--evb-white);border:1px solid var(--evb-border);border-radius:12px;padding:1.4rem 1.6rem;margin-bottom:1rem}
.evb-single-title{font-size:1.3rem;font-weight:700;margin:0 0 .6rem;color:var(--evb-dark)}
.evb-single-details{display:flex;flex-wrap:wrap;gap:.2rem .8rem;margin-bottom:.5rem;font-size:.85rem;color:var(--evb-gray)}
.evb-single-desc{font-size:.85rem;color:#555;line-height:1.6;margin-bottom:.6rem}
.evb-single-badges{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.evb-single-spots{font-size:.78rem;font-weight:600;color:var(--evb-accent,#4A6FA5)}
.evb-single-form{background:var(--evb-white);border:1px solid var(--evb-border);border-radius:12px;padding:1.4rem 1.6rem}
.evb-single-form-title{font-size:1rem;font-weight:700;margin:0 0 .8rem;color:var(--evb-dark);padding-bottom:.5rem;border-bottom:2px solid var(--evb-accent,#4A6FA5)}
.evb-single-past,.evb-single-full{text-align:center;padding:1.2rem;background:#f8f8f8;border-radius:10px;color:#888;font-size:.9rem}
.evb-single-err{color:#c0392b;font-size:.85rem}
@media(max-width:600px){.evb-single-header,.evb-single-form{padding:1rem}}
