OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

responsive.css

14 KB
/**
 * IT-Dokumentation - Responsive Styles
 * AdminLTE-Layout: Sidebar + Navbar Responsive-Verhalten
 */

/* ============================================================
   Globaler Overflow-Fix
============================================================ */
html, body {
    overflow-x: hidden;
    max-width: 100vw;
}

/* ============================================================
   Desktop: Sidebar sichtbar, Navbar neben Sidebar
============================================================ */
@media (min-width: 993px) {
    /* Sidebar immer sichtbar */
    .main-sidebar {
        transform: translateX(0) !important;
    }
    .content-wrapper {
        margin-left: var(--sidebar-width) !important;
        width: calc(100% - var(--sidebar-width)) !important;
    }
    /* Sidebar collapsed toggle (Burger-Button auf Desktop) */
    body.sidebar-collapsed .main-sidebar { width: 4rem; }
    body.sidebar-collapsed .nav-sidebar .nav-link p,
    body.sidebar-collapsed .nav-sidebar .nav-header { display: none; }
    body.sidebar-collapsed .content-wrapper {
        margin-left: 4rem !important;
        width: calc(100% - 4rem) !important;
    }
    body.sidebar-collapsed .main-sidebar:hover { width: var(--sidebar-width); }
    body.sidebar-collapsed .main-sidebar:hover .nav-sidebar .nav-link p,
    body.sidebar-collapsed .main-sidebar:hover .nav-sidebar .nav-header { display: block; }
}

/* ============================================================
   Tablet: <= 992px – Sidebar als Overlay
============================================================ */
@media (max-width: 992px) {
    .main-sidebar {
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        width: var(--sidebar-width) !important;
    }
    body.sidebar-open .main-sidebar {
        transform: translateX(0);
    }

    .main-header.navbar {
        left: 0 !important;
    }
    .content-wrapper {
        margin-left: 0 !important;
        width: 100% !important;
    }

    /* Sidebar Text/Labels immer sichtbar wenn geöffnet */
    .main-sidebar .nav-sidebar .nav-link p,
    .main-sidebar .nav-sidebar .nav-header { display: block !important; }

    /* Navbar Search: schmaler */
    .navbar-search-input { width: 160px; }
    .navbar-search-input:focus { width: 200px; }

    .main-content { padding: var(--spacing-lg); }
    .main-content-fullwidth { padding: 0; }

    .dashboard-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--spacing-md); }
    .footer-content { flex-direction: column; gap: 0.25rem; text-align: center; }
}

