/* ============================================================
 * 全局组件移动端补丁（Cartoon 主题）
 * 覆盖：layer 弹窗 / toastr 通知 / SweetAlert2 / PJAX loading
 * 引入位置：Index/Header.html、Common/Header.html、Authentication/Header.html
 * ============================================================ */

@media screen and (max-width: 768px) {

    /* ---------- layer 弹窗 ---------- */
    /* 非 PC 时 component.js 会将弹窗强制 100%x100%，此处优化全屏下的内容体验 */
    .layui-layer {
        max-width: 100vw;
    }

    .layui-layer-content {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .layui-layer-title {
        font-size: 15px;
        padding-right: 52px; /* 给关闭按钮留位，避免标题被遮挡 */
    }

    .layui-layer-setwin {
        top: 12px;
        right: 12px;
    }

    .layui-layer-setwin .layui-layer-close {
        width: 44px;
        height: 44px;
        line-height: 44px;
        text-align: center;
        background-position: center;
    }

    /* 底部按钮栏：加大触控 + 安全区 */
    .layui-layer-btn {
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
        display: flex;
        gap: 10px;
    }

    .layui-layer-btn a {
        flex: 1 1 auto;
        min-height: 44px;
        line-height: 44px;
        padding: 0 16px;
        margin: 0;
        text-align: center;
        box-sizing: border-box;
    }

    /* alert / confirm / msg 类小弹窗宽度收敛 */
    .layui-layer-dialog {
        width: min(92vw, 420px) !important;
    }

    .layui-layer-msg {
        max-width: 86vw;
        font-size: 14px;
    }

    /* 全屏表单弹窗（自选卡密等）：内容卡片紧凑 + 表格可横滑 */
    .layui-layer .mcy-card {
        padding: 10px;
        border-radius: 8px;
        box-shadow: none;
        border: none;
    }

    .layui-layer .fixed-table-toolbar {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        padding: 0 0 8px;
    }

    .layui-layer .fixed-table-toolbar .search {
        width: 100%;
        float: none;
    }

    .layui-layer .fixed-table-toolbar .search input {
        width: 100%;
        min-height: 44px;
        font-size: 16px;
    }

    .layui-layer .fixed-table-body {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .layui-layer .fixed-table-body > table {
        min-width: 520px;
    }

    /* 弹窗内 layui 表单控件 */
    .layui-layer .layui-input,
    .layui-layer .layui-select,
    .layui-layer .layui-textarea {
        font-size: 16px;
        min-height: 44px;
    }

    /* ---------- component.popup 表单：label 与输入框上下堆叠 ----------
       注意：必须放在本文件（生产环境直接加载），component.css 会被打包进 _.css 无法热更 */
    .component-popup .layui-form-pane .layui-form-label {
        position: static;
        float: none;
        display: block;
        width: 100% !important;
        height: auto;
        padding: 0 0 6px;
        line-height: 1.5;
        text-align: left;
        white-space: normal;
        border: none;
    }

    .component-popup .layui-form-pane .layui-input-block {
        margin-left: 0 !important;
        left: 0;
    }

    .component-popup .layui-card-body {
        padding: 12px 14px 0;
    }

    .component-popup .layui-input,
    .component-popup .layui-select,
    .component-popup .layui-textarea {
        font-size: 16px;
        min-height: 42px;
    }

    /* ---------- toastr 通知 ---------- */
    #toast-container {
        top: calc(10px + env(safe-area-inset-top));
        left: 12px;
        right: 12px;
        width: auto;
        pointer-events: none;
    }

    #toast-container > div {
        width: 100%;
        margin: 0 0 8px;
        border-radius: 10px;
        padding: 12px 14px 12px 44px;
        font-size: 14px;
        box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
        pointer-events: auto;
    }

    /* ---------- SweetAlert2 ---------- */
    .swal2-popup {
        width: min(92vw, 420px) !important;
        font-size: 15px;
        border-radius: 14px;
    }

    .swal2-popup .swal2-title {
        font-size: 17px;
    }

    .swal2-popup .swal2-confirm,
    .swal2-popup .swal2-cancel,
    .swal2-popup .swal2-deny {
        min-height: 44px;
        padding: 0 20px;
        font-size: 15px;
    }

    .swal2-popup .swal2-input,
    .swal2-popup .swal2-select {
        font-size: 16px;
        min-height: 44px;
    }

    /* ---------- bootstrap-table 手机卡片视图 ----------
       配合 Table.enableCardViewOnMobile()：表格行渲染成竖排卡片 */
    .fixed-table-body table.mobile-card-view {
        min-width: 0 !important;
    }

    table.mobile-card-view tbody tr {
        display: block;
        margin: 0 0 10px;
        padding: 8px 12px;
        border: 1px solid #ececf3;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
    }

    table.mobile-card-view tbody td {
        display: block;
        padding: 0;
        border: none !important;
    }

    table.mobile-card-view .card-view {
        display: flex;
        align-items: baseline;
        gap: 8px;
        padding: 7px 0;
        border-bottom: 1px dashed #f0eef5;
    }

    table.mobile-card-view .card-view:last-child {
        border-bottom: none;
    }

    table.mobile-card-view .card-view .card-view-title {
        flex: 0 0 88px;
        min-width: 88px !important;
        color: #9aa0a6;
        font-size: 12px;
        font-weight: 600;
    }

    table.mobile-card-view .card-view .card-view-value {
        flex: 1 1 auto;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    /* 卡片内操作按钮：加大触控并允许换行 */
    table.mobile-card-view .card-view .card-view-value .a-badge-glass {
        display: inline-flex;
        align-items: center;
        min-height: 36px;
        padding: 5px 12px;
        margin: 2px 8px 2px 0;
    }

    table.mobile-card-view .card-view textarea,
    table.mobile-card-view .card-view .secret {
        width: 100%;
        max-width: 100%;
    }

    /* ---------- PJAX 加载层（原样式缺失，补一个居中 spinner） ---------- */
    .net-loading {
        position: fixed;
        inset: 0;
        z-index: 99999999;
        background: rgba(255, 255, 255, 0.55);
    }

    .net-loading .loading-view {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    .net-loading .loading-image {
        width: 42px;
        height: 42px;
        border: 4px solid #f3c6de;
        border-top-color: #f1589e;
        border-radius: 50%;
        animation: net-loading-spin 0.8s linear infinite;
    }

    @keyframes net-loading-spin {
        to {
            transform: rotate(360deg);
        }
    }
}
