/* ------------------------------------------------------------
   Große Tablets / kleine Laptops
------------------------------------------------------------ */

@media (max-width: 1024px) {
    .snlm_dashboard {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .snlm_header_inner {
        gap: var(--snlm_spacing_md);
    }
}


/* ------------------------------------------------------------
   Tablets
------------------------------------------------------------ */

@media (max-width: 820px) {
    .snlm_header_inner {
        display: grid;
        grid-template-columns: 1fr auto;

        min-height: auto;

        padding: 12px 0;
    }

    .snlm_mobile_nav_toggle {
        display: inline-flex;
    }

    .snlm_navigation {
        display: none;

        grid-column: 1 / -1;

        width: 100%;

        padding-top: 8px;

        border-top: 1px solid var(--snlm_color_border);
    }

    .snlm_navigation.snlm_is_open {
        display: flex;
        align-items: stretch;
        flex-direction: column;
    }

    .snlm_navigation_link {
        justify-content: flex-start;

        width: 100%;

        min-height: 46px;

        padding: 10px 12px;
    }

    .snlm_navigation_dropdown {
        width: 100%;
    }

    .snlm_navigation_dropdown_toggle {
        width: 100%;
    }

    .snlm_navigation_dropdown_arrow {
        margin-left: auto;
    }

    .snlm_navigation_dropdown_menu {
        position: static;

        width: 100%;

        margin-top: 4px;

        padding: 4px 4px 4px 20px;

        background: var(--snlm_color_surface_dark);

        box-shadow: none;
    }

    .snlm_navigation_dropdown_menu a {
        min-height: 44px;
    }

    .snlm_page_header {
        flex-direction: column;
    }

    .snlm_form_row {
        grid-template-columns: 1fr;
    }

    .snlm_table_wrap {
        overflow-x: auto;

        -webkit-overflow-scrolling: touch;
    }

    .snlm_table {
        min-width: 720px;
    }
	
    .snlm_settings_grid {
        grid-template-columns: 1fr;
    }

    .snlm_form_card {
        max-width: none;
    }
}


/* ------------------------------------------------------------
   Große Smartphones
------------------------------------------------------------ */

@media (max-width: 640px) {
    .snlm_container {
        width: min(calc(100% - 20px), var(--snlm_container_width));
    }

    .snlm_main {
        padding: var(--snlm_spacing_lg) 0;
    }

    .snlm_dashboard {
        grid-template-columns: 1fr;
    }

    .snlm_page_title {
        font-size: 1.5rem;
    }

	.snlm_form_actions,
	.snlm_food_form_actions {
		align-items: stretch;
		flex-direction: column;
	}

	.snlm_food_form_actions .snlm_button {
		width: 100%;
	}

	.snlm_food_form_heading {
		align-items: flex-start;
	}

    .snlm_form_actions .snlm_button {
        width: 100%;
    }

    .snlm_button {
        min-height: 46px;
    }

    .snlm_login_page {
        padding: 14px;
    }

    .snlm_login_box {
        padding: 24px 20px;
    }

    .snlm_login_logo {
        width: 52px;
        height: 52px;
    }

    .snlm_login_title {
        font-size: 1.5rem;
    }

    .snlm_toast_container {
        width: calc(100% - 24px);
    }

    .snlm_toast {
        padding: 14px;
    }
	
    .snlm_section_header {
        flex-direction: column;
    }

    .snlm_button_push_right {
        margin-left: 0;
    }
	
    .snlm_page_actions {
        width: 100%;
        justify-content: stretch;
    }

    .snlm_page_actions .snlm_button {
        flex: 1 1 auto;
    }
	
    .snlm_location_place {
        align-items: flex-start;
        flex-direction: column;
    }

    .snlm_location_place_actions {
        width: 100%;
        justify-content: flex-end;
    }

    .snlm_location_objects {
        padding-right: 12px;
        padding-left: 28px;
    }

    .snlm_location_object {
        grid-template-columns:
            18px
            30px
            minmax(0, 1fr)
            auto;
    }

    .snlm_location_object_stock {
        grid-column: 3;
    }

    .snlm_location_object_status {
        grid-column: 3;
    }

	.snlm_location_object_actions {
		grid-column: 4;
		grid-row: 1 / span 3;
	}
	
	.snlm_icon_select_fields {
		grid-template-columns: 1fr;
	}

	.snlm_purchase_source {
		align-items: flex-start;
		flex-direction: column;
	}

	.snlm_purchase_source_main {
		width: 100%;
	}

	.snlm_purchase_source_actions {
		width: 100%;

		justify-content: flex-end;
	}

	.snlm_purchase_source_meta {
		align-items: flex-start;
		flex-direction: column;

		gap: 5px;
	}

	.snlm_purchase_source_image_existing {
		align-items: flex-start;
		flex-direction: column;
	}

	.snlm_dashboard_card {
		min-height: 96px;

		padding: 15px;
	}

    .snlm_dashboard_card_icon {
        width: 48px;
        height: 48px;

        font-size: 1.2rem;
    }

    .snlm_dashboard_card_value {
        font-size: 1.7rem;
    }
	
	
    /* ------------------------------------------------------------
       Kategorien
    ------------------------------------------------------------ */

    .snlm_category_parent {
        align-items: flex-start;
        flex-direction: column;
    }

    .snlm_category_parent_actions {
        width: 100%;
        justify-content: flex-end;
    }

    .snlm_category_children {
        padding-right: 12px;
        padding-left: 28px;
    }

    .snlm_category_child {
        grid-template-columns:
            18px
            30px
            minmax(0, 1fr)
            auto;
    }

    .snlm_category_child_products {
        grid-column: 3;
    }

    .snlm_category_child_status {
        grid-column: 3;
    }

    .snlm_category_child_actions {
        grid-column: 4;
        grid-row: 1 / span 3;
    }
	
}


/* ------------------------------------------------------------
   Kleine Smartphones
------------------------------------------------------------ */

@media (max-width: 480px) {
    .snlm_picker_popup {
        right: auto;
        left: 0;

        width: min(310px, calc(100vw - 48px));
    }

    .snlm_time_picker {
        width: min(260px, calc(100vw - 48px));
    }

    .snlm_container {

    .snlm_brand span {
        font-size: var(--snlm_font_size_sm);
    }

    .snlm_mobile_nav_toggle span {
        display: none;
    }

    .snlm_mobile_nav_toggle {
        width: 44px;

        padding: 0;
    }

    .snlm_login_page {
        align-items: stretch;

        padding: 10px;
    }

    .snlm_login {
        display: flex;
        align-items: center;

        width: 100%;
    }

    .snlm_login_box {
        width: 100%;

        padding: 22px 16px;
    }

    .snlm_card_content {
        padding: 14px;
    }

    .snlm_input,
    .snlm_select,
    .snlm_textarea {
        font-size: 16px;
    }
}


/* ------------------------------------------------------------
   Sehr schmale Displays
------------------------------------------------------------ */

@media (max-width: 360px) {
    .snlm_login_box {
        padding: 18px 14px;
    }

    .snlm_login_title {
        font-size: 1.35rem;
    }

    .snlm_page_title {
        font-size: 1.35rem;
    }

    .snlm_button {
        padding-right: 12px;
        padding-left: 12px;
    }

    .snlm_toast_container {
        width: calc(100% - 16px);
    }
}


/* ------------------------------------------------------------
   Touch-Geräte
------------------------------------------------------------ */

@media (pointer: coarse) {
    .snlm_button,
    .snlm_navigation_link,
    .snlm_input,
    .snlm_select,
    .snlm_input_action {
        min-height: 44px;
    }
}


/* ------------------------------------------------------------
   Reduzierte Animationen
------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {

    .snlm_picker *,
    .snlm_picker *::before,
    .snlm_picker *::after {
        transition: none;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}