/* ============================================================
   Mobile: <= 768px
============================================================ */
@media (max-width: 768px) {
    /* Navbar Search + Telefonbuch-Suche verstecken auf kleinen Screens */
    .navbar-search-form { display: none; }
    .navbar-phonebook-item { display: none !important; }

    .main-content { padding: var(--spacing-md); }
    .main-content-fullwidth { padding: 0; }

    /* Breadcrumbs */
    .breadcrumb ol { font-size: var(--font-size-xs); }

    /* Dashboard */
    .dashboard-grid { grid-template-columns: 1fr !important; }
    .dashboard-col-left, .dashboard-col-right { min-width: 0; }
    .stat-grid { grid-template-columns: repeat(2, 1fr); }

    /* Hero Headers */
    .hero,
    .hero-header,
    .page-hero,
    .dashboard-hero,
    .orders-hero,
    .services-hero,
    .contacts-hero,
    .categories-hero,
    .cb-hero,
    .cm-hero,
    .cm-hero-compact,
    .topics-header,
    .versions-hero,
    .version-show-hero,
    .compare-hero,
    .search-hero,
    .resp-hero,
    .responsibilities-hero {
        padding: var(--spacing-lg) var(--spacing-md) !important;
        overflow: hidden;
    }
    .hero__content {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.875rem !important;
    }
    .hero__actions { width: 100%; flex-wrap: wrap; }
    .hero__btn {
        flex: 1;
        justify-content: center;
        font-size: 0.8rem;
        padding: 0.5rem 0.75rem;
    }
    .hero-content {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.875rem !important;
    }
    .hero-header h1,
    .page-hero h1,
    .hero__text h1 {
        font-size: 1.25rem !important;
        letter-spacing: -0.01em !important;
        word-break: break-word;
    }
    .hero-actions { flex-wrap: wrap; gap: 0.5rem !important; }

    /* Hero Search */
    .hero__search form { max-width: 100% !important; flex-wrap: wrap; }
    .hero__search input[type="search"],
    .hero__search input[type="text"] { width: 100%; }

    /* Hero Filterbar */
    .hero__filterbar form { flex-direction: column; align-items: stretch; }
    .hero__filterbar input[type="search"],
    .hero__filterbar input[type="text"],
    .hero__filterbar select,
    .hero__filterbar-search-wrap { width: 100% !important; min-width: 0 !important; }
    .hero__filterbar-btn { width: 100%; justify-content: center; text-align: center; }

    /* Hero KPI Bar */
    .hero__kpi-bar { flex-wrap: wrap; }
    .hero__kpi-item { min-width: 50%; }
    .hero__kpi-divider { display: none; }

    /* Tabellen */
    .table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .data-table th,
    .data-table td { padding: var(--spacing-xs) var(--spacing-sm); font-size: var(--font-size-xs); }

    /* Cards */
    .card { border-radius: var(--radius); }

    /* Modals */
    .modal-dialog { width: 95%; max-height: 95vh; }

    /* Buttons */
    .btn { font-size: var(--font-size-sm); }
    .form-actions { flex-direction: column; gap: var(--spacing-sm); }
    .form-actions .btn { width: 100%; justify-content: center; }
    .action-buttons { flex-wrap: wrap; }
    .page-actions { flex-wrap: wrap; gap: var(--spacing-xs) !important; }
    .page-actions .btn { font-size: var(--font-size-xs); padding: var(--spacing-xs) var(--spacing-sm); }

    /* Topics */
    .topics-grid {
        grid-template-columns: 1fr !important;
        padding: var(--spacing-xl) var(--spacing-md) !important;
        gap: var(--spacing-xl) !important;
    }
    .topics-header {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
        width: auto !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .topic-visual { height: 120px; }
    .topic-edit-btn { opacity: 1; }

    /* Pages Show */
    .page-show-fullwidth .page-hero { padding: 1rem !important; }
    .page-show-fullwidth .hero-breadcrumb { font-size: 0.75rem; gap: 0.25rem; margin-bottom: 1rem; }
    .page-show-fullwidth .page-body { padding: var(--spacing-md) !important; }
    .page-show-fullwidth .page-layout { grid-template-columns: 1fr !important; }
    .page-show-fullwidth .page-content { padding: 1.125rem; }
    .page-show-fullwidth .page-sidebar { display: grid; grid-template-columns: 1fr; }
    .page-show-fullwidth .responsibility-bar { flex-direction: column; gap: 0.75rem; }

    /* WYSIWYG Content */
    .wysiwyg-content { overflow-x: auto; }
    .wysiwyg-content table { font-size: var(--font-size-xs); }
    .wysiwyg-content pre { font-size: var(--font-size-xs); }

    /* Pages Edit */
    .page-editor { margin: calc(-1 * var(--spacing-sm)) !important; }
    .editor-breadcrumb { padding: 0.5rem var(--spacing-md); font-size: 0.75rem; flex-wrap: wrap; }
    .editor-topbar { padding: 0.5rem var(--spacing-md); }
    .page-title-input { font-size: 1rem; }
    .editor-wrapper { padding: var(--spacing-sm); }

    /* Orders */
    .orders-tabs-bar { padding: 0 var(--spacing-md) !important; }
    .orders-content { padding: var(--spacing-md) !important; }
    .order-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; gap: var(--spacing-xs) !important; }
    .order-tabs .tab-btn { white-space: nowrap; font-size: var(--font-size-xs); padding: var(--spacing-xs) var(--spacing-sm); }
    .order-card { padding: var(--spacing-md) !important; }
    .order-header { flex-direction: column; align-items: flex-start !important; gap: var(--spacing-sm); }
    .order-actions { width: 100%; justify-content: flex-start !important; flex-wrap: wrap; }

    /* Services */
    .services-toolbar { padding: 0.75rem var(--spacing-md) !important; }
    .services-content { padding: var(--spacing-md) !important; }
    .services-grid, .service-grid { grid-template-columns: 1fr !important; gap: var(--spacing-sm) !important; }
    .service-card { padding: var(--spacing-sm) !important; }
    .service-card .service-name { font-size: var(--font-size-sm); }

    /* Contacts */
    .companies-grid, .cb-grid { grid-template-columns: 1fr !important; }
    .company-card { padding: var(--spacing-md) !important; }
    .contacts-grid, .cb-contacts-grid { grid-template-columns: 1fr !important; }
    .contact-card { padding: var(--spacing-md) !important; }

    /* Search */
    .search-form { flex-direction: column; }
    .search-form input[type="search"] { width: 100% !important; }
    .filter-input { width: 100% !important; }

    /* Version Compare */
    .version-compare { flex-direction: column !important; }
    .version-compare .version-panel { width: 100% !important; }

    /* Page Header */
    .page-header-actions { flex-direction: column; align-items: flex-start !important; }

    /* Detail Grid */
    .detail-grid { grid-template-columns: 1fr !important; }

    /* Footer */
    .main-footer { padding: 0.75rem var(--spacing-md); }
    .footer-content { flex-direction: column; gap: 0.25rem; font-size: var(--font-size-xs); text-align: center; }

    /* Toast */
    .toast-container {
        left: var(--spacing-sm) !important;
        right: var(--spacing-sm) !important;
        max-width: none !important;
        top: calc(var(--navbar-height) + var(--spacing-sm)) !important;
    }

    /* Tabs */
    .tabs, .tab-nav, .tab-buttons { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap !important; }
    .tabs .tab-btn, .tab-nav .tab-btn, .tab-buttons .tab-btn { white-space: nowrap; flex-shrink: 0; }

    /* Stats Row */
    .stats-row-compact { flex-direction: column !important; gap: var(--spacing-sm) !important; }
    .stats-row-compact .stat-item { text-align: center; }

    /* Responsibilities */
    .responsibilities-grid { grid-template-columns: 1fr !important; }

    /* Versions Table */
    .versions-table td:nth-child(4),
    .versions-table th:nth-child(4) { display: none; }

    /* Category Management */
    .category-grid { grid-template-columns: 1fr !important; }

    /* Person Search */
    .person-search-results { grid-template-columns: 1fr !important; }

    /* Version / Compare */
    .version-show-hero, .compare-hero {
        margin: calc(-1 * var(--spacing-sm)) calc(-1 * var(--spacing-sm)) 0 calc(-1 * var(--spacing-sm)) !important;
        max-width: 100vw;
        overflow-x: hidden;
    }
    .versions-body, .compare-content { padding: var(--spacing-md) !important; }
    .version-show-content { padding: var(--spacing-md) !important; }
    .search-body { padding: var(--spacing-md) !important; }
    .resp-body, .responsibilities-body { padding: var(--spacing-md) !important; }
    .dashboard-body { padding: var(--spacing-md) !important; }
    .quick-actions-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .pinned-services-grid, .pin-grid { grid-template-columns: 1fr !important; gap: var(--spacing-sm) !important; }
}

