/* --- Google Fonts & Grund-Setup --- */
@import url('/vendor/fonts/inter.css');

:root {
	--bg-dark: #111015;
	--bg-light: #1A1920;
	--primary: #06A69C; /* New Primary Color */
	--primary-hover: #058F86; /* Darker Shade */
	--accent-cyan: #06A69C; /* New Primary Color */
	--text-primary: #F0F0F0;
	--text-secondary: #A0A0A0;
	--border-color: #2D2C34;
	--success: #28a745;
	--danger: #dc3545;
	--shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
	--border-radius: 12px;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: 'Inter', sans-serif;
	background-color: var(--bg-dark);
	color: var(--text-primary);
	line-height: 1.6;
}

a {
	color: var(--primary);
	text-decoration: none;
	transition: color 0.2s ease-in-out;
}

a:hover {
	color: var(--accent-cyan);
}

/* --- Authentifizierungs-Seiten --- */
.auth-body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 100vh;
	padding: 2rem;
	background: url('/img/bg_landing.jpg') no-repeat center center/cover;
	position: relative;
}

.auth-body::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(13, 13, 15, 0.7);
    z-index: 1;
}

.auth-container {
	width: 100%;
	max-width: 420px;
	position: relative;
    z-index: 2;
}

.auth-box {
	background-color: var(--bg-light);
	padding: 2.5rem;
	border-radius: var(--border-radius);
	box-shadow: var(--shadow);
	border: 1px solid var(--border-color);
}

.logo {
	text-align: center;
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
	letter-spacing: -1px;
}

.tagline {
	text-align: center;
	color: var(--text-secondary);
	margin-bottom: 2rem;
}

.input-group {
	margin-bottom: 0.75rem; /* Reduced default margin for all input groups */
}

/* Force compact spacing in all modals */
.modal .input-group {
    margin-bottom: 0.75rem;
}
.modal .form-grid {
    gap: 0.75rem;
}
.modal .form-column {
    gap: 0.75rem;
}

.input-group label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	color: var(--text-secondary);
}

.input-group input {
	width: 100%;
	padding: 0.8rem 1rem;
	background-color: var(--bg-dark);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	color: var(--text-primary);
	font-size: 1rem;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.input-group input:focus {
	outline: none;
	border-color: var(--primary);
	box-shadow: 0 0 0 3px rgba(138, 43, 226, 0.3);
}

.input-with-icon {
    position: relative;
}

.input-with-icon input {
    padding-right: 3rem; /* Make space for the icon */
}

.input-with-icon .btn-icon {
    position: absolute;
    top: 50%;
    right: 0.5rem;
    transform: translateY(-50%);
}

.btn {
	display: inline-block;
	padding: 0.8rem 1.5rem;
	border-radius: 8px;
	font-size: 1rem;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
	border: none;
	transition: background-color 0.2s, transform 0.1s;
    vertical-align: middle;
}

.btn:active {
	transform: scale(0.98);
}

.btn-primary {
	background-color: var(--primary);
	color: #fff;
}

.btn-primary:hover {
	background-color: var(--primary-hover);
}

a.btn-primary:hover {
    color: #fff;
}

.btn-block {
	width: 100%;
}

.auth-switch {
	margin-top: 1.5rem;
	text-align: center;
	font-size: 0.9rem;
	color: var(--text-secondary);
}

/* --- Alerts / Flash-Nachrichten --- */
.alert {
	padding: 1rem;
	margin-bottom: 1rem;
	border-radius: 8px;
	border: 1px solid transparent;
	font-size: 0.95rem;
}

.alert-danger {
	color: #f8d7da;
	background-color: #441c21;
	border-color: #dc3545;
}

.alert-success {
	color: #d4edda;
	background-color: #153824;
	border-color: #28a745;
}


/* --- Dashboard & App-Layout --- */
/* (wird in späteren Schritten hinzugefügt) */


/* --- Responsivität --- */
@media (max-width: 480px) {
	.auth-box {
		padding: 2rem;
	}
	.logo {
		font-size: 1.8rem;
	}
}


/* --- App Layout --- */
.app-container {
	display: flex;
	min-height: 100vh;
    transition: grid-template-columns 0.3s ease-in-out;
}

body.sidebar-no-transition .sidebar,
body.sidebar-no-transition .app-container {
    transition: none !important;
}

.sidebar {
	width: 260px;
	background-color: var(--bg-light);
	border-right: 1px solid var(--border-color);
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	flex-shrink: 0;
    transition: width 0.3s ease-in-out;
}

.sidebar-header {
	margin-bottom: 2rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem; /* Abstand zwischen Logo und Switch */
}
.sidebar-logo-img {
    height: 40px;
    width: auto;
    transition: all 0.3s ease-in-out;
	margin-left: 1rem;
}
.app-container.sidebar-collapsed .sidebar-logo-img {
    height: 30px;
}

.sidebar-menu {
	list-style: none;
	flex-grow: 1;
}
.sidebar-menu li a {
	display: flex;
	align-items: center;
	padding: 0.9rem 1rem;
	color: var(--text-secondary);
	border-radius: 8px;
	margin-bottom: 0.25rem;
	font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
}
.sidebar-menu li a:hover {
	background-color: var(--bg-dark);
	color: var(--text-primary);
}
.sidebar-menu li a.active {
	background-color: var(--primary);
	color: #fff;
}
.sidebar-menu li a i {
	width: 20px;
	margin-right: 1rem;
	font-size: 1.1rem;
	text-align: center;
    flex-shrink: 0;
}
.menu-divider {
	padding: 1rem 1rem 0.5rem;
	font-size: 0.8rem;
	text-transform: uppercase;
	color: var(--text-secondary);
	font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
}

.sidebar-footer {
	padding-top: 1rem;
	border-top: 1px solid var(--border-color);
    white-space: nowrap;
    overflow: hidden;
}
.sidebar-footer .theme-switch-wrapper {
    justify-content: center;
    margin-bottom: 1.5rem;
    padding: 1rem 0;
	border-bottom: 1px solid var(--border-color);
}



.user-info {
	margin-bottom: 1rem;
}
.user-name { display: block; font-weight: 600; }
.user-email { display: block; font-size: 0.85rem; color: var(--text-secondary); }

.logout-btn {
	display: flex;
	width: 100%;
	align-items: center;
	padding: 0.8rem 1rem;
	background: var(--bg-dark);
	border-radius: 8px;
	color: var(--text-secondary);
}
.logout-btn i { margin-right: 1rem; }
.logout-btn:hover { color: var(--danger); }

.main-content {
	flex-grow: 1;
	padding: 2.5rem;
	overflow-y: auto;
}

.desktop-menu-toggle-btn {
    display: none; /* Hidden on mobile */
    background: none;
    border: none;
    color: var(--text-secondary);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0.5rem;
}
@media (min-width: 768px) {
    .desktop-menu-toggle-btn {
        display: block;
    }
}

/* Collapsed Sidebar Styles */
.app-container.sidebar-collapsed .sidebar {
    width: 80px;
}
.app-container.sidebar-collapsed .sidebar-logo-img,
.app-container.sidebar-collapsed .sidebar-logo,
.app-container.sidebar-collapsed .sidebar-menu span,
.app-container.sidebar-collapsed .menu-divider span,
.app-container.sidebar-collapsed .user-info,
.app-container.sidebar-collapsed .logout-btn,
.app-container.sidebar-collapsed .theme-switch-wrapper,
.app-container.sidebar-collapsed .submenu-arrow {
    display: none;
}
.app-container.sidebar-collapsed .sidebar-header {
    justify-content: center;
}
.app-container.sidebar-collapsed .sidebar-menu li a {
    justify-content: center;
}
.app-container.sidebar-collapsed .sidebar-menu li a i {
    margin-right: 0;
}
.app-container.sidebar-collapsed .logout-btn {
    justify-content: center;
}
.app-container.sidebar-collapsed .has-submenu {
    position: relative; /* This is the key for correct positioning */
}
.app-container.sidebar-collapsed .submenu {
    padding-left: 0;
    position: absolute;
    left: 100%; /* Position to the right of the parent */
    top: 0; /* Align with the top of the parent item */
    background-color: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 0 var(--border-radius) var(--border-radius) 0;
    display: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
    min-width: 200px; /* Give the submenu a reasonable width */
}
.app-container.sidebar-collapsed .has-submenu:hover .submenu {
    display: block;
    opacity: 1;
    visibility: visible;
}
.app-container.sidebar-collapsed .submenu li a {
    justify-content: flex-start;
}
.app-container.sidebar-collapsed .submenu li a span {
    display: inline; /* Show text in submenu on hover */
}


.page-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 2rem;
}
.page-header h2 {
	font-size: 2rem;
	font-weight: 700;
}
.page-header .btn i { margin-right: 0.5rem; }

