/* Physie Week Planner Public Styles */
.pwp-wrapper {
	width: 100%;
	overflow-x: auto;
	padding: 20px;
	box-sizing: border-box;
	border-radius: 8px;
	font-family: sans-serif;
	position: relative;
}

/* Patterns Background Layers */
.pwp-bg-pattern {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 0;
	opacity: 0.3;
	background-size: cover;
	background-position: center;
}
.pwp-bg-upper { top: 0; height: 33%; }
.pwp-bg-middle { top: 33%; height: 34%; }
.pwp-bg-lower { bottom: 0; height: 33%; }

/* Themes */
.pwp-theme-default { background: #f9f9f9; }
.pwp-theme-fairy { background: linear-gradient(135deg, #ffc3a0 0%, #ffafbd 100%); }
.pwp-theme-leaves { background: linear-gradient(135deg, #d4fc79 0%, #96e6a1 100%); }
.pwp-theme-flowers { background: linear-gradient(135deg, #fbc2eb 0%, #a6c1ee 100%); }
.pwp-theme-dance { background: linear-gradient(135deg, #a1c4fd 0%, #c2e9fb 100%); }

.pwp-grid {
	display: flex;
	gap: 5px;
	position: relative;
	z-index: 1;
}

.pwp-col {
	flex: 1;
	min-width: 150px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.pwp-time-col {
	flex: 0 0 80px;
	min-width: 80px;
}

.pwp-header-cell {
	background: rgba(0,0,0,0.1);
	padding: 10px;
	text-align: center;
	font-weight: bold;
	text-transform: uppercase;
	border-radius: 4px;
}
.pwp-header-cell a {
	color: #333;
	text-decoration: none;
}
.pwp-header-cell a:hover {
	text-decoration: underline;
}

.pwp-events-container {
	border-left: 1px solid rgba(0,0,0,0.1);
	position: relative;
	background: rgba(255,255,255,0.2);
	border-radius: 4px;
}

.pwp-time-label {
	position: absolute;
	width: 100%;
	text-align: center;
	font-size: 0.85em;
	transform: translateY(-50%);
	color: #555;
	border-bottom: 1px dashed rgba(0,0,0,0.1);
}

.pwp-event.pwp-absolute-event {
	position: absolute;
	left: 2px;
	right: 2px;
	padding: 5px;
	border-radius: 4px;
	color: #fff;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
	font-size: 0.85em;
	text-align: center;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	text-decoration: none;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: center;
	transition: transform 0.2s;
}
.pwp-event.pwp-absolute-event:hover {
	transform: scale(1.02);
	z-index: 10;
}

.pwp-evt-title { font-weight: bold; display: block; }
.pwp-evt-time { font-size: 0.9em; display: block; }
.pwp-evt-loc { font-size: 0.85em; font-style: italic; display: block; }