/* ============================================================
   Small Mobile: <= 480px
============================================================ */
@media (max-width: 480px) {
    .main-content { padding: var(--spacing-sm); }
    .main-content-fullwidth { padding: 0; }

    .hero,
    .hero-header,
    .page-hero,
    .dashboard-hero,
    .orders-hero,
    .services-hero,
    .contacts-hero,
    .cb-hero,
    .topics-header,
    .versions-hero,
    .version-show-hero,
    .compare-hero,
    .search-hero,
    .resp-hero,
    .responsibilities-hero {
        padding: var(--spacing-md) var(--spacing-sm) !important;
    }
    .hero.hero--no-bottom-pad { padding-bottom: 0 !important; }
    .hero__search form { max-width: 100% !important; }

    .ld-hero, .ldv-hero, .lds-hero, .lls-hero, .ldi-hero, .ldr-hero {
        margin: calc(-1 * var(--spacing-xs)) calc(-1 * var(--spacing-xs)) 0 calc(-1 * var(--spacing-xs)) !important;
    }

    .versions-body, .compare-content { padding: var(--spacing-sm) !important; }
    .version-show-content { padding: var(--spacing-sm) !important; }
    .resp-body, .responsibilities-body { padding: var(--spacing-sm) !important; }
    .search-body { padding: var(--spacing-sm) !important; }

    .hero-header h1, .page-hero h1 { font-size: var(--font-size-lg) !important; }
    .hero-greeting h1 { font-size: 1.1rem !important; }

    .stat-grid { grid-template-columns: 1fr 1fr; gap: var(--spacing-xs); }
    .stat-item { padding: var(--spacing-sm); }
    .stat-value { font-size: var(--font-size-lg); }

    .card { border-radius: var(--radius); }
    .dashboard-card { padding: var(--spacing-sm); }
    .dashboard-body { padding: var(--spacing-sm) !important; }

    .quick-actions-grid { grid-template-columns: 1fr !important; }
    .services-grid, .service-grid { grid-template-columns: 1fr !important; }
    .pinned-services-grid, .pin-grid { grid-template-columns: 1fr !important; }

    .btn-sm { font-size: 0.7rem; padding: 0.2rem 0.4rem; }
    .component-item { padding: var(--spacing-sm) !important; }
    .component-item label { font-size: var(--font-size-sm); }

    .page-show-fullwidth .page-body { padding: var(--spacing-sm) !important; }
    .page-show-fullwidth .page-content { padding: var(--spacing-sm); }

    .editor-topbar { flex-direction: column; align-items: stretch; gap: 0.5rem; }
    .topbar-right { justify-content: flex-end; }
    .change-reason-bar { flex-direction: column; align-items: stretch; gap: 0.5rem; }

    .topics-grid { padding: var(--spacing-lg) var(--spacing-sm) !important; gap: var(--spacing-lg) !important; }
    .topic-content { padding: var(--spacing-sm); }
    .topic-visual { height: 100px; }

    /* Notif Dropdown */
    .notif-dropdown { width: calc(100vw - 2rem); right: -3rem; }
    .notif-delete-btn { opacity: 1; }
}