.page-header-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.page-header-actions .btn {
    height: 38px;
    display: inline-flex;
    align-items: center;
}

.page-header-actions .btn-primary {
    background-color: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

@media (max-width: 767px) {
    .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    .page-header-actions {
        width: 100%;
    }
    .page-header-actions .btn {
        flex-grow: 1;
        text-align: center;
    }
    
    .view-switcher {
        width: 100%;
        justify-content: center;
    }
    
    .switcher-option {
        flex: 1;
        text-align: center;
        justify-content: center;
    }
    
    .page-header-actions .view-toggle {
        width: 100%;
    }
    
    .page-header-actions .view-toggle .btn {
        flex: 1;
    }
    
    /* FullCalendar mobile responsiveness */
    .fc .fc-toolbar {
        flex-direction: column !important;
        gap: 0.5rem !important;
    }
    
    .fc .fc-toolbar-chunk {
        display: flex !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
        gap: 0.25rem !important;
    }
    
    .fc .fc-button {
        font-size: 0.8rem !important;
        padding: 4px 8px !important;
        min-width: auto !important;
    }
    
    .fc .fc-toolbar-title {
        font-size: 1.1rem !important;
        margin: 0 !important;
        text-align: center !important;
    }
    
    .fc .fc-button-group {
        display: flex !important;
        gap: 0.25rem !important;
    }
    
    /* Modal mobile responsiveness */
    .modal-content {
        width: 95% !important;
        max-width: none !important;
        margin: 5% auto !important;
        padding: 1rem !important;
        max-height: 90vh;
        overflow-y: auto;
    }
    
    .modal-content.large,
    .modal-content.extra-large {
        width: 95% !important;
        max-width: none !important;
        margin: 2% auto !important;
    }
    
    /* Form grids in modals should be single column on mobile */
    .modal .form-grid {
        grid-template-columns: 1fr !important;
        gap: 0.75rem !important;
    }
    
    .modal .selectors-grid {
        grid-template-columns: 1fr !important;
    }
    
    .modal .input-group {
        margin-bottom: 0.75rem !important;
    }
    
    .modal .close-button {
        font-size: 1.5rem;
        top: 0.5rem;
        right: 1rem;
    }
    
    /* Event creation modal mobile fixes */
    #create-event-modal .modal-content,
    #edit-event-modal .modal-content {
        width: 98% !important;
        max-width: none !important;
        margin: 70px auto 1% auto !important; /* Top margin for mobile header */
        padding: 0.75rem !important;
        max-height: calc(95vh - 70px); /* Adjust height for header */
        overflow-y: auto;
    }
    
    /* Make all inline grid layouts single column on mobile */
    #create-event-modal div[style*="grid-template-columns"],
    #edit-event-modal div[style*="grid-template-columns"] {
        display: block !important;
        grid-template-columns: none !important;
    }
    
    /* Fix input field sizing */
    #create-event-modal input,
    #create-event-modal select,
    #create-event-modal textarea,
    #edit-event-modal input,
    #edit-event-modal select,
    #edit-event-modal textarea {
        font-size: 16px !important; /* Prevents zoom on iOS */
        padding: 0.75rem !important;
        min-height: 44px !important; /* Touch-friendly size */
    }
    
    /* Stack form sections vertically */
    #create-event-modal .input-group,
    #edit-event-modal .input-group {
        margin-bottom: 1rem !important;
        width: 100% !important;
    }
    
    /* Fix selector containers */
    #create-event-modal .selectors-grid,
    #edit-event-modal .selectors-grid {
        display: block !important;
    }
    
    #create-event-modal .linked-item-selector,
    #edit-event-modal .linked-item-selector {
        margin-bottom: 1rem !important;
    }
    
    /* Fix toggle switches and checkboxes */
    #create-event-modal .toggle-switch,
    #edit-event-modal .toggle-switch {
        transform: scale(1.2);
        margin-right: 1rem;
    }
    
    /* Fix modal footer */
    #create-event-modal .modal-footer,
    #edit-event-modal .modal-footer {
        flex-direction: column !important;
        gap: 0.75rem !important;
    }
    
    #create-event-modal .modal-footer .btn,
    #edit-event-modal .modal-footer .btn {
        width: 100% !important;
        padding: 0.75rem !important;
        font-size: 1rem !important;
    }
    
    /* Dashboard mobile responsiveness */
    .dashboard-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }
    
    .dashboard-widget-large,
    .dashboard-widget-full {
        grid-column: span 1 !important;
    }
    
    .stats-cards {
        grid-template-columns: 1fr !important;
        gap: 0.75rem !important;
    }
    
    .stat-card {
        padding: 1rem !important;
    }
    
    .stat-card h4 {
        font-size: 0.8rem !important;
    }
    
    .stat-card span {
        font-size: 2rem !important;
    }
    
    /* Make dashboard lists more mobile-friendly */
    .dashboard-list li {
        padding: 0.6rem 0 !important;
        font-size: 0.9rem;
    }
    
    .upcoming-event-link {
        grid-template-columns: 1fr !important;
        gap: 0.25rem;
        text-align: left;
    }
    
    .location-details {
        margin-top: 0.25rem;
    }
}



/* --- Komponenten --- */
.grid-container {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 1.5rem;
}

.card {
	background-color: var(--bg-light);
	padding: 1.5rem;
	border-radius: var(--border-radius);
	border: 1px solid var(--border-color);
	transition: transform 0.2s, box-shadow 0.2s;
}
.card-link { display: block; }
.card-link:hover .card {
	transform: translateY(-5px);
	box-shadow: 0 8px 30px rgba(0,0,0,0.2);
}
.card-icon {
	font-size: 2rem;
	color: var(--primary);
	margin-bottom: 1rem;
}
.card-title {
	font-size: 1.25rem;
	margin-bottom: 0.25rem;
	color: var(--text-primary);
}
.card-subtitle {
	color: var(--text-secondary);
	font-size: 0.9rem;
}

.table-container {
	background-color: var(--bg-light);
	border-radius: var(--border-radius);
	padding: 1.5rem;
	border: 1px solid var(--border-color);
}
.data-table {
	width: 100%;
	border-collapse: collapse;
}
.data-table th, .data-table td {
	padding: 1rem;
	text-align: left;
	border-bottom: 1px solid var(--border-color);
    vertical-align: top;
}
.data-table th {
	font-weight: 600;
	color: var(--text-secondary);
	font-size: 0.9rem;
}
.data-table tbody tr:last-child td {
	border-bottom: none;
}
.data-table tbody tr:hover {
	background-color: var(--bg-dark) !important;
    color: var(--text-primary) !important;
}
.data-table td small.text-secondary {
    font-size: 0.75rem;
    line-height: 1.3;
    color: var(--text-secondary);
}

.data-table .date-column {
    min-width: 150px;
}


/* --- Responsive Data Tables --- */
@media (max-width: 767px) {
    .data-table {
        font-size: 0.8rem; /* Smaller font size for mobile */
    }

    .data-table th, .data-table td {
        padding: 0.5rem; /* Reduced padding */
    }

    .hide-on-mobile {
        display: none;
    }

    .show-on-mobile-colspan {
        display: table-cell;
    }

    .hide-on-mobile-colspan {
        display: none;
    }

    /* Make tables horizontally scrollable on mobile */
    .table-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .data-table {
        min-width: 100%;
        white-space: nowrap;
    }

    .data-table td {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 150px;
    }
}

.show-on-mobile-colspan {
    display: none;
}


.mobile-event-time {
    display: none;
}

@media (max-width: 767px) {
    .mobile-event-time {
        display: block;
        font-size: 0.9em;
        color: var(--text-secondary);
    }
}

