/* Shared layout corrections, loaded after storefront and administration styles.
   Device access policy remains exclusively in the server-side router. */
:root { --site-banner-height: 0px; --site-navigation-height: 100px; }
/* Todos os feeds compartilham as colunas da home, inclusive com poucos produtos. */
@media (max-width: 1440px) {
    :root { --product-feed-columns: 4; }
}
@media (max-width: 1280px) {
    :root { --product-feed-columns: 3; }
}
@media (max-width: 760px) {
    :root { --product-feed-columns: 2; }
}
html { scroll-padding-top: calc(var(--site-navigation-height) + 16px); }
img, video, canvas, iframe { max-width: 100%; }
input, select, textarea { min-width: 0; max-width: 100%; }
fieldset { min-width: 0; }
.container { width: 100%; }
.home_site_header { top: var(--site-banner-height); }
.site-header-page, .home_shell { padding-top: var(--site-navigation-height); }
.cart_page { padding-top: calc(var(--site-navigation-height) + 28px); }
.site_content_page { margin-top: calc(var(--site-navigation-height) + 32px); }
.breadcrumb { left: auto; width: 100%; margin-left: 0; }
.breadcrumb_inner { flex-wrap: wrap; overflow-wrap: anywhere; }
.site_content_body { overflow-wrap: anywhere; }
.site_content_body img { height: auto; }
.taxonomy_show_content_header { flex-wrap: wrap; }
:is(.brand_show_layout, .category_show_layout) > *, :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar_nav { min-width: 0; max-width: 100%; }
@media (max-width: 1100px) {
    :is(.brand_show_layout, .category_show_layout) .home_product_card { min-height: 0; }
    :is(.brand_show_layout, .category_show_layout) .home_product_image { min-height: 0; aspect-ratio: 3 / 4; }
    :is(.brand_show_layout, .category_show_layout) .home_product_current_price { flex-wrap: wrap; gap: 6px; }
}
@media (min-width: 768px) and (max-width: 1100px) {
    :is(.brand_show_layout, .category_show_layout).taxonomy_show_layout { grid-template-columns: 200px minmax(0, 1fr); padding: 20px 16px 40px 0; gap: 16px; }
    :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar { top: calc(var(--site-navigation-height) + 16px); min-height: 0; max-height: calc(100svh - var(--site-navigation-height) - 32px); padding: 16px 12px; }
    :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar_nav { scrollbar-width: thin; }
    :is(.brand_show_layout, .category_show_layout).taxonomy_show_layout :is(.brand_show_content, .category_show_content) { padding: 16px; }
}
@media (max-width: 767px) {
    :is(.brand_show_layout, .category_show_layout).taxonomy_show_layout { grid-template-columns: minmax(0, 1fr); padding: 20px 16px 40px; gap: 20px; }
    :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar { position: static; min-height: 0; max-height: none; padding: 12px; border: 1px solid #e3e8dd; border-radius: 8px; box-shadow: none; }
    :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar_nav { display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden; padding: 0 0 4px; scrollbar-width: thin; }
    :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar_nav a { flex: 0 0 auto; min-width: 0; }
    :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar_nav a:hover,
    :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar_nav a:focus-visible,
    :is(.brand_show_layout, .category_show_layout) .taxonomy_show_sidebar_nav a.is-active { transform: none; }
}
@media (max-width: 560px) {
    :is(.brand_show_layout, .category_show_layout).taxonomy_show_layout { padding: 16px 12px 32px; gap: 16px; }
    :is(.brand_show_layout, .category_show_layout).taxonomy_show_layout :is(.brand_show_content, .category_show_content) { padding: 16px 12px; }
    :is(.brand_show_layout, .category_show_layout) .taxonomy_product_grid { gap: 10px; }
    :is(.brand_show_layout, .category_show_layout) .home_product_info { padding: 12px 8px; }
    :is(.brand_show_layout, .category_show_layout) .home_product_info h3 { font-size: 1.3rem; }
    :is(.brand_show_layout, .category_show_layout) .home_product_info strong { font-size: 1.6rem; }
}
.taxonomy_show_content_header > span { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.home_product_filter, .home_product_filter label { min-width: 0; max-width: 100%; }
.home_product_filter select { max-width: 100%; }
.home_stage, .home_products_showcase, .product_showcase,
.product_show_layout > *, .home_product_grid > *, .cart_layout > *,
.customer_dashboard_shell > *, .admin_dashboard_shell > *,
.admin_dashboard_workspace, .admin_dashboard_content,
.admin_support_workspace > *, .admin_logs_layout > * { min-width: 0; }
.home_product_card, .product_show_content, .cart_item,
.customer_area_content, .admin_dashboard_workspace { overflow-wrap: anywhere; }
.product_show_buy_button { max-width: 100%; white-space: normal; min-height: 44px; }
.admin_users_table_wrapper, .admin_access_permissions_table_wrapper,
.admin_report_table_wrap { max-width: 100%; overflow-x: auto; }
.admin_dashboard_sidebar { max-height: 100svh; overflow-y: auto; }
.customer_ticket_dialog, .customer_email_dialog, .customer_closed_delete_dialog,
.customer_password_dialog, .account_delete_dialog, .account_reactivate_dialog,
.customer_ticket_report_dialog, .admin_log_report_dialog,
.admin_user_modal_dialog, .admin_category_edit_dialog,
.admin_product_badge_modal_dialog, .admin_product_edit_dialog,
.admin_support_email_reply_dialog, .product_stock_alert_dialog, .cart_login_dialog {
    min-width: 0;
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
}

/* Sidebars reduce the available workspace well before phone breakpoints. */
@media (max-width: 1440px) {
    .admin_products_filter_form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .admin_badge_form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .admin_shipping_form, .admin_shipping_region_form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin_user_create_form, .admin_product_create_form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin_customer_filters { grid-template-columns: minmax(0, 1fr) auto auto; }
    .admin_customer_filters > :last-child { max-width: 100%; }
}
@media (max-width: 1100px) {
    .admin_product_card { grid-template-columns: 52px minmax(0, 1fr) auto; }
    .admin_product_main strong, .admin_product_main small { white-space: normal; overflow: visible; }
    .admin_product_price, .admin_product_stock, .admin_product_featured_form,
    .admin_product_status { display: block; grid-column: 2; }
    .admin_product_actions { grid-column: 1 / -1; flex-wrap: wrap; }
    .admin_support_workspace, .admin_logs_layout { grid-template-columns: minmax(0, 1fr); }
    .admin_logs_sidebar { position: static; }
    .admin_order_shipping_form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin_dashboard_home_layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
    :root { --site-navigation-height: 112px; }
    .site_development_banner { height: auto; min-height: 40px; flex-wrap: wrap; gap: 4px 12px; }
    .site_development_banner span { white-space: normal; overflow: visible; }
    .home_header_actions { gap: 8px; }
    .home_header_user_name { max-width: 100px; font-size: 1.2rem; }
    .home_header_search { min-width: 0; width: 100%; }
    .home_header_login_dropdown, .home_header_notification_dropdown, .home_header_user_options {
        position: fixed;
        top: calc(var(--site-navigation-height) + 8px);
        right: 16px;
        left: auto;
        min-width: 0;
        width: min(360px, calc(100vw - 32px));
        max-width: calc(100vw - 32px);
        max-height: calc(100dvh - var(--site-navigation-height) - 24px);
        overflow-y: auto;
    }
    .admin_dashboard_lower_main { display: block; }
    .admin_dashboard_sidebar, .customer_dashboard_sidebar { max-height: none; }
    .admin_dashboard_sidebar_nav { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
    .admin_dashboard_shell.is-sidebar-collapsed .admin_dashboard_sidebar_brand_text,
    .admin_dashboard_shell.is-sidebar-collapsed .admin_dashboard_sidebar_user_info,
    .admin_dashboard_shell.is-sidebar-collapsed .admin_dashboard_sidebar_nav b,
    .admin_dashboard_shell.is-sidebar-collapsed .admin_dashboard_sidebar_logout b { display: block; }
    .admin_product_images_filter_form { grid-template-columns: minmax(0, 1fr) auto auto; }
}
@media (max-width: 720px) {
    .customer_dashboard_sidebar_nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .customer_dashboard_sidebar_nav a { min-width: 0; }
    .customer_dashboard_shell.is-sidebar-collapsed .customer_dashboard_sidebar_brand_text,
    .customer_dashboard_shell.is-sidebar-collapsed .customer_dashboard_sidebar_user_info,
    .customer_dashboard_shell.is-sidebar-collapsed .customer_dashboard_sidebar_nav b,
    .customer_dashboard_shell.is-sidebar-collapsed .customer_dashboard_sidebar_logout b { display: block; }
    .admin_products_filter_form, .admin_badge_form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin_product_image_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin_customer_filters { grid-template-columns: minmax(0, 1fr) auto auto; }
    .home_section_header, .cart_items_toolbar { flex-wrap: wrap; gap: 12px; }
    .product_show_layout { grid-template-columns: minmax(0, 1fr); }
    .product_show_price_row { display: flex; flex-wrap: wrap; }
    .product_show_actions { grid-template-columns: minmax(0, 1fr); }
    .site_footer_inner { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
    .site_footer_links { flex-wrap: wrap; justify-content: center; }
}
@media (max-width: 560px) {
    .taxonomy_show_content_header .home_product_filter { flex: 1 1 100%; }
    .taxonomy_show_content_header .home_product_filter label,
    .taxonomy_show_content_header .home_product_filter select { width: 100%; }
    .home_header_actions { gap: 4px; }
    .home_header_user_toggle { width: 40px; padding: 0; justify-content: center; }
    .home_header_user_name { display: none; }
    .home_header_avatar { width: 28px; height: 28px; flex-basis: 28px; }
    .home_header_icon_button { width: 40px; min-height: 44px; }
    .home_header_search_field input { font-size: 16px; }
    .home_stage { padding: 20px 12px 40px; }
    .home_products_showcase, .product_showcase { padding: 16px 12px; }
    .home_section_header > span { padding-left: 0; }
    .home_product_image { min-height: 180px; }
    .home_product_card { min-height: 0; }
    .home_slide_preview { min-height: 180px; }
    .product_show_gallery { grid-template-columns: minmax(0, 1fr); }
    .product_show_thumbnails { display: flex; overflow-x: auto; max-width: 100%; }
    .product_show_thumbnail { flex: 0 0 72px; }
    .product_show_content h1 { font-size: clamp(2rem, 6vw, 2.6rem); }
    .product_show_buy_button { width: 100%; }
    .breadcrumb_inner { padding: 10px 12px; }
    .customer_area_content, .admin_dashboard_content { padding: 20px 12px; }
    .admin_products_filter_form, .admin_badge_form,
    .admin_user_create_form, .admin_product_create_form,
    .admin_shipping_form, .admin_shipping_region_form,
    .admin_order_shipping_form, .admin_product_images_filter_form,
    .admin_customer_filters { grid-template-columns: minmax(0, 1fr); }
    .admin_products_filter_form > *, .admin_badge_form > *,
    .admin_user_create_form > *, .admin_product_create_form > *,
    .admin_shipping_form > *, .admin_shipping_region_form > *,
    .admin_order_shipping_form > *, .admin_customer_filters > * { grid-column: auto; min-width: 0; }
    .admin_customer_filters label:first-of-type { flex-basis: 100%; }
    .admin_dashboard_workspace input:not([type="checkbox"]):not([type="radio"]),
    .admin_dashboard_workspace select, .admin_dashboard_workspace textarea,
    .customer_area_content input:not([type="checkbox"]):not([type="radio"]),
    .customer_area_content select, .customer_area_content textarea,
    .user_login_page input, .cart_page input, .cart_page select { font-size: 16px; }
    .admin_order_card_header, .admin_product_images_toolbar { flex-wrap: wrap; gap: 12px; }
    .cart_shipping_form, .cart_guest_delivery_form { grid-template-columns: minmax(0, 1fr); }
    .cart_header { flex-wrap: wrap; }
    .user_login_page { padding: 20px 12px; min-height: 100svh; }
}
@media (max-width: 380px) {
    .customer_dashboard_sidebar_nav { grid-template-columns: minmax(0, 1fr); }
}
/* Cards compactos em todos os feeds nas telas menores. */
@media (max-width: 760px) {
    .home_product_grid { gap: 10px; }
    .home_product_card { min-height: 0; }
    .home_product_image { min-height: 0; aspect-ratio: 3 / 4; }
    .home_product_info { padding: 12px 10px; }
    .home_product_info h3 { font-size: 1.3rem; }
    .home_product_current_price { flex-wrap: wrap; gap: 6px; }
    .home_product_info strong { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
    .home_slide_preview_item, .admin_dashboard_shell, .customer_dashboard_shell { transition: none; }
}

/* Mobile: galeria, nome e marca antes das especificacoes. */
@media (max-width: 767px) {
    .product_showcase .product_show_layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .product_show_layout > .product_show_gallery,
    .product_show_gallery > .product_show_gallery_stage,
    .product_show_layout > .product_show_content { display: contents; }
    .product_show_layout .product_show_thumbnails { order: 0; justify-content: flex-start; margin: 0; }
    .product_show_layout .product_show_image { order: 1; }
    .product_show_layout .product_show_content > h1 { order: 2; margin: 0; }
    .product_show_layout .product_show_brand_link,
    .product_show_layout .product_show_content > .product_show_brand_logo { order: 3; justify-self: start; margin: 0; }
    .product_show_layout .product_show_specs { order: 4; margin: 0; }
    .product_show_layout .product_show_description { order: 5; }
    .product_show_layout .product_show_price_row { order: 6; }
    .product_show_layout .product_show_actions { order: 7; }
}

.customer_dashboard_mobile_toggle { display: none; }
@media (max-width: 720px) {
    .customer_dashboard_sidebar .customer_dashboard_sidebar_toggle { display: none; }
    .customer_dashboard_sidebar .customer_dashboard_sidebar_user { display: grid; grid-template-columns: auto auto; justify-content: center; align-items: center; gap: 12px 20px; padding: 16px 0; }
    .customer_dashboard_sidebar .customer_dashboard_sidebar_user_info { grid-column: 1 / -1; text-align: center; }
    .customer_dashboard_mobile_toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 14px; border: 1px solid #dce4ed; border-radius: 10px; background: #fff; color: #18212f; font: inherit; font-size: 14px; cursor: pointer; }
    .customer_dashboard_mobile_toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
    .customer_dashboard_mobile_toggle[aria-expanded="true"] { background: #ccf58d; }
    .customer_dashboard_shell:not(.is-customer-menu-open) .customer_dashboard_sidebar_nav,
    .customer_dashboard_shell:not(.is-customer-menu-open) .customer_dashboard_sidebar_logout_form { display: none; }
    .customer_dashboard_shell.is-customer-menu-open .customer_dashboard_sidebar_nav { display: grid; }
    .customer_dashboard_shell.is-customer-menu-open .customer_dashboard_sidebar_logout_form { display: block; }
}

@media (max-width: 720px) {
    .customer_dashboard_page .customer_dashboard_panel_grid { grid-template-columns: minmax(0, 1fr); }
}

/* Tablet: miniaturas acima da imagem principal. */
@media (min-width: 768px) and (max-width: 1100px) {
    .product_showcase .product_show_layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 24px; align-items: start; }
    .product_show_layout .product_show_gallery { display: contents; }
    .product_show_gallery > .product_show_thumbnails { grid-column: 1; grid-row: 1; display: flex; order: 0; justify-content: flex-start; gap: 10px; max-height: none; overflow-x: auto; overflow-y: hidden; }
    .product_show_gallery > .product_show_gallery_stage { grid-column: 1; grid-row: 2; order: 0; }
    .product_show_layout > .product_show_content { grid-column: 2; grid-row: 2; display: grid; grid-template-rows: none; align-content: start; min-height: 0; padding-top: 0; gap: 16px; }
    .product_show_content > h1 { margin: 0; }
    .product_show_thumbnails .product_show_thumbnail { flex: 0 0 72px; }
}

/* Ajustes dos cards de destaque em tablets; as colunas seguem o feed comum. */
@media (min-width: 768px) and (max-width: 1100px) {
    .product_show_featured_products .home_product_grid { gap: 12px; }
    .product_show_featured_products .home_product_card { min-height: 0; }
    .product_show_featured_products .home_product_image { min-height: 0; aspect-ratio: 3 / 4; }
    .product_show_featured_products .home_product_info { padding: 10px; }
    .product_show_featured_products .home_product_info h3 { font-size: 13px; line-height: 1.35; }
    .product_show_featured_products .home_product_brand { font-size: 11px; }
    .product_show_featured_products .home_product_current_price { flex-wrap: wrap; gap: 6px; }
    .product_show_featured_products .home_product_current_price strong { font-size: 16px; }
}
