/* LightVibes Booking – Frontend */
.lvb-calendar-wrap{
	--lvb-primary:#7E3A8C;
	--lvb-accent:#C42B7C;
	--lvb-gradient:linear-gradient(135deg,#C42B7C 0%,#7E3A8C 50%,#2E3A85 100%);
	--lvb-grad-start:#C42B7C;
	--lvb-grad-end:#2E3A85;
	--lvb-available:#2f855a;
	--lvb-booked:#c0392b;
	--lvb-blocked:#9aa0a6;
	font-family:inherit;
	color:#222;
	max-width:100%;
	margin:0 auto;
}
.lvb-modal{
	--lvb-primary:#7E3A8C;
	--lvb-accent:#C42B7C;
	--lvb-gradient:linear-gradient(135deg,#C42B7C 0%,#7E3A8C 50%,#2E3A85 100%);
	--lvb-available:#2f855a;
	--lvb-booked:#c0392b;
	--lvb-blocked:#9aa0a6;
}
.lvb-toolbar{
	display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;
	margin-bottom:14px;
}
.lvb-nav{display:flex;align-items:center;gap:8px;}
.lvb-title{font-size:1.15rem;font-weight:600;min-width:150px;text-align:center;}
.lvb-btn,.lvb-view-btn{
	background:#f1f3f4;border:1px solid #dadce0;color:#333;
	padding:7px 12px;border-radius:8px;cursor:pointer;font-size:.9rem;line-height:1;
	transition:background .15s,color .15s;
}
.lvb-btn:hover,.lvb-view-btn:hover{background:#e5e7e9;}
.lvb-view-btn.is-active{background:var(--lvb-gradient);color:#fff;border-color:transparent;}
.lvb-views{display:flex;gap:6px;}

.lvb-legend{display:flex;flex-wrap:wrap;gap:16px;margin:6px 0 14px;font-size:.85rem;color:#555;}
.lvb-legend-item{display:flex;align-items:center;gap:6px;}
.lvb-dot{width:12px;height:12px;border-radius:50%;display:inline-block;}
.lvb-dot.lvb-available{background:var(--lvb-available);}
.lvb-dot.lvb-booked{background:var(--lvb-booked);}
.lvb-dot.lvb-blocked{background:var(--lvb-blocked);}

.lvb-loading{padding:24px;text-align:center;color:#888;}
.lvb-calendar[aria-busy="false"] + .lvb-loading{display:none;}

/* Monatsraster */
.lvb-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;}
.lvb-weekday{font-weight:600;text-align:center;padding:6px 0;color:#666;font-size:.85rem;min-width:0;overflow:hidden;}
.lvb-cell{
	min-height:84px;border:1px solid #e6e6e6;border-radius:10px;padding:6px;
	background:#fff;display:flex;flex-direction:column;gap:4px;position:relative;
	min-width:0;overflow:hidden;box-sizing:border-box;
}
.lvb-cell.lvb-empty{background:transparent;border:0;}
.lvb-cell.lvb-today{border-color:var(--lvb-primary);box-shadow:inset 0 0 0 1px var(--lvb-primary);}
.lvb-cell.lvb-past{opacity:.45;}
.lvb-cell.lvb-blocked-day{background:repeating-linear-gradient(45deg,#f4f4f4,#f4f4f4 6px,#ececec 6px,#ececec 12px);}
.lvb-daynum{font-size:.8rem;color:#888;font-weight:600;}
.lvb-chip{
	font-size:.72rem;padding:3px 6px;border-radius:6px;cursor:pointer;
	color:#fff;line-height:1.25;text-align:left;border:0;width:100%;max-width:100%;
	white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
	display:block;box-sizing:border-box;min-width:0;
}
.lvb-chip.lvb-available{background:var(--lvb-available);}
.lvb-chip.lvb-booked{background:var(--lvb-booked);cursor:not-allowed;opacity:.85;}
.lvb-chip.lvb-blocked{background:var(--lvb-blocked);cursor:not-allowed;}
.lvb-more{font-size:.72rem;color:var(--lvb-primary);cursor:pointer;background:none;border:0;padding:0;text-align:left;}

/* Wochen-/Tagesliste */
.lvb-list{display:flex;flex-direction:column;gap:10px;}
.lvb-list-day{border:1px solid #eaeaea;border-radius:12px;overflow:hidden;}
.lvb-list-day-head{background:#f7f7f7;padding:8px 14px;font-weight:600;font-size:.95rem;}
.lvb-list-item{
	display:flex;flex-wrap:wrap;align-items:center;gap:12px;
	padding:12px 14px;border-top:1px solid #f0f0f0;
}
.lvb-list-item .lvb-time{font-weight:600;min-width:120px;}
.lvb-list-item .lvb-name{flex:1;min-width:140px;}
.lvb-badge{font-size:.72rem;padding:3px 9px;border-radius:20px;color:#fff;}
.lvb-badge.lvb-available{background:var(--lvb-available);}
.lvb-badge.lvb-booked{background:var(--lvb-booked);}
.lvb-badge.lvb-blocked{background:var(--lvb-blocked);}
.lvb-list-book{
	background:var(--lvb-gradient);color:#fff;border:0;border-radius:8px;
	padding:8px 16px;cursor:pointer;font-size:.85rem;
}
.lvb-list-book[disabled]{background:#bbb;cursor:not-allowed;}
.lvb-empty-msg{padding:24px;text-align:center;color:#888;}

/* Modal */
.lvb-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;}
.lvb-modal[hidden]{display:none;}
.lvb-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);}
.lvb-modal-box{
	position:relative;background:#fff;border-radius:16px;max-width:540px;width:92%;
	max-height:90vh;overflow:auto;padding:26px;box-shadow:0 20px 60px rgba(0,0,0,.3);
	border-top:5px solid transparent;
	background-image:linear-gradient(#fff,#fff),var(--lvb-gradient);
	background-origin:border-box;background-clip:padding-box,border-box;
}
.lvb-modal-close{position:absolute;top:12px;right:16px;background:none;border:0;font-size:1.8rem;line-height:1;cursor:pointer;color:#888;}
.lvb-modal-title{margin:0 0 6px;font-size:1.25rem;color:var(--lvb-primary);}
.lvb-modal-meta{font-size:.9rem;color:#555;margin-bottom:16px;line-height:1.6;}
.lvb-modal-meta strong{color:#333;}

.lvb-field{margin-bottom:14px;}
.lvb-field-row{display:flex;gap:12px;}
.lvb-field-row .lvb-field{flex:1;}
.lvb-field label{display:block;font-size:.85rem;font-weight:600;margin-bottom:5px;color:#444;}
.lvb-field input,.lvb-field textarea,.lvb-field select{
	width:100%;padding:10px 12px;border:1px solid #d0d0d0;border-radius:8px;
	font-size:.95rem;box-sizing:border-box;font-family:inherit;
}
.lvb-field input:focus,.lvb-field textarea:focus,.lvb-field select:focus{
	outline:none;border-color:var(--lvb-primary);box-shadow:0 0 0 2px rgba(126,58,140,.18);
}
.lvb-consent label{display:flex;gap:8px;align-items:flex-start;font-weight:400;font-size:.85rem;}
.lvb-consent input{width:auto;margin-top:3px;}
.lvb-hp{position:absolute;left:-9999px;height:0;overflow:hidden;}
.lvb-submit{
	width:100%;background:var(--lvb-gradient);color:#fff;border:0;border-radius:10px;
	padding:13px;font-size:1rem;cursor:pointer;font-weight:600;margin-top:4px;
}
.lvb-submit[disabled]{opacity:.6;cursor:wait;}
.lvb-form-error{background:#fdecea;color:#a4342a;padding:11px 14px;border-radius:8px;margin-bottom:12px;font-size:.9rem;}
.lvb-form-success{background:#e6f4ea;color:#256a3c;padding:14px;border-radius:8px;margin-bottom:12px;font-size:.95rem;}

@media(max-width:640px){
	.lvb-cell{min-height:60px;}
	.lvb-chip{font-size:.65rem;}
	.lvb-daynum{font-size:.72rem;}
	.lvb-field-row{flex-direction:column;gap:0;}
	.lvb-title{font-size:1rem;min-width:110px;}
	.lvb-legend{gap:10px;}
	/* Auf Mobil kompakter: Monatszellen zeigen nur Statuspunkt */
	.lvb-chip{padding:2px 4px;}
}
@media(max-width:480px){
	.lvb-toolbar{justify-content:center;}
}