.btn-icon {
	color: var(--text-secondary);
	padding: 0.5rem;
}
.btn-icon:hover { color: var(--primary); }
.status-badge {
	padding: 0.25rem 0.6rem;
	border-radius: 20px;
	font-size: 0.8rem;
	font-weight: 600;
    border: 1px solid transparent;
}
.status-active { background-color: rgba(40, 167, 69, 0.2); color: #28a745; }
.status-pending { background-color: rgba(255, 193, 7, 0.2); color: #ffc107; }
.status-draft { background-color: rgba(108, 117, 125, 0.2); color: #6c757d; }
.status-sent { background-color: rgba(23, 162, 184, 0.2); color: #17a2b8; }
.status-paid { background-color: rgba(40, 167, 69, 0.2); color: #28a745; }
.status-overdue { background-color: rgba(220, 53, 69, 0.2); color: #dc3545; }
.status-cancelled { background-color: rgba(108, 117, 125, 0.2); color: #6c757d; text-decoration: line-through; }

.buffer-ok { color: var(--success); }
.buffer-warning { color: #fd7e14; }
.buffer-error { color: var(--danger); font-weight: 700; }

.map-container {
    position: relative;
}

.loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000; /* Ensure it's above the map */
}

.spinner {
    width: 50px;
    height: 50px;
    border: 5px solid var(--border-color);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.content-box {
	background-color: var(--bg-light);
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius);
	padding: 1.5rem;
	margin-bottom: 1.5rem;
}
.content-box h3 { margin-bottom: 1rem; }

.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

/* Override for compact modals */
#create-event-modal .input-group,
#edit-event-modal .input-group,
#create-new-item-modal .input-group {
    margin-bottom: 0.5rem !important; /* Use !important to ensure override */
}

.input-group.full-width { grid-column: 1 / -1; }
.input-group select, .input-group textarea {
	width: 100%;
	padding: 0.8rem 1rem;
	background-color: var(--bg-dark);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	color: var(--text-primary);
	font-size: 1rem;
	font-family: 'Inter', sans-serif;
}
.invite-form {
	display: flex;
	gap: 1rem;
	margin-bottom: 0.5rem;
}
.invite-form input {
	flex-grow: 1;
	padding: 0.8rem 1rem;
	background-color: var(--bg-dark);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	color: var(--text-primary);
	font-size: 1rem;
}
.form-hint { font-size: 0.9rem; color: var(--text-secondary); }

/* --- Modal --- */
.modal {
	display: none; 
	position: fixed; 
	z-index: 1010;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgba(0,0,0,0.7);
	animation: fadeIn 0.3s ease;
}
.modal-content {
	background-color: var(--bg-light);
	margin: 10% auto;
	padding: 2rem;
	border: 1px solid var(--border-color);
	width: 90%;
	max-width: 500px;
	border-radius: var(--border-radius);
	position: relative;
	animation: slideIn 0.3s ease;
}
.modal-content.large { max-width: 800px; }
.modal-content.extra-large { max-width: 95vw; margin: 2.5vh auto; }
.close-button {
	color: var(--text-secondary);
	position: absolute;
	top: 1rem;
	right: 1.5rem;
	font-size: 1.8rem;
	font-weight: bold;
	cursor: pointer;
}
.close-button:hover { color: var(--text-primary); }

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideIn { from { transform: translateY(-30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

.modal-footer {
    display: flex;
    gap: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
    margin-top: 1rem;
}

.modal-footer-right-aligned {
    justify-content: flex-end;
}


/* --- SortableJS --- */
.sortable-ghost {
	opacity: 0.4;
	background: var(--primary);
}


/* --- Formular-Layout Verbesserungen --- */

/* Ein Container, um eine Gruppe von Feldern zu umfassen */
.input-group.full-width {
	grid-column: 1 / -1;
}

/* Stil für eine saubere Trennlinie */
.form-divider {
	width: 100%;
	border: none;
	border-top: 1px solid var(--border-color);
	margin: 1rem 0;
}

/* Ein Unter-Grid für verschachtelte Elemente */
.form-sub-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.clickable-row {
	cursor: pointer;
}

.data-table tbody tr.clickable-row:hover {
    background-color: var(--bg-dark);
    color: var(--text-primary);
}

.actions-cell {
	/* Verhindert, dass der Klick auf die Aktionen zur Detailseite navigiert */
	cursor: auto !important;
}
.actions-cell a, .actions-cell form {
	/* Stellt sicher, dass Klicks auf die Icons funktionieren */
	pointer-events: all !important;
}
/* --- Stile für die Termin-Detailansicht --- */

.subtitle {
	font-size: 1rem;
	font-weight: 400;
	color: var(--text-secondary);
	margin-top: 0.25rem;
}

.key-info-bar {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1.5rem;
	background-color: var(--bg-light);
	padding: 1.5rem;
	border-radius: var(--border-radius);
	margin-bottom: 2rem;
	border: 1px solid var(--border-color);
}

.key-info-item {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.key-info-item .text-content span i {
	margin-right: 0.5rem;
	color: var(--text-secondary);
	font-size: 0.9em;
}

.key-info-item .text-content span {
	display: block;
	font-size: 0.9rem;
	color: var(--text-secondary);
}

.key-info-item .text-content strong {
	display: block;
	font-size: 1rem;
	color: var(--text-primary);
}

.detail-content-grid {
	display: grid;
	grid-template-columns: 2fr 1fr; /* 2/3 für Hauptinfos, 1/3 für Seiteninfos */
	gap: 1.5rem;
	align-items: start;
}

@media (max-width: 992px) {
	.detail-content-grid {
		grid-template-columns: 1fr;
	}
}

.detail-item {
	margin-bottom: 1.25rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--border-color);
}

.detail-item:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.detail-item label {
	display: block;
	font-size: 0.8rem;
	color: var(--text-secondary);
	text-transform: uppercase;
	margin-bottom: 0.3rem;
	font-weight: 600;
}

.detail-item span, .detail-item p {
	font-size: 1rem;
	font-weight: 500;
	color: var(--text-primary);
	line-height: 1.5;
}

.detail-item.full-width {
	grid-column: 1 / -1;
}

.file-list {
	list-style: none;
	padding: 0;
}
.file-list li {
	margin-bottom: 0.5rem;
}
.file-list li a {
	color: var(--primary);
	text-decoration: none;
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.file-list li a:before {
	content: '\f15b'; /* Font Awesome file icon */
	font-family: 'Font Awesome 6 Free';
	font-weight: 900;
}


/* --- Light Mode Theme Definition --- */
html.light-mode {
	--bg-dark: #F4F6F8;
	--bg-light: #FFFFFF;
	--text-primary: #111015;
	--text-secondary: #6B7280;
	--border-color: #E5E7EB;
	--shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}


/* --- Stile für das Filter-Formular --- */
.filter-form {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.filter-inputs {
	display: flex;
	gap: 1rem;
	flex-grow: 1;
	flex-wrap: wrap;
}

.filter-inputs .input-group {
	margin-bottom: 0;
	flex-grow: 1;
}

.filter-actions {
	display: flex;
	gap: 0.5rem;
}

.filter-toggle-btn {
    display: none; /* Hidden by default */
}

@media (max-width: 767px) {
    .filter-form {
        flex-direction: column;
        align-items: stretch;
    }
    .filter-inputs {
        flex-direction: column;
    }
    .collapsible-filter .filter-toggle-btn {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        margin-bottom: 1rem;
        background-color: var(--bg-dark);
        border: 1px solid var(--border-color);
        color: var(--text-primary);
        padding: 0.75rem 1rem;
        border-radius: var(--border-radius);
        cursor: pointer;
    }
    .collapsible-filter .filter-toggle-btn .fa-chevron-down {
        transition: transform 0.3s ease;
        color: var(--text-primary);
    }
    .collapsible-filter .collapsible-content {
        display: none;
    }
    .collapsible-filter.open .collapsible-content {
        display: flex;
    }
    .collapsible-filter.open .filter-toggle-btn .fa-chevron-down {
        transform: rotate(180deg);
    }
}


/* Compact spacing for form fields in modals */
#create-event-modal .input-group,
#edit-event-modal .input-group,
#create-new-item-modal .input-group {
    margin-bottom: 0.5rem;
}

#create-event-modal .form-column,
#edit-event-modal .form-column {
    gap: 0.5rem;
}

#create-new-item-modal .form-grid {
    gap: 0.75rem;
}

#create-event-modal .form-column,
#edit-event-modal .form-column {
    gap: 0.5rem; /* Reduced gap between items in a column */
}

.file-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 1rem;
}

.file-item {
    position: relative;
    text-align: center;
}

.file-preview {
    width: 100px;
    height: 100px;
    border-radius: 8px;
    background-color: var(--bg-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--text-secondary);
    overflow: hidden;
    margin: 0 auto; /* Center the preview box */
}

.file-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.file-name {
    font-size: 0.8rem;
    margin-top: 0.5rem;
    word-break: break-all;
}

.delete-file-btn {
    position: absolute;
    top: -5px;
    right: -5px;
    background-color: var(--danger);
    color: white;
    border: none;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    font-size: 1rem;
    line-height: 20px;
    cursor: pointer;
}

/* --- Stile für aufklappbares Submenü --- */
.sidebar-menu li.has-submenu > a {
	display: flex;
	/* justify-content: space-between; <-- REMOVED */
	align-items: center;
}

.submenu-arrow {
	transition: transform 0.3s ease;
	margin-left: auto; /* Pushes the arrow to the right */
}

.submenu {
	list-style: none;
	padding-left: 2.5rem; /* Einrücken der Unterpunkte */
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s ease-out;
}

.submenu li a {
	font-size: 0.9rem;
	padding: 0.7rem 1rem;
}

/* Zustand, wenn das Menü offen ist */
.sidebar-menu li.has-submenu.open > .submenu {
	max-height: 500px; /* Genug Platz für die Unterpunkte */
}

.sidebar-menu li.has-submenu.open .submenu-arrow {
	transform: rotate(180deg);
}

/* Stil für den aktiven Hauptpunkt */
.sidebar-menu li.active-parent > a {
	background-color: var(--bg-dark);
	color: var(--text-primary);
}


.checkbox-list { margin: 1.5rem 0; }
.checkbox-item { display: flex; align-items: center; margin-bottom: 0.75rem; }
.checkbox-item input[type="checkbox"] { margin-right: 0.75rem; width: 18px; height: 18px; }
/* Stile, wenn das Menü offen ist */
	html.sidebar-open .sidebar {
		transform: translateX(0);
		box-shadow: 5px 0px 15px rgba(0,0,0,0.2);
	}

	html.sidebar-open .sidebar-overlay {
		display: block;
	}



/* --- Responsive Design & Hamburger Menü --- */

.mobile-app-header {
    display: none; /* Hidden on desktop by default */
}

.sidebar-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 999;
}

@media (max-width: 767px) {
    .app-container {
        /* On mobile, the app-container is not a flexbox, but a simple block container */
        display: block;
    }

    .main-content {
        padding: 65px 1rem 2.5rem 1rem; /* Reduced top and side padding for mobile */
    }

    .mobile-app-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 1.5rem;
        height: 60px;
        background-color: var(--bg-light);
        border-bottom: 1px solid var(--border-color);
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1001;
    }

    .mobile-app-title {
        font-size: 1.5rem;
        font-weight: 700;
    }

    .mobile-app-logo {
        height: 30px;
    }

    .mobile-menu-toggle-btn {
        background: none;
        border: none;
        color: var(--text-primary);
        font-size: 1.5rem;
        cursor: pointer;
    }

    .sidebar {
		position: fixed;
		left: 0;
		top: 60px; /* Position below the header */
		height: calc(100% - 60px); /* Adjust height */
		z-index: 1002; /* Higher than header */
		transform: translateX(-100%);
		transition: transform 0.3s ease-in-out;
		width: 280px;
		overflow-y: auto; /* Enable scrolling */
	}

    html.sidebar-open .sidebar {
		transform: translateX(0);
		box-shadow: 5px 0px 15px rgba(0,0,0,0.2);
	}

	html.sidebar-open .sidebar-overlay {
		display: block;
	}
}

/* Icon-Wechsel, wenn das Menü offen ist */
html.sidebar-open .mobile-menu-toggle-btn .fa-bars:before {
	content: '\f00d'; /* Font Awesome Code für das "X"-Icon */
}

/* --- Stile für die Gefahrenzone --- */
.danger-zone {
	border-color: var(--danger) !important;
	background-color: rgba(220, 53, 69, 0.05);
}

.danger-zone h3 {
	color: var(--danger);
}

.success-zone {
    border-color: var(--success) !important;
    background-color: rgba(40, 167, 69, 0.05);
}

.success-zone h3 {
    color: var(--success);
}

.danger-zone-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
}

.danger-zone-content p {
	color: var(--text-secondary);
	font-size: 0.9rem;
	max-width: 600px;
}

.btn-danger {
	background-color: var(--danger);
	color: #fff;
}
.btn-danger:hover {
	background-color: #c82333;
}


/* --- Verbessertes Styling für Icon-Buttons --- */

.btn-icon {
	background: none;
	border: none;
	cursor: pointer;
	color: var(--text-secondary);
	width: 36px;
	height: 36px;
	border-radius: 50%; /* Macht die Buttons rund */
	font-size: 1rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s, color 0.2s;
	vertical-align: middle; /* Verbessert die Ausrichtung in einer Zeile */
}

.btn-icon:hover {
	background-color: var(--border-color);
	color: var(--text-primary);
}

.btn-icon-danger:hover {
	background-color: rgba(220, 53, 69, 0.1); /* Rötlicher Hintergrund beim Hover */
	color: var(--danger);
}

/* --- Stile für das Aktionen-Dropdown --- */
.action-dropdown {
	position: relative;
	display: inline-block;
}

.action-dropdown-menu {
	display: none; /* Standardmäßig versteckt */
	position: absolute;
	right: 0;
	top: calc(100% + 5px); /* Position direkt unter dem Button */
	z-index: 1005;
	min-width: 200px;
	background-color: var(--bg-light);
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius);
	box-shadow: var(--shadow);
	padding: 0.5rem;
	animation: fadeIn 0.1s ease-out;
}

.action-dropdown.open .action-dropdown-menu {
	display: block; /* Sichtbar, wenn der Container die "open"-Klasse hat */
}

.action-dropdown-menu a,
.action-dropdown-menu button {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	padding: 0.75rem 1rem;
	text-align: left;
	background: none;
	border: none;
	color: var(--text-primary);
	cursor: pointer;
	border-radius: 8px;
	font-size: 0.9rem;
}

.action-dropdown-menu a:hover,
.action-dropdown-menu button:hover {
	background-color: var(--bg-dark);
}

.action-dropdown-menu hr {
	border: none;
	border-top: 1px solid var(--border-color);
	margin: 0.5rem 0;
}

.action-dropdown-menu .danger-action {
	color: var(--danger);
}
.action-dropdown-menu .danger-action:hover {
	background-color: rgba(220, 53, 69, 0.1);
}

/* Mobile-spezifische Verbesserungen für Dropdowns */
@media (max-width: 767px) {
	.action-dropdown-toggle {
		min-width: 44px;
		min-height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
		touch-action: manipulation;
	}
	
	.action-dropdown-menu {
		position: fixed !important;
		min-width: 220px;
		right: 10px;
		top: auto;
		transform: none;
	}
	
	.action-dropdown.open .action-dropdown-menu {
		display: block !important;
	}
	
	.action-dropdown-menu a,
	.action-dropdown-menu button {
		min-height: 48px;
		padding: 1rem;
		font-size: 1rem;
		touch-action: manipulation;
	}
}

/* --- Stil für den "Zurück"-Link --- */
.back-link {
	display: inline-block;
	margin-bottom: 1.5rem;
	color: var(--text-secondary);
	text-decoration: none;
	font-weight: 500;
	font-size: 0.9rem;
}

.back-link:hover {
	color: var(--primary);
}

.back-link i {
	margin-right: 0.5rem;
}

/* --- FINALES "FANCY" LAYOUT FÜR ORTE-FORMULAR --- */

/* Haupt-Container für die Ausstattungsmerkmale */
.features-section {
	display: flex;
	flex-direction: column;
	gap: 1.5rem; /* Abstand zwischen den Blöcken */
	margin-top: 1rem;
}

/* Ein Block für thematisch verwandte Optionen */
.feature-group {
	background-color: var(--bg-dark);
	padding: 1.5rem;
	border-radius: var(--border-radius);
	border: 1px solid var(--border-color);
}

.feature-group-title {
	display: block;
	font-weight: 600;
	margin-bottom: 1rem;
	font-size: 1rem;
	color: var(--text-primary);
}

/* Einzelne Zeile für eine Option (z.B. Label + Switch) */
.feature-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--border-color);
}
.feature-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.feature-item label {
	font-weight: 500;
	color: var(--text-secondary);
}

