@charset "utf-8";

:root {
    --jh-orange: #ff8a18;
    --jh-orange-dark: #f5740d;
    --jh-orange-soft: #fff5e8;
    --jh-ink: #262b35;
    --jh-muted: #7e8796;
    --jh-line: #edf0f4;
    --jh-page: #f3f7fc;
    --jh-white: #fff;
}

* { letter-spacing: 0; }
body { color: var(--jh-ink); }
a:link, a:visited { color: #d98220; }
a:hover, a:active { color: var(--jh-orange-dark); text-decoration: none; }

.admin-detail-modal { max-height: 690px; padding: 18px 20px; overflow: auto; background: #fff; box-sizing: border-box; }
.admin-detail-modal .inline-detail-section { margin-bottom: 20px; }
.admin-detail-modal .inline-detail-section:last-child { margin-bottom: 0; }
.admin-detail-modal .inline-detail-section-title { margin: 0 0 12px; padding-left: 10px; border-left: 3px solid var(--jh-orange); color: #303641; font-size: 15px; line-height: 20px; }
.admin-detail-modal .inline-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #edf0f4; border-left: 1px solid #edf0f4; }
.admin-detail-modal .inline-detail-field { display: grid; grid-template-columns: 105px minmax(0, 1fr); min-height: 38px; border-right: 1px solid #edf0f4; border-bottom: 1px solid #edf0f4; }
.admin-detail-modal .inline-detail-field-full { grid-column: 1 / -1; }
.admin-detail-modal .inline-detail-label { padding: 9px 10px; color: #7e8796; background: #fafbfd; }
.admin-detail-modal .inline-detail-value { min-width: 0; padding: 9px 10px; color: #303641; word-break: break-word; white-space: pre-line; }
.admin-detail-modal .inline-detail-images { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-detail-modal .inline-detail-image { max-width: 84px; max-height: 84px; object-fit: contain; vertical-align: middle; }
.admin-detail-modal .inline-detail-table-wrap { overflow-x: auto; }
.admin-detail-modal .inline-detail-table { width: 100%; min-width: 680px; border-collapse: collapse; }
.admin-detail-modal .inline-detail-table th, .admin-detail-modal .inline-detail-table td { padding: 9px 10px; border: 1px solid #edf0f4; text-align: center; white-space: nowrap; }
.admin-detail-modal .inline-detail-table th { color: #606a78; background: #fafbfd; font-weight: 600; }
.admin-detail-modal .inline-detail-empty-panel, .admin-detail-modal .inline-detail-loading, .admin-detail-modal .inline-detail-error { padding: 30px; color: #87909e; text-align: center; }
@media (max-width: 900px) {
    .admin-detail-modal .inline-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-detail-modal .inline-detail-field-full { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .admin-detail-modal { padding: 12px; }
    .admin-detail-modal .inline-detail-grid { display: block; }
    .admin-detail-modal .inline-detail-field { grid-template-columns: 100px minmax(0, 1fr); }
}

/* Login */
.loginbody {
    min-width: 320px;
    min-height: 100vh;
    background: #eaf4ff url("/static/images/bgimage.png") center center / cover no-repeat fixed;
    overflow: auto;
}
.loginbody:before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,.02);
    pointer-events: none;
}
.login-wrap {
    position: relative;
    top: auto;
    left: auto;
    margin: 0 auto;
    width: 520px;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    padding: 53px 0 51px;
}
.login-brand { height: 104px; margin-bottom: 38px; }
.login-brand img { display: block; width: 142px; height: 104px; object-fit: contain; }
.login-panel {
    width: 520px;
    padding: 51px 46px 39px;
    box-sizing: border-box;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(255,255,255,.9);
    border-radius: 15px;
    box-shadow: 0 18px 50px rgba(90,139,195,.12);
}
.login-logo {
    height: 43px;
    margin: 0 0 38px;
    line-height: 43px;
    text-align: center;
    color: var(--jh-orange);
    font-size: 32px;
    font-weight: 700;
}
.login-form .col { position: relative; padding: 0 0 27px; }
.login-form .col .login-input {
    box-sizing: border-box;
    width: 100% !important;
    height: 55px;
    padding: 0 14px 0 60px !important;
    line-height: 55px;
    color: #303641;
    font-size: 16px;
    background: #f8fafc;
    border: 1px solid #eef1f5;
    border-radius: 10px;
    transition: border-color .2s, box-shadow .2s, background .2s;
}
.login-form .col .login-input:focus {
    background: #fff;
    border-color: #ffbd73;
    box-shadow: 0 0 0 3px rgba(255,138,24,.1);
}
.login-form .col .icon {
    position: absolute;
    display: block;
    top: 19px;
    left: 21px;
    width: 17px;
    height: 17px;
    background: none !important;
    border: 1.5px solid #8b95a3;
    border-radius: 50%;
    box-sizing: border-box;
    pointer-events: none;
    z-index: 2;
}
.login-form .col .icon.user:after {
    content: "";
    position: absolute;
    left: -4px;
    bottom: -8px;
    width: 21px;
    height: 9px;
    border: 1.5px solid #8b95a3;
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
}
.login-form .col .icon.pwd { border-radius: 3px; top: 23px; height: 13px; }
.login-form .col .icon.pwd:before {
    content: "";
    position: absolute;
    left: 3px;
    top: -8px;
    width: 7px;
    height: 8px;
    border: 1.5px solid #8b95a3;
    border-bottom: 0;
    border-radius: 7px 7px 0 0;
}
.login-form .col .icon.captcha { border-radius: 50% 50% 45% 45%; }
.login-form .col .icon.captcha:after {
    content: "";
    position: absolute;
    left: 4px;
    top: 4px;
    width: 5px;
    height: 3px;
    border-left: 1.5px solid #8b95a3;
    border-bottom: 1.5px solid #8b95a3;
    transform: rotate(-45deg);
}
.login-form .col.code {
    --login-input-height: 55px;
    display: block;
}
.login-form .col.code { padding-bottom: 32px; }
.login-form .col.code .login-input { width: 100% !important; padding-right: 112px; }
.login-form .col.code > img {
    position: absolute;
    top: calc(var(--login-input-height) / 2);
    right: 20px;
    width: 80px;
    height: 45px;
    border-radius: 4px;
    object-fit: cover;
    transform: translateY(-50%);
    cursor: pointer;
}
.login-form .col .login-btn {
    width: 100%;
    height: 60px;
    padding: 0;
    line-height: 60px;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 0;
    border-radius: 15px;
    background: linear-gradient(90deg, #ffa42d, #ff7613);
    box-shadow: 0 8px 18px rgba(255,127,17,.2);
    transition: transform .2s, box-shadow .2s;
}
.login-form .col .login-btn:hover { transform: translateY(-1px); box-shadow: 0 11px 24px rgba(255,127,17,.28); }
.login-submit-col { padding-bottom: 0 !important; }
.login-agreement {
    display: flex;
    align-items: center;
    column-gap: 7px;
    text-align: left;
    margin-top: 30px;
    min-height: 22px;
    color: #7d8795;
    font-size: 14px;
    line-height: 22px;
    cursor: pointer;
}
.login-agreement input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.agreement-mark {
    position: relative;
    flex: 0 0 21px;
    width: 21px;
    height: 21px;
    margin-right: 0;
    border-radius: 50%;
    border: 1px solid #d8dee7;
    background: #fff;
    box-sizing: border-box;
}
.agreement-mark:after {
    content: "";
    position: absolute;
    left: 6px;
    top: 4px;
    width: 8px;
    height: 5px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    opacity: 0;
    transform: rotate(-45deg);
}
.login-agreement input:checked + .agreement-mark {
    border-color: #ff9d3c;
    background: #ff9d3c;
}
.login-agreement input:checked + .agreement-mark:after { opacity: 1; }
.agreement-text {
    flex: 1;
    min-width: 0;
    text-align: left;
}
.login-agreement a { color: #ff9833; }
.login-agreement a:hover { color: #f5740d; text-decoration: underline; }
.copy-right { position: fixed; left: 0; right: 0; bottom: 10px; height: 24px; background: transparent; }
.copy-right p { color: #7c8da1; line-height: 24px; }

/* Main shell */
.indexbody { background: var(--jh-page); }
.main-top {
    left: 220px;
    height: 64px;
    z-index: 20;
    background: rgba(247,251,255,.95) !important;
    border: 0;
    border-bottom: 1px solid rgba(228,235,243,.9);
    box-shadow: 0 3px 14px rgba(70,105,145,.04);
}
.main-left { width: 220px; background: rgba(242,248,255,.97) !important; border-right: 1px solid #e8eef5; }
.main-container { top: 64px; left: 220px; background: var(--jh-page); }
.logo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 63px;
    line-height: normal;
    color: #303641;
    font-size: 15px;
    font-weight: 600;
    background: rgba(247,251,255,.95) !important;
    border: 0;
    border-bottom: 1px solid #e8eef5;
    box-sizing: border-box;
}
.logo img { width: 68px; height: 50px; object-fit: contain; }
.icon-menu {
    display: block;
    float: left;
    width: 56px;
    height: 64px;
    border: 0;
    background: none !important;
    position: relative;
    cursor: pointer;
    text-indent: -9999px;
    overflow: hidden;
}
.icon-menu:before {
    content: "";
    position: absolute;
    left: 20px;
    top: 25px;
    width: 18px;
    height: 2px;
    background: #687484;
    box-shadow: 0 6px 0 #687484, 0 12px 0 #687484;
}
.icon-menu:after { display: none !important; content: none; }
.icon-menu:hover:before {
    background: var(--jh-orange-dark);
    box-shadow: 0 6px 0 var(--jh-orange-dark), 0 12px 0 var(--jh-orange-dark);
}
.main-nav a {
    height: 64px;
    padding: 0 18px;
    line-height: 64px;
    color: #667181;
    border: 0;
    border-bottom: 3px solid transparent;
    box-sizing: border-box;
}
.main-nav a.selected, .main-nav a:hover {
    color: var(--jh-orange-dark);
    background: rgba(255,138,24,.05);
    border-bottom-color: var(--jh-orange);
}
.nav-right {
    display: flex;
    align-items: stretch;
    height: 64px;
}
.nav-right .info {
    display: flex;
    align-items: center;
    float: none;
    height: 64px;
    padding: 0 18px 0 0;
    line-height: normal;
}
.nav-right .info .a-avatar {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    margin: 0 10px 0 0;
    border-color: #ffe0bd;
}
.nav-right .info .a-avatar .img { display: block; width: 34px; height: 34px; }
.nav-right .info span.span-pro-info {
    display: block;
    float: none;
    padding-top: 0;
    color: #525d6b;
    line-height: 20px;
    white-space: nowrap;
}
.nav-right .option {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    float: none;
    width: 64px;
    height: 64px;
    padding: 0;
    box-sizing: border-box;
    border-left: 1px solid #e8eef5;
}
.nav-right .option:hover { background: var(--jh-orange-soft); }
.nav-right .option > i {
    display: block;
    width: 11px;
    height: 11px;
    background: none;
    border-right: 3px solid #596575;
    border-bottom: 3px solid #596575;
    transform: translateY(-3px) rotate(45deg);
}
.nav-right .option:hover > i {
    border-color: var(--jh-orange-dark);
}
.drop-wrap { top: 64px; right: 8px; }
.drop-wrap .arrow {
    top: -6px;
    right: 22px;
    width: 12px;
    height: 12px;
    background: #fff;
    border-top: 1px solid #e0e6ed;
    border-left: 1px solid #e0e6ed;
    transform: rotate(45deg);
}
.drop-wrap .item { border-color: var(--jh-line); border-radius: 6px; box-shadow: 0 12px 32px rgba(48,70,96,.12); }
.drop-wrap .item li a { border-radius: 4px; }
.drop-wrap .item li a:hover { background: var(--jh-orange); }
.sidebar-nav .list-group .list-wrap { top: 64px; width: 220px; padding: 12px 12px 24px; box-sizing: border-box; }
.sidebar-nav .list-group h2 {
    height: 40px;
    padding: 0 12px;
    line-height: 40px;
    color: #9ba6b5;
    font-size: 12px;
    border: 0;
}
.sidebar-nav .list-group h2 i { top: 9px; opacity: .45; }
.sidebar-nav .list-group ul li { padding: 2px 0; }
.sidebar-nav .list-group ul li a {
    height: 38px;
    padding: 0 30px 0 12px;
    line-height: 38px;
    color: #4f5a69;
    font-size: 13px;
    border-radius: 5px;
}
.sidebar-nav .list-group ul li a:hover,
.sidebar-nav .list-group ul li a.selected {
    color: #fff;
    background: linear-gradient(90deg, #ffa72e, #ff7a15);
    box-shadow: 0 6px 14px rgba(255,131,20,.18);
}
.sidebar-nav .list-group ul li a .icon { margin-top: 12px; filter: grayscale(1); opacity: .65; }
.sidebar-nav .list-group ul li a.selected .icon { filter: brightness(0) invert(1); opacity: 1; }
.sidebar-nav .list-group ul li a .expandable { top: 13px; opacity: .55; }
.lay-mini .main-container { left: 56px; }
.lay-mini .main-left { width: 56px; background: #f4f9ff !important; border-right-color: #e3ebf4; }
.lay-mini .main-top { left: 56px; }
.lay-mini .logo { height: 64px; }
.lay-mini .logo img { width: 45px; }
.lay-mini .logo span { display: none; }
.lay-mini .sidebar-nav { padding-top: 10px; }
.lay-mini .sidebar-nav .list-group {
    display: block !important;
    width: 56px;
    height: 48px;
    margin: 0;
    padding: 4px 8px;
    box-sizing: border-box;
}
.lay-mini .sidebar-nav .list-group h1 {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    color: #7d8998;
    background: transparent;
    border-radius: 5px;
    box-sizing: border-box;
    transition: color .2s, background .2s, box-shadow .2s;
}
.lay-mini .sidebar-nav .list-group h1 img { display: none; }
.lay-mini .sidebar-nav .list-group h1:before {
    content: "";
    width: 16px;
    height: 13px;
    border: 2px solid currentColor;
    border-radius: 2px;
    box-sizing: border-box;
}
.lay-mini .sidebar-nav .list-group h1:after {
    content: "";
    position: absolute;
    left: 16px;
    top: 18px;
    width: 8px;
    height: 2px;
    background: currentColor;
    box-shadow: 0 4px 0 currentColor;
}
.lay-mini .sidebar-nav .list-group:hover h1 {
    color: var(--jh-orange-dark);
    background: var(--jh-orange-soft);
}
.lay-mini .sidebar-nav .list-group.selected h1,
.lay-mini .sidebar-nav .list-group.selected:hover h1 {
    color: #fff;
    background: linear-gradient(90deg, #ffa72e, #ff7a15) !important;
    box-shadow: 0 6px 14px rgba(255,131,20,.2);
}
.lay-mini .sidebar-nav .list-group .list-wrap {
    left: 55px;
    top: 64px;
    width: 220px;
    padding: 12px;
    background: #f4f9ff !important;
    border-left: 1px solid #e5ecf4;
    box-shadow: 10px 12px 25px rgba(51,75,102,.12);
}
.lay-mini .sidebar-nav .list-group .list-wrap h2 { padding-left: 12px; }
.klwl-title { height: 64px; line-height: 64px; color: #4b5664; background: transparent !important; }

/* Module navigation stays in the sidebar; the header no longer contains module tabs. */
.indexbody-module-sidebar #main-nav { display: none !important; }
.indexbody-module-sidebar #main-nav-klwl { display: block !important; }
.indexbody-module-sidebar .main-top {
    left: 0;
    display: flex;
    align-items: center;
    height: 64px;
    background: #eef8ff !important;
    border-bottom: 0;
    box-shadow: none;
}
.indexbody-module-sidebar .main-left { z-index: auto; }
.indexbody-module-sidebar .main-left .logo {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 21;
    justify-content: flex-start;
    width: 142px;
    height: 64px;
    padding-left: 30px;
    background: #eef8ff !important;
    border: 0;
    box-sizing: border-box;
}
.indexbody-module-sidebar .main-left .logo img {
    width: 72px;
    height: 53px;
    object-fit: contain;
}
.indexbody-module-sidebar .main-left .logo span { display: none; }
.indexbody-module-sidebar .icon-menu { display: none; }
.indexbody-module-sidebar #main-nav-klwl.header-welcome {
    display: flex !important;
    align-items: center;
    height: 64px;
    margin-left: 180px;
    color: #303641;
    font-size: 17px;
    font-weight: 500;
    line-height: 64px;
}
.indexbody-module-sidebar .header-welcome strong {
    margin: 0 6px;
    color: #303641;
    font-weight: 600;
}
.indexbody-module-sidebar .nav-right.header-account {
    display: flex;
    align-items: center;
    float: none;
    height: 64px;
    margin-left: auto;
    padding-right: 28px;
    gap: 10px;
}
.indexbody-module-sidebar .header-action {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    flex: 0 0 33px;
    text-decoration: none;
}
.indexbody-module-sidebar .header-action img {
    display: block;
    width: 33px;
    height: 33px;
}
.indexbody-module-sidebar .nav-right.header-account .header-action { display: none; }
.indexbody-module-sidebar .nav-right.header-account .info {
    height: 64px;
    padding: 0;
}
.indexbody-module-sidebar .nav-right.header-account .info .a-avatar {
    position: relative;
    width: 34px;
    height: 34px;
    margin: 0 0 0 2px;
    overflow: visible;
    border: 0;
}
.indexbody-module-sidebar .nav-right.header-account .info .a-avatar .img {
    width: 34px;
    height: 34px;
    border-radius: 50%;
}
.indexbody-module-sidebar .nav-right.header-account .info span.span-pro-info {
    margin-left: 8px;
    color: #4c5664;
    font-size: 14px;
    font-weight: 500;
}
.indexbody-module-sidebar .pesonal-info-more {
    top: 34px;
    right: 0;
}
.indexbody-module-sidebar.lay-mini .main-top { left: 0; }
.indexbody-module-sidebar.lay-mini .main-left .logo {
    width: 56px;
    padding-left: 6px;
    justify-content: center;
}
.indexbody-module-sidebar.lay-mini .main-left .logo img {
    width: 45px;
    height: 42px;
}
.indexbody-module-sidebar.lay-mini #main-nav-klwl.header-welcome { margin-left: 72px; }
.indexbody-module-sidebar .sidebar-nav {
    position: absolute;
    top: 64px;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 12px 10px 22px;
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
}
.indexbody-module-sidebar .sidebar-nav .list-group {
    display: block !important;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
}
.indexbody-module-sidebar .sidebar-nav .list-group h1 {
    display: flex;
    position: relative;
    align-items: center;
    width: 100%;
    height: 42px;
    margin: 0;
    padding: 0 12px;
    color: #596575;
    font-size: 14px;
    font-weight: 500;
    line-height: 42px;
    border-radius: 5px;
    box-sizing: border-box;
    cursor: pointer;
}
.indexbody-module-sidebar .sidebar-nav .list-group h1:before {
    content: "";
    flex: 0 0 auto;
    width: 15px;
    height: 13px;
    margin-right: 10px;
    border: 1.5px solid currentColor;
    border-radius: 2px;
    box-sizing: border-box;
    opacity: .82;
}
.indexbody-module-sidebar .sidebar-nav .list-group h1 img { display: none; }
.indexbody-module-sidebar .sidebar-nav .list-group h1 span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.indexbody-module-sidebar .sidebar-nav .list-group h1 i {
    position: absolute;
    top: 16px;
    right: 14px;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform .18s ease;
    opacity: .55;
}
.indexbody-module-sidebar .sidebar-nav .list-group:hover h1,
.indexbody-module-sidebar .sidebar-nav .list-group.module-open h1 {
    color: #596575;
    background: transparent;
    box-shadow: none;
}
.indexbody-module-sidebar .sidebar-nav .list-group.module-open h1 i { transform: rotate(225deg); }
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap {
    position: static;
    width: auto;
    padding: 0 0 6px;
    overflow: visible;
    box-sizing: border-box;
}
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap h2 { display: none; }
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap > ul { padding: 2px 0 4px 24px; }
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li { padding: 1px 0; }
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a {
    height: 36px;
    padding: 0 26px 0 12px;
    line-height: 36px;
    color: #667384;
    font-size: 13px;
    border-radius: 5px;
}
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a .icon {
    margin-top: 11px;
    opacity: .58;
}
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a.selected {
    color: #fff;
    background: #ff841d;
    box-shadow: 0 5px 12px rgba(255,132,29,.18);
}
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a.selected .icon {
    filter: brightness(0) invert(1);
    opacity: 1;
}
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a:hover:not(.selected) {
    color: #667384;
    background: transparent;
    box-shadow: none;
}
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul ul { padding-left: 14px; }
.indexbody-module-sidebar .btn-paograms,
.indexbody-module-sidebar .pop-menu { display: none !important; }

.indexbody-module-sidebar.lay-mini .sidebar-nav {
    top: 64px;
    padding: 8px;
    overflow: visible;
}
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group {
    position: relative;
    width: 40px;
    height: 44px;
    margin: 0 0 4px;
}
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group h1 {
    width: 40px;
    height: 40px;
    padding: 0;
    justify-content: center;
}
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group h1:before { margin: 0; }
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group h1 span,
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group h1 i { display: none; }
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group .list-wrap {
    display: none;
    position: absolute;
    top: 0;
    left: 48px;
    width: 220px;
    max-height: calc(100vh - 84px);
    padding: 10px;
    overflow-y: auto;
    background: #f4f9ff;
    border: 1px solid #e5ecf4;
    box-shadow: 10px 12px 25px rgba(51,75,102,.12);
}
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group.module-open .list-wrap { display: block; }
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group .list-wrap h2 {
    display: block;
    height: 34px;
    padding: 0 8px;
    line-height: 34px;
    color: #7d8998;
    font-size: 12px;
}
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group .list-wrap > ul { padding-left: 0; }

/* Inner pages */
.mainbody { margin: 18px 20px; background: var(--jh-page); color: #303641; }
.location {
    height: 28px;
    padding: 0 0 12px;
    line-height: 28px;
    color: #8a94a3;
    border-bottom: 0;
}
.location span:last-child { color: #303641; font-size: 16px; font-weight: 600; }
.toolbar-wrap, .table-container, .edit-content {
    background: #fff;
    box-sizing: border-box;
}
.toolbar-wrap { padding: 16px 18px 8px; border-radius: 7px 7px 0 0; }
.toolbar { padding: 0; }
.toolbar .l-list .icon-list li a, .icon-btn {
    height: 34px;
    padding: 0 13px;
    line-height: 34px;
    color: #515b69;
    background: #fff;
    border: 1px solid #e4e8ee;
    border-radius: 4px;
    box-sizing: border-box;
    margin: 0 7px 6px 0;
}
.toolbar .l-list .icon-list li a:hover, .icon-btn:hover { color: var(--jh-orange-dark); border-color: #ffc27e; background: var(--jh-orange-soft); }
.toolbar .r-list { display: flex; flex-wrap: wrap; gap: 8px; }
.toolbar .r-list .keyword, .toolbar .r-list .keyword_long,
.toolbar .r-list .keyword_manager, .toolbar .r-list .keyword_tx,
.toolbar .r-list select, .toolbar .r-list input[type="text"] {
    float: none;
    height: 36px !important;
    line-height: 34px !important;
    padding: 0 11px !important;
    color: #515b69;
    background: #fff;
    border: 1px solid #e4e8ee !important;
    border-radius: 4px;
    box-sizing: border-box;
}
.toolbar .r-list .btn-search,
.toolbar .r-list .btn-search:hover,
.toolbar .r-list .btn-search:active {
    float: none;
    width: 76px;
    height: 36px;
    margin: 0;
    line-height: 36px;
    color: #fff;
    font-size: 13px;
    text-indent: 0;
    border: 0;
    border-radius: 4px;
    background: #ff841d;
}
/* Shared legacy toolbar layout for list pages that still use .r-list filters. */
.toolbar:not(.filter-toolbar) .box-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
}
.toolbar:not(.filter-toolbar) .l-list {
    display: flex;
    flex: 0 0 auto;
}
.toolbar:not(.filter-toolbar) .l-list .icon-list {
    display: flex;
    flex-wrap: wrap;
    float: none;
    margin: 0;
    padding-bottom: 0;
    gap: 6px;
}
.toolbar:not(.filter-toolbar) .l-list .icon-list li { float: none; }
.toolbar:not(.filter-toolbar) .l-list .icon-list li a { margin: 0; }
.toolbar:not(.filter-toolbar) .r-list {
    display: flex;
    float: none;
    flex: 1 1 420px;
    flex-wrap: wrap;
    align-items: center;
    min-width: 0;
    min-height: 36px;
    gap: 8px;
}
.toolbar:not(.filter-toolbar) .r-list span.words {
    display: flex;
    float: none;
    align-items: center;
    height: 36px;
    margin: 0;
    padding: 0 10px;
    color: #7a8593;
    font-size: 12px;
    line-height: 34px;
    white-space: nowrap;
    background: #f7f9fb;
    border: 1px solid #e4e8ee;
    border-right: 0;
    border-radius: 4px 0 0 4px;
    box-sizing: border-box;
}
.toolbar:not(.filter-toolbar) .r-list span.words + input,
.toolbar:not(.filter-toolbar) .r-list span.words + select,
.toolbar:not(.filter-toolbar) .r-list span.words + .rule-single-select {
    margin-left: -8px;
    border-radius: 0 4px 4px 0;
}
.toolbar:not(.filter-toolbar) .r-list span.words + input,
.toolbar:not(.filter-toolbar) .r-list span.words + select {
    border-left: 1px solid #e4e8ee !important;
}
.toolbar:not(.filter-toolbar) .r-list .rule-single-select {
    float: none;
    height: 36px;
    margin: 0;
}
.toolbar:not(.filter-toolbar) .r-list .single-select { margin-right: 0; }
.toolbar:not(.filter-toolbar) .r-list .single-select .select-tit {
    height: 36px;
    margin: 0;
    padding: 0 34px 0 10px;
    color: #515b69;
    font-size: 13px;
    line-height: 34px;
    border-color: #e4e8ee;
    border-radius: 4px;
    box-sizing: border-box;
}
.toolbar:not(.filter-toolbar) .r-list span.words + .single-select .select-tit { border-radius: 0 4px 4px 0; }
.toolbar:not(.filter-toolbar) .r-list .single-select .select-tit i {
    height: 34px;
    line-height: 34px;
    border-color: #e4e8ee;
    background: #f7f9fb;
}
.toolbar:not(.filter-toolbar) .r-list .single-select .select-items { top: 37px; }
.toolbar:not(.filter-toolbar) .r-list input:focus,
.toolbar:not(.filter-toolbar) .r-list select:focus,
.toolbar:not(.filter-toolbar) .r-list .single-select .select-tit:focus {
    border-color: #ffb760 !important;
    box-shadow: 0 0 0 3px rgba(255,138,24,.08);
}
@media (max-width: 720px) {
    .toolbar:not(.filter-toolbar) .l-list,
    .toolbar:not(.filter-toolbar) .r-list { flex-basis: 100%; }
}
/* Reusable list filter layout: labels and controls stay aligned as a single unit. */
.toolbar.filter-toolbar .box-wrap {
    display: flex;
    align-items: flex-start;
    gap: 12px 18px;
}
.toolbar.filter-toolbar .l-list {
    display: flex;
    flex: 0 0 auto;
}
.toolbar.filter-toolbar .icon-list {
    float: none;
    margin-bottom: 0;
}
.toolbar.filter-toolbar .filter-bar {
    display: flex;
    flex: 1 1 760px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
}
.toolbar.filter-toolbar .filter-field {
    display: flex;
    align-items: center;
    height: 36px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e4e8ee;
    border-radius: 4px;
    box-sizing: border-box;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.toolbar.filter-toolbar .filter-field:focus-within {
    border-color: #ffb760;
    box-shadow: 0 0 0 3px rgba(255,138,24,.08);
}
.toolbar.filter-toolbar .filter-field label {
    display: flex;
    align-items: center;
    align-self: stretch;
    padding: 0 10px;
    color: #7a8593;
    font-size: 12px;
    white-space: nowrap;
    background: #f7f9fb;
    border-right: 1px solid #e4e8ee;
}
.toolbar.filter-toolbar .filter-field input,
.toolbar.filter-toolbar .filter-field select {
    width: 100%;
    height: 34px !important;
    padding: 0 10px !important;
    color: #3e4855;
    font-size: 13px;
    line-height: 34px !important;
    background: #fff;
    border: 0 !important;
    border-radius: 0;
    outline: 0;
    box-sizing: border-box;
}
.toolbar.filter-toolbar .filter-field select { min-width: 0; cursor: pointer; }
.toolbar.filter-toolbar .filter-field-store { flex: 0 1 174px; }
.toolbar.filter-toolbar .filter-field-date { flex: 0 1 202px; }
.toolbar.filter-toolbar .filter-field-status { flex: 0 1 132px; }
.toolbar.filter-toolbar .filter-field-keyword { flex: 0 1 184px; }
.toolbar.filter-toolbar .filter-field-category { flex: 0 1 142px; }
.toolbar.filter-toolbar .filter-submit,
.toolbar.filter-toolbar .filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    height: 36px;
    padding: 0 17px;
    font-size: 13px;
    line-height: 34px;
    text-decoration: none;
    border-radius: 4px;
    box-sizing: border-box;
    cursor: pointer;
}
.toolbar.filter-toolbar .filter-submit {
    color: #fff;
    background: #ff841d;
    border: 1px solid #ff841d;
}
.toolbar.filter-toolbar .filter-submit:hover { background: #ef7313; border-color: #ef7313; }
.toolbar.filter-toolbar .filter-reset {
    color: #657181;
    background: #fff;
    border: 1px solid #dfe5ec;
}
.toolbar.filter-toolbar .filter-reset:hover { color: #ef7313; border-color: #ffbf7b; background: #fff9f1; }
@media (max-width: 1320px) {
    .toolbar.filter-toolbar .box-wrap { display: block; }
    .toolbar.filter-toolbar .l-list { margin-bottom: 8px; }
    .toolbar.filter-toolbar .filter-bar { justify-content: flex-start; }
}
@media (max-width: 720px) {
    .toolbar.filter-toolbar .filter-bar { gap: 7px; }
    .toolbar.filter-toolbar .filter-field { flex: 1 1 100%; }
    .toolbar.filter-toolbar .filter-submit,
    .toolbar.filter-toolbar .filter-reset { flex: 1 1 0; }
}
.table-container { padding: 8px 18px 18px; border-radius: 0 0 7px 7px; }
.ltable { border: 0; font-size: 13px; }
.ltable th {
    padding: 14px 10px;
    color: #4a5360;
    font-size: 13px;
    background: #f7f9fb;
    border: 0;
    border-bottom: 1px solid var(--jh-line);
}
.ltable td { padding: 15px 10px; color: #616b79; border: 0; border-bottom: 1px solid #f0f2f5; }
.ltable tr:hover { background: #fffaf4; }
.input, .select, .select1, textarea, select {
    border-color: #e4e8ee;
    border-radius: 4px;
}
.input:focus { background: #fff; border-color: #ffb760; box-shadow: 0 0 0 3px rgba(255,138,24,.08); }
.edit-content { border: 0; border-radius: 7px; box-shadow: none; }
.content-tab { border-bottom-color: var(--jh-line); }
.content-tab ul li a.selected { color: var(--jh-orange-dark); border-top-color: var(--jh-orange); }
.btn { border-radius: 4px; }
.btn.green, .btn.blue, input.btn { background: var(--jh-orange); border-color: var(--jh-orange); }
.page-footer .btn-wrap { border-top: 1px solid var(--jh-line); box-shadow: 0 -8px 20px rgba(58,78,101,.04); }
.pagination li.active { background: var(--jh-orange); border-color: var(--jh-orange); }
.list-content2 div { border-radius: 6px; background: #f8fafc; border-color: #f8fafc; }
.list-content2 div:hover { border-color: #ffc581; color: var(--jh-ink); }
.green { color: #31b987; }
.red { color: #ee6b74; }
.blue { color: #46a6c7; }

/* Lists that expose read-only records without leaving the current page. */
.inline-detail-row {
    display: none;
}

.inline-detail-row > td {
    padding: 0 !important;
    background: #f8fafc;
    border-top: 1px solid #dfe7ef;
    border-bottom: 1px solid #dfe7ef;
}

.inline-detail-content {
    padding: 18px 22px 22px;
    text-align: left;
}

.inline-detail-section {
    margin: 0 0 18px;
}

.inline-detail-section:last-child {
    margin-bottom: 0;
}

.inline-detail-section-title {
    margin: 0 0 10px;
    padding-left: 9px;
    border-left: 3px solid #1e9fff;
    color: #333;
    font-size: 14px;
    line-height: 18px;
    font-weight: 600;
}

.inline-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    border-top: 1px solid #e8edf2;
    border-left: 1px solid #e8edf2;
}

.inline-detail-field {
    display: flex;
    min-height: 38px;
    border-right: 1px solid #e8edf2;
    border-bottom: 1px solid #e8edf2;
    background: #fff;
}

.inline-detail-field-full {
    grid-column: 1 / -1;
}

.inline-detail-label {
    flex: 0 0 92px;
    padding: 10px 8px;
    color: #7a8794;
    background: #f4f7fa;
    font-size: 12px;
    line-height: 18px;
}

.inline-detail-value {
    flex: 1;
    min-width: 0;
    padding: 10px 9px;
    color: #333;
    font-size: 12px;
    line-height: 18px;
    word-break: break-all;
}

.inline-detail-empty {
    color: #aab4be;
}

.inline-detail-image {
    display: inline-block;
    width: 48px;
    height: 48px;
    margin: -6px 6px -6px 0;
    border: 1px solid #e2e8ef;
    background: #fff;
    object-fit: cover;
    vertical-align: middle;
}

.inline-detail-images {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

.inline-detail-table-wrap {
    overflow-x: auto;
}

.inline-detail-table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    background: #fff;
    font-size: 12px;
}

.inline-detail-table th,
.inline-detail-table td {
    padding: 9px 8px;
    border: 1px solid #e8edf2;
    text-align: center;
    line-height: 18px;
}

.inline-detail-table th {
    color: #657384;
    background: #f4f7fa;
    font-weight: 600;
}

.inline-detail-loading,
.inline-detail-error,
.inline-detail-empty-panel {
    padding: 20px;
    color: #8995a1;
    text-align: center;
    font-size: 12px;
}

.inline-detail-error {
    color: #e54d42;
}

.admin-list-export { color: #333; }

@media screen and (max-width: 1100px) {
    .inline-detail-grid {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }
}

/* Menu icon pass: the supplied slices belong to first-level module entries.
   Keep child links text-only so the hierarchy stays easy to scan. */
.indexbody-module-sidebar .main-left {
    background: #f3f7fd !important;
    border-right-color: #e8edf4;
}

.indexbody-module-sidebar .sidebar-nav {
    background: #f3f7fd;
}

.indexbody-module-sidebar .sidebar-nav .list-group {
    margin-bottom: 3px;
}

.indexbody-module-sidebar .sidebar-nav .list-group > h1 {
    height: 40px;
    margin: 0;
    padding: 0 12px;
    color: #4e5968;
    font-size: 13px;
    font-weight: 500;
    line-height: 40px;
    border-radius: 7px;
}

.indexbody-module-sidebar .sidebar-nav .list-group > h1 .menu-icon {
    display: block !important;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin: 0 10px 0 0;
    object-fit: contain;
    opacity: 1;
}

.indexbody-module-sidebar .sidebar-nav .list-group > h1 span {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
}

.indexbody-module-sidebar .sidebar-nav .list-group > h1 i {
    top: 15px;
    right: 14px;
    width: 7px;
    height: 7px;
    color: #9aa3af;
}

.indexbody-module-sidebar .sidebar-nav .list-group:hover > h1,
.indexbody-module-sidebar .sidebar-nav .list-group.module-open > h1,
.indexbody-module-sidebar .sidebar-nav .list-group.selected > h1 {
    color: #fff;
    background: #ff861e;
    box-shadow: 0 5px 12px rgba(255, 134, 30, .16);
}

.indexbody-module-sidebar .sidebar-nav .list-group.module-open > h1 i,
.indexbody-module-sidebar .sidebar-nav .list-group.selected > h1 i {
    color: #fff;
}

.indexbody-module-sidebar .sidebar-nav .list-group.module-open > h1 .menu-icon,
.indexbody-module-sidebar .sidebar-nav .list-group.selected > h1 .menu-icon {
    filter: brightness(0) invert(1);
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap {
    padding: 0 0 5px;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap > ul {
    padding: 4px 6px 7px;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li {
    padding: 1px 0;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a {
    height: 35px;
    padding: 0 12px;
    color: #919aa7;
    font-size: 13px;
    line-height: 35px;
    border-radius: 6px;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a .icon,
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a .icon img {
    display: none !important;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a .expandable {
    right: 12px;
    opacity: .45;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a.selected {
    color: #ff861e;
    background: #fff;
    box-shadow: 0 1px 3px rgba(83, 105, 132, .04);
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a:hover:not(.selected) {
    color: #ff861e;
    background: rgba(255, 255, 255, .62);
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul ul {
    padding: 2px 0 2px 10px;
}

.indexbody-module-sidebar.lay-mini .main-left {
    width: 56px;
    background: #f3f7fd !important;
}

.indexbody-module-sidebar.lay-mini .main-container {
    left: 56px;
}

.indexbody-module-sidebar.lay-mini .sidebar-nav {
    padding: 10px 8px;
}

.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group {
    width: 40px;
    height: 42px;
    margin-bottom: 4px;
}

.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group > h1 {
    width: 40px;
    height: 40px;
    padding: 0;
    justify-content: center;
}

.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group > h1 .menu-icon {
    margin: 0;
}

.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group > h1 i,
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group > h1 span {
    display: none;
}

.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group .list-wrap {
    left: 48px;
    top: 0;
    width: 220px;
    padding: 10px;
    background: #f3f7fd;
    border: 1px solid #e5ecf4;
    border-radius: 7px;
    box-shadow: 10px 12px 25px rgba(51, 75, 102, .12);
}

/* Shared detail and edit dialog surface. The selectors intentionally target
   the layer shell and its common content classes so existing business pages
   inherit the same treatment without changing their save logic. */
.layui-layer.layui-layer-page,
.layui-layer.layui-layer-iframe {
    overflow: hidden;
    background: #f7f8fa !important;
    border: 0 !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 55px rgba(38, 47, 60, .18) !important;
}

.layui-layer-page .layui-layer-title,
.layui-layer-iframe .layui-layer-title {
    position: relative;
    height: 68px;
    padding: 0 62px 0 46px;
    color: #252b34;
    background: #f7f8fa;
    border-bottom: 0;
    font-size: 17px;
    font-weight: 600;
    line-height: 68px;
}

.layui-layer-page .layui-layer-title:before,
.layui-layer-iframe .layui-layer-title:before {
    content: "";
    position: absolute;
    top: 32px;
    left: 27px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #ff8a18;
    transform: translateY(-50%);
}

.layui-layer-page .layui-layer-setwin,
.layui-layer-iframe .layui-layer-setwin {
    top: 24px;
    right: 27px;
}

.layui-layer-page .layui-layer-setwin .layui-layer-close1,
.layui-layer-iframe .layui-layer-setwin .layui-layer-close1 {
    width: 22px;
    height: 22px;
}

.layui-layer-page .layui-layer-setwin .layui-layer-close1:before,
.layui-layer-page .layui-layer-setwin .layui-layer-close1:after,
.layui-layer-iframe .layui-layer-setwin .layui-layer-close1:before,
.layui-layer-iframe .layui-layer-setwin .layui-layer-close1:after {
    top: 10px;
    left: 1px;
    width: 23px;
    height: 2px;
    background: #9fa4aa;
}

.layui-layer-page .layui-layer-content,
.layui-layer-iframe .layui-layer-content {
    color: #4d5662;
    background: #f7f8fa;
}

.layui-layer-page > .layui-layer-content {
    padding: 0 28px 28px;
    overflow: auto;
}

.layui-layer-iframe > .layui-layer-content {
    padding: 0 !important;
    overflow: hidden;
}

.layui-layer-iframe > .layui-layer-content > iframe {
    display: block;
    width: 100%;
    border: 0;
    background: #f7f8fa;
}

.layui-layer-page .layui-layer-btn,
.layui-layer-iframe .layui-layer-btn {
    min-height: 70px;
    padding: 16px 28px 22px;
    border-top: 1px solid #edf0f3;
    background: #f7f8fa;
    box-sizing: border-box;
}

.layui-layer-page .layui-layer-btn a,
.layui-layer-iframe .layui-layer-btn a {
    min-width: 82px;
    height: 36px;
    margin-left: 10px;
    padding: 0 18px;
    border: 1px solid #e0e4e9;
    border-radius: 6px;
    color: #69727e;
    background: #fff;
    font-size: 13px;
    line-height: 34px;
}

.layui-layer-page .layui-layer-btn .layui-layer-btn0,
.layui-layer-iframe .layui-layer-btn .layui-layer-btn0 {
    color: #fff;
    background: #ff8a18;
    border-color: #ff8a18;
}

.layui-layer-page .layui-layer-btn .layui-layer-btn0:hover,
.layui-layer-iframe .layui-layer-btn .layui-layer-btn0:hover {
    background: #f5740d;
    border-color: #f5740d;
}

.layui-layer-page .admin-detail-modal {
    max-height: none;
    padding: 0 18px 12px;
    background: #f7f8fa;
}

.layui-layer-page .admin-detail-modal .inline-detail-section {
    margin-bottom: 20px;
}

.layui-layer-page .admin-detail-modal .inline-detail-section-title {
    margin: 0 0 12px;
    padding-left: 10px;
    border-left: 3px solid #ff8a18;
    color: #2c323b;
    font-size: 14px;
    font-weight: 600;
    line-height: 18px;
}

.layui-layer-page .admin-detail-modal .inline-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 0;
    border-radius: 14px;
    background: #fff;
}

.layui-layer-page .admin-detail-modal .inline-detail-field {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr);
    min-height: 42px;
    border: 0;
    background: #fff;
}

.layui-layer-page .admin-detail-modal .inline-detail-label {
    padding: 11px 8px 11px 14px;
    color: #8b95a3;
    background: #fff;
    font-size: 12px;
    line-height: 20px;
}

.layui-layer-page .admin-detail-modal .inline-detail-value {
    padding: 11px 12px 11px 4px;
    color: #343b45;
    font-size: 12px;
    line-height: 20px;
}

.layui-layer-page .admin-detail-modal .inline-detail-table-wrap {
    overflow-x: auto;
    padding: 0 12px 12px;
    border-radius: 14px;
    background: #fff;
}

.layui-layer-page .admin-detail-modal .inline-detail-table {
    min-width: 680px;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
}

.layui-layer-page .admin-detail-modal .inline-detail-table th,
.layui-layer-page .admin-detail-modal .inline-detail-table td {
    padding: 12px 10px;
    border: 0;
    border-bottom: 1px solid #f0f2f5;
    color: #56606c;
    line-height: 20px;
}

.layui-layer-page .admin-detail-modal .inline-detail-table th {
    color: #7c8694;
    background: #fafbfc;
    font-weight: 500;
}

.layui-layer-page .admin-detail-modal .inline-detail-table tr:last-child td {
    border-bottom: 0;
}

.layui-layer-page .admin-detail-modal .inline-detail-image {
    width: 48px;
    height: 48px;
    margin: -5px 6px -5px 0;
    border: 0;
    border-radius: 4px;
    background: #f5f7fa;
}

.layui-layer-page .admin-detail-modal .inline-detail-images {
    gap: 8px;
}

.layui-layer-page .inline-detail-content {
    padding: 0;
}

.layui-layer-page .edit-content {
    padding: 0 18px 24px;
    background: #f7f8fa;
    border-radius: 0;
}

.layui-layer-page .edit-content .content-tab-wrap {
    height: 42px;
    margin: 0 0 18px;
    padding: 0;
}

.layui-layer-page .edit-content .content-tab {
    left: 0;
    right: 0;
    background: transparent;
    border-bottom-color: #e8ebef;
}

.layui-layer-page .edit-content .tab-content {
    padding: 0 0 8px;
}

.layui-layer-page .edit-content .tab-content dl {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    column-gap: 16px;
    align-items: start;
    min-height: 42px;
    padding: 5px 0;
}

.layui-layer-page .edit-content .tab-content dl dt {
    float: none;
    width: auto;
    padding-top: 6px;
    color: #788391;
    text-align: right;
    line-height: 24px;
}

.layui-layer-page .edit-content .tab-content dl dd {
    min-width: 0;
    margin-left: 0;
}

.layui-layer-page .edit-content .input,
.layui-layer-page .edit-content .select,
.layui-layer-page .edit-content .select1,
.layui-layer-page .edit-content textarea,
.layui-layer-page .edit-content select,
.layui-layer-page .edit-content .layui-input,
.layui-layer-page .edit-content .layui-select,
.layui-layer-page .edit-content .layui-textarea {
    min-height: 36px;
    border-color: #e1e5ea;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
}

.layui-layer-page .edit-content .input:focus,
.layui-layer-page .edit-content textarea:focus,
.layui-layer-page .edit-content select:focus {
    border-color: #ffb760;
    box-shadow: 0 0 0 3px rgba(255, 138, 24, .1);
}

.layui-layer-page .page-footer .btn-wrap {
    position: static;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin: 18px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid #e9edf1;
    background: transparent;
    box-shadow: none;
}

.layui-layer-page .page-footer .btn-wrap .btn {
    min-width: 84px;
    height: 36px;
    line-height: 34px;
}

.layui-layer-page > .layui-layer-content > #detailTemplate {
    padding: 0 18px 18px !important;
    background: #f7f8fa !important;
}

@media (max-width: 720px) {
    .layui-layer.layui-layer-page,
    .layui-layer.layui-layer-iframe {
        max-width: calc(100vw - 24px);
        border-radius: 12px !important;
    }

    .layui-layer-page .layui-layer-title,
    .layui-layer-iframe .layui-layer-title {
        height: 58px;
        padding-left: 38px;
        font-size: 15px;
        line-height: 58px;
    }

    .layui-layer-page .layui-layer-title:before,
    .layui-layer-iframe .layui-layer-title:before {
        top: 29px;
        left: 21px;
        width: 12px;
        height: 12px;
    }

    .layui-layer-page .layui-layer-setwin,
    .layui-layer-iframe .layui-layer-setwin {
        top: 19px;
        right: 18px;
    }

    .layui-layer-page > .layui-layer-content {
        padding: 0 14px 18px;
    }

    .layui-layer-page .admin-detail-modal {
        padding: 0 0 8px;
    }

    .layui-layer-page .admin-detail-modal .inline-detail-grid {
        display: block;
    }

    .layui-layer-page .admin-detail-modal .inline-detail-field {
        grid-template-columns: 98px minmax(0, 1fr);
    }

    .layui-layer-page .edit-content {
        padding: 0 0 18px;
    }

    .layui-layer-page .edit-content .tab-content dl {
        display: block;
    }

    .layui-layer-page .edit-content .tab-content dl dt {
        padding-top: 0;
        text-align: left;
    }

    .layui-layer-page .edit-content .page-footer .btn-wrap {
        justify-content: stretch;
    }

    .layui-layer-page .edit-content .page-footer .btn-wrap .btn {
        flex: 1;
    }
}

@media screen and (max-width: 640px) {
    .inline-detail-content {
        padding: 14px;
    }

    .inline-detail-grid {
        grid-template-columns: 1fr;
    }

    .inline-detail-field-full {
        grid-column: auto;
    }
}

@media (max-width: 720px) {
    .login-wrap { width: 100%; padding: 30px 18px 56px; }
    .login-panel { width: min(100%, 520px); padding: 34px 24px 28px; }
    .login-brand { height: 80px; margin-bottom: 22px; }
    .login-brand img { width: 110px; height: 80px; }
    .login-logo { height: auto; line-height: 1.35; margin-bottom: 28px; font-size: 25px; }
    .login-form .col .login-input { height: 50px; line-height: 50px; padding: 0 14px 0 52px !important; font-size: 14px; }
    .login-form .col .icon { top: 17px; left: 18px; }
    .login-form .col .icon.pwd { top: 21px; }
    .login-form .col.code { --login-input-height: 50px; }
    .login-form .col.code > img { right: 14px; height: 44px; }
    .login-form .col .login-btn { height: 54px; line-height: 54px; border-radius: 12px; font-size: 16px; }
    .login-agreement { margin-top: 24px; font-size: 12px; line-height: 20px; }
    .login-agreement { column-gap: 6px; }
    .agreement-mark { flex-basis: 20px; width: 20px; height: 20px; margin-right: 0; }
    .mainbody { margin: 12px; }
    .toolbar-wrap { padding: 12px; }
    .table-container { padding: 6px 12px 14px; }
}

/* Unified admin shell: keep the information density of the legacy pages while
   giving every module the lighter, rounded visual language of the new detail view. */
:root {
    --jh-orange: #f58a24;
    --jh-orange-dark: #e97812;
    --jh-orange-soft: #fff5ea;
    --jh-ink: #30343b;
    --jh-muted: #8b929c;
    --jh-line: #edf0f3;
    --jh-page: #f4f5f7;
}

html,
body {
    color: var(--jh-ink);
    font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
}

.indexbody {
    background: var(--jh-page);
}

.indexbody-module-sidebar .main-top {
    height: 64px;
    background: #fff !important;
    border-bottom: 1px solid #f0f1f3;
    box-shadow: 0 2px 12px rgba(32, 40, 52, .035);
}

.indexbody-module-sidebar .main-left {
    width: 180px;
    background: #fff !important;
    border-right: 1px solid #f0f1f3;
}

.indexbody-module-sidebar .main-container {
    top: 64px;
    left: 180px;
    background: var(--jh-page);
}

.indexbody-module-sidebar .main-left .logo {
    width: 180px;
    height: 64px;
    padding-left: 28px;
    background: #fff !important;
    border-bottom-color: #f0f1f3;
}

.indexbody-module-sidebar .main-left .logo img {
    width: 76px;
    height: 54px;
}

.indexbody-module-sidebar .main-left .logo span {
    display: none;
}

.indexbody-module-sidebar .sidebar-nav {
    top: 64px;
    padding: 14px 10px 24px;
    background: #fff;
}

.indexbody-module-sidebar .sidebar-nav .list-group h1 {
    height: 40px;
    padding: 0 12px;
    color: #4e5661;
    font-size: 13px;
}

.indexbody-module-sidebar .sidebar-nav .list-group h1:before {
    display: none;
}

.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group h1:before,
.indexbody-module-sidebar.lay-mini .sidebar-nav .list-group h1:after {
    display: none;
}

.indexbody-module-sidebar .sidebar-nav .list-group h1 i {
    right: 13px;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap > ul {
    padding-left: 20px;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a {
    height: 36px;
    padding-left: 12px;
    color: #7b838e;
    line-height: 36px;
    font-size: 13px;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a .icon,
.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a .icon img {
    display: none !important;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a.selected {
    background: #fff2e5;
    color: var(--jh-orange-dark);
    box-shadow: none;
}

.indexbody-module-sidebar .sidebar-nav .list-group .list-wrap ul li a.selected .icon {
    filter: none;
}

.indexbody-module-sidebar .nav-right.header-account {
    padding-right: 24px;
}

.indexbody-module-sidebar .nav-right.header-account .info .a-avatar,
.indexbody-module-sidebar .nav-right.header-account .info .a-avatar .img {
    width: 32px;
    height: 32px;
}

.indexbody-module-sidebar .nav-right.header-account .info span.span-pro-info {
    color: #454b55;
    font-size: 13px;
}

.mainbody {
    margin: 16px 20px 24px;
    background: var(--jh-page);
}

.location {
    height: 30px;
    padding-bottom: 12px;
    color: #9aa1aa;
    font-size: 12px;
    line-height: 30px;
}

.location span:last-child {
    color: #3b4048;
    font-size: 15px;
    font-weight: 600;
}

.toolbar-wrap,
.table-container,
.edit-content {
    border: 0;
    background: #fff;
    box-shadow: none;
}

.toolbar-wrap {
    padding: 16px 18px 10px;
    border-radius: 8px 8px 0 0;
}

.table-container {
    padding: 6px 18px 18px;
    border-radius: 0 0 8px 8px;
}

.ltable th {
    padding: 13px 10px;
    color: #5e6670;
    background: #fafafa;
    font-weight: 600;
}

.ltable td {
    padding: 14px 10px;
    color: #626a74;
}

.ltable tr:hover {
    background: #fffaf4;
}

.edit-content {
    padding: 4px 18px 22px;
    border-radius: 8px;
}

.input,
.select,
.select1,
textarea,
select,
.layui-input,
.layui-select,
.layui-textarea {
    border-color: #e4e6e9;
    border-radius: 5px;
    color: #454b55;
}

.input:focus,
.layui-input:focus,
.layui-textarea:focus,
select:focus {
    border-color: #f6b36e;
    box-shadow: 0 0 0 3px rgba(245, 138, 36, .1);
}

.btn.green,
.btn.blue,
input.btn,
.layui-btn-normal {
    background: var(--jh-orange);
    border-color: var(--jh-orange);
}

.btn.green:hover,
.btn.blue:hover,
input.btn:hover,
.layui-btn-normal:hover {
    background: var(--jh-orange-dark);
    border-color: var(--jh-orange-dark);
}

/* Layer dialogs are used by most create/edit/detail flows. */
.layui-layer {
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 18px 55px rgba(42, 48, 58, .18);
}

.layui-layer-title {
    height: 58px;
    padding: 0 58px 0 24px;
    color: #30343b;
    background: #fff;
    border-bottom: 1px solid #f0f1f3;
    font-size: 16px;
    font-weight: 600;
    line-height: 58px;
}

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

.layui-layer-setwin .layui-layer-close1 {
    width: 18px;
    height: 18px;
    background: none;
}

.layui-layer-setwin .layui-layer-close1:before,
.layui-layer-setwin .layui-layer-close1:after {
    content: "";
    position: absolute;
    top: 8px;
    left: 1px;
    width: 18px;
    height: 2px;
    background: #a0a5ab;
    border-radius: 2px;
    transform: rotate(45deg);
}

.layui-layer-setwin .layui-layer-close1:after {
    transform: rotate(-45deg);
}

.layui-layer-setwin .layui-layer-close1:hover:before,
.layui-layer-setwin .layui-layer-close1:hover:after {
    background: var(--jh-orange-dark);
}

.layui-layer-content {
    color: #525963;
}

/* layer.msg 渲染为 .layui-layer-hui 深色半透明泡泡（layer.css 默认样式），
   上方继承的深灰文字在深色背景上不可读，深色提示强制白字。 */
.layui-layer-hui .layui-layer-content,
.layui-layer-msg .layui-layer-content {
    color: #fff;
}

.layui-layer-page .layui-layer-content {
    padding: 20px 24px 24px;
}

.layui-layer-btn {
    padding: 14px 24px 20px;
    border-top: 1px solid #f0f1f3;
    background: #fff;
}

.layui-layer-btn a {
    min-width: 76px;
    height: 36px;
    margin: 0 0 0 10px;
    padding: 0 16px;
    border: 1px solid #e3e5e8;
    border-radius: 5px;
    color: #6d747d;
    background: #fff;
    font-size: 13px;
    line-height: 34px;
}

.layui-layer-btn .layui-layer-btn0 {
    border-color: var(--jh-orange);
    color: #fff;
    background: var(--jh-orange);
}

.layui-layer-btn a:hover {
    opacity: 1;
}

.layui-layer-btn .layui-layer-btn0:hover {
    background: var(--jh-orange-dark);
}

.layui-layer-shade {
    background: rgba(39, 45, 54, .28) !important;
    opacity: 1 !important;
    filter: none !important;
}

/* Keep the admin shell on one shared background so every region is tinted
   by the same full-page layer when a dialog is open. */
html:has(body.indexbody),
body.indexbody {
    background: #eaf0f5 url("/static/admin/dashboard/adminbg.png") center center / cover no-repeat fixed !important;
}

body.indexbody > .main-top,
body.indexbody > .main-left,
body.indexbody > .main-container,
body.indexbody .main-left .logo,
body.indexbody .sidebar-nav,
body.indexbody .sidebar-nav .list-group .list-wrap {
    background: transparent !important;
}

body.indexbody > .main-top,
body.indexbody > .main-left {
    border-color: rgba(255, 255, 255, .42);
}

html:has(body.mainbody),
body.mainbody,
body.mainbody .table-container,
body.mainbody .toolbar-wrap {
    background: transparent;
}

body.mainbody .table-container {
    border-color: rgba(255, 255, 255, .42);
}

/* The popup itself lives in the content iframe. The bridge adds the missing
   shade panels above the outer navigation without covering the iframe popup. */
#admin-frame-shade {
    position: fixed;
    z-index: 2147483000;
    inset: 0;
    display: none;
    pointer-events: none;
}

#admin-frame-shade .admin-frame-shade-panel {
    position: absolute;
    background: rgba(39, 45, 54, .28);
    pointer-events: auto;
}

@media (max-width: 720px) {
    .indexbody-module-sidebar .main-left {
        width: 64px;
    }

    .indexbody-module-sidebar .main-container {
        left: 64px;
    }

    .indexbody-module-sidebar .main-left .logo {
        width: 64px;
        padding-left: 6px;
        justify-content: center;
    }

    .indexbody-module-sidebar .main-left .logo img {
        width: 48px;
    }

    .mainbody {
        margin: 12px;
    }

    .layui-layer-page .layui-layer-content {
        padding: 16px;
    }
}

/* List pages */
.admin-list-page {
    min-height: 100%;
    margin: 0;
    padding: 20px 28px 28px;
    background: #fbfcfe;
    box-sizing: border-box;
}

.admin-list-page .location {
    display: none;
}

.admin-list-page .toolbar-wrap,
.admin-list-page .table-container {
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.admin-list-page .toolbar-wrap {
    padding-bottom: 22px;
}

.admin-list-filter-title,
.admin-list-table-title {
    position: relative;
    margin: 0 0 16px;
    color: #30343b;
    font-size: 15px;
    font-weight: 600;
    line-height: 22px;
}

.admin-list-filter-title:after,
.admin-list-table-title:after {
    content: "";
    position: absolute;
    left: 1px;
    bottom: -7px;
    width: 42px;
    height: 6px;
    border-bottom: 2px solid var(--jh-orange);
    border-radius: 50%;
    transform: rotate(-4deg);
}

.admin-list-page .toolbar {
    padding: 0;
    background: transparent;
}

.admin-list-page .toolbar .box-wrap {
    display: flex;
    position: static;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.admin-list-page .toolbar .r-list {
    display: contents;
}

.admin-list-page .toolbar .r-list span.words {
    display: none;
}

.admin-list-page .toolbar .r-list input,
.admin-list-page .toolbar .r-list select,
.admin-list-page .toolbar .r-list .rule-single-select,
.admin-list-page .toolbar .r-list .single-select {
    float: none;
    flex: 0 1 auto;
    min-width: 0;
}

.admin-list-page .toolbar .r-list input.keyword,
.admin-list-page .toolbar .r-list input.keyword_long,
.admin-list-page .toolbar .r-list input.keyword_manager,
.admin-list-page .toolbar .r-list input.keyword_tx,
.admin-list-page .toolbar .r-list input[type="text"],
.admin-list-page .toolbar .r-list input[type="date"],
.admin-list-page .toolbar .r-list select,
.admin-list-page .toolbar .r-list .single-select .select-tit {
    height: 40px !important;
    min-height: 40px;
    padding: 0 12px !important;
    color: #424a55;
    background: #fff;
    border: 1px solid #e3e7ec !important;
    border-radius: 9px !important;
    box-sizing: border-box;
    line-height: 38px !important;
    outline: 0;
}

.admin-list-page .toolbar .r-list input:focus,
.admin-list-page .toolbar .r-list select:focus,
.admin-list-page .toolbar .r-list .single-select .select-tit:focus {
    border-color: #ffb76b !important;
    box-shadow: 0 0 0 3px rgba(245, 138, 36, .09);
}

.admin-list-page .toolbar .r-list .single-select .select-tit {
    padding-right: 34px !important;
}

.admin-list-page .toolbar .r-list input.keyword,
.admin-list-page .toolbar .r-list input.keyword_long,
.admin-list-page .toolbar .r-list input.keyword_manager,
.admin-list-page .toolbar .r-list input.keyword_tx,
.admin-list-page .toolbar .r-list input[type="text"] {
    width: 240px;
    min-width: 180px;
    max-width: min(360px, 42vw);
}

.admin-list-page .toolbar .r-list select,
.admin-list-page .toolbar .r-list .single-select .select-tit {
    width: 120px;
    min-width: 112px;
}

.admin-list-page .toolbar .r-list .single-select .select-tit i {
    height: 38px;
    line-height: 38px;
    border: 0;
    background: transparent;
}

.admin-list-page .toolbar .r-list .btn-search,
.admin-list-page .toolbar .r-list .btn-search:hover,
.admin-list-page .toolbar .r-list .btn-search:active {
    flex: 0 0 auto;
    width: 82px;
    height: 40px;
    margin: 0;
    padding: 0;
    color: #fff;
    background: var(--jh-orange);
    border: 1px solid var(--jh-orange);
    border-radius: 9px;
    font-size: 13px;
    line-height: 38px;
    text-indent: 0;
}

.admin-list-page .toolbar .r-list .btn-search:hover {
    background: var(--jh-orange-dark);
    border-color: var(--jh-orange-dark);
}

.admin-list-table-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 13px;
}

.admin-list-table-title {
    flex: 0 0 auto;
    margin: 0;
}

.admin-list-actions {
    display: flex;
    flex: 1 1 auto;
    justify-content: flex-end;
    min-width: 0;
}

.admin-list-actions .l-list,
.admin-list-actions .icon-list {
    float: none;
    margin: 0;
    padding: 0;
}

.admin-list-actions .icon-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.admin-list-actions .icon-list li {
    float: none;
}

.admin-list-actions .icon-list li a,
.admin-list-actions .icon-list li a:hover {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    margin: 0;
    padding: 0 12px;
    color: #69727d;
    background: #fff;
    border: 1px solid #e1e5e9;
    border-radius: 7px;
    font-size: 12px;
    line-height: 32px;
    box-sizing: border-box;
}

.admin-list-actions .icon-list li a:hover {
    color: var(--jh-orange-dark);
    background: #fff9f2;
    border-color: #ffc27f;
}

.admin-list-actions .icon-list li a i {
    margin-right: 5px;
}

/* 「增减展示内容」弹层。自行渲染，不依赖 layer，故样式也自成一体；
   z-index 高于 layer(19891014) 与 iframe 遮罩桥(2147483000)。 */
.admin-cols-modal {
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 2147483600;
}

.admin-cols-mask {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(39, 45, 54, .28);
}

.admin-cols-dialog {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 420px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 64px);
    display: flex;
    flex-direction: column;
    transform: translate(-50%, -50%);
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 18px 55px rgba(38, 47, 60, .22);
    overflow: hidden;
}

.admin-cols-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 48px;
    padding: 0 8px 0 18px;
    border-bottom: 1px solid #edf0f4;
    flex: 0 0 auto;
}

.admin-cols-title {
    margin: 0;
    color: #303641;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
}

.admin-cols-x {
    width: 34px;
    height: 34px;
    padding: 0;
    color: #99a1ad;
    font-size: 20px;
    line-height: 1;
    background: none;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
}

.admin-cols-x:hover {
    color: #47505d;
    background: #f2f4f7;
}

.admin-cols-body {
    padding: 12px 18px;
    overflow-y: auto;
    flex: 1 1 auto;
}

.admin-cols-item {
    display: inline-flex;
    align-items: center;
    width: 50%;
    min-height: 34px;
    color: #4d5665;
    font-size: 13px;
    cursor: pointer;
    box-sizing: border-box;
    padding-right: 8px;
}

.admin-cols-item input {
    width: 16px;
    height: 16px;
    min-height: 0;
    margin: 0 6px 0 0;
    padding: 0;
    background: #fff;
    border: 1px solid #dfe3e8;
    border-radius: 3px;
    flex: 0 0 auto;
    cursor: pointer;
    /* 自绘勾选标记：accent-color 由浏览器决定勾的颜色，橙色底上会得到
       深色勾，因此这里改为完全自绘以保证勾始终是白色。 */
    appearance: none;
    -webkit-appearance: none;
    position: relative;
}

.admin-cols-item input:checked {
    background: var(--jh-orange);
    border-color: var(--jh-orange);
}

.admin-cols-item input:checked:before {
    content: "";
    position: absolute;
    left: 4px;
    top: 1px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(42deg);
}

.admin-cols-empty {
    margin: 6px 0;
    color: #8d97a4;
    font-size: 13px;
}

.admin-cols-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 12px 18px;
    border-top: 1px solid #edf0f4;
    flex: 0 0 auto;
}

.admin-cols-btn {
    min-width: 76px;
    height: 34px;
    padding: 0 16px;
    font-size: 13px;
    background: #fff;
    color: #4d5665;
    border: 1px solid #dfe4ea;
    border-radius: 8px;
    cursor: pointer;
}

.admin-cols-btn:hover {
    color: var(--jh-orange-dark);
    border-color: #ffc27f;
    background: #fff9f2;
}

.admin-cols-btn.admin-cols-ok {
    color: #fff;
    background: var(--jh-orange);
    border-color: var(--jh-orange);
}

.admin-cols-btn.admin-cols-ok:hover {
    color: #fff;
    background: var(--jh-orange-dark);
    border-color: var(--jh-orange-dark);
}

@media screen and (max-width: 640px) {
    .admin-cols-item {
        width: 100%;
    }
}

.admin-list-page .table-container {
    overflow-x: auto;
}

.admin-list-page .ltable {
    width: 100%;
    min-width: 920px;
    border: 0 !important;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    font-size: 13px;
}

.admin-list-page .ltable th {
    height: 48px;
    padding: 0 14px;
    color: #5e6670;
    background: #f5f6f8;
    border: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 20px;
    white-space: nowrap;
}

.admin-list-page .ltable th:first-child {
    border-radius: 4px 0 0 4px;
}

.admin-list-page .ltable th:last-child {
    border-radius: 0 4px 4px 0;
}

.admin-list-page .ltable td {
    min-height: 56px;
    padding: 13px 14px;
    color: #626a74;
    border: 0;
    border-bottom: 1px solid #f0f1f3;
    line-height: 20px;
    vertical-align: middle;
    white-space: normal;
    word-break: break-word;
}

.admin-list-page .ltable tbody tr:nth-child(even) td {
    background: #fbfcfd;
}

.admin-list-page .ltable tbody tr:hover td {
    background: #fff8ef;
}

.admin-list-page .ltable td:not([colspan]) a {
    margin: 0 5px 0 0;
    color: var(--jh-orange-dark);
    white-space: nowrap;
}

.admin-list-page .ltable td:not([colspan]) a:hover {
    color: #cf6208;
}

.admin-list-page .ltable td .green,
.admin-list-page .ltable td .blue {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 5px;
    font-size: 12px;
    line-height: 18px;
}

.admin-list-page .ltable td .green {
    color: #27b67e;
    background: #ecfbf5;
}

.admin-list-page .ltable td .blue {
    color: #4a7cf0;
    background: #eef3ff;
}

.admin-list-page .ltable input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    border: 1px solid #dfe3e8;
    border-radius: 3px;
    background: #fff;
    vertical-align: middle;
    appearance: none;
    -webkit-appearance: none;
    position: relative;
}

.admin-list-page .ltable input[type="checkbox"]:checked {
    background: var(--jh-orange);
    border-color: var(--jh-orange);
}

/* appearance:none 会连原生勾一起去掉，所以必须自绘，否则只剩一个橙色方块。 */
.admin-list-page .ltable input[type="checkbox"]:checked:before {
    content: "";
    position: absolute;
    left: 4px;
    top: 1px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(42deg);
}

.admin-list-page .ltable > tr:last-child td {
    padding: 19px 0 0;
    border-bottom: 0;
    background: transparent !important;
}

.admin-list-page .pages,
.admin-list-page .pagination,
.admin-list-page .pager {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-height: 34px;
    margin: 0;
    padding: 19px 0 0;
    list-style: none;
    background: transparent;
    box-sizing: border-box;
}

.admin-list-page .pages a,
.admin-list-page .pages span,
.admin-list-page .pagination li a,
.admin-list-page .pagination li span,
.admin-list-page .pager li a,
.admin-list-page .pager li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    margin: 0;
    padding: 0 9px;
    color: #69727d;
    background: #fff;
    border: 1px solid #e2e6ea;
    border-radius: 4px;
    font-size: 12px;
    line-height: 30px;
    text-decoration: none;
    box-sizing: border-box;
}

.admin-list-page .pages a:hover,
.admin-list-page .pagination li a:hover,
.admin-list-page .pager li a:hover {
    color: var(--jh-orange-dark);
    border-color: #ffc27f;
    background: #fff9f2;
}

.admin-list-page .pages .current,
.admin-list-page .pagination li.active span {
    color: #fff;
    background: var(--jh-orange);
    border-color: var(--jh-orange);
}

.admin-list-page .pages .disabled,
.admin-list-page .pagination li.disabled span {
    color: #b5bbc2;
    background: #f7f8fa;
    border-color: #edf0f2;
}

.admin-list-page .pages .total,
.admin-list-page .pages .page-size {
    padding: 0 4px;
    color: #858d97;
    background: transparent;
    border: 0;
}

.admin-list-page .pages select,
.admin-list-page .pagination select {
    height: 32px;
    margin: 0 4px;
    padding: 0 8px;
    color: #59636f;
    background: #fff;
    border: 1px solid #e2e6ea;
    border-radius: 4px;
}

@media (max-width: 900px) {
    .admin-list-page {
        padding: 16px 14px 22px;
    }

    .admin-list-table-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-list-actions {
        justify-content: flex-start;
        width: 100%;
    }

    .admin-list-actions .icon-list {
        justify-content: flex-start;
    }
}

/* Unified backend form controls. This sits at the end of the theme so
   legacy page-level rules keep their sizing while sharing one visual system.
   Note: .login-input is excluded because the many :not([type=...]) attribute
   selectors raise this rule's specificity above the login card rules
   (.login-form .col .login-input), which would otherwise wipe out the icon
   gutter (padding-left) on the login pages. */
input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="file"]):not(.login-input),
textarea,
select,
.input,
.select,
.select1,
.layui-input,
.layui-select,
.layui-textarea {
    box-sizing: border-box;
    min-height: 38px;
    padding: 0 12px;
    color: #3f4854;
    font: inherit;
    line-height: 36px;
    background: #fff;
    border: 1px solid #dfe4ea;
    border-radius: 7px;
    outline: 0;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

textarea,
.layui-textarea {
    min-height: 92px;
    padding-top: 9px;
    padding-bottom: 9px;
    line-height: 22px;
    resize: vertical;
}

select,
.layui-select {
    min-width: 118px;
    padding-right: 32px;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, #8d97a4 50%),
        linear-gradient(135deg, #8d97a4 50%, transparent 50%);
    background-position:
        calc(100% - 16px) 16px,
        calc(100% - 11px) 16px;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

select[multiple],
.layui-select[multiple] {
    min-height: 112px;
    padding: 8px 10px;
    line-height: 24px;
    background-image: none;
}

select[multiple] option,
.layui-select[multiple] option {
    padding: 6px 8px;
    border-radius: 4px;
}

select[multiple] option:checked,
.layui-select[multiple] option:checked {
    color: #fff;
    background: var(--jh-orange);
}

input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="file"]):not(.login-input):hover,
textarea:hover,
select:hover,
.input:hover,
.select:hover,
.select1:hover,
.layui-input:hover,
.layui-select:hover,
.layui-textarea:hover {
    border-color: #c5ced9;
}

input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="file"]):not(.login-input):focus,
textarea:focus,
select:focus,
.input:focus,
.select:focus,
.select1:focus,
.layui-input:focus,
.layui-select:focus,
.layui-textarea:focus {
    color: #303943;
    background-color: #fff;
    border-color: var(--jh-orange);
    box-shadow: 0 0 0 3px rgba(255, 138, 24, .12);
}

input::placeholder,
textarea::placeholder,
.layui-input::placeholder,
.layui-textarea::placeholder {
    color: #a4acb6;
    opacity: 1;
}

input[type="checkbox"],
input[type="radio"] {
    width: 16px;
    height: 16px;
    margin: 0 6px 0 0;
    accent-color: var(--jh-orange);
    vertical-align: -3px;
    cursor: pointer;
}

input[type="checkbox"]:disabled,
input[type="radio"]:disabled {
    cursor: not-allowed;
    opacity: .55;
}

label {
    color: #59636f;
}

.multi-radio a,
.multi-checkbox a {
    min-height: 36px;
    box-sizing: border-box;
    margin: 0 8px 8px 0;
    padding: 7px 14px;
    color: #59636f;
    line-height: 20px;
    background: #fff;
    border: 1px solid #dfe4ea;
    border-radius: 7px;
    transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}

.multi-radio a:hover,
.multi-checkbox a:hover {
    color: var(--jh-orange-dark);
    background: #fff8ef;
    border-color: #ffc27f;
}

.multi-radio a.selected,
.multi-checkbox a.selected {
    color: #fff;
    background: var(--jh-orange);
    border-color: var(--jh-orange);
}

.single-checkbox a {
    width: 86px;
    overflow: hidden;
    border: 1px solid #dfe4ea;
    border-radius: 18px;
    background: #e9edf1;
}

.single-checkbox a i {
    width: 50%;
    height: 30px;
    line-height: 30px;
    border-radius: 50%;
    color: #68727e;
    background: #fff;
    box-shadow: 0 2px 5px rgba(35, 45, 57, .12);
}

.single-checkbox a.selected {
    border-color: var(--jh-orange);
    background: var(--jh-orange) !important;
}

.rule-single-select .select-tit,
.single-select .select-tit {
    min-height: 38px;
    box-sizing: border-box;
    padding: 8px 36px 8px 12px;
    color: #3f4854;
    line-height: 20px;
    background: #fff;
    border: 1px solid #dfe4ea;
    border-radius: 7px;
}

.rule-single-select .select-tit:hover,
.single-select .select-tit:hover,
.rule-single-select .select-tit:focus,
.single-select .select-tit:focus {
    border-color: var(--jh-orange);
    box-shadow: 0 0 0 3px rgba(255, 138, 24, .12);
}

.rule-single-select .select-items ul,
.single-select .select-items ul {
    padding: 6px;
    border: 1px solid #e2e7ec;
    border-radius: 7px;
    box-shadow: 0 10px 26px rgba(39, 49, 61, .14);
}

.rule-single-select .select-items ul li,
.single-select .select-items ul li {
    padding: 8px 10px;
    color: #59636f;
    border-radius: 5px;
}

.rule-single-select .select-items ul li:hover,
.rule-single-select .select-items ul li.selected,
.single-select .select-items ul li:hover,
.single-select .select-items ul li.selected {
    color: #fff;
    background: var(--jh-orange) !important;
}

/* 联名权益页（线上/线下）双视图切换 Tab：位于面包屑下方、列表名上方左侧 */
.benefit-tabs {
    display: flex;
    align-items: stretch;
    gap: 24px;
    height: 40px;
    margin: 2px 0 12px;
    padding: 0 2px;
    border-bottom: 1px solid #e4e8ee;
    background: transparent;
}

.benefit-tabs a {
    display: flex;
    align-items: center;
    height: 40px;
    padding: 0 2px;
    color: #7a8593;
    border-bottom: 2px solid transparent;
    box-sizing: border-box;
    cursor: pointer;
    white-space: nowrap;
    font-size: 14px;
}

.benefit-tabs a:hover {
    color: var(--jh-orange-dark);
}

.benefit-tabs a.current {
    color: var(--jh-orange-dark);
    border-bottom-color: var(--jh-orange);
    font-weight: 600;
}

.benefit-tabs a:focus-visible {
    outline: 2px solid rgba(245, 138, 36, .35);
    outline-offset: 2px;
}

@media (max-width: 720px) {
    .benefit-tabs {
        gap: 16px;
        height: 38px;
    }

    .benefit-tabs a {
        height: 38px;
    }
}

/* 传统两列表单（<table> + td[align="right"] 放标签）：弹窗里和编辑页内联表单同一套写法。
   主题给 select 设了 min-width，加上下拉选项里有超长文案（门店全名、"设备SN - 学校·档口"），
   值列的固有宽度会把标签列挤到只剩一两个字，"活动名称："这类标签就竖排换行了。
   下面把标签列固定住并禁止换行、值列允许收缩、控件限制在容器宽度内；表格改定宽布局
   避免横向溢出。:has(td[align="right"]) 用来把规则限制在这种标签表单上，
   不影响列表表格（.ltable）和内联详情表格。 */
:is(.layui-layer-page .layui-layer-content, .mainbody form) table:not(.ltable):has(td[align="right"]) {
    table-layout: fixed;
}
:is(.layui-layer-page .layui-layer-content, .mainbody form) table:not(.ltable):has(td[align="right"]) td[align="right"] {
    width: 118px;
    min-width: 118px;
    padding: 0 14px 0 0;
    color: #788391;
    white-space: nowrap;
    vertical-align: middle;
}
:is(.layui-layer-page .layui-layer-content, .mainbody form) table:not(.ltable):has(td[align="right"]) td:not([align="right"]) {
    min-width: 0;
}
:is(.layui-layer-page .layui-layer-content, .mainbody form) table:not(.ltable):has(td[align="right"]) input,
:is(.layui-layer-page .layui-layer-content, .mainbody form) table:not(.ltable):has(td[align="right"]) select {
    max-width: 100%;
    box-sizing: border-box;
}
/* 兜底：老浏览器不支持 :has() 时，至少保证标签不竖排换行（值列过宽由容器滚动兜住）。 */
.layui-layer-page .layui-layer-content td[align="right"],
.mainbody form td[align="right"] {
    white-space: nowrap;
}
