
        /* 檔案上傳樣式（與新增房東上傳身分證統一；放全站以支援 AJAX 注入的表單） */
        .ocr-file-picker { position: relative; display: block; }
        .ocr-file-picker-input { position: absolute; left: 0; top: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; }
        .ocr-file-picker-label { display: flex; align-items: center; width: 100%; height: 44px; background: #fff; border: 1.5px dashed #17408B; border-radius: 6px; padding: 8px 12px; cursor: pointer; transition: background .15s, border-color .15s; margin-bottom: 0; }
        .ocr-file-picker-label:hover { background: #eef4ff; border-color: #0d2a5c; }
        .ocr-file-picker-btn { background: #17408B; color: #fff; padding: 4px 12px; border-radius: 4px; font-size: 13px; font-weight: 600; white-space: nowrap; margin-right: 10px; }
        .ocr-file-picker-hint { color: #555; font-size: 13px; flex: 1; min-width: 0; }

        /* 案件備註唯讀顯示（規格 805；催收管理/催收查詢/總明細三頁展開面板共用，放全站以支援 AJAX 注入的表單） */
        .case-memo-readonly { min-height: 2.5em; white-space: pre-wrap; background: #f5f5f5; border-radius: 4px; padding: 6px 8px; }

        /* 全局字體大小調整 */
        body {
            font-size: 1rem;
        }

        h1, .h1 {
            font-size: 2.5rem;
        }

        h2, .h2 {
            font-size: 2rem;
        }

        h3, .h3 {
            font-size: 1.75rem;
        }

        h4, .h4 {
            font-size: 1.5rem;
        }

        h5, .h5 {
            font-size: 1.25rem;
        }

        h6, .h6 {
            font-size: 1.1rem;
        }

        h1, .h1 {
            font-size: 2.5rem;
        }

        h2, .h2 {
            font-size: 2rem;
        }

        h3, .h3 {
            font-size: 1.75rem;
        }

        h4, .h4 {
            font-size: 1.5rem;
        }

        h5, .h5 {
            font-size: 1.25rem;
        }

        h6, .h6 {
            font-size: 1.1rem;
        }

        /* 匯款銀行帳戶資訊表格樣式 */
        .bank-account-table {
            width: 100% !important;
            margin-bottom: 1rem !important;
            background-color: #fff !important;
            border-radius: 0.5rem !important;
            overflow: hidden !important;
        }

            .bank-account-table th {
                background-color: #f8f9fa !important;
                color: #344767 !important;
                font-weight: 600 !important;
                padding: 1rem !important;
                border-bottom: 2px solid #e9ecef !important;
            }

            .bank-account-table td {
                padding: 1rem !important;
                vertical-align: middle !important;
                border-bottom: 1px solid #e9ecef !important;
            }

            .bank-account-table tr:last-child td {
                border-bottom: none !important;
            }

        /* 匯款銀行帳戶資訊標題樣式 */
        .bank-account-title {
            background-color: #17408B !important;
            color: #fff !important;
            font-weight: bold !important;
            padding: 0.75rem 1rem !important;
            border-radius: 0.5rem 0.5rem 0 0 !important;
            margin-bottom: 0 !important;
        }

        /* 標籤文字樣式 */
        label,
        .form-label {
            font-size: 1rem !important;
            font-weight: 500 !important;
            color: #344767 !important;
            /* margin-bottom: 0 !important; */
        }

        .form-check {
            margin-right: 1rem !important;
            margin-left: 1rem !important;
        }

        /* 表格文字大小 */
        table {
            font-size: 1rem !important;
        }

        /* 按鈕文字大小 */
        .btn {
            font-size: 1rem !important;
            padding: 0.75rem 1.5rem !important;
        }

        /* 下拉選單文字大小 */
        .dropdown-menu {
            font-size: 1rem !important;
        }

        /* 卡片標題文字大小 */
        .card-title {
            font-size: 1.25rem !important;
        }

        /* 導航欄文字大小 */
        .navbar .nav-link {
            font-size: 1rem !important;
        }

        /* 側邊欄文字大小 */
        .sidenav .nav-link {
            font-size: 1rem !important;
        }

        /* Navbar 樣式 */
        @media(min - width: 992px) {
            .navbar-nav-menu {
                margin-left: auto !important;
            }

                .navbar-nav-menu .nav-item {
                    margin-left: 1rem;
                }
        }

        .select2-container--bootstrap-5 .select2-selection {
            min-height: 38px;
        }

        .select2-container--bootstrap-5 .select2-selection--single {
            padding-top: 5px;
        }

        /* 清冊選單項目換行樣式 */
        #settlementSubmenu .nav-link-text {
            white-space: normal;
            line-height: 1.4;
            display: inline-block;
        }

        /* 預設隱藏選單項目，防止權限載入前的閃爍 */
        body.permissions-loading #sidenav-main .nav-item, 
        body.permissions-loading #sidenav-main .collapse {
            display: none !important;
        }
        /* 首頁預設顯示 */
        body.permissions-loading #sidenav-main .nav-item:first-child {
            display: block !important;
        }
    

        /* Excel 下載控管：未開啟職稱者隱藏所有匯出/下載 Excel 按鈕（deterministic：既有 id ＋共用 class） */
        body.no-excel-download #exportBtn,
        body.no-excel-download #exportTenantIdentityBtn,
        body.no-excel-download #btnExportExcel,
        body.no-excel-download .excel-export-btn { display: none !important; }
    
#menuDataMaintenance:not(.dm-allowed){display:none!important}

                #menuFlow{padding:4px 12px 10px;display:flex;flex-direction:column}
                #menuFlow .sf-step{display:flex;gap:12px;align-items:center;justify-content:center;padding:9px 8px;border-radius:12px;text-decoration:none;color:inherit;transition:background .15s}
                #menuFlow .sf-step:hover{background:#eef1f6}
                #menuFlow .sf-step.sf-disabled{opacity:.38;pointer-events:none;cursor:not-allowed}
                #menuFlow .sf-num{flex:none;width:34px;height:34px;border-radius:50%;border:1.5px solid #d6dbe4;color:#67748e;font-size:12px;font-weight:700;display:grid;place-items:center;font-variant-numeric:tabular-nums;background:rgba(52,71,103,.03)}
                #menuFlow .sf-t{display:flex;flex-direction:column;gap:2px;min-width:0;align-items:center;text-align:center}
                #menuFlow .sf-t b{color:#344767;font-size:15px;font-weight:700}
                #menuFlow .sf-tag{font-size:11px;display:inline-flex;align-items:center;gap:5px;color:#67748e}
                #menuFlow .sf-dot{width:7px;height:7px;border-radius:50%}
                #menuFlow .sf-dot.c{background:#3f7fd0}
                #menuFlow .sf-dot.a{background:#d99a13}
                #menuFlow .sf-arrow{width:100%;display:flex;align-items:center;justify-content:center;height:16px;margin:1px 0;color:#9aa6bd}
                #menuFlow .sf-arrow svg{width:16px;height:16px;display:block}
                /* 切換鈕固定在 MENU 最下方。
                   做法：把它放在捲動容器（#sidenav-collapse-main）之外、側欄最底部，
                   側欄本身改成 flex column，選單區佔滿剩餘空間並自行捲動。
                   ⚠ 早期版本用 position:absolute 釘底，但捲動容器的 bottom:0 是「內容底部」
                   而非可視底部，選單一長（手機版）就會浮在選單中間蓋住項目。 */
                /* ⚠ 必須一併蓋掉 Bootstrap .navbar 的 flex-wrap:wrap 與 justify-content:space-between：
                   column 方向 + 固定高度 + wrap 會讓放不下的內容「換到第二欄」，
                   切換鈕就會被擠到側欄右上角（甚至超出側欄）。 */
                #sidenav-main{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;max-height:calc(100vh - 1rem)}
                #sidenav-main #sidenav-collapse-main{flex:1 1 auto;min-height:0;height:auto!important;overflow-y:auto;padding-bottom:0}
                .sf-menu-toggle{flex:0 0 auto;padding:10px 12px;background:#fff;border-top:1px solid #e6e9ef;z-index:5}
                .sf-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eceff4;padding:4px;border-radius:12px;position:relative}
                .sf-toggle button{appearance:none;border:0;background:transparent;cursor:pointer;z-index:1;padding:9px 6px;border-radius:9px;font:inherit;font-size:13px;font-weight:700;color:#67748e;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:color .2s}
                .sf-toggle button svg{width:15px;height:15px}
                .sf-toggle .sf-knob{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 6px);background:#344767;border-radius:9px;transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 6px rgba(0,0,0,.25)}
                .sf-toggle[data-mode="flow"] .sf-knob{transform:translateX(calc(100% + 4px))}
                .sf-toggle[data-mode="std"] .sf-btn-std{color:#fff}
                .sf-toggle[data-mode="flow"] .sf-btn-flow{color:#fff}
                /* 收合(窄軌)：寬版切換鈕換成單一「轉換」圖示鈕，一樣釘在底部 */
                .sf-mini-switch{display:none;width:3rem;height:3rem;margin:0 auto;padding:0;border:0;border-radius:.75rem;background:#eceff4;color:#344767;cursor:pointer;place-items:center;transition:background .15s,color .15s}
                .sf-mini-switch:hover{background:#344767;color:#fff}
                .sf-mini-switch svg{width:1.4rem;height:1.4rem}
                body.sf-mini #sidenav-main .sf-menu-toggle{padding:8px 0}
                body.sf-mini #sidenav-main .sf-menu-toggle .sf-toggle{display:none}
                body.sf-mini #sidenav-main .sf-menu-toggle .sf-mini-switch{display:grid}
                /* 收合(窄軌)：流程版只留數字圈、置中；文字與箭頭隱藏，名稱改由 hover flyout 顯示 */
                body.sf-mini #menuFlow{padding:4px 0 !important}
                body.sf-mini #menuFlow .sf-arrow{display:none}
                body.sf-mini #menuFlow .sf-step{width:3rem;height:3rem;margin:.15rem auto;padding:0;gap:0}
                body.sf-mini #menuFlow .sf-step .sf-t{display:none}
            

    /* ===== 通知鈴鐺 ===== */
    .notif-wrap { position: relative; }
    .notif-bell { position: relative; display: inline-flex; align-items: center; cursor: pointer; }
    .notif-bell .material-symbols-rounded { font-size: 24px; line-height: 1; }
    .notif-badge {
        position: absolute; top: 4px; right: 5px;
        min-width: 16px; height: 16px; padding: 0 4px;
        border-radius: 999px; background: #dc3545; color: #fff;
        font-size: 10.5px; font-weight: 700; line-height: 16px; text-align: center;
        box-shadow: 0 0 0 2px #fff;
        pointer-events: none;
    }
    .notif-panel {
        display: none;
        position: absolute; top: calc(100% + 10px); right: -8px;
        width: 370px; max-width: calc(100vw - 24px);
        background: #fff; border: 1px solid #e5e9f0; border-radius: 12px;
        box-shadow: 0 8px 26px rgba(20, 30, 60, .16);
        z-index: 1050;
    }
    .notif-panel.show { display: block; }
    .notif-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 15px 9px; }
    .notif-title { font-size: 15px; font-weight: 700; color: #1B2330; }
    .notif-readall { font-size: 12px; color: #17408B; text-decoration: none; }
    .notif-readall:hover { text-decoration: underline; color: #17408B; }
    .notif-tabs { display: flex; gap: 6px; padding: 0 12px 9px; border-bottom: 1px solid #EDF0F5; }
    .notif-tab {
        border: 1px solid #DCE2EC; background: #fff; color: #5A6678;
        font-size: 12px; font-weight: 600; border-radius: 999px; padding: 3px 11px; cursor: pointer;
        transition: all .15s;
    }
    .notif-tab.active { background: #17408B; border-color: #17408B; color: #fff; }
    .notif-list { max-height: 400px; overflow-y: auto; padding: 5px 0 7px; }
    .notif-empty { text-align: center; color: #98A3B3; font-size: 13px; padding: 26px 0; }
    .notif-item {
        display: flex; gap: 10px; padding: 10px 15px; cursor: pointer; text-decoration: none;
        border-left: 3px solid transparent;
    }
    .notif-item:hover { background: #F4F7FC; }
    .notif-item.unread { background: #F0F5FF; border-left-color: #17408B; }
    .notif-item.unread:hover { background: #E6EEFB; }
    .notif-cat-dot { flex: none; width: 9px; height: 9px; border-radius: 50%; margin-top: 5px; }
    .notif-cat-audit { background: #235FAE; }
    .notif-cat-arrears { background: #D97706; }
    .notif-cat-announcement { background: #1F7A54; }
    .notif-body { min-width: 0; flex: 1; }
    .notif-item-title { font-size: 13.5px; font-weight: 600; color: #1B2330; line-height: 1.35;
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .notif-item.unread .notif-item-title { font-weight: 700; }
    .notif-meta { display: flex; align-items: center; gap: 8px; margin-top: 3px; }
    .notif-cat-label { font-size: 11px; font-weight: 600; }
    .notif-cat-label.audit { color: #235FAE; }
    .notif-cat-label.arrears { color: #D97706; }
    .notif-cat-label.announcement { color: #1F7A54; }
    .notif-time { font-size: 11px; color: #98A3B3; }
    .notif-unread-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #17408B; margin-top: 6px; }
    @media (max-width: 575.98px) {
        .notif-panel { position: fixed; top: 62px; right: 12px; left: 12px; width: auto; }
    }

    /* 覆蓋 Material Dashboard 的預設樣式 */
    .sidenav-toggler-inner {
        background-color: transparent !important;
    }

    .sidenav-toggler-inner:hover 
        background-color: rgba(0, 0, 0, 0.05) !important;
    }

    .sidenav-toggler-inner:active {
        background-color: rgba(0, 0, 0, 0.1) !important;
    }

    /* 導航欄樣式 */
    .navbar-main {
        padding: 0.5rem 1rem;
        background-color: #fff;
        z-index: 888;
        box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
        border: 1px solid #e5e5e5;
    }

    .navbar-main .nav-link {
        padding: 0.5rem 1rem;
    }

    .navbar-main .dropdown-menu {
        min-width: 300px;
    }

    .navbar-main .avatar {
        width: 32px;
        height: 32px;
    }

    /* 確保導航項目靠右對齊 */
    .navbar-main .navbar-nav {
        margin-left: auto !important;
    }

    .navbar-main .nav-item {
        display: flex;
        align-items: center;
    }

    /* ===== navbar 內部（第 1 種）：麵包屑＋通知＋頭像；外框維持現況 ===== */
    .navbar-main .nbx { display: flex !important; flex-wrap: nowrap !important; align-items: center; justify-content: flex-start !important; gap: 12px; min-height: 44px; }
    /* 麵包屑（桌機≥1200）/ 頁名・漢堡（<1200）：用自訂媒體查詢控制，不依賴 Bootstrap d-xl */
    .navbar-main .nbx-bc { display: block; }
    .navbar-main .nbx-title { display: none; }
    .navbar-main .nbx-burger-item { display: none !important; }
    @media (max-width: 1199.98px) {
        .navbar-main .nbx-bc { display: none !important; }
        .navbar-main .nbx-title { display: block; }
        .navbar-main .nbx-burger-item { display: flex !important; }
    }
    /* 手機開側欄鈕（左） */
    .navbar-main .nbx-burger { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 9px; display: flex; align-items: center; justify-content: center; }
    .navbar-main .nbx-burger:hover { background: #f2f4f7; }
    .navbar-main .nbx-burger .sidenav-toggler-inner { display: flex; flex-direction: column; align-items: center; gap: 0; }
    .navbar-main .sidenav-toggler-line { width: 20px; height: 2px; background-color: #344767; margin: 2px 0; border-radius: 2px; display: block; }
    /* 麵包屑 */
    .navbar-main .nbx-bc .breadcrumb { font-size: 14px; }
    .navbar-main .nbx-bc-root { color: #8a93a2; font-weight: 600; text-decoration: none; }
    .navbar-main .nbx-bc-root:hover { color: #5b6472; }
    .navbar-main .nbx-bc .breadcrumb-item.active { color: #1f2733; font-weight: 800; }
    .navbar-main .nbx-bc .breadcrumb-item + .breadcrumb-item::before { color: #c2ccdb; }
    /* 手機頁名 */
    .navbar-main .nbx-title { font-size: 15px; font-weight: 800; color: #1f2733; white-space: nowrap; }
    /* 右側群組 */
    .navbar-main .nbx-collapse { display: flex; align-items: center; flex-grow: 0; flex-basis: auto; margin-left: auto; }
    .navbar-main .nbx-rt { flex-direction: row; align-items: center; gap: 6px; margin-left: auto; }
    .navbar-main .nbx-rt .nav-item { margin: 0; display: flex; align-items: center; }
    .navbar-main .notif-bell { width: 38px; height: 38px; justify-content: center; border-radius: 10px; color: #5b6472; }
    .navbar-main .notif-bell:hover { background: #f2f4f7; }
    /* 使用者：頭像＋姓名/角色＋箭頭 */
    #userDropdown.nbx-user { display: flex !important; align-items: center; gap: 9px; padding: 4px 8px 4px 5px !important; border-radius: 12px; }
    #userDropdown.nbx-user:hover { background: #f2f4f7; }
    #userIcon { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, #3b6fd6, #17408B); color: #fff; font-size: 13px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; line-height: 1; flex: 0 0 auto; }
    #userNameDisplay { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 3px; line-height: 1.1; }
    #userNameDisplay .nm { font-size: 13px; font-weight: 800; color: #1f2733; line-height: 1.1; }
    #userNameDisplay .rl { font-size: 11px; font-weight: 600; color: #8a93a2; line-height: 1.1; }
    .navbar-main .nbx-chev { font-size: 20px; color: #8a93a2; }
    /* 使用者下拉選單 */
    .navbar-main .nbx-usermenu { min-width: 250px; padding: 0; border: 1px solid #e7ebf1; border-radius: 14px; box-shadow: 0 12px 34px rgba(20, 30, 50, .16); overflow: hidden; margin-top: 8px; }
    .navbar-main .nbx-usermenu .um-head { display: flex; align-items: center; gap: 11px; padding: 15px 16px; border-bottom: 1px solid #eef1f6; }
    .navbar-main .nbx-usermenu .um-avatar { width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, #3b6fd6, #17408B); color: #fff; font-size: 17px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
    .navbar-main .nbx-usermenu .um-id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
    .navbar-main .nbx-usermenu .um-name { font-size: 15px; font-weight: 800; color: #1f2733; line-height: 1.15; }
    .navbar-main .nbx-usermenu .um-role { font-size: 12px; font-weight: 600; color: #8a93a2; line-height: 1.15; }
    .navbar-main .nbx-usermenu .um-info { padding: 11px 16px; }
    .navbar-main .nbx-usermenu .um-row { display: flex; align-items: center; gap: 9px; font-size: 13px; color: #5b6472; font-weight: 600; }
    .navbar-main .nbx-usermenu .um-row i { font-size: 18px; color: #9aa3b1; }
    /* 標頭與資訊列只是顯示、不可點：用一般箭頭游標，不要出現可點的手指游標 */
    .navbar-main .nbx-usermenu .um-head,
    .navbar-main .nbx-usermenu .um-info,
    .navbar-main .nbx-usermenu .um-head *,
    .navbar-main .nbx-usermenu .um-info * { cursor: default; }
    .navbar-main .nbx-usermenu .dropdown-divider { margin: 0; border-color: #eef1f6; opacity: 1; }
    .navbar-main .nbx-usermenu .um-logout { display: flex; align-items: center; gap: 9px; padding: 12px 16px; font-size: 13.5px; font-weight: 700; color: #d24141; cursor: pointer; }
    .navbar-main .nbx-usermenu .um-logout i { font-size: 19px; }
    .navbar-main .nbx-usermenu .um-logout:hover { background: #fdeaea; color: #c0392b; }

    /* 手機裝置樣式 */
    @media (max-width: 991.98px) {
        .navbar-main {
            padding: 0.5rem;
        }

        .navbar-main .container-fluid {
            padding-left: 0.5rem;
            padding-right: 0.5rem;
        }


        .navbar-main .navbar-nav {
            flex-direction: row !important;
            align-items: center !important;
            margin-left: auto !important;
            justify-content: flex-end !important;
        }

        /* 手機版：麵包屑換第一排、圖示列(#navbar)換第二排時，整塊靠右對齊 */
        .navbar-main #navbar {
            margin-left: auto !important;
            width: auto !important;
            flex-basis: auto !important;
        }

        .navbar-main .nav-item {
            margin: 0 0.25rem;
        }

        .navbar-main .dropdown-menu {
            position: absolute !important;
            right: 0 !important;
            left: auto !important;
            width: 300px;
            margin-top: 0.5rem;
        }

        .navbar-main .sidenav-toggler-line {
            width: 20px;
            height: 2px;
            background-color: #344767;
            margin: 2px 0;
            border-radius: 2px;
            transition: all 0.3s ease;
        }

            }

    /* 移除點擊時的黑色背景 */
    .navbar-main .nav-link:focus,
    .navbar-main .nav-link:active,
    .navbar-main .nav-link:hover {
        background-color: transparent !important;
    }

    /* 移除下拉選單的背景遮罩 */
    .navbar-main .dropdown-menu::before {
        display: none !important;
    }

    /* 移除點擊時的背景效果 */
    .navbar-main .nav-item .nav-link:active,
    .navbar-main .nav-item .nav-link:focus {
        background-color: transparent !important;
        box-shadow: none !important;
    }

    .changeIcon .navbar .sidenav-toggler-inner .sidenav-toggler-line:first-child,
    .changeIcon .navbar .sidenav-toggler-inner .sidenav-toggler-line:last-child {
        width: 13px;
        transform: translateX(5px);
    }


  .tali { --bg:#eef1f5; --card:#ffffff; --ink:#1f2733; --ink-soft:#5b6472; --line:#e7ebf1;
    --label:#6b7482; --field-bg:#f4f6f9; --field-line:#dfe4ec;
    --brand:#1E5AC8; --brand-ink:#ffffff; --brand-hover:#17408B; --brand-soft:#eaf0fb;
    --amber:#c77700; --amber-bg:#fff4e2; --blue:#0f8ca0; --blue-bg:#e2f3f6;
    --green:#1f9254; --green-bg:#e6f4ec; --red:#d24141; --red-bg:#fdeaea; --slate:#5b6472; --slate-bg:#eef1f5;
    --shadow:0 1px 3px rgba(20,30,50,.06),0 8px 24px rgba(20,30,50,.05);
    color:var(--ink); font-size:15px; line-height:1.5;
    max-width:none; margin:0; padding:4px 4px 32px; }
  .tali *, .tali *::before, .tali *::after { box-sizing: border-box; }
  .tali h1.page { font-size:26px; font-weight:800; letter-spacing:.5px; margin:0 0 14px; color:var(--brand); }
  .tali .card { display:block; background:var(--card); border-radius:16px; box-shadow:var(--shadow); padding:22px 24px; margin-bottom:22px; border:0; }
  .tali .sec-label { font-size:13px; font-weight:700; color:var(--label); margin:0 0 12px; letter-spacing:.4px; }
  .tali form { margin:0; }

  .tali .filters { display:grid; grid-template-columns:repeat(12,1fr); gap:14px 16px; align-items:end; }
  .tali .fld { display:flex; flex-direction:column; gap:6px; min-width:0; }
  .tali .fld label { font-size:12.5px; color:var(--label); font-weight:600; letter-spacing:.3px; margin:0; white-space:nowrap; }
  .tali .fld input, .tali .fld select { height:42px; border:1px solid var(--field-line); background:#fff; border-radius:10px; padding:0 12px; font-size:14px; color:var(--ink); width:100%; appearance:none; transition:border-color .15s,box-shadow .15s; }
  .tali .fld input:hover, .tali .fld select:hover { border-color:#c2ccdb; }
  .tali .fld input:focus, .tali .fld select:focus { outline:none; border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-soft); }
  .tali .fld select { background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7482' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>"); background-repeat:no-repeat; background-position:right 12px center; padding-right:34px; }
  .tali .fld input::placeholder { color:#9aa3b1; }
  .tali .daterange { display:flex; align-items:center; gap:6px; }
  .tali .daterange input { min-width:0; flex:1; padding:0 8px; }
  .tali .daterange .dash { color:#9aa3b1; flex:0 0 auto; }
  .tali .col-2 { grid-column:span 2; } .tali .col-3 { grid-column:span 3; } .tali .col-4 { grid-column:span 4; } .tali .col-6 { grid-column:span 6; } .tali .col-9 { grid-column:span 9; } .tali .col-12 { grid-column:span 12; }
  .tali .col-2, .tali .col-3, .tali .col-4, .tali .col-6, .tali .col-9, .tali .col-12 { width:100%; max-width:100%; flex:none; padding-left:0; padding-right:0; }
  .tali .btn { height:42px; border:0; border-radius:10px; padding:0 22px; font-size:14.5px; font-weight:700; line-height:1; display:inline-flex; align-items:center; justify-content:center; gap:6px; cursor:pointer; white-space:nowrap; margin:0; text-transform:none; box-shadow:none; }
  .tali .btn .material-symbols-rounded { font-size:18px; line-height:1; }
  .tali .btn-brand { background:var(--brand); color:var(--brand-ink); }
  .tali .btn-brand:hover { background:var(--brand-hover); color:#fff; }
  .tali .btn-ghost { background:#f2f4f7; color:var(--ink-soft); border:1px solid var(--field-line); }
  .tali .btn-ghost:hover { background:#e9edf2; color:var(--ink-soft); }
  .tali .btn-sm { height:32px; padding:0 12px; font-size:13px; border-radius:8px; font-weight:600; }
  .tali .btn-sm .material-symbols-rounded { font-size:16px; }
  .tali .btn-row { display:flex; justify-content:flex-end; gap:10px; margin-top:4px; }

  /* ===== 審核統計卡 =====
     本頁沒有引用 _TaliListStyle.cshtml（自帶一套 .tali 樣式），故 tiles/tile 需在此定義，
     否則統計卡會退化成純文字直排。數值與配色比照契約查詢頁。 */
  .tali .stat-shell { display:flex; align-items:center; gap:20px; }
  .tali .stat-shell > .sec-label { margin:0; flex:0 0 64px; }
  .tali .tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; flex:1; }
  .tali .tile { border-radius:12px; padding:16px 18px; background:var(--field-bg); border:1px solid var(--line); position:relative; cursor:pointer; transition:box-shadow .15s; }
  .tali .tile:hover { box-shadow:0 0 0 2px rgba(23,64,139,.15); }
  .tali .tile.on { box-shadow:0 0 0 2px var(--brand); }
  .tali .tile .t-top { display:flex; align-items:center; gap:6px; font-size:13px; color:var(--label); font-weight:600; }
  .tali .tile .t-sub { font-size:11.5px; color:#9aa3b1; margin-top:3px; line-height:1.4; }
  .tali .tile .t-num { font-size:28px; font-weight:800; margin-top:8px; line-height:1; font-variant-numeric:tabular-nums; }
  .tali .tile .t-num .unit { font-size:14px; font-weight:600; color:var(--ink-soft); margin-left:3px; }
  .tali .tile.amber { background:var(--amber-bg); border-color:#fbe3bf; } .tali .tile.amber .t-num { color:var(--amber); }
  .tali .tile.blue { background:var(--blue-bg); border-color:#c3e6ea; } .tali .tile.blue .t-num { color:var(--blue); }
  .tali .tile.green { background:var(--green-bg); border-color:#c9e8d5; } .tali .tile.green .t-num { color:var(--green); }
  .tali .tile.red { background:var(--red-bg); border-color:#f6cccc; } .tali .tile.red .t-num { color:var(--red); }
  .tali .tile.slate { background:var(--slate-bg); border-color:#dde2ea; } .tali .tile.slate .t-num { color:var(--slate); }
  .tali .tile.purple { background:#efeafc; border-color:#ddd3f7; } .tali .tile.purple .t-num { color:#6b4fc4; }

  .tali .list-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; gap:10px; flex-wrap:wrap; }
  .tali .list-head .lh-title { font-size:16px; font-weight:800; }
  .tali .list-head .lh-actions { display:flex; gap:10px; }
  .tali .tbl-scroll { overflow-x:auto; border-radius:12px; border:1px solid var(--line); }
  .tali table { width:100%; border-collapse:collapse; font-size:13.5px; min-width:1200px; margin:0; }
  .tali thead th { background:#f6f8fb; color:var(--ink-soft); font-weight:700; text-align:left; padding:12px 14px; white-space:nowrap; border-bottom:1px solid var(--line); }
  .tali tbody td { padding:12px 14px; border-bottom:1px solid #f1f4f8; white-space:nowrap; vertical-align:middle; }
  .tali tbody tr:last-child td { border-bottom:0; }
  .tali tbody tr:hover { background:#fafbfd; }
  .tali .addr { white-space:normal; min-width:180px; max-width:280px; }
  .tali .pill { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:700; }
  .tali .pill::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.9; }
  .tali .pill.slate { color:var(--slate); background:var(--slate-bg); }
  .tali .pill.amber { color:var(--amber); background:var(--amber-bg); }
  .tali .pill.blue { color:var(--blue); background:var(--blue-bg); }
  .tali .pill.green { color:var(--green); background:var(--green-bg); }
  .tali .pill.red { color:var(--red); background:var(--red-bg); }
  .tali .mono { font-variant-numeric:tabular-nums; letter-spacing:.3px; }
  .tali .pager { display:flex; align-items:center; justify-content:space-between; margin-top:14px; font-size:13px; color:var(--ink-soft); }
  .tali .pager .pages { display:flex; gap:6px; }
  .tali .pager .pg { min-width:30px; height:30px; border-radius:8px; border:1px solid var(--field-line); background:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:600; color:var(--ink-soft); cursor:pointer; padding:0 8px; }
  .tali .pager .pg.on { background:var(--brand); color:#fff; border-color:var(--brand); }
  .tali .pager .pg.dis { opacity:.4; cursor:default; }

  /* 排序列：與房客／房東／物件查詢同一套 .sortbar（不再靠 .sorting-component 套皮）*/
  .tali .sortbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin-bottom:16px; padding:12px 14px; background:var(--field-bg); border:1px solid var(--line); border-radius:12px; }
  .tali .sortbar .sb-label { font-size:13px; font-weight:800; color:var(--label); letter-spacing:.4px; }
  .tali .sortbar .sb-group { display:inline-flex; align-items:center; gap:8px; }
  .tali .sortbar .sb-tag { font-size:13px; font-weight:700; color:var(--ink-soft); white-space:nowrap; }
  .tali .sortbar select { height:38px; border:1px solid var(--field-line); background:#fff; border-radius:9px; padding:0 30px 0 12px; font-size:13.5px; color:var(--ink); appearance:none; cursor:pointer; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7482' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>"); background-repeat:no-repeat; background-position:right 10px center; }
  .tali .sortbar .sb-field { min-width:132px; }
  .tali .sortbar .sb-dir { min-width:84px; }
  .tali .sortbar .sb-reset { margin-left:auto; }

  .tali .col-setting { position:relative; display:inline-flex; }
  .tali .icon-btn { width:34px; height:34px; border-radius:8px; border:1px solid var(--field-line); background:#f2f4f7; color:var(--ink-soft); cursor:pointer; display:grid; place-items:center; transition:background .15s,color .15s,border-color .15s; }
  .tali .icon-btn:hover { background:#e9edf2; color:var(--brand); }
  .tali .icon-btn.active { background:#eaf0fb; color:var(--brand); border-color:#c9d9f5; }
  .tali .icon-btn .material-symbols-rounded { font-size:18px; }
  .tali .colpop { position:absolute; top:42px; right:0; width:260px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 10px 34px rgba(20,30,50,.16); padding:10px; z-index:50; display:none; max-height:62vh; overflow:auto; }
  .tali .colpop.open { display:block; }
  .tali .cp-head { display:flex; align-items:center; justify-content:space-between; padding:4px 6px 10px; }
  .tali .cp-head .reset { color:var(--brand); font-weight:700; font-size:13px; cursor:pointer; }
  .tali .cp-head .reset:hover { text-decoration:underline; }
  .tali .cp-sec { color:#9aa3b1; font-size:12px; font-weight:700; padding:8px 6px 4px; }
  .tali .cp-list { display:flex; flex-direction:column; }
  .tali .cp-item { display:flex; align-items:center; gap:9px; padding:7px 6px; border-radius:8px; }
  .tali .cp-item:hover { background:#f6f8fb; }
  .tali .cp-item.drag-over { background:#eaf0fb; box-shadow:inset 0 0 0 1px #c9d9f5; }
  .tali .cp-item.dragging { opacity:.4; }
  .tali .cp-drag { color:#b8c0cc; cursor:grab; user-select:none; font-size:14px; letter-spacing:-3px; line-height:1; }
  .tali .cp-drag:active { cursor:grabbing; }
  .tali .chk { position:relative; display:inline-flex; align-items:center; flex:1; cursor:pointer; margin:0; }
  .tali .chk input { position:absolute; opacity:0; width:0; height:0; }
  .tali .chk .box { width:16px; height:16px; border:1.6px solid #b8c0cc; border-radius:4px; display:grid; place-items:center; flex:0 0 auto; transition:.12s; }
  .tali .chk input:checked + .box { background:var(--brand); border-color:var(--brand); }
  .tali .chk input:disabled + .box { background:#c3ccd8; border-color:#c3ccd8; }
  .tali .chk .box svg { opacity:0; transition:.12s; }
  .tali .chk input:checked + .box svg { opacity:1; }
  .tali .chk .lbl { margin-left:9px; font-size:13.5px; color:var(--ink); }

  /* ===== 審核頁專屬：行內簽約日期、收件勾選、操作按鈕 ===== */
  .tali .signing-date-input { height:32px!important; border:1px solid var(--field-line)!important; border-radius:8px!important; padding:0 8px!important; font-size:13px!important; background:#fff!important; color:var(--ink)!important; box-shadow:none!important; width:112px; min-width:112px; }
  .tali td[data-col="first"], .tali td[data-col="second"] { text-align:center; }
  /* 一次／二次收件勾選：外觀比照房客頁 taud-form.css「精緻方框勾選」（藍底白勾），停用時淡化 */
  .tali td[data-col="first"] input[type="checkbox"], .tali td[data-col="second"] input[type="checkbox"] { -webkit-appearance:none; appearance:none; width:20px; height:20px; min-width:20px; margin:0; padding:0; border:2px solid #c7cfdb; border-radius:6px; background:#fff; cursor:pointer; position:relative; vertical-align:middle; transition:background .15s, border-color .15s; }
  .tali td[data-col="first"] input[type="checkbox"]:hover:not(:disabled), .tali td[data-col="second"] input[type="checkbox"]:hover:not(:disabled) { border-color:var(--brand); }
  .tali td[data-col="first"] input[type="checkbox"]:checked, .tali td[data-col="second"] input[type="checkbox"]:checked { background:var(--brand); border-color:var(--brand); }
  .tali td[data-col="first"] input[type="checkbox"]:checked::after, .tali td[data-col="second"] input[type="checkbox"]:checked::after { content:""; position:absolute; left:5.5px; top:1.5px; width:5px; height:10px; border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg); }
  .tali td[data-col="first"] input[type="checkbox"]:focus-visible, .tali td[data-col="second"] input[type="checkbox"]:focus-visible { outline:none; box-shadow:0 0 0 3px var(--brand-soft); }
  .tali td[data-col="first"] input[type="checkbox"]:disabled, .tali td[data-col="second"] input[type="checkbox"]:disabled { cursor:not-allowed; background:#f1f4f8; border-color:#dde3eb; }
  .tali td[data-col="first"] input[type="checkbox"]:checked:disabled, .tali td[data-col="second"] input[type="checkbox"]:checked:disabled { background:#9db6e4; border-color:#9db6e4; }
  .tali td[data-col="actions"] { min-width:210px; }
  .tali td[data-col="actions"] > div { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
  .tali td[data-col="actions"] .btn { height:30px!important; min-width:auto!important; width:auto!important; padding:0 12px!important; font-size:12.5px!important; font-weight:700!important; line-height:1!important; border-radius:8px!important; margin:0!important; box-shadow:none!important; display:inline-flex!important; align-items:center; justify-content:center; white-space:nowrap; text-transform:none!important; }

  @media(max-width:900px){
    .tali .list-head { flex-direction:column; align-items:stretch; gap:12px; }
    .tali .list-head .lh-actions { flex-wrap:wrap; gap:10px; }
    .tali .list-head .lh-actions > .btn { flex:1 1 100%; }
    .tali .list-head .lh-actions > .btn:last-of-type { flex:1 1 auto; }
    .tali .list-head .lh-actions > .col-setting { flex:0 0 auto; }
    .tali .col-2, .tali .col-3, .tali .col-4, .tali .col-6, .tali .col-9 { grid-column:span 12; }
    /* 統計卡手機版：兩欄，並讓標題與卡片直排（比照其他列表頁） */
    .tali .tiles { grid-template-columns:repeat(2,1fr); }
    .tali .stat-shell { flex-direction:column; align-items:stretch; gap:12px; }
    .tali .stat-shell > .sec-label { flex:none; }
  }


    /* 排序區：桌面版完全不介入 —— .sortwrap 不套任何樣式、標題隱藏，
       版面與房東／物件查詢頁一模一樣（list-head 之後、表格之前的一條灰底列）。 */
    .tali .sortwrap-head { display: none; }

    @media (max-width: 900px) {
        /* 手機版：排序已被 JS 搬到清單卡之前，成為頂層獨立區塊。
           這裡讓它的外觀與其他 .card 一致（白底圓角＋相同間距）。 */
        /* 外觀對齊 .tali .card（padding 22px 24px／radius 16px／margin-bottom 22px），
           標題文字與右側圖示才會跟上方查詢卡切齊 */
        .tali .sortwrap {
            background: var(--card, #fff);
            border-radius: 16px;
            padding: 22px 24px;
            margin-bottom: 22px;
            box-shadow: var(--shadow, 0 1px 2px rgba(16, 24, 40, .04));
        }
        .tali .sortwrap-head {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 15px;
            font-weight: 800;
            color: var(--ink, #1f2733);
            cursor: pointer;
            user-select: none;
            margin-bottom: 14px;
            padding-bottom: 12px;
            border-bottom: 1px solid var(--line, #e7ebf1);
            min-height: 32px;   /* 與圖示同高，兩張卡的標題列高度一致 */
        }
        /* 箭頭用 SVG 不用 U+25BE 字元：iOS 的字型沒有這個字，Safari 會畫成
           缺字方框（框內是兩行十六進位碼 25BE），實機確認過。 */
        .tali .sortwrap-head::after {
            content: "";
            margin-left: auto;
            width: 32px;
            height: 32px;
            flex: 0 0 auto;
            border-radius: 9px;
            background-color: var(--brand-soft, #eaf0fb);
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231E5AC8' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
            background-repeat: no-repeat;
            background-position: center;
            transition: transform .18s ease;
        }
        .tali .sortwrap.tali-collapsed > .sortwrap-head {
            margin-bottom: 0;
            padding-bottom: 0;
            border-bottom: 0;
        }
        .tali .sortwrap.tali-collapsed > .sortwrap-head::after { transform: rotate(-90deg); }
        .tali .sortwrap.tali-collapsed > .sortbar { display: none !important; }
        /* 裁成獨立區塊後，內層 .sortbar 不再需要自己的外框（外層已是卡片） */
        .tali .sortwrap > .sortbar { margin: 0; }

        /* 搜尋卡的標題列變成可點的收合列 */
        .tali .card > h1.page {
            cursor: pointer;
            user-select: none;
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 16px;
            padding-bottom: 12px;
            border-bottom: 1px solid var(--line, #e7ebf1);
        }
        /* 搜尋卡的收合圖示用放大鏡（用 SVG 不用圖示字體：字體沒載入時不會變成 "search" 文字）。
           放大鏡沒有方向性，所以狀態改用底色表示：收合＝淡藍底藍圖示、展開＝品牌藍底白圖示。 */
        .tali .card > h1.page::after {
            content: "";
            margin-left: auto;
            width: 32px;
            height: 32px;
            flex: 0 0 auto;
            border-radius: 9px;
            background-color: var(--brand, #1E5AC8);
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4.35-4.35'/></svg>");
            background-repeat: no-repeat;
            background-position: center;
            transition: background-color .15s;
        }
        /* 收合狀態：淡藍底＋藍色放大鏡 */
        .tali .card.tali-collapsed > h1.page::after {
            background-color: var(--brand-soft, #eaf0fb);
            background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231E5AC8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4.35-4.35'/></svg>");
        }
        /* 收合：標題保留、其餘（篩選欄位、按鈕列、排序列）隱藏 */
        .tali .card.tali-collapsed > h1.page {
            margin-bottom: 0;
            padding-bottom: 0;
            border-bottom: 0;
        }
        .tali .card.tali-collapsed > :not(h1.page) { display: none !important; }
    }


        .ai-fallible-note { margin-left:6px; font-size:11px; font-weight:600; color:#fff; }
    