/* Notizfeld, das ein- und ausgeblendet wird */
.feature-note {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease-out, margin-top 0.4s ease-out;
}
.feature-note.visible {
	max-height: 200px; /* Genug Platz für die Textarea */
	margin-top: 1rem;
}
.feature-note textarea {
	width: 100%;
	min-height: 80px;
	resize: vertical;
	padding: 0.75rem;
	background-color: var(--bg-dark);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	color: var(--text-primary);
}
.feature-note textarea:focus {
	outline: none;
	border-color: var(--primary);
}

/* --- FINALES, UNIVERSELLES STYLING FÜR ALLE TOGGLE-SWITCHES --- */

/* Wrapper für den Theme-Umschalter im Header */
.theme-switch-wrapper {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.page-header .theme-switch-wrapper {
	margin: 0;
	padding: 0;
	border: none;
}

.page-header .theme-switch-wrapper i {
	font-size: 1rem;
	color: var(--text-secondary);
}

/* Der eigentliche Schalter-Container */
.toggle-switch {
	display: inline-block;
	height: 26px;
	position: relative;
	width: 50px;
	flex-shrink: 0;
}

/* Die versteckte, originale Checkbox */
.toggle-switch input {
	display: none;
}

/* Der sichtbare "Schieber" */
.toggle-switch .slider {
	background-color: #555;
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	transition: .4s;
	border-radius: 26px;
}

/* Der runde "Knopf" im Schieber */
.toggle-switch .slider:before {
	background-color: #fff;
	position: absolute;
	content: "";
	height: 18px;
	width: 18px;
	left: 4px;
	bottom: 4px;
	transition: .4s;
	border-radius: 50%;
}

/* Zustand, wenn der Schalter aktiviert ist */
.toggle-switch input:checked + .slider {
	background-color: var(--primary);
}

.toggle-switch input:checked + .slider:before {
	transform: translateX(24px);
}

/* --- Stile für Ampelsystem --- */
.status-light {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: #ccc; /* Standard für "nicht bewertet" */
}
.status-green { background-color: #28a745; }
.status-orange { background-color: #fd7e14; }
.status-red { background-color: #dc3545; }
.status-grey { background-color: var(--border-color); }


/* --- Rating Selector --- */
.rating-selector {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.5rem;
}
.rating-selector input[type="radio"] {
	display: none;
}
.rating-selector label {
	padding: 0.5rem 1rem;
	border: 1px solid var(--border-color);
	border-radius: 20px;
	cursor: pointer;
	transition: all 0.2s ease;
	font-size: 0.9rem;
}
.rating-selector input[type="radio"]:checked + label {
	color: white;
	border-width: 2px;
}
.rating-selector .rating-green:hover { border-color: #28a745; }
.rating-selector input[type="radio"]:checked + .rating-green { background-color: #28a745; border-color: #28a745; }

.rating-selector .rating-orange:hover { border-color: #fd7e14; }
.rating-selector input[type="radio"]:checked + .rating-orange { background-color: #fd7e14; border-color: #fd7e14; }

.rating-selector .rating-red:hover { border-color: #dc3545; }
.rating-selector input[type="radio"]:checked + .rating-red { background-color: #dc3545; border-color: #dc3545; }

.rating-selector .rating-none:hover { border-color: #6c757d; }
.rating-selector input[type="radio"]:checked + .rating-none { background-color: #6c757d; border-color: #6c757d; }

/* --- Tagify Custom Styling --- */
.tagify {
    --tags-border-color: var(--border-color);
    --tags-focus-border-color: var(--primary);
    --tag-bg: var(--primary);
    --tag-hover: var(--primary-hover);
    --tag-text-color: #fff;
    --tag-pad: 0.3em 0.8em; /* Adjusted padding for a pill shape */
    border-radius: 8px;
    background-color: var(--bg-dark);
}

.tagify__tag {
    border-radius: 20px; /* This creates the pill shape */
}

.tagify__input {
    color: var(--text-primary);
}

.tag-pill {
    display: inline-block;
    padding: 0.3em 0.8em;
    background-color: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    margin-right: 5px; 
    margin-bottom: 5px;
}

.selected-item-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.5em 0.75em;
    background-color: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 500;
    margin-right: 8px;
    margin-bottom: 8px;
}

.selected-item-pill .btn-remove {
    background: none;
    border: none;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 2px;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.selected-item-pill .btn-remove:hover {
    background-color: var(--danger);
    color: white;
}

.selected-item-pill.auto-add-personnel {
    background-color: rgba(6, 166, 156, 0.1);
    border-color: rgba(6, 166, 156, 0.3);
}

.auto-add-label {
    font-size: 0.8rem;
    opacity: 0.7;
    font-style: italic;
}

/* PWA Install Banner */
.pwa-install-banner {
    position: fixed;
    bottom: -100px;
    left: 0;
    right: 0;
    background: var(--bg-light);
    border-top: 2px solid var(--primary);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.3);
    z-index: 1000;
    transition: bottom 0.3s ease-out;
}

.pwa-install-banner.show {
    bottom: 0;
}

.pwa-install-content {
    display: flex;
    align-items: center;
    padding: 16px;
    max-width: 600px;
    margin: 0 auto;
}

.pwa-install-icon {
    flex-shrink: 0;
    margin-right: 16px;
}

.pwa-install-icon img {
    width: 48px;
    height: 48px;
    border-radius: 10px;
}

.pwa-install-text {
    flex: 1;
    margin-right: 16px;
}

.pwa-install-text h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    color: var(--text-primary);
}

.pwa-install-text p {
    margin: 0;
    font-size: 14px;
    color: var(--text-secondary);
}

.pwa-install-actions {
    display: flex;
    gap: 12px;
}

.pwa-install-dismiss {
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    padding: 8px 16px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.2s;
}

.pwa-install-dismiss:hover {
    background: rgba(255, 255, 255, 0.05);
}

.pwa-install-button {
    background: var(--primary);
    border: none;
    color: white;
    padding: 8px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.2s;
}

.pwa-install-button:hover {
    background: var(--primary-hover);
}

/* iOS Install Prompt */
.ios-install-prompt {
    position: fixed;
    bottom: -400px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--bg-light);
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.3);
    z-index: 1001;
    width: 90%;
    max-width: 400px;
    transition: bottom 0.3s ease-out;
}

.ios-install-prompt.show {
    bottom: 0;
}

.ios-install-content {
    padding: 24px;
    text-align: center;
}

.ios-install-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: transparent;
    border: none;
    color: var(--text-secondary);
    font-size: 24px;
    cursor: pointer;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s;
}

.ios-install-close:hover {
    background: rgba(255, 255, 255, 0.1);
}

.ios-install-content h4 {
    margin: 0 0 16px 0;
    color: var(--text-primary);
}

.ios-install-content p {
    color: var(--text-secondary);
    margin: 0 0 16px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.ios-install-content p img {
    width: 20px;
    height: 20px;
}

.ios-install-guide {
    width: 100%;
    max-width: 300px;
    height: auto;
    border-radius: 8px;
    margin-top: 16px;
}

/* Mobile optimizations */
@media (max-width: 768px) {
    .pwa-install-content {
        flex-direction: column;
        text-align: center;
    }
    
    .pwa-install-icon {
        margin-right: 0;
        margin-bottom: 12px;
    }
    
    .pwa-install-text {
        margin-right: 0;
        margin-bottom: 16px;
    }
    
    .pwa-install-actions {
        width: 100%;
        justify-content: center;
    }
}

.selector-item-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.selector-item-title {
    font-weight: 500;
    color: var(--text-primary);
}

.selector-item-subtitle {
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.selector-item-availability {
    font-size: 0.75rem;
    color: var(--text-secondary);
    margin-top: 2px;
    font-style: italic;
}

.selector-item.availability-available {
    border-left: 3px solid #28a745;
}

.selector-item.availability-partial {
    border-left: 3px solid #ffc107;
}

.selector-item.availability-unavailable {
    border-left: 3px solid #dc3545;
    opacity: 0.7;
}

/* Room availability display */
#room-availability-info {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
    padding: 8px;
    margin-top: 8px;
}

#room-availability-info small {
    display: block;
    line-height: 1.4;
}

.linked-item-display {
    position: relative;
}

/* Mobile modal positioning */
@media (max-width: 768px) {
    .modal-content {
        margin-top: 80px; /* Add margin to avoid mobile top bar */
        margin-bottom: 20px;
        max-height: calc(100vh - 100px);
        overflow-y: auto;
    }
    
    .modal-content.small {
        margin-top: 100px;
    }
    
    .modal-content.large {
        margin-top: 60px;
    }
    
    .modal-content.extra-large {
        margin-top: 40px;
    }
    
    /* Specific modals that need extra top margin */
    #selector-modal .modal-content,
    #quantity-dialog .modal-content {
        margin-top: 120px !important;
        max-height: calc(100vh - 140px);
    }
    
    /* Smaller buttons on mobile for event forms */
    .btn-secondary {
        font-size: 0.85rem;
        padding: 0.4rem 0.8rem;
    }
    
    .btn-secondary i {
        font-size: 0.8rem;
    }
}


/* --- Rating Stars --- */
.rating-stars {
    display: inline-flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
}

.rating-stars input {
    display: none;
}

.rating-stars label {
    font-size: 2rem;
    color: var(--border-color);
    cursor: pointer;
    transition: color 0.2s;
}

.rating-stars input:checked ~ label,
.rating-stars label:hover,
.rating-stars label:hover ~ label {
    color: var(--primary);
}


/* --- Stile für das neue Dashboard --- */
.dashboard-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
    align-items: start;
}

.dashboard-widget-large {
    grid-column: span 1;
}

.dashboard-widget-full {
    grid-column: span 2;
}

@media (max-width: 992px) {
    .dashboard-grid {
        grid-template-columns: 1fr;
    }
    .dashboard-widget-large,
    .dashboard-widget-full {
        grid-column: span 1;
    }
}

.dashboard-widget h3 {
	margin-bottom: 1rem;
	font-size: 1.1rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	color: var(--text-secondary);
}

.dashboard-widget h3 i {
    font-size: 0.9em; /* Smaller icon size */
    color: var(--text-secondary); /* Lighter gray color */
}

.dashboard-widget.upcoming-events {
	/* Nimmt auf größeren Bildschirmen mehr Platz ein */
	grid-column: span 2;
}
@media (max-width: 1200px) {
	.dashboard-widget.upcoming-events {
		grid-column: span 1;
	}
}

.stats-cards {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 1rem;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
}

.stat-card {
	background: var(--bg-light);
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius);
	padding: 1.5rem;
	text-align: center;
}

.stat-card h4 {
	font-size: 0.9rem;
	color: var(--text-secondary);
	margin-bottom: 0.5rem;
}

.stat-card span {
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--primary);
}

.dashboard-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.dashboard-list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--border-color);
}
.dashboard-list li:last-child {
	border-bottom: none;
}
.dashboard-list li a {
	display: flex;
    justify-content: space-between;
    align-items: center;
	width: 100%;
	color: var(--text-primary);
	text-decoration: none;
}
.upcoming-event-link {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: center;
    width: 100%;
    color: var(--text-primary);
    text-decoration: none;
}

.dashboard-list li a:hover .list-item-main {
	color: var(--primary);
}

.activity-item-link {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.activity-item-content {
    display: flex;
    flex-direction: column;
}

.activity-item-date {
    font-size: 0.8rem;
    color: var(--text-secondary);
    text-align: right;
    flex-shrink: 0;
    margin-left: 1rem;
}

.list-item-main {
	font-weight: 500;
}

.list-item-sub {
	font-size: 0.8rem;
	color: var(--text-secondary);
	font-weight: 400;
}

.location-details {
    display: flex;
    flex-direction: column;
}

.location-name {
    font-weight: 500;
    color: var(--text-primary);
}

.location-address {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.dashboard-list .empty-state {
	text-align: center;
	color: var(--text-secondary);
	padding: 2rem 0;
}
.empty-state {
    text-align: center;
	color: var(--text-secondary);
	padding: 2rem 0;
}
.product-list-condensed {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.85rem;
    color: var(--text-secondary);
}
/* --- Stile für Super-Selector (Layout V2) --- */

/* NEU: Der Header, der Label und Buttons enthält */
.linked-item-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.5rem;
}

.linked-item-header label {
	margin-bottom: 0; /* Entfernt den Standard-Abstand vom Label */
}

/* Der Container für die Auswahl-Box. Kein Flex mehr nötig. */
.linked-item-selector {
	width: 100%;
}

.linked-item-display {
	width: 100%;
	background-color: var(--bg-dark);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	padding: 0.75rem 1rem;
	min-height: 58px;
	transition: border-color 0.2s;
}
.linked-item-display:hover {
	border-color: var(--primary);
}
.linked-item-display .placeholder {
	color: var(--text-secondary);
	font-style: italic;
}
.linked-item-display strong {
	display: block;
	color: var(--text-primary);
}
.linked-item-display small {
	color: var(--text-secondary);
}
.linked-item-actions {
	display: flex;
	gap: 0.25rem;
}
.selector-list {
	list-style: none; padding: 0; margin-top: 1rem; max-height: 40vh; overflow-y: auto;
}
.selector-list li {
	padding: 0.75rem 1rem; border-radius: 8px; cursor: pointer;
}
.selector-list li:hover { background-color: var(--bg-dark); }
.selector-list li small { color: var(--text-secondary); }

@media (max-width: 992px) {
	.selectors-container {
		grid-template-columns: 1fr; /* Auf kleineren Bildschirmen untereinander */
	}
}

.selectors-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
}

.form-column {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

@media (max-width: 767px) {
    .form-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Tech Rider Editor */
.tech-rider-editor {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem;
    width: 100%;
}

#instrument-palette {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    padding: 0.5rem;
    background-color: var(--bg-dark);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    width: 100%;
    max-height: 120px;
}

.instrument-icon {
    width: 80px;
    height: 80px;
    cursor: pointer;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 0.5rem;
    flex-shrink: 0;
    display: inline-block;
}

/* Custom scrollbar for instrument palette */
#instrument-palette::-webkit-scrollbar {
    height: 8px;
}

#instrument-palette::-webkit-scrollbar-track {
    background: var(--bg-light);
    border-radius: 4px;
}

