.ab-wrap .ab-form, .ab-public { max-width: 1000px; }
.ab-list { list-style:none; margin:0; padding:0; }
.ab-list li { border:1px solid #dcdcde; padding:12px; margin:0 0 10px; background:#fff; border-radius:6px; overflow-wrap:anywhere; word-break:break-word; }
.ab-locked, .ab-slot-locked { opacity:.75; background:#f6f7f7!important; }
.ab-badge { display:inline-block; background:#dbeafe; color:#1e3a8a; padding:2px 7px; border-radius:10px; font-size:12px; }
.ab-inline { display:inline-block; margin-left:6px; }
.ab-message { margin-top:8px; padding:8px; background:#f0f6fc; border-left:4px solid #2271b1; white-space:normal; overflow-wrap:anywhere; word-break:break-word; }
.ab-slot-card { display:block; border:1px solid #ddd; border-radius:8px; padding:12px; margin:10px 0; background:#fff; }
.ab-slot-card input { margin-right:8px; }
.ab-button { display:inline-block; padding:10px 16px; border:0; border-radius:6px; cursor:pointer; }
.ab-status { margin-top:6px; font-size:13px; color:#555; }

/* Full month calendar view */
.ab-calendar { max-width:1200px; margin-top:20px; background:#fff; padding:15px; border:1px solid #ddd; border-radius:8px; }
.ab-cal-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.ab-cal-toolbar button { padding:6px 10px; }
.ab-cal-title { font-size:20px; font-weight:600; }
.ab-cal-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-left:1px solid #ddd; border-top:1px solid #ddd; }
.ab-cal-head, .ab-cal-day { border-right:1px solid #ddd; border-bottom:1px solid #ddd; min-width:0; }
.ab-cal-head { font-weight:600; text-align:center; background:#f6f7f7; padding:8px; }
.ab-cal-day { min-height:130px; padding:6px; background:#fff; overflow:hidden; }
.ab-cal-day.ab-other-month { background:#fafafa; color:#777; }
.ab-cal-date { font-weight:600; margin-bottom:6px; }
.ab-cal-event { display:block; margin:5px 0; padding:6px; border-radius:6px; background:#e9f3ff; border:1px solid #b8d9f5; white-space:normal; overflow-wrap:anywhere; word-break:break-word; line-height:1.25; font-size:12px; cursor:pointer; max-width:100%; }
.ab-cal-event strong, .ab-cal-event span { display:block; white-space:normal; overflow-wrap:anywhere; word-break:break-word; }
.ab-cal-event .ab-cal-zoom { margin-top:4px; color:#1d2327; }
.ab-cal-empty { color:#888; font-size:12px; }
@media(max-width:700px){ .ab-cal-grid{grid-template-columns:1fr}.ab-cal-head{display:none}.ab-cal-day{min-height:auto}.ab-cal-day:before{content:attr(data-weekday);display:block;font-weight:600;color:#555} }

.ab-login-box {
    max-width: 420px;
    padding: 18px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
}
.ab-login-box input[type="text"],
.ab-login-box input[type="password"] {
    width: 100%;
    max-width: 100%;
}
.ab-login-links { margin-top: 10px; }
.ab-shortcodes-table code { white-space: nowrap; }
.ab-shortcodes ul { list-style: disc; margin-left: 24px; }

.ab-editor-field { margin: 14px 0; max-width: 900px; }
.ab-editor-field label { display: block; margin-bottom: 6px; }
.ab-description { margin-top: 8px; padding: 8px; background: #fafafa; border-left: 3px solid #ddd; overflow-wrap: anywhere; word-break: break-word; }
.ab-description p, .ab-message p, .ab-cal-zoom p { margin: 0 0 6px; }
.ab-copy-slot { cursor: copy; }
.ab-copy-hint { display: block; margin-top: 6px; color: #646970; font-size: 12px; font-style: italic; }
.ab-copied { outline: 2px solid #00a32a; outline-offset: 2px; }
.ab-copied:after { content: 'Copied'; display: inline-block; margin-left: 6px; padding: 2px 6px; border-radius: 10px; background: #00a32a; color: #fff; font-size: 12px; }
.ab-consent { padding: 10px; background: #f6f7f7; border: 1px solid #dcdcde; border-radius: 6px; }
.ab-approval-editor { min-width: 320px; max-width: 520px; }
.ab-cal-event a, .ab-message a, .ab-description a { text-decoration: underline; }

.ab-cal-event.ab-status-pending { background:#fff7e6; border-color:#f0b849; }
.ab-cal-event.ab-status-approved_by_participant,
.ab-cal-event.ab-status-confirmed { background:#edfaef; border-color:#68de7c; }
.ab-cal-event.ab-status-rejected { background:#fcf0f1; border-color:#d63638; }
.ab-cal-status { font-weight:600; }

.ab-request-status-list{margin:0;padding-left:18px}.ab-request-status-list li{margin:2px 0}
