:root { --wbc-free-bg: rgba(46, 204, 113, 0.12); --wbc-reserved-bg: rgba(231, 76, 60, 0.12); --wbc-border: #e2e8f0; --wbc-dark: #2c3e50; --wbc-primary: #3498db; }
.wbc-box-wrapper, .wbc-repertoire-wrapper { background: #fff; padding: 20px; border: 1px solid var(--wbc-border); border-radius: 8px; max-width: 100%; box-sizing: border-box;}
.wbc-box-wrapper *, .wbc-repertoire-wrapper * { box-sizing: border-box; }
.wbc-calendar { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; margin-bottom: 20px;}
.wbc-header { grid-column: span 7; display: flex; justify-content: space-between; align-items: center; font-weight: bold; margin-bottom: 10px; }
.wbc-header button { border: 1px solid var(--wbc-border); background: #fff; border-radius: 4px; padding: 4px 10px; cursor:pointer;}
.wbc-day-name { font-size: 0.8rem; color: #718096; text-align: center; }
.wbc-day { padding: 10px 0; text-align: center; border-radius: 4px; font-weight: bold; font-size: 0.9rem; }
.wbc-day.free { background: var(--wbc-free-bg); color: #27ae60; }
.wbc-day.reserved { background: var(--wbc-reserved-bg); color: #c0392b; text-decoration: line-through; }
.wbc-day.admin-toggle { cursor: pointer; }
.wbc-form input, .wbc-repertoire-wrapper input[type="text"] { width: 100%; padding: 10px; border: 1px solid var(--wbc-border); border-radius: 4px; margin-bottom: 10px;}
.wbc-form button, .wbc-repertoire-wrapper button { width: 100%; padding: 12px; background: var(--wbc-dark); color: #fff; border: none; border-radius: 4px; font-weight: bold; cursor:pointer;}
.wbc-alert { padding: 10px; margin-bottom: 15px; border-radius: 4px; font-size: 0.9rem; }
.wbc-alert-success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb;}
.wbc-alert-error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb;}
.wbc-cat-title { width: 100%; margin: 20px 0 10px 0; padding-bottom: 5px; border-bottom: 2px solid var(--wbc-border); color: var(--wbc-dark); }
.wbc-grid-songs { display: flex; flex-direction: column; gap: 6px; max-height: 600px; overflow-y: auto; padding: 10px; border: 1px solid var(--wbc-border); border-radius: 6px; background: #fafafa;}
.wbc-song-label { font-size: 0.9rem; cursor: pointer; display: flex; align-items: center; gap: 8px;}
.wbc-day.client-selectable { cursor: pointer; transition: all 0.2s; }
.wbc-day.client-selectable:hover { background: #d6eaf8; }
.wbc-day.selected-date { background: var(--wbc-primary) !important; color: #fff !important; box-shadow: 0 4px 8px rgba(52,152,219,0.4); transform: scale(1.08); font-weight: 800; border: none; }
#wbc-rep-form{text-align: center;}
.wbc-repertoire-wrapper button{max-width: 500px;}