#instrument-palette::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 4px;
}

#instrument-palette::-webkit-scrollbar-thumb:hover {
    background: var(--text-secondary);
}

#tech-rider-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

#tech-rider-toolbar .toolbar-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

#tech-rider-toolbar .toolbar-right {
    margin-left: auto;
    display: none;
}

#tech-rider-toolbar .toolbar-right.active {
    display: flex;
}

#tech-rider-toolbar .btn-icon {
    width: 36px;
    height: 36px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}

#tech-rider-toolbar .btn-icon i {
    font-size: 16px;
}

#stage-canvas {
    border: 1px solid var(--border-color);
    display: block;
    background-color: white;
}

.form-link.text-small {
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--text-secondary);
}

.tech-rider-toolbar {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}


.truncate-text {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.9rem;
    color: var(--text-secondary);
}

.app-footer {
    text-align: center;
    padding: 1rem;
    color: var(--text-secondary);
    font-size: 0.8rem;
}

.footer-nav {
    margin-top: 0.5rem;
}

.footer-nav a {
    color: var(--text-secondary);
    margin: 0 0.5rem;
}

.legal-body {
    padding-top: 80px; /* Platz für den Header */
}

.legal-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 2rem;
    background-color: var(--bg-dark);
    border-bottom: 1px solid var(--border-color);
    z-index: 10;
}

