/* 巨鲸商家后台新外观。原表格、表单、导航及业务事件保持原结构。 */
body.jj-admin-login,
body.jj-admin-shell,
body.jj-admin-page {
    --jj-primary: #1875ed;
    --jj-primary-hover: #1161cc;
    --jj-sidebar: #132a42;
    --jj-ink: #203b56;
    --jj-muted: #7b8ca2;
    --jj-line: #e1e9f3;
    --jj-background: #f5f7fc;
    --jj-shadow: 0 3px 15px rgba(27, 65, 114, .025);
    -webkit-font-smoothing: antialiased;
}
/* The brand, navigation and iframe edge share one width, including scrollbars. */
body.jj-admin-shell {
    --jj-v2-sidebar-width: 252px;
    --jj-v2-sidebar-collapsed: 64px;
    --jj-v2-header-height: 76px;
    --jj-v2-shell-top: var(--jj-v2-header-height);
}
body.jj-admin-shell.multiplenav { --jj-v2-shell-top: calc(var(--jj-v2-header-height) + 44px); }
body.jj-admin-shell .main-header .logo {
    box-sizing: border-box;
    width: var(--jj-v2-sidebar-width);
    height: var(--jj-v2-shell-top);
    line-height: var(--jj-v2-shell-top);
    padding: 0 22px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .045);
    background: #122b46;
    text-align: left;
}
body.jj-admin-shell .main-header .logo:hover { background: #122b46; }
body.jj-admin-shell .jj-brand .logo-lg { height: 100%; display: flex; align-items: center; gap: 12px; }
body.jj-admin-shell .jj-brand .jj-brand-mark {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    margin: 0;
    border-radius: 14px 14px 18px 8px;
    background: linear-gradient(145deg, #42b7ff, #2487eb);
    color: #fff;
    font-size: 27px;
    line-height: 46px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .1);
}
body.jj-admin-shell .jj-brand .jj-brand-copy strong { font-size: 20px; letter-spacing: 1px; font-weight: 650; }
body.jj-admin-shell .jj-brand .jj-brand-copy small { margin-top: 5px; color: #8fa9c4; font-size: 11px; letter-spacing: 2px; }
body.jj-admin-shell .main-header .navbar { margin-left: var(--jj-v2-sidebar-width); min-height: var(--jj-v2-header-height); }
body.jj-admin-shell .main-header #firstnav { min-height: var(--jj-v2-header-height); }
body.jj-admin-shell .main-header #firstnav .nav > li > a { min-height: var(--jj-v2-header-height); padding-top: 27px; padding-bottom: 27px; font-size: 13px; }
body.jj-admin-shell .main-header #firstnav .sidebar-toggle { height: var(--jj-v2-header-height); min-height: var(--jj-v2-header-height); padding: 0; line-height: var(--jj-v2-header-height); }
body.jj-admin-shell .main-header #firstnav .nav-addtabs > li > a { line-height: 22px; }
body.jj-admin-shell .main-header #secondnav { height: 44px; }
body.jj-admin-shell .main-header #secondnav .nav > li > a { height: 44px; padding-top: 11px; padding-bottom: 11px; }
body.jj-admin-shell .main-sidebar {
    box-sizing: border-box;
    width: var(--jj-v2-sidebar-width);
    padding-top: var(--jj-v2-shell-top);
    min-height: 100vh;
    background: linear-gradient(170deg, #122b46 0%, #10243b 62%, #142c45 100%);
    overflow: hidden;
    scrollbar-gutter: auto;
}
body.jj-admin-shell .content-wrapper,
body.jj-admin-shell .main-footer { margin-left: var(--jj-v2-sidebar-width); }
body.jj-admin-shell.fixed .content-wrapper { padding-top: var(--jj-v2-shell-top); }
body.jj-admin-shell .main-sidebar > .slimScrollDiv {
    width: 100% !important;
    height: calc(100vh - var(--jj-v2-shell-top)) !important;
    overflow: hidden !important;
    background: transparent;
    scrollbar-gutter: auto;
}
body.jj-admin-shell .main-sidebar .sidebar {
    box-sizing: border-box;
    width: 100% !important;
    height: calc(100vh - var(--jj-v2-shell-top)) !important;
    padding: 22px 0 12px;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-gutter: auto;
    scrollbar-width: thin;
    scrollbar-color: #35506c #122b46;
    overscroll-behavior: contain;
}
body.jj-admin-shell .main-sidebar .sidebar::-webkit-scrollbar { width: 6px; }
body.jj-admin-shell .main-sidebar .sidebar::-webkit-scrollbar-track { background: #122b46; }
body.jj-admin-shell .main-sidebar .sidebar::-webkit-scrollbar-thumb { background: #35506c; border: 1px solid #122b46; border-radius: 8px; }
body.jj-admin-shell .main-sidebar .sidebar::-webkit-scrollbar-thumb:hover { background: #4b6a89; }
body.jj-admin-shell .main-sidebar > .slimScrollDiv > .slimScrollBar,
body.jj-admin-shell .main-sidebar > .slimScrollDiv > .slimScrollRail { display: none !important; }
/* Keep the original ACL menu and search usable if the presentation adapter is absent. */
body.jj-admin-shell .sidebar-menu > li > a { margin: 4px 12px; padding: 12px; border-radius: 8px; border-left: 0; color: #b5c7dc; }
body.jj-admin-shell .sidebar-menu > li.active > a,
body.jj-admin-shell .sidebar-menu .treeview-menu > li.active > a { background: linear-gradient(100deg, #247ce5, #1e6ace); color: #fff; }
body.jj-admin-shell .sidebar-menu > li > .treeview-menu { margin: 0 12px 6px; padding: 4px; background: transparent; }
body.jj-admin-shell .sidebar-menu .treeview-menu > li > a { margin: 2px 0; padding: 10px 12px; border-radius: 7px; }
body.jj-admin-shell .jj-sidebar-caption { color: #6f8ba9; font-size: 10px; letter-spacing: .12em; }
body.jj-admin-shell .jj-sidebar-footer { margin: 24px 22px 0; padding: 16px 0 2px; border-top: 1px solid rgba(255, 255, 255, .07); color: #7494b2; font-size: 10px; line-height: 1.8; }
body.jj-admin-shell:not(.jj-v2-nav-ready) .jj-v2-navigation,
body.jj-admin-shell:not(.jj-v2-nav-ready) .jj-v2-menu-search { display: none; }
/* AdminLTE reads jQuery :visible on this source UL before opening a parent.
   Keep its layout boxes available while the presentation adapter supplies the UI. */
body.jj-admin-shell.jj-v2-nav-ready .sidebar > .sidebar-menu {
    display: block !important;
    position: fixed;
    left: -10000px;
    top: 0;
    width: var(--jj-v2-sidebar-width);
    height: auto;
    margin: 0;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    opacity: 0;
    pointer-events: none;
}
body.jj-admin-shell.jj-v2-nav-ready .sidebar > .user-panel,
body.jj-admin-shell.jj-v2-nav-ready .sidebar > .sidebar-form,
body.jj-admin-shell.jj-v2-nav-ready .sidebar > .jj-sidebar-caption { display: none !important; }
body.jj-admin-shell .jj-v2-menu-search {
    display: flex; align-items: center; gap: 8px; height: 38px;
    margin: 0 18px 27px; padding: 0 10px; border: 1px solid rgba(255, 255, 255, .075);
    border-radius: 8px; background: rgba(255, 255, 255, .025); color: #86a0bb;
}
body.jj-admin-shell .jj-v2-menu-search > svg { flex: 0 0 16px; width: 16px; height: 16px; }
body.jj-admin-shell .jj-v2-menu-search input { min-width: 0; width: 100%; border: 0; outline: 0; box-shadow: none; padding: 6px 0; background: transparent; color: #e6f2ff; font-size: 12px; }
body.jj-admin-shell .jj-v2-menu-search input::placeholder { color: #8ba3bc; }
body.jj-admin-shell .jj-v2-menu-search:focus-within { border-color: #4a82b6; box-shadow: 0 0 0 2px rgba(68, 143, 214, .1); }
body.jj-admin-shell .jj-v2-menu-search kbd { flex: 0 0 auto; padding: 0; background: transparent; box-shadow: none; color: #69839d; font-size: 10px; }
body.jj-admin-shell .jj-v2-navigation { padding: 0 13px; }
body.jj-admin-shell .jj-v2-nav-group + .jj-v2-nav-group { margin-top: 26px; }
body.jj-admin-shell .jj-v2-nav-section { margin: 0 13px 10px; color: #6f8ba9; font-size: 10px; font-weight: 500; line-height: 1.4; letter-spacing: 1.5px; }
body.jj-admin-shell .jj-v2-nav-group > ul { margin: 0; padding: 0; list-style: none; }
body.jj-admin-shell .jj-v2-nav-group > ul > li + li { margin-top: 4px; }
body.jj-admin-shell .jj-v2-nav-link {
    position: relative; display: flex; align-items: center; gap: 11px;
    width: 100%; min-height: 43px; padding: 11px 13px; border: 0; border-radius: 8px;
    background: transparent; color: #b5c7dc; text-align: left; font-size: 13px; line-height: 21px;
    transition: background-color .15s ease, color .15s ease;
}
body.jj-admin-shell .jj-v2-nav-link:hover { background: rgba(255, 255, 255, .045); color: #fff; }
body.jj-admin-shell .jj-v2-nav-link.is-active,
body.jj-admin-shell .jj-v2-nav-link[aria-current="page"] { background: linear-gradient(100deg, #247ce5, #1e6ace); color: #fff; box-shadow: 0 4px 14px rgba(6, 22, 42, .15); }
body.jj-admin-shell .jj-v2-nav-link .jj-v2-nav-icon { flex: 0 0 18px; width: 18px; height: 18px; opacity: .88; }
body.jj-admin-shell .jj-v2-nav-link .jj-v2-nav-label { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
body.jj-admin-shell .jj-v2-nav-link:focus-visible { outline: 2px solid #76acf5; outline-offset: 2px; }
body.jj-admin-shell .jj-v2-nav-empty { margin: 8px 12px; color: #a7bdd3; font-size: 12px; line-height: 1.8; }
@media (min-width: 768px) {
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .main-header .logo,
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .main-sidebar { width: var(--jj-v2-sidebar-collapsed) !important; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .main-header .navbar,
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .content-wrapper,
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .main-footer { margin-left: var(--jj-v2-sidebar-collapsed) !important; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .main-header .logo { padding: 0; text-align: center; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .jj-brand .logo-lg { display: none; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .jj-brand .logo-mini { margin: 0; font-size: 25px; line-height: var(--jj-v2-shell-top); }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .jj-v2-navigation { padding: 0 10px; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .jj-v2-nav-link { justify-content: center; padding: 11px; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .jj-v2-nav-label,
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .jj-v2-menu-search,
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .jj-sidebar-footer { display: none; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse .jj-v2-nav-section { height: 1px; margin: 0 10px 12px; background: rgba(255, 255, 255, .08); font-size: 0; line-height: 0; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse:not(.jj-v2-nav-ready) .main-sidebar,
    body.jj-admin-shell.sidebar-mini.sidebar-collapse:not(.jj-v2-nav-ready) .main-sidebar > .slimScrollDiv,
    body.jj-admin-shell.sidebar-mini.sidebar-collapse:not(.jj-v2-nav-ready) .main-sidebar .sidebar { overflow: visible !important; }
    body.jj-admin-shell.sidebar-mini.sidebar-collapse:not(.jj-v2-nav-ready) .sidebar-menu > li:hover > a > span,
    body.jj-admin-shell.sidebar-mini.sidebar-collapse:not(.jj-v2-nav-ready) .sidebar-menu > li:hover > .treeview-menu { left: var(--jj-v2-sidebar-collapsed); }
}
@media (max-width: 767px) {
    body.jj-admin-shell { --jj-v2-header-height: 64px; }
    body.jj-admin-shell .main-header .logo { position: absolute; top: 0; left: 50%; width: 176px; height: var(--jj-v2-header-height); margin-left: -88px; padding: 0 8px; background: transparent; border: 0; pointer-events: none; }
    body.jj-admin-shell .main-header .logo:hover { background: transparent; }
    body.jj-admin-shell .jj-brand .logo-lg { gap: 8px; }
    body.jj-admin-shell .jj-brand .jj-brand-mark { flex-basis: 34px; width: 34px; height: 34px; border-radius: 10px 10px 13px 6px; line-height: 34px; font-size: 21px; }
    body.jj-admin-shell .jj-brand .jj-brand-copy strong { color: #203b56; font-size: 16px; }
    body.jj-admin-shell .jj-brand .jj-brand-copy small { color: #7b91a8; font-size: 9px; letter-spacing: 1px; }
    body.jj-admin-shell .main-header .navbar { margin-left: 0; }
    body.jj-admin-shell .main-header #firstnav .nav > li > a { min-height: var(--jj-v2-header-height); padding-top: 21px; padding-bottom: 21px; }
    body.jj-admin-shell .main-sidebar { width: var(--jj-v2-sidebar-width); transform: translateX(calc(-1 * var(--jj-v2-sidebar-width))); }
    body.jj-admin-shell.sidebar-open .main-sidebar { transform: translateX(0); }
    body.jj-admin-shell .content-wrapper,
    body.jj-admin-shell .main-footer { margin-left: 0; }
    body.jj-admin-shell.sidebar-open .content-wrapper,
    body.jj-admin-shell.sidebar-open .main-footer { transform: translateX(var(--jj-v2-sidebar-width)); }
}
body.jj-admin-page .jj-page-content { padding: 26px 28px 32px; }
body.jj-admin-page .panel,
body.jj-admin-page .jj-panel { border-radius: 15px; box-shadow: var(--jj-shadow); }
body.jj-admin-page .panel > .panel-heading { border-radius: 14px 14px 0 0; background: #fff; padding: 16px 22px; }
body.jj-admin-page .panel > .panel-body { padding: 22px; }
body.jj-admin-page .form-control { border-radius: 8px; border-color: #dce5f1; background-color: #fff; box-shadow: none; }
body.jj-admin-page input.form-control,
body.jj-admin-page select.form-control { min-height: 38px; }
body.jj-admin-page .form-control:focus { border-color: #70a9f3; box-shadow: 0 0 0 3px rgba(24, 117, 237, .08); }
body.jj-admin-page .btn { border-radius: 7px; transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease; }
body.jj-admin-page .btn-primary { background: #1875ed; border-color: #1875ed; }
body.jj-admin-page .btn-primary:hover { background: #1161cc; border-color: #1161cc; }
body.jj-admin-page .btn-success { color: #25735a; background: #eaf7f1; border-color: #cfeadd; }
body.jj-admin-page .btn-danger { color: #b94149; background: #fff1f2; border-color: #f3d3d6; }
body.jj-admin-page .btn[disabled],
body.jj-admin-page .btn.disabled { opacity: .5; }
body.jj-admin-page .nav-tabs { border-bottom-color: #e4ebf5; }
body.jj-admin-page .panel-heading .nav-tabs > li > a { color: #687e95; background: transparent; border: 0; border-bottom: 3px solid transparent; margin: 0 8px 0 0; padding: 12px 10px; }
body.jj-admin-page .panel-heading .nav-tabs > li.active > a { color: #1875ed; background: transparent; border-bottom-color: #1875ed; }
body.jj-admin-page .fixed-table-container { border-color: #e3eaf4; border-radius: 10px; }
body.jj-admin-page .table > thead > tr > th { color: #6b8098; background: #f5f8fc; font-size: 12px; font-weight: 600; }
body.jj-admin-page .table > tbody > tr > td { color: #38546f; border-color: #edf1f7; padding-top: 14px; padding-bottom: 14px; }
body.jj-admin-page .table-striped > tbody > tr:nth-of-type(odd) { background: #fff; }
body.jj-admin-page .table-hover > tbody > tr:hover { background: #f7faff; }
body.jj-admin-page .jj-order-cell strong { font-weight: 550; }
body.jj-admin-page .jj-order-subline { color: #8b9db2; }
body.jj-admin-page .jj-order-table td[data-field="address"],
body.jj-admin-page .jj-order-table td[data-field="memo1"] { white-space: normal; min-width: 180px; max-width: 280px; }
body.jj-admin-page .jj-order-status-tabs { display: flex; overflow-x: auto; white-space: nowrap; }
body.jj-admin-page .jj-order-status-tabs > li { flex: 0 0 auto; float: none; }

/* 场景始终完整等比显示；只左右两侧渐隐，不裁顶部或底部。 */
body.jj-admin-page .jj-v2-page-hero,
body.jj-admin-page [data-jj-page-hero] {
    position: relative;
    min-height: 0;
    margin: 0 0 14px;
    padding: 12px 0;
    border: 0;
    border-bottom: 1px solid #e4ebf4;
    border-radius: 0;
    background: var(--jj-background);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    overflow: visible;
}
body.jj-admin-page .jj-v2-page-hero > :first-child:not(img),
body.jj-admin-page .jj-concert-heading-copy { position: relative; z-index: 1; flex: 0 1 auto; max-width: 38%; }
body.jj-admin-page .jj-v2-page-hero h1 { margin: 8px 0 12px; color: #203b56; font-size: 27px; font-weight: 650; line-height: 1.35; }
body.jj-admin-page .jj-v2-page-hero .jj-eyebrow { margin: 0; color: #8598af; font-size: 11px; letter-spacing: .06em; }
body.jj-admin-page .jj-v2-description,
body.jj-admin-page .jj-v2-page-hero p { color: #7b8fa8; font-size: 13px; line-height: 1.8; }
body.jj-admin-page .jj-v2-hero-art,
body.jj-admin-page .jj-concert-hero-art {
    position: absolute;
    display: block;
    width: min(42%, 490px);
    height: auto;
    max-width: none;
    max-height: none;
    pointer-events: none;
    object-fit: contain;
    transform: none;
    filter: none;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
}
body.jj-admin-page .jj-v2-hero-art[hidden] { display: none; }
body.jj-admin-page .jj-concert-artist-poster { display: block; width: 120px; height: 80px; border-radius: 9px; object-fit: cover; }
body.jj-admin-page .jj-concert-selected-event { border-color: #e1e9f3; background: #fff; border-radius: 13px; }
body.jj-admin-page .jj-concert-event-card { border: 1px solid #e1e9f3; border-radius: 13px; background: #fff; }
body.jj-admin-page .jj-concert-event-card .jj-concert-artist-poster:not(.is-compact) { width: 180px; max-width: 100%; margin-bottom: 12px; }
body.jj-admin-page .jj-concert-selected-event:has(.jj-concert-artist-poster) { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; align-items: center; gap: 16px; }
body.jj-admin-page .jujing-order-switch > a { z-index: 1; flex: 0 0 auto; border-color: #dce5f2; box-shadow: none; }
body.jj-admin-page .jujing-order-switch strong { color: #203b56; font-size: 27px; }
body.jj-admin-page .jujing-order-switch p { margin-top: 12px; }
body.jj-admin-page .jj-dashboard-hero { border-radius: 16px; }
body.jj-admin-page .jj-metric { border-radius: 14px; }
body.jj-admin-page .jj-goods-form-tabs > li > a { font-size: 14px; }
body.jj-admin-page a:focus-visible,
body.jj-admin-page button:focus-visible,
body.jj-admin-shell a:focus-visible { outline: 3px solid #76acf5; outline-offset: 3px; }
@media (max-width: 1100px) {
    body.jj-admin-page .jj-page-content { padding: 20px; }
    body.jj-admin-page .jj-v2-page-hero > :first-child:not(img) { max-width: 44%; }
}
@media (max-width: 767px) {
    body.jj-admin-page .jj-page-content { padding: 14px; }
    body.jj-admin-page .panel > .panel-body,
    body.jj-admin-page .panel > .panel-heading { padding: 14px; }
    body.jj-admin-page .jj-v2-page-hero,
    body.jj-admin-page [data-jj-page-hero] { min-height: 0; flex-wrap: wrap; padding: 8px 0 14px; gap: 14px; }
    body.jj-admin-page .jj-v2-page-hero > :first-child:not(img),
    body.jj-admin-page .jj-concert-heading-copy { max-width: 100%; }
    body.jj-admin-page .jj-v2-hero-art,
    body.jj-admin-page .jj-concert-hero-art { display: none; }
    body.jj-admin-page .jj-v2-page-hero h1 { font-size: 24px; }
    body.jj-admin-page .jj-concert-selected-event:has(.jj-concert-artist-poster) { grid-template-columns: 90px minmax(0, 1fr); gap: 12px; }
    body.jj-admin-page .jj-concert-selected-event .jj-concert-artist-poster { width: 90px; }
}
@media (prefers-reduced-motion: reduce) {
    body.jj-admin-page .btn { transition: none; }
}

/* Keep copy and its full scene in one compact heading, with separation below only. */
body.jj-admin-page .jj-page-content.jj-v2-compact-heading { padding-top: 0; }

/* Brand and shell polish: a quiet tide around the existing whale mascot. */
body.jj-admin-shell .main-header .jj-brand {
    position: relative; isolation: isolate; overflow: hidden;
    background: radial-gradient(ellipse at 10% 110%, #23547c, transparent 65%), #122b46;
}
body.jj-admin-shell .main-header .jj-brand::after {
    content: ''; position: absolute; z-index: -1; pointer-events: none;
    left: -45%; bottom: -102px; width: 180%; height: 116px; border-radius: 47%;
    background: linear-gradient(100deg, #2495c91f, #69deff40, #308bba1a);
    animation: jj-brand-tide 12s ease-in-out infinite alternate;
}
body.jj-admin-shell .jj-brand .jj-brand-mark {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    vertical-align: middle; flex-basis: 52px; width: 52px; height: 52px;
    border-radius: 17px; background: linear-gradient(145deg, #50c6fd26, #388cff12);
    border: 1px solid #7ccfff30; box-shadow: inset 0 1px 0 #a9e9ff25, 0 4px 14px #071b3026;
}
body.jj-admin-shell .jj-brand-mark img { width: 55px; height: 55px; object-fit: contain; max-width: none; animation: jj-whale-float 6s ease-in-out infinite; }
body.jj-admin-shell .jj-brand .jj-brand-copy { line-height: 1.2; }
body.jj-admin-shell .jj-brand .jj-brand-copy strong { display: block; font-size: 21px; letter-spacing: .5px; color: #f2f8ff; }
body.jj-admin-shell .jj-brand .jj-brand-copy small { display: block; color: #9ab8d2; }
body.jj-admin-shell .main-header .jj-brand:hover { background-color: #173550; }
body.jj-admin-shell .main-header .navbar { background: linear-gradient(100deg, #fff, #f6f9ff); border-bottom: 1px solid #dce7f3; box-shadow: 0 2px 12px #264c7410; }
body.jj-admin-shell .main-header #firstnav .navbar-custom-menu > .nav { display: flex; align-items: center; gap: 2px; padding: 0 14px; min-height: var(--jj-v2-header-height); }
body.jj-admin-shell .main-header #firstnav .navbar-custom-menu > .nav > li > a {
    display: flex; align-items: center; justify-content: center; gap: 7px;
    min-height: 38px; padding: 8px 11px; border-radius: 10px; color: #506983;
    transition: background .18s, color .18s, box-shadow .18s;
}
body.jj-admin-shell .main-header #firstnav .navbar-custom-menu > .nav > li > a:hover,
body.jj-admin-shell .main-header #firstnav .navbar-custom-menu > .nav > li.open > a { background: #e7f0fd; color: #186bca; }
body.jj-admin-shell .main-header #firstnav .sidebar-toggle { display: flex; align-items: center; justify-content: center; width: 60px; color: #557693; }
body.jj-admin-shell .main-header #firstnav .sidebar-toggle:hover { color: #1875ed; background: #edf4ff; }
.jj-ui-icon { display: inline-block; vertical-align: middle; width: 18px; height: 18px; flex: 0 0 18px; }
.jj-top-control > i.fa,
body.jj-admin-shell .main-header .sidebar-toggle.jj-top-control::before { display: none; }
body.jj-admin-shell .main-header #firstnav > .nav-addtabs { margin-top: 19px; }
body.jj-admin-shell .main-header #firstnav > .nav-addtabs > li > a { min-height: 38px; padding: 8px 14px; border-radius: 9px; color: #40658c; background: #eaf2fe; }
body.jj-admin-shell .main-header #firstnav .user-menu > a { margin-left: 8px; border: 1px solid #e1e9f5; background: #ffffffb8; }
body.jj-admin-shell .main-header #firstnav .user-menu .user-image { float: none; margin: 0; width: 32px; height: 32px; }
.jj-account-avatar { object-fit: cover; border-radius: 50%; background: #e9f3ff; box-shadow: 0 0 0 2px #fff, 0 0 0 3px #d7e5f8; }
body.jj-admin-shell .navbar-custom-menu .dropdown-menu { border-radius: 12px; border: 1px solid #dfe8f6; box-shadow: 0 12px 40px #24456c20; overflow: hidden; }
body.jj-admin-shell .navbar-nav > .user-menu > .dropdown-menu > .user-header { background: linear-gradient(135deg, #e4efff, #edf5ff); }
body.jj-admin-shell .navbar-nav > .user-menu > .dropdown-menu > .user-header p { color: #284e7b; }
body.jj-admin-shell .navbar-nav > .user-menu > .dropdown-menu > .user-footer { padding: 12px; background: #f5f8fe; }
body.jj-admin-shell .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn { border-radius: 7px; }
.jj-motion-toggle { width: 100%; display: flex; align-items: center; gap: 10px; padding: 13px 16px; border: 0; background: #fff; color: #496581; text-align: left; font-size: 12px; }
.jj-motion-toggle:hover { background: #edf4ff; color: #186bca; }
body.jj-admin-shell #ribbon { min-height: 32px; background: #f8faff; border-bottom: 1px solid #e0e9f5; box-shadow: none; }
body.jj-admin-shell #ribbon .breadcrumb { padding-top: 6px; padding-bottom: 6px; font-size: 12px; }
body.jj-admin-shell #ribbon .jj-top-control { display: inline-flex; gap: 7px; align-items: center; color: #5c7794; }
body.jj-admin-shell #ribbon .jj-ui-icon { width: 14px; height: 14px; flex-basis: 14px; }
.jj-avatar-picker { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.jj-avatar-choice { padding: 3px; border: 2px solid transparent; border-radius: 50%; background: #edf3fc; line-height: 1; transition: border-color .15s, box-shadow .15s; }
.jj-avatar-choice img { display: block; width: 42px; height: 42px; border-radius: 50%; }
.jj-avatar-choice:hover { border-color: #91b8ef; }
.jj-avatar-choice[aria-pressed="true"] { border-color: #287de3; box-shadow: 0 0 0 3px #ddebff; }
.jj-avatar-hint { color: #6c819b; text-align: center; font-size: 11px; line-height: 1.7; margin: 10px 0 18px; }

/* The text and its scene share the sampled sky tone. No vertical image fade. */
body.jj-admin-page .jj-v2-page-hero,
body.jj-admin-page [data-jj-page-hero] {
    background: var(--jj-hero-bg, #edf3fd); border: 1px solid #dbe6f5; border-radius: 14px;
    padding-left: 20px; padding-right: 20px; box-shadow: 0 3px 12px #31598403;
}
body.jj-admin-page .jj-v2-page-hero .jj-eyebrow { color: #6684a4; }
body.jj-admin-page .jj-v2-page-hero p { color: #627e9b; }
body.jj-admin-page .jj-v2-page-hero h1 { color: #21456b; }
body.jj-admin-page .jj-dashboard-hero { background: #eaf3ff; border-color: #ccdef6; }

/* A real link dressed as a ticket: perforated stub, concise readable copy. */
body.jj-admin-page .jujing-order-switch > a {
    position: relative; isolation: isolate; overflow: visible; gap: 14px;
    min-height: 86px; padding: 16px 17px 16px 20px;
    border: 1px solid #5d78df; border-radius: 12px;
    background: linear-gradient(115deg, #305fab, #5b55b4 70%, #6966c1); color: #fff;
    box-shadow: 0 6px 18px #425cb328, inset 0 1px 0 #ffffff30;
    transition: box-shadow .18s, border-color .18s, transform .18s;
}
body.jj-admin-page .jujing-order-switch > a::before,
body.jj-admin-page .jujing-order-switch > a::after {
    content: ''; position: absolute; right: 40px; width: 13px; height: 13px;
    background: var(--jj-hero-bg, #edf3fd); border-radius: 50%; border: 1px solid #6680d9;
}
body.jj-admin-page .jujing-order-switch > a::before { top: -8px; clip-path: inset(7px 0 0); }
body.jj-admin-page .jujing-order-switch > a::after { bottom: -8px; clip-path: inset(0 0 7px); }
body.jj-admin-page .jujing-order-switch > a > i:first-child { color: #dceaff; font-size: 25px; transform: rotate(-8deg); }
body.jj-admin-page .jujing-order-switch > a > span { color: #fff; font-size: 17px; font-weight: 600; letter-spacing: .5px; }
body.jj-admin-page .jujing-order-switch > a small { color: #e1e7ff; font-size: 11px; font-weight: 400; letter-spacing: 0; margin-top: 6px; }
body.jj-admin-page .jujing-order-switch > a > i:last-child { display: flex; align-items: center; justify-content: flex-end; align-self: stretch; width: 30px; margin-left: 3px; border-left: 1px dashed #b7c8ff80; font-size: 18px; }
body.jj-admin-page .jujing-order-switch > a:hover { background: linear-gradient(115deg, #2a5caa, #6255bc 70%, #736acd); border-color: #4869d0; box-shadow: 0 8px 22px #3d53ac40; transform: translateY(-1px); }
@keyframes jj-brand-tide { from { transform: translateX(-3%) rotate(-3deg); } to { transform: translateX(7%) rotate(5deg); } }
@keyframes jj-whale-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
body.jj-motion-off .jj-brand::after,
body.jj-motion-off .jj-brand-mark img { animation: none !important; }
body.jj-motion-off .jj-avatar-choice,
body.jj-motion-off .jj-top-control,
body.jj-motion-off .jujing-order-switch > a { transition: none !important; }
@media (prefers-reduced-motion: reduce) {
    .jj-brand::after, .jj-brand-mark img { animation: none !important; }
    .jj-avatar-choice, .jj-top-control, .jujing-order-switch > a { transition: none !important; }
}
@media (max-width: 767px) {
    body.jj-admin-shell .main-header .jj-brand { background: transparent; }
    body.jj-admin-shell .main-header .jj-brand::after { display: none; }
    body.jj-admin-shell .jj-brand .jj-brand-copy strong { color: #234465; font-size: 16px; }
    body.jj-admin-shell .jj-brand .jj-brand-copy small { color: #6c88a5; }
    body.jj-admin-shell .jj-brand .jj-brand-mark { width: 38px; height: 38px; flex-basis: 38px; border-radius: 12px; }
    body.jj-admin-shell .jj-brand-mark img { width: 42px; height: 42px; }
    body.jj-admin-shell .main-header #firstnav .navbar-custom-menu > .nav { padding: 0 9px; }
    body.jj-admin-shell .main-header #firstnav .user-menu > a { padding: 5px; margin: 0; background: transparent; border: 0; }
    body.jj-admin-shell .main-header #firstnav .navbar-custom-menu { margin-right: 0; }
    body.jj-admin-page .jj-v2-page-hero, body.jj-admin-page [data-jj-page-hero] { padding: 16px; }
    body.jj-admin-page .jujing-order-switch > a { width: 100%; }
}

/* Semantic card colors, tied to explicit business roles. */
body.jj-admin-page {
  --jj-tone-blue-bg: #e5efff;
  --jj-tone-blue-end: #f0f5ff;
  --jj-tone-blue-line: #bfd4f7;
  --jj-tone-blue-ink: #234d83;
  --jj-tone-green-bg: #e5f3ee;
  --jj-tone-green-end: #f1f8f4;
  --jj-tone-green-line: #bddccc;
  --jj-tone-green-ink: #255d47;
  --jj-tone-purple-bg: #eeeafd;
  --jj-tone-purple-end: #f5f2ff;
  --jj-tone-purple-line: #d4c9f3;
  --jj-tone-purple-ink: #584381;
  --jj-tone-apricot-bg: #fff1df;
  --jj-tone-apricot-end: #fff8ef;
  --jj-tone-apricot-line: #edd4af;
  --jj-tone-apricot-ink: #7d501b;
}

/* Untagged cards safely default to overview blue, never a false success state. */
body.jj-admin-page .jj-metric,
body.jj-admin-page .jj-shortcut,
body.jj-admin-page .concert-stat,
body.jj-admin-page [data-jj-tone="blue"] {
  --jj-tone-bg: var(--jj-tone-blue-bg);
  --jj-tone-end: var(--jj-tone-blue-end);
  --jj-tone-line: var(--jj-tone-blue-line);
  --jj-tone-ink: var(--jj-tone-blue-ink);
}
body.jj-admin-page [data-jj-tone="green"] {
  --jj-tone-bg: var(--jj-tone-green-bg);
  --jj-tone-end: var(--jj-tone-green-end);
  --jj-tone-line: var(--jj-tone-green-line);
  --jj-tone-ink: var(--jj-tone-green-ink);
}
body.jj-admin-page [data-jj-tone="purple"] {
  --jj-tone-bg: var(--jj-tone-purple-bg);
  --jj-tone-end: var(--jj-tone-purple-end);
  --jj-tone-line: var(--jj-tone-purple-line);
  --jj-tone-ink: var(--jj-tone-purple-ink);
}
body.jj-admin-page [data-jj-tone="apricot"] {
  --jj-tone-bg: var(--jj-tone-apricot-bg);
  --jj-tone-end: var(--jj-tone-apricot-end);
  --jj-tone-line: var(--jj-tone-apricot-line);
  --jj-tone-ink: var(--jj-tone-apricot-ink);
}

body.jj-admin-page .jj-metric,
body.jj-admin-page .jj-shortcut,
body.jj-admin-page #concert-stats .concert-stat {
  background: var(--jj-tone-bg);
  background: linear-gradient(120deg, var(--jj-tone-bg), var(--jj-tone-end));
  border-color: var(--jj-tone-line);
  color: #29425e;
}
body.jj-admin-page .jj-metric .jj-metric-value,
body.jj-admin-page .jj-shortcut strong,
body.jj-admin-page #concert-stats .concert-stat strong {
  color: var(--jj-tone-ink);
}
body.jj-admin-page .jj-metric .jj-metric-label,
body.jj-admin-page .jj-metric small,
body.jj-admin-page .jj-shortcut small,
body.jj-admin-page #concert-stats .concert-stat span {
  color: #435a73;
}
body.jj-admin-page .jj-shortcut > .fa:first-child {
  background: rgba(255, 255, 255, .72);
  color: var(--jj-tone-ink);
}
body.jj-admin-page .jj-shortcut:hover,
body.jj-admin-page .jj-shortcut:focus-visible {
  background: var(--jj-tone-bg);
  border-color: var(--jj-tone-ink);
}

/* Only headings, filters and non-financial informational regions get a wash.
 * Keep .panel-body, .jj-panel-body and every tbody white; never color the
 * whole financial modal or override .concert-error / warning state classes. */
body.jj-admin-page .panel > .panel-heading,
body.jj-admin-page .jj-panel > .jj-panel-head,
body.jj-admin-page .jj-order-section-label {
  background: #edf3ff;
  border-color: #d3e0f5;
  color: #2c4a70;
}
body.jj-admin-page .concert-report-tools,
body.jj-admin-page .jj-concert-rules,
body.jj-admin-page .jj-goods-notice,
body.jj-admin-page .jj-concert-selected-event,
body.jj-admin-page .jj-concert-editor-context {
  background: #eaf1fd;
  border-color: #c6d9f5;
  color: #3c5674;
}
body.jj-admin-page .jj-goods-deposit-notice {
  background: #eeeafd;
  border-color: #b6a1e1;
  color: #57477c;
}
/* Explicit opt-in only: annotate the actual pending notice at render source. */
body.jj-admin-page .concert-note[data-jj-tone="apricot"] {
  background: var(--jj-tone-apricot-bg);
  border-color: var(--jj-tone-apricot-line);
  color: var(--jj-tone-apricot-ink);
}
@media (prefers-contrast: more) {
  body.jj-admin-page .jj-metric,
  body.jj-admin-page .jj-shortcut,
  body.jj-admin-page #concert-stats .concert-stat {
    background: var(--jj-tone-bg);
    border-color: var(--jj-tone-ink);
  }
}
/* Narrow goods form polish. Append after the two existing merchant stylesheets. */
body.jj-admin-page .jj-goods-form .jj-goods-sku-scroll-hint {
    display: none;
}
body.jj-admin-page .jj-goods-form .goods-sku-table:focus-visible {
    outline: 3px solid #76acf5;
    outline-offset: -3px;
}
/* Keep the original faupload class, attributes and plugin binding; genuine delete controls remain red. */
body.jj-admin-page .jj-goods-form button.faupload.btn {
    color: #2168af;
    background-color: #eef5ff;
    border-color: #cddff7;
}
body.jj-admin-page .jj-goods-form button.faupload.btn:hover,
body.jj-admin-page .jj-goods-form button.faupload.btn:focus {
    color: #19578f;
    background-color: #e0edff;
    border-color: #9dbfec;
}
body.jj-admin-page .jj-goods-form button.faupload.btn:active {
    color: #174e81;
    background-color: #d4e5ff;
    border-color: #87aee0;
}
@media (max-width: 767px) {
    body.jj-admin-page .jj-goods-form .panel-heading .jj-goods-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        overflow: visible;
        margin-bottom: 0;
    }
    body.jj-admin-page .jj-goods-form .panel-heading .jj-goods-tabs::before,
    body.jj-admin-page .jj-goods-form .panel-heading .jj-goods-tabs::after {
        display: none;
    }
    body.jj-admin-page .jj-goods-form .panel-heading .jj-goods-tabs > li {
        float: none;
        min-width: 0;
        margin: 0;
    }
    body.jj-admin-page .jj-goods-form .panel-heading .jj-goods-tabs > li > a {
        display: block;
        min-height: 44px;
        margin: 0;
        padding: 10px 6px;
        text-align: center;
        white-space: nowrap;
        font-size: 14px;
        line-height: 22px;
    }
    body.jj-admin-page .jj-goods-form .jj-goods-sku-scroll-hint {
        display: block;
        margin: 0 0 10px;
        color: #5b7795;
        font-size: 12px;
        line-height: 1.7;
    }
    body.jj-admin-page .jj-goods-form .jj-goods-sku-scroll-hint .fa {
        margin-right: 4px;
        color: #2874bf;
    }
}
/* Each original page renders its breadcrumb inside the content iframe. */
body.jj-admin-page #ribbon { min-height: 32px; background: #f8faff; border-bottom: 1px solid #e0e9f5; box-shadow: none; }
body.jj-admin-page #ribbon .breadcrumb { padding-top: 6px; padding-bottom: 6px; font-size: 12px; }
body.jj-admin-page #ribbon .jj-top-control { display: inline-flex; gap: 7px; align-items: center; color: #5c7794; }
body.jj-admin-page #ribbon .jj-ui-icon { width: 14px; height: 14px; flex-basis: 14px; }
/* Dashboard presentation only. Merge after v2.css semantic tones; no hero dimensions. */
body.jj-admin-page .jj-dashboard .jj-metric {
  border-color: var(--jj-tone-line, #bfd4f7);
  background: linear-gradient(120deg, var(--jj-tone-bg, #e5efff), var(--jj-tone-end, #f0f5ff));
  box-shadow: 0 3px 14px rgba(56, 93, 143, .035);
}
body.jj-admin-page .jj-dashboard .jj-metric .jj-metric-label { color: #425b79; font-weight: 600; }
body.jj-admin-page .jj-dashboard .jj-metric .jj-metric-value { color: var(--jj-tone-ink, #234d83); letter-spacing: -.025em; }
body.jj-admin-page .jj-dashboard .jj-metric small { color: #506780; }
body.jj-admin-page .jj-growth-panel { overflow: hidden; }
body.jj-admin-page .jj-growth-panel > .jj-panel-head {
  padding: 16px 20px;
  background: linear-gradient(105deg, #e5efff, #f0f5ff);
  border-bottom: 1px solid #d5e2f6;
}
body.jj-admin-page .jj-growth-panel .jj-panel-head h2 { color: #294e7a; font-size: 17px; }
body.jj-admin-page .jj-growth-panel .jj-panel-head p { color: #506a88; font-size: 13px; line-height: 1.6; }
body.jj-admin-page .jj-growth-period {
  flex: 0 0 auto;
  padding: 5px 9px;
  color: #3a5c85;
  background: rgba(255,255,255,.7);
  border: 1px solid #c6d8f3;
  border-radius: 7px;
  font-size: 12px;
}
body.jj-admin-page .jj-growth-panel > .jj-panel-body { padding: 16px 18px 14px; }
body.jj-admin-page .jj-growth-caption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; color: #5a6f89; font-size: 12px; }
body.jj-admin-page .jj-growth-legend { display: inline-flex; align-items: center; gap: 7px; color: #385e8c; }
body.jj-admin-page .jj-growth-legend > i { display: inline-block; width: 17px; height: 3px; border-radius: 2px; background: #2879df; }
body.jj-admin-page .jj-growth-chart { position: relative; }
body.jj-admin-page .jj-growth-empty[hidden] { display: none !important; }
body.jj-admin-page .jj-growth-empty {
  position: absolute;
  top: 42%; left: 12px; right: 12px;
  margin: 0;
  color: #526e91;
  font-size: 14px;
  line-height: 1.7;
  text-align: center;
  pointer-events: none;
}
body.jj-admin-page .jj-growth-definition {
  margin: 6px 0 0;
  padding: 10px 12px;
  border-radius: 8px;
  color: #4a6484;
  background: #eff5fe;
  font-size: 12px;
  line-height: 1.75;
}
body.jj-admin-page .jj-growth-definition > .fa { margin-right: 4px; color: #4677ad; }
body.jj-admin-page .jj-dashboard .jj-system-info > summary { color: #365478; background: #edf3ff; border-radius: 12px; }
body.jj-admin-page .jj-dashboard .jj-system-info[open] > summary { border-radius: 12px 12px 0 0; }
body.jj-admin-page .jj-dashboard .jj-system-grid > div { padding: 10px 12px; background: #f3f6fc; border: 1px solid #e3eaf5; border-radius: 9px; }
body.jj-admin-page .jj-dashboard .jj-system-grid dt { color: #546b86; font-size: 12px; }
body.jj-admin-page .jj-dashboard .jj-system-grid dd { margin: 0; color: #2b4d77; }
@media (max-width: 620px) {
  body.jj-admin-page .jj-growth-panel > .jj-panel-head { padding: 14px; gap: 8px; }
  body.jj-admin-page .jj-growth-panel > .jj-panel-body { padding: 14px 12px 12px; }
  body.jj-admin-page .jj-growth-period { padding: 4px 7px; }
  body.jj-admin-page .jj-growth-definition { padding: 9px 10px; }
  body.jj-admin-page .jj-dashboard .jj-system-grid > div { padding: 9px 10px; }
}

/* ClassicPod glass-ribbon treatment, confined behind the brand copy. */
body.jj-admin-shell .main-header .jj-brand::after { content: none; animation: none; }
body.jj-admin-shell .main-header .jj-brand {
    background: radial-gradient(ellipse at 24% 100%, #203e62, transparent 80%), linear-gradient(115deg, #10283f, #192740);
}
body.jj-admin-shell .jj-brand-ribbons { position: absolute; inset: 0; z-index: -1; display: block; width: 100%; height: 100%; pointer-events: none; overflow: hidden; }
body.jj-admin-shell .jj-brand-ribbon { animation: jj-ribbon-flow 24s linear infinite; }
@keyframes jj-ribbon-flow { from { transform: translateX(0); } to { transform: translateX(var(--jj-ribbon-period)); } }
body.jj-motion-off .jj-brand-ribbon, body.jj-page-hidden .jj-brand-ribbon { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) { .jj-brand-ribbon { animation-play-state: paused !important; } }
/* The ticket holes reveal the real underlying surface, including any gradient. */
body.jj-admin-page .jujing-order-switch > a {
    -webkit-mask-image: radial-gradient(circle at calc(100% - 46px) 0, transparent 6px, #000 6.75px), radial-gradient(circle at calc(100% - 46px) 100%, transparent 6px, #000 6.75px);
    mask-image: radial-gradient(circle at calc(100% - 46px) 0, transparent 6px, #000 6.75px), radial-gradient(circle at calc(100% - 46px) 100%, transparent 6px, #000 6.75px);
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
}
body.jj-admin-page .jujing-order-switch > a::before,
body.jj-admin-page .jujing-order-switch > a::after { content: none; }
/* The original header positions these controls absolutely; set each hit box explicitly. */
@media (min-width: 768px) {
    body.jj-admin-shell .main-header #firstnav .sidebar-toggle {
        position: absolute; left: 14px; top: calc((var(--jj-v2-header-height) - 40px) / 2);
        width: 40px; height: 40px; min-height: 40px; padding: 0; line-height: 1; margin: 0;
        border: 1px solid transparent; border-radius: 10px;
    }
    body.jj-admin-shell .main-header #firstnav .sidebar-toggle:hover { background: #eaf2fc; border-color: #d7e5f7; }
    body.jj-admin-shell .main-header #firstnav > .nav-addtabs {
        position: absolute; top: calc((var(--jj-v2-header-height) - 40px) / 2); left: 76px; right: auto;
        display: flex; align-items: center; gap: 8px; height: 40px; max-width: calc(100% - 530px);
        padding: 0; margin: 0; border: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none;
    }
    body.jj-admin-shell .main-header #firstnav > .nav-addtabs > li { display: block; flex: 0 0 auto; height: 40px; margin: 0; float: none; }
    body.jj-admin-shell .main-header #firstnav > .nav-addtabs > li > a {
        display: flex; align-items: center; justify-content: center; gap: 8px;
        height: 40px; min-height: 40px; margin: 0; padding: 0 16px; line-height: 20px;
        border: 1px solid #d6e4f7; border-radius: 10px;
        background: linear-gradient(135deg, #edf4ff, #e5effd); color: #365e8e;
        box-shadow: inset 0 1px 0 #ffffffc9; font-weight: 500; white-space: nowrap;
    }
    body.jj-admin-shell .main-header #firstnav > .nav-addtabs > li > a:hover { color: #145fc0; border-color: #b5d0f1; background: #dfebfd; }
    body.jj-admin-shell .main-header #firstnav > .nav-addtabs .jj-ui-icon { width: 16px; height: 16px; flex-basis: 16px; }
}

/* Dashboard handover illustration only. No transactions, controls or chart data. */
body.jj-admin-page .jj-handover-panel { display: flex; flex-direction: column; overflow: hidden; }
body.jj-admin-page .jj-handover-panel > .jj-panel-head { flex: 0 0 auto; padding: 16px 18px; gap: 12px; }
body.jj-admin-page .jj-handover-panel .jj-panel-head p { font-size: 13px; line-height: 1.6; }
body.jj-admin-page .jj-handover-kind { flex: 0 0 auto; padding: 5px 9px; border: 1px solid #c6d8f3; border-radius: 7px; background: rgba(255,255,255,.7); color: #3a5c85; font-size: 12px; }
body.jj-admin-page .jj-handover-panel > .jj-panel-body { flex: 1; display: flex; padding: 16px 18px; }
body.jj-admin-page .jj-handover-steps { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 10px; width: 100%; margin: 0; padding: 0; list-style: none; }
body.jj-admin-page .jj-handover-step { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-content: center; gap: 11px; padding: 12px; border: 1px solid var(--jj-tone-line, #c8dcf5); border-radius: 10px; background: linear-gradient(110deg, var(--jj-tone-bg, #e5efff), var(--jj-tone-end, #f0f5ff)); }
body.jj-admin-page .jj-handover-number { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 9px; background: rgba(255,255,255,.78); color: var(--jj-tone-ink, #234d83); font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
body.jj-admin-page .jj-handover-copy { min-width: 0; }
body.jj-admin-page .jj-handover-copy > strong { display: block; color: var(--jj-tone-ink, #234d83); font-size: 14px; font-weight: 600; line-height: 1.5; }
body.jj-admin-page .jj-handover-copy > p { margin: 3px 0 8px; color: #486078; font-size: 12px; line-height: 1.65; }
body.jj-admin-page .jj-handover-flow { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; color: #49627d; font-size: 11px; line-height: 1.5; }
body.jj-admin-page .jj-handover-flow > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
body.jj-admin-page .jj-handover-flow > span > .fa { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 7px; background: rgba(255,255,255,.76); color: var(--jj-tone-ink, #234d83); font-size: 13px; }
body.jj-admin-page .jj-handover-flow > .fa { color: #8295ad; font-size: 12px; }
@media (min-width: 1101px) {
  body.jj-admin-page .jj-dashboard-grid { align-items: stretch; }
}
@media (max-width: 1100px) {
  body.jj-admin-page .jj-handover-steps { grid-template-rows: none; }
}
@media (max-width: 620px) {
  body.jj-admin-page .jj-handover-panel > .jj-panel-head { padding: 14px; gap: 8px; }
  body.jj-admin-page .jj-handover-panel > .jj-panel-body { padding: 12px; }
  body.jj-admin-page .jj-handover-kind { padding: 4px 7px; }
  body.jj-admin-page .jj-handover-step { grid-template-columns: 27px minmax(0, 1fr); gap: 9px; padding: 11px; }
  body.jj-admin-page .jj-handover-number { width: 27px; height: 27px; }
  body.jj-admin-page .jj-handover-flow { gap: 5px; }
  body.jj-admin-page .jj-handover-flow > span { gap: 4px; }
}
/* The workspace link already exists in the top bar and sidebar; remove its duplicate strip. */
body.jj-admin-page #ribbon { display: none; }
body.jj-admin-page .jj-page-content { background: var(--jj-background); }
/* Restore contrast for existing semantic buttons; no action or disabled-state changes. */
body.jj-admin-page .btn-success:not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):hover,
body.jj-admin-page .btn-success:not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):focus {
    color: #fff; background: #16634f; border-color: #16634f;
}
body.jj-admin-page .btn-danger:not(.faupload):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):hover,
body.jj-admin-page .btn-danger:not(.faupload):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):focus {
    color: #fff; background: #a42f38; border-color: #a42f38;
}
body.jj-admin-page .btn-primary:not(.btn-success):not(.btn-danger):not(.btn-info):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]) {
    color: #fff; background-color: #146cdb; border-color: #146cdb;
}
body.jj-admin-page .btn-primary:not(.btn-success):not(.btn-danger):not(.btn-info):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):hover,
body.jj-admin-page .btn-primary:not(.btn-success):not(.btn-danger):not(.btn-info):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):focus {
    color: #fff; background-color: #1161cc; border-color: #1161cc;
}
body.jj-admin-page .btn-info:not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]) {
    color: #fff; background-color: #2d749d; border-color: #2d749d;
}
body.jj-admin-page .btn-info:not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):hover,
body.jj-admin-page .btn-info:not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):focus {
    color: #fff; background-color: #245e82; border-color: #245e82;
}
body.jj-admin-page :is(.btn-success, .btn-primary, .btn-info, .btn-danger:not(.faupload)):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):focus {
    outline: 2px solid #284e7b; outline-offset: 2px;
}
body.jj-admin-page :is(.btn-success, .btn-primary, .btn-info, .btn-danger:not(.faupload)) > .fa {
    color: inherit;
}

/* Exact detail/edit controls: preserve defaults and make active feedback readable. */
body.jj-admin-page :is(.btn-success.btn-editone, .btn-success.btn-edit, .btn-info.btn-detail.btn-dialog, .btn-info.btn-execute.btn-dialog, .btn-default[data-detail]):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):hover,
body.jj-admin-page :is(.btn-success.btn-editone, .btn-success.btn-edit, .btn-info.btn-detail.btn-dialog, .btn-info.btn-execute.btn-dialog, .btn-default[data-detail]):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):focus {
    color: #fff; background: #16634f; border-color: #16634f;
}
body.jj-admin-page :is(.btn-success.btn-editone, .btn-success.btn-edit, .btn-info.btn-detail.btn-dialog, .btn-info.btn-execute.btn-dialog, .btn-default[data-detail]):not(.disabled):not([disabled]):not(:disabled):not([aria-disabled="true"]):focus {
    outline: 2px solid #16634f; outline-offset: 2px;
}
body.jj-admin-page :is(.btn-success.btn-editone, .btn-success.btn-edit, .btn-info.btn-detail.btn-dialog, .btn-info.btn-execute.btn-dialog, .btn-default[data-detail]) > .fa { color: inherit; }
body.jj-admin-page .btn-success:is(.btn-editone, .btn-edit):is(.disabled, [disabled], :disabled, [aria-disabled="true"]) {
    color: #25735a; background: #eaf7f1; border-color: #cfeadd;
}

/* Preserve original Addtabs dropdown and handlers. */
@media (min-width: 768px) {
    body.jj-admin-shell .main-header #firstnav > .nav-addtabs.jj-native-tabs-fixed {
        display: block; gap: 0; max-width: none; overflow: visible;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed > li {
        position: relative; display: block; flex: none; float: left;
        margin: 0 8px 0 0; height: 40px;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed > li > a {
        display: block; max-width: 250px; height: 40px; min-height: 40px;
        padding: 9px 13px; line-height: 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed > .jj-native-tab-closable > a {
        padding-right: 36px;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .close-tab {
        position: absolute; display: flex; align-items: center; justify-content: center;
        right: 6px; top: 50%; width: 24px; height: 24px; margin-top: -12px;
        padding: 0; color: #526c8c; border-radius: 6px; cursor: pointer; z-index: 1;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .close-tab::before {
        font-size: 15px;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .close-tab:hover {
        color: #173e71; background: #dce8f8;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .close-tab:focus-visible {
        outline: 2px solid #257ae8; outline-offset: 1px;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed > .tabdrop {
        float: right !important; margin: 0; position: relative;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed > .tabdrop > a {
        width: 44px; min-width: 44px; padding: 9px 5px; text-align: center;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed > .tabdrop.active > a {
        color: #165ab6; border-color: #9cc1ee; background: #dfedff;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .tabdrop > .dropdown-menu {
        top: calc(100% + 8px); right: 0; left: auto; margin: 0; padding: 6px;
        min-width: 300px; width: 360px; max-width: min(420px, calc(100vw - 30px));
        max-height: min(540px, calc(100vh - 120px)); overflow-x: hidden; overflow-y: auto;
        border: 1px solid #d9e4f2; border-radius: 12px; box-shadow: 0 14px 36px #153c6926;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .tabdrop > .dropdown-menu > li {
        position: relative; margin: 0; float: none; width: 100%; min-height: 40px;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .tabdrop > .dropdown-menu > li > a {
        display: block; min-height: 40px; padding: 10px 38px 10px 12px;
        color: #36516f; background: transparent; border: 0; border-radius: 7px;
        line-height: 20px; white-space: normal; overflow-wrap: anywhere;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .tabdrop > .dropdown-menu > li.active > a {
        background: #e7f0ff; color: #185ea9;
    }
    body.jj-admin-shell .main-header :is(#firstnav, #secondnav) .nav-addtabs.jj-native-tabs-fixed .tabdrop > .dropdown-menu > li > a:hover {
        background: #eff4fc; color: #194f89;
    }
}
/* One shell-level gap separates the fixed navigation from every iframe page.
   Border-box height already reserves this padding, so the iframe keeps its
   existing internal scroll area without an extra page-level margin. */
body.jj-admin-shell.fixed .content-wrapper.tab-addtabs {
    padding-top: calc(var(--jj-v2-shell-top) + 14px);
}


/* Preserve the original body's viewport-scroll propagation: forcing overflow
   on html would instead create a second scroller inside its 100%-height body.
   This class exists only on business documents with a page hero. */
html.jj-v2-page-document > body.jj-admin-page { overflow-y: scroll; }
@supports (scrollbar-gutter: stable) {
    html.jj-v2-page-document { scrollbar-gutter: stable; }
    html.jj-v2-page-document > body.jj-admin-page { overflow-y: auto; }
}
