/* 用途：將 API 管理套入官網同版 AdminLTE 4／Bootstrap 5 骨架，保留既有表單元件。 */
:root{--lte-sidebar-width:250px;--lte-sidebar-mini-width:72px;--lte-header-height:64px;--blue:#25282c;--line:#dce0e5;font-family:"Noto Sans TC","Microsoft JhengHei",Arial,sans-serif;color:#343a40;background:#f4f5f7}
body{font-family:inherit;font-size:15px;background:#f4f5f7}.app-wrapper{min-height:100vh}.app-main{min-width:0;padding-bottom:24px}.app-main .app-content-header{padding:22px 28px 0}.app-content-header .container-fluid{padding:0}.breadcrumb{font-size:13px;margin:0;color:#69737d}.breadcrumb a{color:#555}.app-main .app-content{padding:0 28px}.api-page{min-width:0;max-width:1480px;margin:22px auto 0}.api-page.api-auth{max-width:660px;margin:28px auto}.api-no-sidebar .app-wrapper{grid-template-columns:1fr;grid-template-areas:"lte-app-header" "lte-app-main" "lte-app-footer"}
.app-header{background:#fff!important;border-bottom:1px solid #d2d6dc;min-height:64px;padding:10px 22px;z-index:1035}.api-navbar-inner{gap:14px;flex-wrap:nowrap!important;padding:0}.api-navbar-brand{display:flex;align-items:center;gap:14px;min-width:0}.api-brand-link{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;color:#25282c;white-space:nowrap}.api-brand-link:hover{color:#111;text-decoration:none}.api-brand-link img{object-fit:contain}.api-navbar-brand .env{margin:0;font-size:11px;padding:4px 8px}.api-menu-toggle{border:0;background:transparent;color:#343a40;display:flex;align-items:center;justify-content:center;padding:8px;min-width:38px;min-height:38px;border-radius:5px}.api-menu-toggle:hover{background:#eceff2;color:#111}.nav-icon{width:20px;height:20px;flex-shrink:0}.api-user{display:flex;align-items:center;gap:16px;min-width:0;margin-left:auto}.api-account{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#515b65}.api-user form{margin:0;flex-shrink:0}.api-user button{padding:7px 13px;white-space:nowrap;background:#f0f2f4;color:#343a40;border:1px solid #dce0e5}
.app-sidebar{background:#343a40!important;padding:0;border:0;color:#c2c7d0;display:block}.app-sidebar .sidebar-brand{height:64px;border-bottom:1px solid #4b5056;padding:0 16px}.app-sidebar .brand-link{display:flex;align-items:center;gap:12px;margin:0;padding:0;color:#fff;text-decoration:none}.app-sidebar .brand-image{max-height:34px;width:34px;object-fit:contain;opacity:1}.app-sidebar .brand-text{font-size:18px;letter-spacing:.04em}.app-sidebar .sidebar-wrapper{height:calc(100vh - 64px);padding:18px 10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#6d747d #343a40}.app-sidebar .sidebar-menu{gap:5px}.app-sidebar .nav-link{display:flex;align-items:center;gap:12px;color:#c2c7d0;padding:12px 14px;margin:0;border-radius:5px;font-size:14px;background:transparent}.app-sidebar .nav-link:hover{background:#ffffff12;color:#fff;text-decoration:none}.app-sidebar .nav-link p{margin:0;font-size:14px;line-height:1.6}.app-sidebar .nav-link>.nav-icon{width:20px;min-width:20px;height:20px;margin:0}.app-sidebar .nav-treeview .nav-link{padding-left:24px;font-size:13px}.app-sidebar .nav-treeview .nav-link p{font-size:13px}.app-sidebar .nav-treeview .nav-icon{width:17px;min-width:17px;height:17px}.app-sidebar .nav-link.active{color:#222;background:#f3f4f5;font-weight:600}.app-sidebar .api-nav-group{font-weight:600;color:#f0f2f4}.app-sidebar .nav-arrow .nav-icon{width:14px;height:14px}.app-sidebar .nav-treeview{margin:6px 0 10px;padding:0}.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .nav-treeview{display:none!important}.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .nav-link{padding-left:14px}.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .nav-arrow{display:none}.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .brand-link{gap:0}
.api-page h1{font-size:25px;font-weight:600;margin-bottom:12px}.api-page h2{font-size:19px;font-weight:600}.api-page h3{font-size:16px}.api-page .card{border-radius:6px;border-color:#dce0e5;box-shadow:0 1px 3px #00000006}.api-page .lead{font-size:15px;font-weight:400}.api-page .row{margin-left:0;margin-right:0}.api-page .row>*{padding-left:0;padding-right:0}.api-page button:not(.secondary):not(.danger),.api-page .button{background:#292d32}.api-page button:not(.secondary):not(.danger):hover,.api-page .button:hover{background:#111}.api-page input[type=checkbox]{accent-color:#292d32}.app-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:#79828b;border-top:1px solid #dce0e5;background:#fff;margin:0;padding:14px 28px}.api-menu-toggle:focus-visible,.app-sidebar a:focus-visible{outline:2px solid #79b6f2;outline-offset:2px}.api-page .badge{vertical-align:middle}
@media(max-width:991.98px){.app-header{padding:10px 16px}.api-account{max-width:160px}.app-main .app-content-header{padding:20px 18px 0}.app-main .app-content{padding:0 18px}.app-sidebar .sidebar-brand{justify-content:flex-start}.sidebar-open .app-sidebar{z-index:1040}.app-wrapper .sidebar-overlay{z-index:1038}.api-navbar-brand{gap:8px}.api-brand-link{font-size:15px}.api-brand-link img{width:30px;height:30px}.api-page.api-auth{margin-top:22px}}
@media(max-width:650px){.app-header{padding:10px 12px}.api-navbar-inner{gap:6px;flex-wrap:wrap!important}.api-navbar-brand{gap:7px}.api-navbar-brand .env{font-size:10px;padding:3px 5px}.api-brand-link{gap:6px;font-size:14px}.api-user{gap:9px}.api-account{max-width:175px;font-size:12px}.api-user button{font-size:12px;padding:5px 9px}.app-main .app-content-header{padding:18px 16px 0}.app-main .app-content{padding:0 16px}.api-page{margin-top:18px}.api-page h1{font-size:23px}.api-page .card{padding:18px}.app-footer{padding:14px 16px}.api-page .row>.fit{margin-left:0}}

/* 官網共用分頁樣式，來源 pitest_new/contents/backend/css/pagination.css。 */
/* Backend shared pagination styles for application/views/backend/common/pagination.php */
.jstyle-pagination {
    color: #222;
    font-size: 13px;
}

.jstyle-pagination-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
    color: #707070;
}

.jstyle-pagination-summary strong {
    color: #111;
    font-weight: 800;
}

.jstyle-pagination .jstyle-page-btn {
    --bs-btn-bg: #fff;
    --bs-btn-color: #222;
    --bs-btn-border-color: #bbb;
    --bs-btn-hover-bg: #111;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-border-color: #111;
    --bs-btn-active-bg: #111;
    --bs-btn-active-color: #fff;
    --bs-btn-active-border-color: #111;
    min-width: 34px;
    border-radius: var(--radius-md);
    border: 1px solid #bbb !important;
    background-color: #fff !important;
    color: #222 !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
}

.jstyle-pagination .jstyle-page-btn:hover,
.jstyle-pagination .jstyle-page-btn:focus {
    border-color: #111 !important;
    background-color: #111 !important;
    color: #fff !important;
    box-shadow: 0 0 0 .15rem rgba(17, 17, 17, .14) !important;
    outline: 0;
}

.jstyle-pagination .jstyle-page-btn--active,
.jstyle-pagination .jstyle-page-btn--active:hover,
.jstyle-pagination .jstyle-page-btn--active:focus {
    border-color: #111 !important;
    background-color: #111 !important;
    color: #fff !important;
    box-shadow: inset 0 0 0 1px #111, 0 0 0 .15rem rgba(17, 17, 17, .10) !important;
    cursor: default;
}

.jstyle-pagination .jstyle-page-btn:disabled:not(.jstyle-page-btn--active),
.jstyle-pagination .jstyle-page-btn[aria-disabled="true"],
.jstyle-pagination .jstyle-page-btn--ellipsis {
    border-color: #ddd !important;
    background-color: #f3f3f3 !important;
    color: #999 !important;
    opacity: 1;
    cursor: not-allowed;
}

.jstyle-pagination .jstyle-page-btn--ellipsis {
    pointer-events: none;
}

@media (max-width: 767.98px) {
    .jstyle-pagination .jstyle-pagination-buttons {
        display: grid !important;
        grid-template-columns: repeat(var(--jstyle-mobile-page-count, 5), minmax(0, 1fr));
        width: 100%;
        max-width: var(--jstyle-mobile-pagination-max-width, 100%);
        margin-left: auto;
        margin-right: auto;
        gap: .25rem !important;
    }

    .jstyle-pagination .jstyle-page-btn {
        width: 100%;
        min-width: 0;
        padding-left: .25rem;
        padding-right: .25rem;
    }

    .jstyle-pagination .jstyle-page-btn:not(.jstyle-page-btn--active):not(.jstyle-page-btn--ellipsis):not(:disabled):not([aria-disabled="true"]) {
        border-width: 1px !important;
        border-color: #888 !important;
        background-color: #fff !important;
        box-shadow: none;
    }

    .jstyle-pagination .jstyle-page-btn:not(.jstyle-page-btn--active):hover,
    .jstyle-pagination .jstyle-page-btn:not(.jstyle-page-btn--active):focus,
    .jstyle-pagination .jstyle-page-btn--active {
        border-color: #111 !important;
        background-color: #111 !important;
        color: #fff !important;
    }

    .jstyle-pagination .jstyle-page-btn__label {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* API 使用 nonce CSP，不使用行內 style；以有限 data-page-count 選擇手機欄數。 */
.jstyle-pagination{margin-top:24px;--radius-md:4px}.jstyle-page-btn{white-space:nowrap;text-decoration:none}.jstyle-page-btn:hover{text-decoration:none}
.jstyle-pagination-buttons[data-page-count="5"]{--jstyle-mobile-page-count:5;--jstyle-mobile-pagination-max-width:280px}
.jstyle-pagination-buttons[data-page-count="6"]{--jstyle-mobile-page-count:6;--jstyle-mobile-pagination-max-width:336px}
.jstyle-pagination-buttons[data-page-count="7"]{--jstyle-mobile-page-count:7;--jstyle-mobile-pagination-max-width:392px}
.jstyle-pagination-buttons[data-page-count="8"]{--jstyle-mobile-page-count:8;--jstyle-mobile-pagination-max-width:448px}
.jstyle-pagination-buttons[data-page-count="9"]{--jstyle-mobile-page-count:9;--jstyle-mobile-pagination-max-width:100%}
@media(min-width:768px){.jstyle-pagination .jstyle-pagination-mobile{display:none!important}}
@media(max-width:767.98px){.jstyle-pagination .jstyle-pagination-desktop{display:none!important}.jstyle-pagination .jstyle-pagination-mobile{display:grid!important}}

/* 公司主從列表與手機收合卡片；同一套設定表單只渲染一次。 */
.api-selectable-row{cursor:pointer}.api-selectable-row.is-selected>td{background:#e6eff9}.api-selectable-row:focus-visible{outline:2px solid #165eae;outline-offset:-2px}.api-client-summary-name{font-weight:600;font-size:17px;overflow-wrap:anywhere}.api-client-summary-meta{display:block;font-size:13px;color:#65748a;margin-top:8px}.api-client-expand-label{display:block;font-size:12px;font-weight:400;color:#65748a;margin-top:10px}.api-client-card{scroll-margin-top:88px}.api-client-settings{padding-top:18px}.api-client-card>.api-client-summary{line-height:1.6}.api-client-settings h2{overflow-wrap:anywhere}.api-client-settings details{margin:16px 0}.api-client-select-hint[hidden]{display:none}.api-user-name,.api-user-email{overflow-wrap:anywhere}.api-user-email{font-weight:400}
@media(min-width:992px){.api-client-card:not(.is-selected){display:none}.api-client-card>.api-client-summary{display:none}.api-client-card .api-client-settings{padding-top:0}}
@media(max-width:991.98px){.api-client-table,.api-client-select-hint{display:none}.api-client-card{display:block}.api-client-card[open]>.api-client-summary{border-bottom:1px solid #dbe3ed;padding-bottom:18px}.api-client-card .api-client-settings>h2,.api-client-card .api-client-settings>p.muted{display:none}.api-user-name,.api-user-email{display:block}}
.api-audit-dialog{width:min(1000px,calc(100vw - 32px));max-height:85vh;margin:auto;padding:24px;border:1px solid #dbe3ed;border-radius:10px;box-shadow:0 18px 60px #0004;color:#1c2940;background:white}.api-audit-dialog::backdrop{background:#15243888}.api-audit-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.api-audit-dialog-header h2{margin:0;font-size:20px}.api-audit-dialog pre{max-height:55vh;margin-top:18px;text-align:left}.api-audit-dialog [hidden]{display:none!important}.api-audit-dialog-header button{flex-shrink:0}body:has(.api-audit-dialog[open]){overflow:hidden}

.api-client-table a.button,.api-client-table a.button:hover{color:#fff}
/* 桌機列表、分頁、設定區依序排列；手機卡片列表後才顯示分頁。 */
.api-client-layout{display:flex;flex-direction:column;min-width:0}.api-client-layout>.api-client-table{order:0}.api-client-layout>.jstyle-pagination{order:1;margin-bottom:20px}.api-client-layout>.api-client-select-hint{order:2}.api-client-layout>.api-client-card{order:3}
.api-operation-search{display:flex;align-items:flex-end;gap:12px;flex-wrap:nowrap}.api-operation-search>div:first-child{flex:1;min-width:0}.api-operation-search>.fit{flex:0 0 auto}.api-operation-search button{white-space:nowrap}
.api-user-heading{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.api-user-identity{display:block;font-weight:400;font-size:14px;margin-top:8px}.api-user-identity .api-user-email{display:inline}.api-user-heading .api-user-name{display:inline}
@media(max-width:991.98px){.api-client-layout>.jstyle-pagination{order:4}}

