.ld-modal { font-size: var(--ld-base-font-size); }
.ld-modal .modal-dialog { width: min(var(--ld-modal-width), calc(100vw - 2rem)); max-width: var(--ld-modal-width); }
.ld-modal .modal-content { max-height: calc(100dvh - 2rem); border-radius: var(--ld-modal-radius); color: var(--ld-brand-primary); background: var(--ld-surface); }
.ld-modal .modal-body { min-height: 0; overflow: auto; color: var(--ld-brand-primary); background: var(--ld-surface); -webkit-overflow-scrolling: touch; }
.ld-modal .modal-footer { color: var(--ld-brand-primary); background: var(--ld-surface); border-color: color-mix(in srgb, var(--ld-brand-primary) 24%, var(--ld-surface)); }
.ld-modal .modal-title { font-size: 1.25em; }
.ld-modal .form-label, .ld-modal .form-check-label { color: var(--ld-brand-primary); font-size: 1em; }
.ld-modal .form-text { color: color-mix(in srgb, var(--ld-brand-primary) 72%, var(--ld-surface)); font-size: .875em; }
.ld-modal .form-control, .ld-modal .form-select { min-height: var(--ld-touch-size); color: var(--ld-brand-primary); background-color: var(--ld-surface); border-color: color-mix(in srgb, var(--ld-brand-primary) 42%, var(--ld-surface)); border-radius: var(--ld-radius); font-size: 1em; }
.ld-modal .form-control::placeholder { color: color-mix(in srgb, var(--ld-brand-primary) 62%, var(--ld-surface)); opacity: 1; }
.ld-modal .form-control:focus, .ld-modal .form-select:focus { color: var(--ld-brand-primary); background-color: var(--ld-surface); border-color: var(--ld-brand-accent); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--ld-brand-accent) 24%, transparent); }
.ld-modal .btn { min-height: var(--ld-touch-size); border-radius: var(--ld-radius); font-size: 1em; }
.ld-modal .btn-outline-secondary { color: var(--ld-brand-primary); border-color: color-mix(in srgb, var(--ld-brand-primary) 55%, var(--ld-surface)); }
.ld-modal .btn-info { color: var(--ld-brand-primary); background: var(--ld-brand-accent); border-color: var(--ld-brand-accent); }
.ld-modal-standard.modal .modal-dialog { position: fixed; left: 50%; top: 50%; inset: 50% auto auto 50%; margin: 0; transform: translate(-50%, -50%); transition: none; }
.ld-modal-standard .modal-content { position: relative; overflow: hidden; }
.ld-modal-standard .modal-content > form { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow: hidden; }
.ld-modal-standard .modal-header { cursor: move; user-select: none; color: var(--ld-text); background: var(--ld-brand-primary); border-bottom-color: color-mix(in srgb, var(--ld-text-muted) 35%, transparent); }
.ld-modal-standard .modal-title { color: var(--ld-text); }
.manual-order-modal.ld-modal { z-index: 12050; }
.manual-order-modal.ld-modal .modal-body { text-align: left; }
.ld-modal-standard .modal-header .btn-close { filter: invert(1) grayscale(1) brightness(2); opacity: .9; }
.ld-modal-standard .ld-modal-resize-handle { position: absolute; right: 4px; bottom: 4px; width: 18px; height: 18px; cursor: nwse-resize; opacity: .7; border-right: 3px solid var(--ld-brand-accent); border-bottom: 3px solid var(--ld-brand-accent); z-index: 3; }
@media (pointer: coarse) {
    .ld-modal-standard.modal .modal-dialog { left: 0 !important; top: 0 !important; inset: 0; width: 100% !important; max-width: 100% !important; height: 100%; min-height: 100%; margin: 0; transform: none !important; }
    .ld-modal-standard .modal-content { height: 100dvh !important; max-height: 100dvh !important; }
    .ld-modal-standard .modal-header { cursor: default; }
    .ld-modal-standard .ld-modal-resize-handle { display: none; }
}

@media (max-width: 820px), (pointer: coarse) {
    /* Fallback per i layout che caricano il componente senza la shell standard. */
    .ld-modal { font-size: calc(var(--ld-mobile-font-size) * var(--ld-ui-scale, 1)); }
    .ld-modal .modal-body { padding: calc(var(--ld-mobile-page-padding) * var(--ld-ui-scale, 1)); }
    .ld-modal .form-control, .ld-modal .form-select, .ld-modal .btn { min-height: calc(var(--ld-mobile-touch-size) * var(--ld-ui-scale, 1)); }
    .ld-modal-standard .modal-footer { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ld-action-gap); }
    .ld-modal-standard .modal-footer .btn { width: 100%; min-width: 0; }
    .manual-order-modal.ld-modal .row > [class*="col-"] { width: 100%; }
    .manual-order-modal.ld-modal .modal-footer { padding-bottom: max(var(--ld-mobile-page-padding), env(safe-area-inset-bottom)); }
    .ld-modal .modal-dialog { width: 100%; max-width: 100%; margin: 0; min-height: 100%; }
    .ld-modal .modal-content { min-height: 100dvh; max-height: 100dvh; border-radius: 0; }
}