.legal-header .logo {
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--primary);
    text-decoration: none;
}

.legal-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
}

.legal-container .content-box {
    line-height: 1.8;
}

.legal-container .content-box h3 {
    margin-top: 2rem;
}

.page-header-actions .btn.active,
.page-header-actions .btn-primary {
    background-color: var(--primary);
    color: #fff;
}

.page-header-actions .btn {
    background-color: var(--bg-dark);
    color: var(--text-secondary);
    border: 1px solid var(--border-color);
}

.page-header-actions .btn-primary {
    background-color: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

.page-header-actions .btn:hover {
    background-color: var(--border-color);
    color: var(--text-primary);
}

.view-switcher {
    display: flex;
    align-items: center;
    position: relative;
    background-color: var(--bg-dark);
    border-radius: 20px;
    padding: 2px;
    border: 1px solid var(--border-color);
    height: 38px;
}

.switcher-option {
    padding: 6px 16px;
    cursor: pointer;
    z-index: 2;
    color: var(--text-secondary);
    font-weight: 500;
    font-size: 0.9rem;
    transition: color 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.switcher-slider {
    position: absolute;
    top: 2px;
    left: 2px;
    height: calc(100% - 4px);
    background-color: var(--bg-light);
    border-radius: 18px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: all 0.3s ease-in-out;
    z-index: 1;
}

.page-header-actions .view-toggle {
    display: flex;
    gap: 0.5rem;
}

/* FullCalendar Customization */
.fc-daygrid-day-number {
    color: var(--text-secondary) !important;
    text-decoration: none !important;
}

.fc-event {
    background-color: var(--primary) !important;
    border-color: var(--primary-hover) !important;
}

.fc .fc-button {
    background-color: var(--bg-dark) !important;
    color: var(--text-secondary) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: none !important;
    text-transform: none !important;
    font-size: 0.9rem !important;
    padding: 6px 12px !important;
}

.fc .fc-button:hover {
    background-color: var(--border-color) !important;
}

.availability-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 15px;
    padding: 1rem 0;
    border-bottom: 1px solid var(--border-color);
}

.availability-row:last-child {
    border-bottom: none;
}

.day-label {
    font-weight: 600;
}

.availability-controls {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.availability-details {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.personnel-row {
    cursor: pointer;
}

.personnel-row:hover {
    background-color: var(--bg-dark);
}

/* --- Color Picker Customization --- */
.color-picker-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Visually hide the input field itself, leaving only the Coloris button visible */
.color-picker-group input[data-coloris] {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    width: 32px;
    height: 32px;
}

/* Style the wrapper created by Coloris */
.color-picker-group .clr-field {
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--border-color);
    border-radius: 8px;
}

/* Style the button inside the wrapper (this is the color swatch) */
.color-picker-group .clr-field button {
    width: 100%;
    height: 100%;
    border-radius: 7px; /* Slightly smaller to fit inside the border */
    border: none;
}



.fc .fc-button-primary:not(:disabled).fc-button-active, 
.fc .fc-button-primary:not(:disabled):active {
    background-color: var(--primary) !important;
    color: #fff !important;
}

.fc .fc-col-header-cell-cushion {
    color: var(--text-secondary) !important;
    text-decoration: none !important;
}

/* FullCalendar Dark Mode Border Improvements */
.fc {
    background-color: var(--bg-light) !important;
}

.fc .fc-scrollgrid {
    border-color: var(--border-color) !important;
}

.fc .fc-scrollgrid-section > * {
    border-color: var(--border-color) !important;
}

.fc .fc-col-header-cell {
    border-color: var(--border-color) !important;
    background-color: var(--bg-dark) !important;
}

.fc .fc-daygrid-day {
    border-color: var(--border-color) !important;
}

.fc .fc-daygrid-day-frame {
    border-color: var(--border-color) !important;
}

.fc .fc-scrollgrid-sync-table {
    border-color: var(--border-color) !important;
}

.fc .fc-timegrid-col {
    border-color: var(--border-color) !important;
}

.fc .fc-timegrid-slot {
    border-color: var(--border-color) !important;
}

.fc .fc-list-day-cushion {
    background-color: var(--bg-dark) !important;
    color: var(--text-primary) !important;
}

.fc .fc-list-event {
    border-color: var(--border-color) !important;
}

.fc .fc-list-event:hover {
    background-color: var(--bg-dark) !important;
}


.page-header-actions .view-toggle .btn {
    padding: 0.5rem 0.75rem;
}

.table-controls {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1rem;
}

.pagination-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border-color);
}

