/* Resource Booking System – Frontend CSS v1.4 */
:root {
    --rbs-free-bg:#dcfce7; --rbs-free-text:#166534;
    --rbs-booked-bg:#fee2e2; --rbs-booked-text:#991b1b;
    --rbs-past-bg:#f3f4f6; --rbs-past-text:#9ca3af;
    --rbs-selected-bg:#fef9c3; --rbs-selected-text:#854d0e;
    --rbs-header-bg:#1e40af; --rbs-row-alt-bg:#f1f5f9; --rbs-btn-primary:#2563eb;
}
.rbs-wrapper { font-family:inherit; max-width:100%; margin:0 0 36px; }

/* Week nav */
.rbs-week-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.rbs-week-center { display:flex; flex-direction:column; align-items:center; gap:4px; flex:1; }
.rbs-current-week { font-weight:600; font-size:.95rem; color:#1e293b; text-align:center; }
.rbs-btn-today { font-size:.78rem; padding:3px 11px; background:#fff7ed; color:#9a3412; border:1px solid #fdba74; border-radius:20px; cursor:pointer; }
.rbs-btn-today:hover { background:#ffedd5; }

/* Buttons */
.rbs-btn { display:inline-flex; align-items:center; gap:5px; padding:8px 16px; border:none; border-radius:6px; cursor:pointer; font-size:.88rem; font-weight:500; transition:background .18s,transform .1s; white-space:nowrap; }
.rbs-btn:active { transform:scale(.97); }
.rbs-btn-small { padding:5px 11px; font-size:.8rem; }
.rbs-btn-primary  { background:var(--rbs-btn-primary); color:#fff; }
.rbs-btn-primary:hover  { filter:brightness(.9); }
.rbs-btn-secondary { background:#f1f5f9; color:#334155; border:1px solid #e2e8f0; }
.rbs-btn-secondary:hover { background:#e2e8f0; }

/* Resource tabs */
.rbs-resource-tabs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.rbs-tab { padding:6px 14px; border:2px solid #e2e8f0; border-radius:20px; background:#fff; cursor:pointer; font-size:.83rem; font-weight:500; color:#555; transition:all .18s; }
.rbs-tab:hover  { border-color:var(--rbs-btn-primary); color:var(--rbs-btn-primary); }
.rbs-tab.active { background:var(--rbs-btn-primary); color:#fff; border-color:var(--rbs-btn-primary); }

/* Dropdown */
.rbs-resource-dropdown-wrap { display:flex; align-items:center; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.rbs-resource-dropdown-wrap label { font-weight:600; font-size:.88rem; color:#374151; }
.rbs-resource-select { padding:7px 12px; border:2px solid #e2e8f0; border-radius:8px; font-size:.88rem; background:#fff; min-width:220px; cursor:pointer; }
.rbs-resource-select:focus { outline:none; border-color:var(--rbs-btn-primary); }

/* Teacher info box */
.rbs-teacher-info { background:linear-gradient(135deg,#eff6ff 0%,#f0fdf4 100%); border:1px solid #bfdbfe; border-left:4px solid #2563eb; border-radius:8px; padding:11px 16px; margin-bottom:12px; font-size:.88rem; color:#1e3a5f; line-height:1.5; }
.rbs-teacher-icon { margin-right:4px; }

/* Multiselect hint (resource only) */
.rbs-multiselect-hint { display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:#fefce8; border:1px solid #fde68a; border-radius:8px; padding:9px 14px; margin-bottom:10px; font-size:.86rem; }
.rbs-selected-count { font-weight:700; font-size:1.1rem; color:#92400e; }

/* Grid */
.rbs-schedule-container { overflow-x:auto; border-radius:10px; box-shadow:0 1px 4px rgba(0,0,0,.09); border:1px solid #e5e7eb; margin-bottom:4px; }
.rbs-schedule-grid { min-width:400px; }
.rbs-grid-header { display:grid; background:var(--rbs-header-bg); color:#fff; border-radius:9px 9px 0 0; font-size:.8rem; font-weight:600; }
.rbs-header-cell { padding:10px 6px; text-align:center; border-right:1px solid rgba(255,255,255,.15); }
.rbs-header-cell:last-child { border-right:none; }
.rbs-grid-row { display:grid; border-bottom:1px solid #e5e7eb; background:#fff; }
.rbs-grid-row:last-child { border-bottom:none; }
.rbs-cell { padding:7px 5px; text-align:center; border-right:1px solid #e5e7eb; font-size:.79rem; background:transparent; }
.rbs-cell:last-child { border-right:none; }
.rbs-row-alt { background-color:var(--rbs-row-alt-bg) !important; }
.rbs-timeslot-label { text-align:left; font-weight:600; color:#374151; padding-left:10px; border-right:2px solid #d1d5db !important; }
.rbs-timeslot-time { font-size:.71rem; color:#6b7280; font-weight:400; }
.rbs-today-col { background-color:rgba(219,234,254,.22) !important; }

/* Slot states */
.rbs-slot { display:flex; align-items:center; justify-content:center; min-height:34px; border-radius:5px; font-size:.76rem; font-weight:500; padding:3px 4px; line-height:1.2; text-align:center; transition:all .15s; border:1px solid transparent; word-break:break-word; }
.rbs-slot-free { background:var(--rbs-free-bg); color:var(--rbs-free-text); border-color:var(--rbs-free-bg); cursor:pointer; }
.rbs-slot-free:hover { filter:saturate(1.3) brightness(.93); transform:scale(1.05); }
.rbs-slot-free.rbs-selected { background:var(--rbs-selected-bg); color:var(--rbs-selected-text); border:2px solid #f59e0b; transform:scale(1.06); font-weight:700; }
.rbs-slot-booked { background:var(--rbs-booked-bg); color:var(--rbs-booked-text); border-color:var(--rbs-booked-bg); cursor:default; }
.rbs-slot-past   { background:var(--rbs-past-bg); color:var(--rbs-past-text); border-color:#e5e7eb; cursor:not-allowed; }
.rbs-slot-na     { background:transparent; color:#d1d5db; border:none; opacity:.45; cursor:default; font-size:.7rem; }
.rbs-loading { padding:36px; text-align:center; color:#888; font-style:italic; }

/* Booked badge */
.rbs-badge-booked { display:inline-block; background:var(--rbs-booked-bg); color:var(--rbs-booked-text); border-radius:12px; padding:2px 10px; font-size:.78rem; font-weight:600; }

/* Modal */
.rbs-modal { position:fixed; inset:0; background:rgba(0,0,0,.52); z-index:99999; display:flex !important; align-items:center; justify-content:center; padding:16px; }
.rbs-modal[style*="display:none"],.rbs-modal[style*="display: none"] { display:none !important; }
.rbs-modal-content { background:#fff; border-radius:14px; padding:26px; max-width:480px; width:100%; position:relative; box-shadow:0 20px 60px rgba(0,0,0,.22); max-height:92vh; overflow-y:auto; }
.rbs-modal-close { position:absolute; top:12px; right:14px; background:none; border:none; font-size:1.5rem; cursor:pointer; color:#999; line-height:1; padding:0; }
.rbs-modal-close:hover { color:#333; }
.rbs-modal-title { margin:0 0 10px; font-size:1.15rem; color:#1e293b; }
.rbs-modal-info { background:#eff6ff; border:1px solid #bfdbfe; border-radius:8px; padding:9px 13px; margin-bottom:14px; font-size:.84rem; color:#1d4ed8; max-height:150px; overflow-y:auto; }
.rbs-modal-info ul { margin:5px 0 0; padding-left:16px; }
.rbs-modal-info li { margin-bottom:3px; }

/* Form */
.rbs-form-group { margin-bottom:13px; }
.rbs-form-group label { display:block; font-weight:600; font-size:.86rem; color:#374151; margin-bottom:4px; }
.rbs-form-group label small { font-weight:400; color:#6b7280; }
.rbs-required { color:#ef4444; }
.rbs-form-group input[type="text"],.rbs-form-group input[type="email"],.rbs-form-group input[type="number"],.rbs-form-group textarea {
    width:100%; padding:8px 11px; border:1px solid #d1d5db; border-radius:7px; font-size:.88rem; box-sizing:border-box; transition:border-color .18s;
}
.rbs-form-group input:focus,.rbs-form-group textarea:focus { outline:none; border-color:var(--rbs-btn-primary); box-shadow:0 0 0 3px rgba(37,99,235,.1); }
.rbs-captcha-q { font-weight:700; color:#1e40af; background:#dbeafe; padding:2px 7px; border-radius:4px; }
.rbs-form-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:16px; }
.rbs-form-message { margin-top:10px; padding:9px 13px; border-radius:7px; font-size:.86rem; display:none; }
.rbs-form-message.success { background:#dcfce7; color:#166534; border:1px solid #bbf7d0; display:block; }
.rbs-form-message.error   { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; display:block; }

/* Overview */
.rbs-overview-section { margin-top:32px; }
.rbs-section-title { font-size:1rem; font-weight:700; color:#1e293b; margin-bottom:10px; padding-bottom:7px; border-bottom:2px solid #e2e8f0; }
.rbs-table-wrapper { overflow-x:auto; border-radius:8px; box-shadow:0 1px 4px rgba(0,0,0,.07); }
.rbs-table { width:100%; border-collapse:collapse; font-size:.85rem; }
.rbs-table th { background:#f1f5f9; padding:9px 11px; text-align:left; font-weight:600; color:#475569; border-bottom:1px solid #e2e8f0; }
.rbs-table td { padding:8px 11px; border-bottom:1px solid #f1f5f9; color:#374151; background:#fff; }
.rbs-table tr:nth-child(even) td { background:var(--rbs-row-alt-bg); }
.rbs-table tr:last-child td { border-bottom:none; }
.rbs-notice { color:#6b7280; font-style:italic; }

/* Single-date-mode (Einzeltermine mit specific_date) */
.rbs-date-block { border:1px solid #e5e7eb; border-radius:10px; margin-bottom:14px; overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.06); }
.rbs-date-heading { background:var(--rbs-header-bg); color:#fff; font-weight:700; font-size:.92rem; padding:9px 16px; letter-spacing:.01em; }
.rbs-date-slots { background:#fff; }
.rbs-single-slot-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 16px; border-bottom:1px solid #f1f5f9; }
.rbs-single-slot-row:last-child { border-bottom:none; }
.rbs-single-slot-row.rbs-row-alt { background-color:var(--rbs-row-alt-bg); }
.rbs-single-slot-label { font-weight:600; font-size:.88rem; color:#374151; min-width:140px; }
.rbs-single-slot-label .rbs-timeslot-time { font-weight:400; color:#6b7280; margin-left:6px; }
.rbs-single-slot-action { flex-shrink:0; }
.rbs-single-slot-action .rbs-slot { min-height:32px; padding:4px 14px; font-size:.82rem; }

@media (max-width:600px) {
    .rbs-week-nav { flex-direction:column; align-items:stretch; }
    .rbs-week-nav>.rbs-btn { width:100%; justify-content:center; }
    .rbs-week-center { order:-1; }
    .rbs-modal-content { padding:16px 12px; }
    .rbs-form-actions { flex-direction:column; }
    .rbs-form-actions .rbs-btn { width:100%; justify-content:center; }
    .rbs-multiselect-hint,.rbs-resource-dropdown-wrap { flex-direction:column; align-items:flex-start; }
    .rbs-resource-select { width:100%; }
}
