/*
 * P1-UI-ALL-MODAL-CLOSE-CONTROL-UNIFY-02A1 / W25-MODAL-U1
 * Presentation-only standard for modal identities owned by registered tools.
 * Existing visibility, close handlers, focus lifecycle and business actions stay authoritative.
 */

.leancs-canonical-tool-modal,
.leancs-canonical-tool-modal * {
    box-sizing: border-box;
}

.leancs-canonical-tool-modal {
    padding: clamp(12px, 3vw, 32px) !important;
    overflow: hidden !important;
    z-index: var(--lc-modal-z-index, 2147483500) !important;
    isolation: isolate !important;
}

.leancs-canonical-modal-surface {
    flex-direction: column !important;
    max-width: calc(100vw - clamp(24px, 6vw, 64px)) !important;
    max-height: calc(100dvh - clamp(24px, 6vw, 64px)) !important;
    overflow: hidden !important;
    border: 1px solid var(--lc-border, #dce3ea) !important;
    border-radius: 16px !important;
    background: var(--lc-surface, #ffffff) !important;
    color: var(--lc-text-strong, #0f2a44) !important;
    box-shadow: 0 22px 60px rgba(15, 42, 68, 0.24) !important;
}

/* Root visibility belongs to the existing modal lifecycle. Only a proved
   nested surface receives canonical flex layout. */
.leancs-canonical-tool-modal > .leancs-canonical-modal-surface {
    display: flex !important;
}

.leancs-canonical-modal-header {
    position: relative !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 16px !important;
    width: 100% !important;
    min-height: 76px !important;
    padding: 20px 76px 20px 24px !important;
    border: 0 !important;
    border-radius: 15px 15px 0 0 !important;
}

.leancs-canonical-tool-modal[data-leancs-modal-tone="brand"] .leancs-canonical-modal-header {
    background: var(--lc-brand-primary, #0b4aa2) !important;
    color: #ffffff !important;
}

.leancs-canonical-tool-modal[data-leancs-modal-tone="light"] .leancs-canonical-modal-header {
    border-bottom: 1px solid var(--lc-border, #dce3ea) !important;
    background: var(--lc-surface, #ffffff) !important;
    color: var(--lc-text-strong, #0f2a44) !important;
}

.leancs-canonical-modal-title {
    margin: 0 !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: clamp(20px, 2.4vw, 26px) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

.leancs-canonical-modal-subtitle {
    margin: 6px 0 0 !important;
    color: inherit !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    opacity: 0.92 !important;
}

.leancs-canonical-modal-body {
    min-height: 0 !important;
    padding: 24px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    background: var(--lc-surface, #ffffff) !important;
}

.leancs-canonical-modal-footer {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    width: 100% !important;
    min-height: 72px !important;
    padding: 14px 24px !important;
    border-top: 1px solid var(--lc-border, #dce3ea) !important;
    background: var(--lc-surface, #ffffff) !important;
}

.leancs-canonical-modal-footer button,
.leancs-canonical-modal-footer [role="button"] {
    min-height: 44px !important;
}

button.leancs-canonical-modal-close {
    appearance: none !important;
    -webkit-appearance: none !important;
    position: absolute !important;
    inset-block-start: 50% !important;
    inset-inline-end: 20px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    border: 1px solid !important;
    border-radius: 10px !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    transform: translateY(-50%) !important;
    opacity: 1 !important;
    cursor: pointer !important;
    z-index: 4 !important;
}

button.leancs-canonical-modal-close::before,
button.leancs-canonical-modal-close::after {
    content: none !important;
    display: none !important;
}

.leancs-canonical-modal-close__icon {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 18px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.75 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    pointer-events: none !important;
}

button.leancs-canonical-modal-close--brand {
    border-color: rgba(255, 255, 255, 0.52) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #ffffff !important;
}

button.leancs-canonical-modal-close--brand:hover {
    border-color: rgba(255, 255, 255, 0.82) !important;
    background: rgba(255, 255, 255, 0.2) !important;
}

button.leancs-canonical-modal-close--brand:active {
    border-color: #ffffff !important;
    background: rgba(255, 255, 255, 0.28) !important;
}

button.leancs-canonical-modal-close--brand:focus-visible {
    border-color: #ffffff !important;
    outline: 2px solid #ffffff !important;
    outline-offset: 2px !important;
    background: rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 0 0 2px rgba(11, 74, 162, 0.72) !important;
}

button.leancs-canonical-modal-close--light {
    border-color: var(--lc-border-strong, #b8c5d1) !important;
    background: var(--lc-surface, #ffffff) !important;
    color: var(--lc-text-strong, #0f2a44) !important;
}

button.leancs-canonical-modal-close--light:hover {
    border-color: var(--lc-brand-primary, #0b4aa2) !important;
    background: var(--lc-brand-soft, #eaf3ff) !important;
    color: var(--lc-brand-primary, #0b4aa2) !important;
}

button.leancs-canonical-modal-close--light:active {
    border-color: var(--lc-brand-primary, #0b4aa2) !important;
    background: var(--lc-brand-soft-strong, #d8e9ff) !important;
    color: var(--lc-brand-primary, #0b4aa2) !important;
}

button.leancs-canonical-modal-close--light:focus-visible {
    border-color: var(--lc-brand-primary, #0b4aa2) !important;
    outline: 2px solid var(--lc-brand-primary, #0b4aa2) !important;
    outline-offset: 2px !important;
    background: var(--lc-surface, #ffffff) !important;
    color: var(--lc-brand-primary, #0b4aa2) !important;
}

.leancs-canonical-modal-original-close[hidden] {
    display: none !important;
}

@media (max-width: 640px) {
    .leancs-canonical-tool-modal {
        padding: 10px !important;
    }

    .leancs-canonical-modal-surface {
        max-width: calc(100vw - 20px) !important;
        max-height: calc(100dvh - 20px) !important;
        border-radius: 14px !important;
    }

    .leancs-canonical-modal-header {
        min-height: 72px !important;
        padding: 16px 68px 16px 18px !important;
        border-radius: 13px 13px 0 0 !important;
    }

    button.leancs-canonical-modal-close {
        inset-inline-end: 14px !important;
    }

    .leancs-canonical-modal-body {
        padding: 18px !important;
    }

    .leancs-canonical-modal-footer {
        gap: 10px !important;
        min-height: 68px !important;
        padding: 12px 18px !important;
    }
}
