/* Shared mobile constraints; desktop layouts keep their existing dimensions. */
.lb-header-page-actions { display: flex; align-items: center; gap: 8px; }
.lb-header-page-actions:empty { display: none; }
.lb-chart-day-link > .lb-chart-day-label { pointer-events: auto; }
.co-line-name { display: none; }

@media (max-width: 720px) {
    #main, #content, #content-main,
    .lb-dash, .lb-dash > *, .lb-dash-cols > *, .lb-dash-side > *,
    .lb-kpi, .company-section, .lb-ocard, .lb-order-editor {
        min-width: 0;
        max-width: 100%;
    }

    .lb-page-head > div, .lb-greeting > div,
    .lb-company-heading, .lb-company-heading .mtitle,
    .lb-company-address > span, .lb-ocard-user > span,
    .lb-oitem .name, .lb-oitem .item-name-text, .lb-tag > span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .lb-company-head { align-items: flex-start; }
    .lb-company-heading { flex: 1 1 220px; }
    .lb-company-head h2 { align-items: flex-start; line-height: 1.4; }
    .lb-company-head h2 > svg { margin-top: 2px; }
    .lb-company-address { align-items: flex-start; }
    .lb-company-address > svg { margin-top: 2px; }
    .company-section .lb-company-meta { flex-wrap: wrap; gap: 6px; max-width: 100%; }
    .lb-ocard-head { gap: 8px; }
    .lb-ocard-code, .lb-oitem .qty, .lb-oitem .emoji, .lb-ocard-user > svg { flex-shrink: 0; }
    .lb-ocard-id { min-width: 0; overflow-wrap: anywhere; }
    .lb-tag b { flex-shrink: 0; }

    /* A collapsed summary must not show half of a wrapped dish name. */
    .lb-summary-strip:not(.is-expanded) .lb-tags { max-height: none; }
    .lb-summary-strip:not(.is-expanded) .lb-tag:not(.active) { display: none; }
    .lb-summary-strip:not(.is-expanded) .lb-tags:not(:has(.active)) { display: none; }
    .lb-summary-strip .lb-tag, .lb-summary-toggle { min-height: 44px; }
    .lb-container-row { flex-wrap: wrap; }
    .lb-cbtn { min-height: 44px; min-width: 38px; }
    .lb-container-total:empty { display: none; }

    #assemblyHint { padding-right: 58px; }
    #assemblyHint > button.lb-icon-btn { width: 44px !important; height: 44px !important; }
    .lb-date-nav { grid-template-columns: 44px minmax(0, 1fr) 44px; }
    .lb-date-nav .lb-icon-btn { width: 44px; height: 44px; }
    .lb-date-nav .lb-inp { height: 44px !important; }
    /* Date changes already submit the form; no second confirmation on phones. */
    .lb-date-nav button[type="submit"] { display: none; }
    .lb-date-nav #updateTime { grid-column: 1 / -1; }

    .lb-admin-header-inner { gap: 8px; }
    .lb-header-context { gap: 8px; margin-right: 0; }
    .lb-admin-header-actions { gap: 6px; }
    .lb-sidebar-toggle, .lb-theme-toggle, .lb-command-trigger,
    .lb-color-popover > summary.lb-icon-btn { width: 44px; height: 44px; }
    .lb-mobile-sidebar-shell #nav-sidebar { max-width: calc(100vw - 32px); }
    .lb-mobile-sidebar-shell #nav-sidebar a { min-height: 44px; }

    .lb-panel-head { flex-wrap: wrap; }
    .lb-panel-head > .lb-badge { white-space: normal; }
    .lb-chart-summary { flex-wrap: wrap; }
    .lb-chart-legend { flex-wrap: wrap; gap: 6px 12px; }
    .lb-kpi-val { line-height: 1.15; overflow-wrap: anywhere; }
    .lb-kpi-top { gap: 8px; }
    .lb-kpi-delta { text-align: right; }
    .lb-kpi-auto { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .lb-kpi-auto .lb-kpi { padding: 12px; gap: 8px; }
    .lb-kpi-auto .lb-kpi-val { font-size: 22px; }
    .lb-kpi-auto .unit { display: block; margin-top: 4px; font-size: 12px; }
    .lb-toolbar form { min-width: 0; max-width: 100%; flex: 1 1 100%; }
    .lb-toolbar select.lb-inp { width: 100%; min-width: 0 !important; }
    .lb-an-top .lbl .nm { white-space: normal; overflow-wrap: anywhere; }
    .lb-cat-item > summary { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto 16px; gap: 8px; }
    .lb-cat-name { width: auto; min-width: 0; overflow-wrap: anywhere; }
    .lb-cat-barwrap { grid-column: 2 / 4; grid-row: 2; min-width: 0; }
    .lb-cat-right { grid-column: 3; grid-row: 1; }
    .lb-cat-chev { grid-column: 4; grid-row: 1; }
    .lb-cat-dishes { padding-left: 30px; }
    .lb-cat-dish > span { min-width: 0; overflow-wrap: anywhere; }
    .lb-cat-dish > b { white-space: nowrap; flex-shrink: 0; }
    .lb-chip { min-height: 44px; display: inline-flex; align-items: center; }

    /* Scroll the chart itself, keeping each day large enough to tap. */
    #lb-week-chart, .lb-trend-card #an-dyn {
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
    }
    #lb-week-chart svg, .lb-trend-card #an-dyn svg {
        width: var(--lb-chart-width, 100%);
        max-width: none;
        height: 180px;
        display: block;
    }
    .lb-trend-card #an-dyn { height: 212px; }

    /* Related-object tools wrap below their field instead of widening forms. */
    body.change-form #content-main fieldset,
    body.change-form .form-row, body.change-form .field-line,
    body.change-form .field-line > div { min-width: 0; max-width: 100%; }
    body.change-form .related-widget-wrapper { flex-wrap: wrap; gap: 6px; min-width: 0; }
    body.change-form .related-widget-wrapper > select:not(.select2-hidden-accessible),
    body.change-form .related-widget-wrapper > .select2 { min-width: 0; max-width: 100%; flex: 1 0 100%; width: 100% !important; }
    body.change-form .related-widget-wrapper-link { margin-left: 0 !important; }
    body.change-form .related-widget-wrapper > select.select2-hidden-accessible { width: 1px !important; height: 1px !important; flex: none; }
    body.change-form .field-line input:not([type="checkbox"]):not([type="radio"]),
    body.change-form .field-line textarea, body.change-form .field-line select {
        max-width: 100%;
        min-width: 0;
    }
    body.change-form .readonly, body.change-form .help { overflow-wrap: anywhere; }
    .app-menu.model-menuday.change-form #items-group .field-dish .related-widget-wrapper { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .app-menu.model-menuday.change-form #items-group .field-dish .select2 { grid-column: 1 / -1; }
    .app-menu.model-menuday.change-form #items-group .select2-selection__rendered {
        white-space: normal;
        overflow-wrap: anywhere;
        line-height: 1.4;
        padding-block: 10px;
    }

    #changelist-filter > div:last-child { width: min(320px, calc(100vw - 24px)); min-width: 0; margin: 12px; }
    #changelist-filter-close { min-width: 0; }
    .lb-orders-status-tab, .lb-orders-filter-button { min-height: 44px; }
    .lb-order-detail-data, .lb-order-detail-data > div { min-width: 0; }

    /* Editors use stacked, labelled order lines on phones. */
    .co-wrap .co-step { padding: 16px; }
    .co-wrap .co-field { min-width: 0; max-width: 100% !important; }
    .co-wrap .search-row { flex-wrap: wrap; }
    .co-wrap .search-row .co-field { flex: 1 1 100%; }
    .co-wrap .btn-find { min-height: 44px; width: 100%; }
    .co-wrap .stoggle { width: 100%; }
    .co-wrap .stoggle button { flex: 1; min-width: 0; min-height: 44px; padding-inline: 8px; }
    .co-wrap .cont-check { white-space: normal; }
    .co-wrap .btn-save { margin-left: 0; width: 100%; }
    .lb-order-editor .eo-panel > div { min-width: 0; overflow-wrap: anywhere; }
    .lb-order-editor .eo-divider { display: none; }
    .lb-order-editor #lines-table, .co-wrap #lines-table { table-layout: fixed; }
    .lb-order-editor #lines-table thead, .co-wrap #lines-table thead { display: none; }
    .lb-order-editor #lines-table tbody, .co-wrap #lines-table tbody { display: block; }
    .lb-order-editor #lines-table tr, .co-wrap #lines-table tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px;
        gap: 10px;
        padding-block: 14px;
        border-top: 1px solid var(--lb-border);
    }
    .lb-order-editor #lines-table td, .co-wrap #lines-table td {
        min-width: 0;
        padding: 0;
        overflow-wrap: anywhere;
        text-align: left;
        align-self: center;
    }
    .lb-order-editor #lines-table td:first-child, .co-wrap #lines-table td:first-child { grid-column: 1 / -1; }
    .lb-order-editor #lines-table td:nth-child(2), .co-wrap #lines-table td:nth-child(2) { grid-column: 1 / -1; }
    .lb-order-editor #lines-table td:nth-child(4), .co-wrap #lines-table td:nth-child(4) { grid-column: 1 / 3; grid-row: 4; }
    .lb-order-editor #lines-table td:nth-child(5), .co-wrap #lines-table td:nth-child(5) { grid-column: 2 / -1; grid-row: 3; text-align: right; }
    .lb-order-editor #lines-table td:last-child, .co-wrap #lines-table td:last-child { grid-column: 3; grid-row: 4; }
    .lb-order-editor #lines-table td[data-label]::before, .co-wrap #lines-table td[data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 4px;
        color: var(--lb-text-faint);
        font-size: 11px;
    }
    .lb-order-editor .line-qty-btn, .lb-order-editor .line-del, .co-wrap .del-line { width: 44px; height: 44px; }
    .lb-order-editor #lines-table input[name="item_qty[]"] { height: 44px; width: 56px !important; font-size: 16px !important; }
    .co-wrap #lines-table input { min-width: 0; }
    .co-wrap #lines-table input[name="item_name[]"] { display: none; }
    .co-wrap .co-line-name { display: block; color: var(--lb-text); font-weight: 600; line-height: 1.4; }
    .lb-order-editor #totals-panel input[type="number"] { width: 80px; flex-shrink: 0; }

    /* Native iOS inputs stay readable without triggering focus zoom. */
    #main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    #main select, #main textarea { font-size: 16px !important; }

    /* Unfold hides uploads inside a zero-width wrapper; their intrinsic width must also shrink. */
    #main input[type="file"] { width: 100%; min-width: 0; max-width: 100%; }
    .app-menu.model-menuday.change-form #items-group .select2-selection,
    .app-menu.model-menuday.change-form #items-group .select2-selection__rendered {
        height: auto !important;
        min-height: 44px;
        max-height: none !important;
    }
    .app-menu.model-menuday.change-form #items-group .select2-selection__rendered { overflow: visible; }
}

@media (max-width: 480px) {
    .lb-admin-header-inner { display: grid; grid-template-columns: minmax(0, 1fr) 44px 44px; padding-block: 6px; }
    .lb-admin-header-title { grid-column: 1; grid-row: 1; }
    .lb-admin-header-actions { display: contents; }
    .lb-command-trigger { grid-column: 2; grid-row: 1; }
    .lb-theme-toggle { grid-column: 3; grid-row: 1; }
    .lb-header-page-actions { grid-column: 1 / 3; grid-row: 2; justify-content: flex-end; }
    .lb-header-tools { grid-column: 3; grid-row: 2; }
    .lb-header-page-actions:not(:has(a, button)) { display: none; }
    .lb-header-context > a { display: none; }
    .lb-header-context h1 .material-symbols-outlined,
    .lb-header-context h1 > a:not(:last-child) { display: none; }
    .lb-header-context h1 { white-space: normal; overflow-wrap: anywhere; font-size: 14px !important; }
    .lb-header-context h1 > a:last-child { display: block; }
}
