.rp-availability{width:100%;box-sizing:border-box}
.rp-availability *{box-sizing:border-box}
.rp-availability__title{margin:0 0 14px;text-align:center;font-size:24px;font-weight:800}
.rp-availability__controls{padding:15px;border:1px solid #ddd;border-radius:10px;background:#fff}
.rp-availability__date{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.rp-availability__date label{font-weight:700}
.rp-availability__date-input{min-height:40px;border:1px solid #bbb;border-radius:7px;background:#fff}
.rp-availability__groups{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.rp-group-btn,.rp-availability__submit{min-height:38px;padding:7px 12px;border:1px solid #8c8f94;border-radius:7px;background:#fff;color:#222;font:inherit;font-weight:700;cursor:pointer}
.rp-group-btn:hover{border-color:#2271b1}
.rp-group-btn.is-active{border-color:#2271b1;background:#2271b1;color:#fff;box-shadow:0 0 0 2px rgba(34,113,177,.14)}
.rp-availability__resources{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 9px;margin-bottom:12px}
.rp-resource-choice{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #ddd;border-radius:7px;background:#fff;cursor:pointer}
.rp-resource-choice.is-selected{border-color:#2271b1;background:#eef6ff}
.rp-resource-choice input{width:17px;height:17px;margin:0;accent-color:#2271b1}
.rp-resource-choice.is-selected span{color:#135e96;font-weight:700}
.rp-availability__actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.rp-availability__submit{border-color:#8E6B00;background:#8E6B00;color:#fff}
.rp-availability__submit:hover{border-color:#FFC000;background:#FFC000;color:#222}
.rp-availability__submit:disabled{opacity:.55;cursor:wait}
.rp-availability__count{font-size:14px;color:#50575e}
.rp-availability__legend{display:flex;gap:10px 18px;flex-wrap:wrap;margin:14px 0;padding:10px;border-radius:8px;background:#f7f7f7;font-size:13px}
.rp-availability__legend span{display:inline-flex;align-items:center;gap:6px}
.rp-legend{display:inline-block;width:15px;height:15px;border-radius:4px}
.rp-legend--green{background:#16a34a}
.rp-legend--blue{background:#2271b1}
.rp-legend--busy{background:#dc2626}
.rp-legend--pending{background:#f59e0b}
.rp-availability__result{position:relative;min-height:80px;margin-top:14px}
.rp-availability__result.is-loading{opacity:.55;pointer-events:none}
.rp-availability__result.is-loading:after{content:"";position:absolute;top:12px;right:12px;width:24px;height:24px;border:3px solid #ddd;border-top-color:#2271b1;border-radius:50%;animation:rp-availability-spin .7s linear infinite}
.rp-availability__date-title{margin:0 0 12px;text-align:center;font-size:18px}
.rp-availability__cards{display:grid;grid-template-columns:1fr;gap:12px}
.rp-availability-card{overflow:hidden;border:1px solid #ddd;border-radius:10px;background:#fff}
.rp-availability-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#f7f7f7}
.rp-availability-card__head strong{font-size:17px}
.rp-availability-card__head span{font-size:12px;color:#646970}
.rp-availability-card__hours{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;padding:10px}
.rp-hour{display:flex;align-items:center;justify-content:center;min-height:34px;border-radius:5px;color:#fff;font-size:12px;font-weight:800}
.rp-hour--green{background:#16a34a}
.rp-hour--blue{background:#2271b1}
.rp-hour--busy{background:#dc2626}
.rp-hour--pending{background:#f59e0b;color:#332600}
.rp-availability__error,.rp-availability__empty{padding:14px;border-radius:8px;background:#fff3f3;color:#a61b1d;text-align:center;font-weight:700}
@keyframes rp-availability-spin{to{transform:rotate(360deg)}}
@media(max-width:800px){.rp-availability-card__hours{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:520px){.rp-availability__resources{grid-template-columns:1fr 1fr}.rp-availability-card__hours{grid-template-columns:repeat(4,minmax(0,1fr))}.rp-hour{font-size:11px}.rp-availability-card__head{align-items:flex-start;flex-direction:column}}

.rp-availability__status-filter{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:14px 0;padding:10px;border:1px solid #e0e0e0;border-radius:8px;background:#fff}
.rp-availability__status-filter-title{font-weight:700;margin-right:3px}
.rp-status-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 10px;border:1px solid #b8b8b8;border-radius:6px;background:#fff;color:#222;font:inherit;cursor:pointer}
.rp-status-btn.is-active{background:#2271b1;border-color:#2271b1;color:#fff}
.rp-status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:currentColor}
.rp-status-dot--green{color:#16a34a}.rp-status-dot--blue{color:#2271b1}.rp-status-dot--busy{color:#dc2626}.rp-status-dot--pending{color:#f59e0b}
.rp-status-btn.is-active .rp-status-dot{color:#fff}
.rp-status-maintenance-sample{display:inline-block;width:18px;height:18px;border:2px solid #d63638;border-radius:2px;background:repeating-linear-gradient(45deg,#fff 0,#fff 3px,#f59e0b 3px,#f59e0b 5px);box-sizing:border-box}
.rp-status-btn.is-active .rp-status-maintenance-sample{border-color:#fff}
.rp-legend--maintenance{border:2px solid #d63638;background:repeating-linear-gradient(45deg,#fff 0,#fff 3px,#f59e0b 3px,#f59e0b 5px)}
.rp-hour--maintenance{color:#222!important;background:repeating-linear-gradient(45deg,#fff 0,#fff 5px,#f59e0b 5px,#f59e0b 7px)!important;border:2px solid #d63638!important;text-shadow:0 1px 0 #fff}
.rp-availability.rp-status-filtering .rp-hour{transition:opacity .15s ease,filter .15s ease,transform .15s ease}
.rp-availability.rp-status-filtering .rp-hour.rp-status-hour-muted{opacity:.10;filter:grayscale(1);transform:scale(.96)}
.rp-availability-card.rp-status-card-hidden{display:none!important}