.pagination-info {
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.pagination-buttons {
    display: flex;
    gap: 0.5rem;
}

.pagination-buttons a[disabled] {
    pointer-events: none;
    opacity: 0.5;
}

.limit-control {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.limit-control label {
    color: var(--text-secondary);
    font-size: 0.9rem;
    white-space: nowrap;
}

.limit-control select {
    background-color: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 0.25rem 0.5rem;
    font-size: 0.9rem;
    min-width: 60px;
}

.limit-control select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(6, 166, 156, 0.2);
}

.table-footer-note {
    margin-top: 1.5rem;
    padding: 1rem;
    background-color: var(--bg-dark);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    font-size: 0.9rem;
    color: var(--text-secondary);
}


/* Accordion Styles */
.accordion {
    width: 100%;
}

.accordion-item {
    background-color: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    margin-bottom: 1rem;
}

.accordion-header {
    width: 100%;
    background-color: transparent;
    border: none;
    padding: 1.5rem;
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--text-primary);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* --- Permissions Table --- */
.permissions-table {
    width: 100%;
    border-collapse: collapse;
}

.permissions-table th, .permissions-table td {
    text-align: center;
    vertical-align: middle;
    padding: 0.75rem;
}

.permissions-table .feature-header {
    text-align: left;
    vertical-align: bottom;
    font-weight: 600;
}

.permissions-table .role-header {
    border-bottom: 1px solid var(--border-color);
    border-left: 1px solid var(--border-color);
}

.permissions-table .permission-header {
    font-size: 1rem;
    font-weight: 500;
    color: var(--text-secondary);
    padding: 0.5rem;
}

/* Add left border to the first icon header of each role group */
.permissions-table tr:nth-child(2) th:nth-child(4n+1) {
    border-left: 1px solid var(--border-color);
}

/* Add left border to the first data cell of each role group */
.permissions-table td:nth-child(4n+2) {
    border-left: 1px solid var(--border-color);
}

/* Align feature name text to the left */
.permissions-table tr td:first-child {
    text-align: left;
}

.permissions-table .permission-cell {
    padding: 0.5rem;
}

.permissions-table input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
}

.legend-container {
    margin: 1.5rem 0;
}

.legend-title {
    margin-bottom: 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-secondary);
}

.legend {
    display: flex;
    gap: 1.5rem;
    justify-content: flex-start;
    padding: 1rem;
    background-color: var(--bg-dark);
    border-radius: var(--border-radius);
    border: 1px solid var(--border-color);
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

    cursor: pointer;
    text-align: left;
}

.accordion-header i {
    transition: transform 0.3s ease;
}

.accordion-item.open .accordion-header i.fa-chevron-down {
    transform: rotate(180deg);
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    padding: 0 1.5rem;
}

.accordion-item.open .accordion-content {
    max-height: 500px; /* Adjust as needed */
    padding: 0 1.5rem 1.5rem;
}

.accordion-content p

/* --- Help Page Specific Styles --- */
.help-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1rem;
}

.help-content h1 {
    margin-bottom: 2rem;
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--primary);
    border-bottom: 2px solid var(--primary);
    padding-bottom: 1rem;
    line-height: 1.2;
}

.help-content h2 {
    margin-top: 3rem;
    margin-bottom: 1.5rem;
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.75rem;
    line-height: 1.3;
}

.help-content h2:first-of-type {
    margin-top: 2rem;
}

.help-content h3 {
    margin-top: 2.5rem;
    margin-bottom: 1.25rem;
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--primary);
    line-height: 1.3;
}

.help-content h4 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 1.1rem;
    color: var(--text-primary);
    font-weight: 600;
}

.help-content p {
    margin-bottom: 1.5rem;
    line-height: 1.8;
    color: var(--text-primary);
}

.help-content ol, .help-content ul {
    margin-bottom: 2rem;
    padding-left: 2rem;
    line-height: 1.8;
}

.help-content ol {
    list-style-type: decimal;
}

.help-content ul {
    list-style-type: disc;
}

.help-content li {
    margin-bottom: 0.75rem;
    line-height: 1.8;
    color: var(--text-primary);
}

.help-content li strong {
    color: var(--primary);
    font-weight: 600;
}

