/* ─── Sidebar Navigation ─── */ :root { --sidebar-width: 280px; --sidebar-bg: #fafafa; --sidebar-text: #363636; --sidebar-hover: rgb(var(--bg-top-raw) / 0.2); --sidebar-active: rgb(var(--bg-top-raw) / 0.35); --sidebar-transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1); } /* Sidebar Panel */ .sidebar-nav { position: fixed; top: 0; left: 0; width: var(--sidebar-width); height: 100vh; background: var(--sidebar-bg); z-index: 10000; transform: translateX(-100%); transition: transform var(--sidebar-transition); display: flex; flex-direction: column; overflow-y: auto; box-shadow: 4px 0 24px rgba(0, 0, 0, 0.25); } .sidebar-nav.open { transform: translateX(0); } /* Sidebar Header */ .sidebar-header { padding: 28px 24px 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); display: flex; align-items: center; justify-content: space-between; } .sidebar-header h3 { margin: 0; font-size: 16px; font-weight: 600; color: #111; letter-spacing: 0.5px; } .sidebar-close-btn { background: none; border: none; color: var(--sidebar-text); cursor: pointer; padding: 4px; display: flex; align-items: center; border-radius: 6px; transition: background 0.2s; } .sidebar-close-btn:hover { background: var(--sidebar-hover); } /* Section Labels */ .sidebar-section-label { padding: 20px 24px 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; color: rgba(45, 45, 45, 0.35); } /* Links */ .sidebar-links { list-style: none; margin: 0; padding: 0; flex: 1; } .sidebar-links a { display: flex; align-items: center; gap: 14px; padding: 12px 24px; color: var(--sidebar-text); text-decoration: none; font-size: 14px; font-weight: 500; transition: all 0.2s; border-left: 3px solid transparent; } .sidebar-links a:hover { background: var(--sidebar-hover); color: #222; } .sidebar-links a.active { background: var(--sidebar-active); color: #111; border-left-color: var(--bg-top); } .sidebar-links a svg { width: 20px; height: 20px; flex-shrink: 0; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } /* Overlay */ .sidebar-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.2); backdrop-filter: blur(2px); z-index: 9999; opacity: 0; pointer-events: none; transition: opacity var(--sidebar-transition); } .sidebar-overlay.open { opacity: 1; pointer-events: auto; } /* Hamburger Toggle */ .sidebar-toggle { background: var(--sidebar-bg); border: none; border-radius: 10px; width: 44px; height: 44px; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); transition: all var(--sidebar-transition); padding: 0; } .sidebar-toggle span { display: block; width: 20px; height: 2px; background: #111; border-radius: 2px; transition: all 0.3s; } .sidebar-toggle.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); } .sidebar-toggle.open span:nth-child(2) { opacity: 0; } .sidebar-toggle.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); } /* Footer */ .sidebar-footer { padding: 16px 24px; border-top: 1px solid rgba(42, 42, 42, 0.222); font-size: 11px; color: rgba(42, 42, 42, 0.485); } .menuWrapper { display: flex; align-items: center; gap: 16px; } .abmeldenbutton { width: 100%; padding: 14px; background: linear-gradient(135deg, #e53935, #b71c1c); border: none; border-radius: 12px; font-weight: 600; color: #fff; cursor: pointer; transition: transform 0.2s ease, background 0.3s ease; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); } .abmeldenbutton:hover { background: linear-gradient(135deg, #c62828, #8e1919); transform: translateY(-2px); } .sidebarUsername { padding: 20px 24px 8px; font-size: 14px; font-weight: 400; color: rgba(45, 45, 45, 0.85); } .customSelect { position: relative; } .customSelect>* { margin: 0; } .selectTrigger .selectArrow { transition: rotate 0.6s ease; } table input { height: 38px; } .selectTrigger, .selectTriggerBulk { background: none; border: none; padding: 0; display: flex; justify-content: space-between; align-items: center; cursor: pointer; } .sidebar-nav .selectOptions, .sidebar-nav .selectOptionsBulk { position: absolute; top: calc(100% + 4px); left: 0; right: 0; padding: 4px; list-style: none; border: 1px solid; border-radius: 12px; background: var(--sidebar-bg); z-index: 1000; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); opacity: 0; transform: scaleY(0); transform-origin: top; pointer-events: none; transition: opacity 0.2s ease, transform 0.2s ease; } .sidebar-nav .customSelect.open .selectOptions, .sidebar-nav .customSelect.open .selectOptionsBulk { opacity: 1; transform: scaleY(1); pointer-events: auto; } .customSelect.open .selectArrow { rotate: 180deg } .selectOptions li, .selectOptionsBulk li { padding: 10px 14px; cursor: pointer; border-radius: 8px; margin-bottom: 2px; transition: background-color 0.15s ease; } .selectOptions li:last-child, .selectOptionsBulk li:last-child { margin-bottom: 0; } /* ─── Sidebar Freigaben ─── */ .sidebar-li-freigaben { padding: 0 24px 16px 42px; /* Indented under the icon of the active link */ margin-top: 4px; } .sidebar-freigaben-label { display: block; font-size: 10px; font-weight: 600; text-transform: uppercase; color: rgba(45, 45, 45, 0.45); margin-bottom: 6px; letter-spacing: 0.5px; } .sidebar-li-freigaben .selectTrigger { width: 100%; padding: 9px 12px; background: #fff; border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 8px; font-size: 13px; font-weight: 500; color: var(--sidebar-text); transition: all 0.2s ease; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02); } .sidebar-li-freigaben .selectTrigger:hover { border-color: rgba(0, 0, 0, 0.15); background: #fcfcfc; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04); } .sidebar-li-freigaben .selectOptions { background: #fff; border: 1px solid rgba(0, 0, 0, 0.1); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); margin-top: 2px; } .sidebar-li-freigaben .selectOptions li { font-size: 13px; padding: 8px 12px; } .sidebar-li-freigaben .selectOptions li.selected { background: var(--sidebar-active); color: #111; font-weight: 600; }