/* ========================== Allgemeines Layout ========================== */ body { margin: 0; font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; background-color: #f8f9fa; padding-top: 60px; /* Platz für den fixen Header schaffen */ } /* page-content (rechts neben der Sidebar) */ .page-content { flex: 1 1 0%; padding: 20px; min-width: 0; /* verhindert Überlauf bei zu breitem Inhalt */ transition: margin-left 0.3s ease; min-height: calc(100vh - 60px); /* Mindesthöhe minus Header-Höhe */ } /* Wenn Sidebar collapsed ist, reduziere margin-left */ .sidebar.collapsed ~ .page-content { margin-left: 70px; } /* ========================== Header ========================== */ .app-header { position: fixed; top: 0; left: 0; height: 60px; width: 100%; background-color: #e4d5c1; color: #7c5617; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; z-index: 1100; box-shadow: 0 2px 4px rgba(0,0,0,0.2); } .logo { height: 40px; margin-right: 10px; } .app-title { font-size: 1.5rem; font-weight: bold; } .org-name { font-size: 1rem; color: #7c5617; } .header-right { display: flex; align-items: center; } /* ========================== Sidebar ========================== */ .sidebar { width: 220px; transition: width 0.3s ease; background-color: #e4d5c1; color: black; height: calc(100vh - 60px); /* Höhe minus Header */ top: 60px; /* Den gleichen Wert wie Header-Höhe verwenden */ left: 0; z-index: 1000; position: relative; /* oder fixed, je nach Layout */ overflow-x: hidden; overflow-y: auto; } .sidebar.collapsed { width: 70px; } /* Sidebar Toggle Button (Burger-Icon) */ .sidebar-toggle { text-align: right; padding: 5px 10px; } .toggle-button { background: none; border: none; color: #7c5617; cursor: pointer; font-size: 1.2rem; transition: transform 0.1s ease, background-color 0.2s ease; padding: 8px; border-radius: 4px; } .toggle-button:hover { background-color: #7c5617; color: #e4d5c1; transform: scale(1.05); } .toggle-button:active { transform: scale(0.95); } /* Navigation in der Sidebar */ .sidebar-nav .nav-link { color: #7c5617; padding: 10px 15px; display: flex; align-items: center; border-radius: 4px; margin: 2px 8px; transition: background-color 0.2s ease, color 0.2s ease; } .sidebar-nav .nav-link:hover { background-color: #7c5617; color: #e4d5c1; } .sidebar-nav .nav-link.active { background-color: #7c5617; color: #e4d5c1; } /* Text neben Icons */ .sidebar-label { display: inline-block; margin-left: 10px; white-space: nowrap; transition: opacity 0.3s ease, width 0.3s ease; } /* Wenn Sidebar collapsed ist, blendet das Label aus */ .sidebar.collapsed .sidebar-label { opacity: 0; width: 0; overflow: hidden; } /* Tooltips (Bootstrap-Tooltips) */ .tooltip { z-index: 2000; background-color: #7c5617; color: #e4d5c1; } /* Optional: Tooltips nur anzeigen, wenn Sidebar collapsed ist */ /* Da dash-bootstrap-components Tooltips in einen anderen DOM-Layer rendert, kann man bei Bedarf per Callback steuern, ob sie geöffnet sind oder nicht. Dieser Block ist nur ein Zusatz – das Haupt-Show/Hiding erfolgt per is_open-Callback. */ .sidebar:not(.collapsed) ~ .tooltip { display: none !important; } /* ========================== Responsive (bei Bedarf) ========================== */ @media (max-width: 768px) { body { padding-top: 60px; /* Header-Platz auch auf mobilen Geräten */ } .sidebar { position: fixed; height: calc(100vh - 60px); z-index: 1050; } .page-content { margin-left: 0; } .sidebar.collapsed { width: 0; } .sidebar.collapsed ~ .page-content { margin-left: 0; } } /* :root { --mb-z-index: 2000 !important; --mantine-z-index-popover: 2100 !important; --mantine-z-index-overlay: 2100 !important; --mantine-z-index-dropdown: 2100 !important; --mantine-z-index-max: 9999 !important; } .mantine-Modal-root, .mantine-Modal-modal, .mantine-Modal-overlay { z-index: 3000 !important; } .mantine-Modal-overlay { z-index: 2000 !important; } .mantine-Modal-modal { z-index: 2100 !important; } .mantine-Popover-dropdown, .mantine-DatePicker-dropdown, .mantine-Select-dropdown { z-index: 2200 !important; } */