.help-content ol ul, .help-content ul ul {
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
    padding-left: 1.5rem;
}

.help-content ol ul li, .help-content ul ul li {
    margin-bottom: 0.5rem;
}

.help-content code {
    background-color: var(--bg-light);
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
    font-family: 'Courier New', monospace;
    font-size: 0.9rem;
    color: var(--accent-cyan);
}

.help-content blockquote {
    border-left: 4px solid var(--primary);
    padding-left: 1.5rem;
    margin: 2rem 0;
    font-style: italic;
    color: var(--text-secondary);
}

/* Help navigation improvements */
.back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-secondary);
    font-size: 0.9rem;
    margin-bottom: 1rem;
    transition: color 0.2s ease;
}

.back-link:hover {
    color: var(--primary);
}

.back-link i {
    font-size: 0.8rem;
}

/* Help cards grid improvements */
.grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}

.card-link {
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease;
}

.card-link:hover {
    transform: translateY(-2px);
}

.card-link:hover .card {
    border-color: var(--primary);
    box-shadow: 0 8px 25px rgba(6, 166, 156, 0.15);
}

.card {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    padding: 2rem;
    height: 100%;
    transition: all 0.2s ease;
}

.card-icon {
    font-size: 2.5rem;
    color: var(--primary);
    margin-bottom: 1rem;
}

.card-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    color: var(--text-primary);
}

.card-subtitle {
    color: var(--text-secondary);
    line-height: 1.6;
    margin: 0;
}

/* Dark & Light Mode Date/Time Picker Icon Fix */
/* Default (Dark Mode) */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    filter: invert(1);
}

/* Light Mode Override */
html.light-mode input[type="date"]::-webkit-calendar-picker-indicator,
html.light-mode input[type="time"]::-webkit-calendar-picker-indicator,
html.light-mode input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    filter: none;
}

    margin-bottom: 1rem;
    line-height: 1.7;
}

.accordion-content ul {
    list-style-position: inside;
    padding-left: 1rem;
}

.accordion-content li {
    margin-bottom: 0.5rem;
}

/* --- Toastify Customization --- */
.toastify {
    padding: 12px 20px;
    color: #fff;
    display: inline-block;
    box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.12), 0 10px 36px -4px rgba(77, 96, 232, 0.3);
    position: fixed;
    opacity: 0;
    transition: all .4s cubic-bezier(.215, .61, .355, 1);
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    max-width: 320px;
    z-index: 2000;
}


/* --- Upcoming Events Section Alignment --- */
.upcoming-event-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    gap: 1.5rem; /* Add space between columns */
}

.event-col-date {
    flex: 1; /* Takes up 1 part of the available space */
    min-width: 150px; /* Prevents the column from becoming too small */
}

.event-col-location {
    flex: 2; /* Takes up 2 parts of the available space, making it wider */
    text-align: left; /* Align text to the left */
}

.event-col-products {
    flex: 1; /* Takes up 1 part of the available space */
    text-align: right; /* Align text to the right */
}

/* === Cookie Consent Styles === */
.cookie-consent-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

.cookie-consent-content {
    background: var(--bg-light);
    border-radius: var(--border-radius);
    max-width: 800px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--shadow);
    border: 1px solid var(--border-color);
}

.cookie-consent-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid var(--border-color);
}

.cookie-consent-header h3 {
    margin: 0;
    color: var(--text-primary);
    font-size: 1.25rem;
    font-weight: 600;
}

.cookie-consent-close {
    background: none;
    border: none;
    color: var(--text-secondary);
    font-size: 24px;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.cookie-consent-close:hover {
    background: var(--border-color);
    color: var(--text-primary);
}

.cookie-consent-body {
    padding: 24px;
}

.cookie-consent-intro {
    margin-bottom: 24px;
    color: var(--text-secondary);
    line-height: 1.6;
}

.cookie-categories {
    margin-bottom: 24px;
}

.cookie-category {
    margin-bottom: 20px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden;
}

.cookie-category-header {
    display: flex;
    align-items: flex-start;
    padding: 16px;
    background: rgba(255, 255, 255, 0.02);
    gap: 16px;
}

.cookie-category-toggle {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 24px;
    flex-shrink: 0;
    margin-top: 2px;
}

.cookie-category-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
}

.cookie-toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--border-color);
    transition: 0.3s;
    border-radius: 24px;
}

.cookie-toggle-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: 0.3s;
    border-radius: 50%;
}

.cookie-category-toggle input:checked + .cookie-toggle-slider {
    background-color: var(--primary);
}

.cookie-category-toggle input:checked + .cookie-toggle-slider:before {
    transform: translateX(26px);
}

.cookie-category-toggle input:disabled + .cookie-toggle-slider {
    background-color: var(--success);
    cursor: not-allowed;
}

.cookie-category-info {
    flex: 1;
}

.cookie-category-info h4 {
    margin: 0 0 8px 0;
    color: var(--text-primary);
    font-size: 1rem;
    font-weight: 600;
}

.cookie-category-info p {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.9rem;
    line-height: 1.5;
}

.cookie-details {
    padding: 0 16px 16px 16px;
    border-top: 1px solid var(--border-color);
    background: rgba(255, 255, 255, 0.01);
}

.cookie-details ul {
    list-style: none;
    margin: 12px 0 0 0;
    padding: 0;
}

.cookie-details li {
    margin-bottom: 8px;
    color: var(--text-secondary);
    font-size: 0.85rem;
    line-height: 1.4;
}

.cookie-details li strong {
    color: var(--text-primary);
}

.cookie-consent-info {
    padding-top: 16px;
    border-top: 1px solid var(--border-color);
}

.cookie-legal-info {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.8rem;
    line-height: 1.5;
}

.cookie-legal-info a {
    color: var(--primary);
    text-decoration: underline;
}

.cookie-consent-footer {
    padding: 20px 24px;
    border-top: 1px solid var(--border-color);
    background: rgba(255, 255, 255, 0.02);
}

.cookie-consent-buttons {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.cookie-consent-buttons .btn {
    min-width: 120px;
}

/* Cookie Banner */
.cookie-consent-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--bg-light);
    border-top: 1px solid var(--border-color);
    z-index: 9999;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.3);
}

.cookie-banner-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    max-width: 1200px;
    margin: 0 auto;
    gap: 24px;
}

.cookie-banner-text {
    flex: 1;
}

.cookie-banner-text p {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.9rem;
    line-height: 1.5;
}

.cookie-banner-text strong {
    color: var(--text-primary);
}

.cookie-banner-buttons {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

/* Responsive Design */
@media (max-width: 768px) {
    .cookie-consent-content {
        margin: 10px;
        max-height: 95vh;
    }
    
    .cookie-consent-header,
    .cookie-consent-body,
    .cookie-consent-footer {
        padding: 16px;
    }
    
    .cookie-consent-buttons {
        flex-direction: column;
    }
    
    .cookie-consent-buttons .btn {
        min-width: auto;
        width: 100%;
    }
    
    .cookie-banner-content {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        padding: 16px;
    }
    
    .cookie-banner-buttons {
        justify-content: stretch;
    }
    
    .cookie-banner-buttons .btn {
        flex: 1;
    }
    
    .cookie-category-header {
        flex-direction: column;
        gap: 12px;
    }
    
    .cookie-category-toggle {
        align-self: flex-start;
    }
}

/* Cookie Settings Link in Footer */
.cookie-settings-link {
    color: var(--text-secondary);
    font-size: 0.8rem;
    cursor: pointer;
    transition: color 0.2s ease;
}

.cookie-settings-link:hover {
    color: var(--primary);
}

/* Discount Pills */
.discount-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.discount-pill {
    background: var(--bg-dark);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    padding: 0.4rem 0.8rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.discount-pill:hover {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
    transform: translateY(-1px);
}

.discount-pill.active {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
}

@media (max-width: 768px) {
    .discount-pills {
        justify-content: center;
    }
}

/* Link-styled button for forms */
.link-button {
    background: none !important;
    border: none !important;
    color: var(--primary) !important;
    text-decoration: underline !important;
    cursor: pointer !important;
    padding: 0 !important;
    font: inherit !important;
    font-size: inherit !important;
}

.link-button:hover {
    color: var(--primary-dark) !important;
    text-decoration: underline !important;
}


