/* Shared technology-inspired theme for the admin shell and same-origin pages. */
:root {
    --tech-primary: #1677ff;
    --tech-secondary: #00b8d9;
    --tech-accent: #32d6ff;
    --tech-navy-950: #061426;
    --tech-navy-900: #0a1e36;
    --tech-navy-800: #0f2a48;
    --tech-text: #17233c;
    --tech-muted: #6f7f96;
    --tech-border: #dbe6f2;
    --tech-surface: rgba(255, 255, 255, .96);
    --tech-surface-soft: #f6f9fd;
    --tech-shadow: 0 8px 28px rgba(27, 61, 103, .09);
    --tech-shadow-hover: 0 14px 34px rgba(22, 119, 255, .14);
    --ui-font-base: 14px;
    --ui-font-small: 12px;
    --ui-font-large: 16px;
    --ui-font-title: 18px;
}

body.admin-tech-shell.theme-default {
    --theme-header-bg: rgba(255, 255, 255, .92);
    --theme-header-text: #14243b;
    --theme-side-bg: linear-gradient(180deg, #07182d 0%, #0b2845 52%, #081c34 100%);
    --theme-logo-bg: #07182d;
    --theme-active-bg: #1677ff;
    --theme-main-bg: #eef4fa;
    --theme-hover: #0b8fdc;
}

body.admin-tech-shell.theme-ocean {
    --theme-header-bg: rgba(247, 252, 255, .93);
    --theme-side-bg: linear-gradient(180deg, #05233b 0%, #075071 100%);
    --theme-logo-bg: #05233b;
    --theme-active-bg: #00a9ce;
}

body.admin-tech-shell {
    color: var(--tech-text);
    background: #eef4fa;
    font-size: var(--ui-font-base, 14px);
    font-family: "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
}

/* The appearance switch controls every text surface in the shell, not just body text. */
body.admin-tech-shell .admin-header,
body.admin-tech-shell .admin-side,
body.admin-tech-shell .admin-side a,
body.admin-tech-shell .header-title,
body.admin-tech-shell .admin-user,
body.admin-tech-shell .user-dropdown,
body.admin-tech-shell .header-message-pop,
body.admin-tech-shell .header-search-pop,
body.admin-tech-shell .lock-form-pop,
body.admin-tech-shell .setting-group,
body.admin-tech-shell .style-item,
body.admin-tech-shell .theme-item,
body.admin-tech-shell .layui-layer-content,
body.admin-tech-shell .layui-layer-btn a,
body.admin-tech-shell button,
body.admin-tech-shell input,
body.admin-tech-shell select,
body.admin-tech-shell textarea {
    font-size: var(--ui-font-base, 14px) !important;
}

body.admin-tech-shell .header-tool .badge,
body.admin-tech-shell .message-time,
body.admin-tech-shell .depart-switch-code,
body.admin-tech-shell .depart-switch-current,
body.admin-tech-shell .theme-name,
body.admin-tech-shell .floating-assist-btn {
    font-size: var(--ui-font-small, 12px) !important;
}

body.admin-tech-shell .lock-profile-name,
body.admin-tech-shell .layui-layer-title {
    font-size: var(--ui-font-large, 16px) !important;
}

body.admin-tech-shell .locked-title {
    font-size: var(--ui-font-title, 18px) !important;
}

body.admin-tech-shell .admin-header {
    background: var(--theme-header-bg);
    border-bottom: 1px solid rgba(148, 174, 205, .28);
    box-shadow: 0 4px 22px rgba(20, 52, 88, .08);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

body.admin-tech-shell .admin-header:after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(50, 214, 255, .7), transparent);
    pointer-events: none;
}

body.admin-tech-shell .admin-logo {
    background:
        radial-gradient(circle at 18% 20%, rgba(50, 214, 255, .18), transparent 32%),
        linear-gradient(145deg, #061426 0%, #0b2b4a 100%);
    border-right: 1px solid rgba(74, 197, 255, .16);
}

body.admin-tech-shell .admin-logo:after {
    content: "";
    position: absolute;
    inset: 0;
    border-bottom: 1px solid rgba(50, 214, 255, .2);
    background-image:
        linear-gradient(rgba(74, 197, 255, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(74, 197, 255, .05) 1px, transparent 1px);
    background-size: 18px 18px;
    pointer-events: none;
}

body.admin-tech-shell .admin-logo img {
    position: relative;
    z-index: 1;
    filter: drop-shadow(0 3px 8px rgba(0, 0, 0, .18));
}

body.admin-tech-shell .admin-side {
    border-right: 1px solid rgba(71, 194, 255, .15);
    box-shadow: 10px 0 34px rgba(4, 20, 38, .13);
}

body.admin-tech-shell .admin-side:before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 10% 24%, rgba(28, 147, 255, .16), transparent 28%),
        radial-gradient(circle at 92% 72%, rgba(21, 218, 255, .09), transparent 32%);
    pointer-events: none;
}

body.admin-tech-shell .admin-side .layui-nav {
    position: relative;
    z-index: 1;
}

body.admin-tech-shell .admin-side .layui-nav .layui-nav-item > a {
    position: relative;
    margin: 3px 8px;
    width: calc(100% - 16px);
    border-radius: 6px;
    color: rgba(232, 244, 255, .86);
    transition: color .18s ease, background .18s ease, transform .18s ease;
}

body.admin-tech-shell .admin-side .layui-nav .layui-nav-item > a:hover {
    color: #fff;
    background: rgba(31, 135, 220, .16);
    transform: translateX(2px);
}

/* Layui also paints the selected li/dd itself; clear it so only the inner link forms the active block. */
body.admin-tech-shell .admin-side .layui-nav-tree .layui-nav-item.layui-this,
body.admin-tech-shell .admin-side .layui-nav-tree .layui-nav-child dd.layui-this {
    background: transparent !important;
}

body.admin-tech-shell .admin-side .layui-nav .layui-nav-item.layui-this > a,
body.admin-tech-shell .admin-side .layui-nav .layui-nav-child dd.layui-this a {
    color: #fff;
    background: linear-gradient(90deg, rgba(22, 119, 255, .94), rgba(0, 166, 199, .86));
    box-shadow: inset 0 0 0 1px rgba(164, 234, 255, .2);
}

body.admin-tech-shell .admin-side .layui-nav .layui-nav-item.layui-this > a:before,
body.admin-tech-shell .admin-side .layui-nav .layui-nav-child dd.layui-this a:before {
    content: "";
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: -8px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: #51e4ff;
    box-shadow: 0 0 5px rgba(81, 228, 255, .45);
}

body.admin-tech-shell .admin-side .layui-nav-child {
    margin: 2px 8px 5px;
    width: calc(100% - 16px);
    border-radius: 6px;
    background: rgba(0, 9, 25, .2) !important;
}

body.admin-tech-shell .admin-side .layui-nav-child a {
    margin: 0 !important;
    width: 100% !important;
}

/* Top navigation dropdowns need an opaque surface; the tree menu intentionally stays translucent. */
body.admin-tech-shell.layout-top .admin-side .layui-nav-child,
body.admin-tech-shell.layout-top .admin-side .layui-nav-itemed > .layui-nav-child {
    margin: 4px 0 0;
    width: auto;
    min-width: 190px;
    padding: 7px 0;
    overflow: hidden;
    border: 1px solid rgba(154, 181, 211, .52);
    border-radius: 9px;
    background: rgba(249, 252, 255, .985) !important;
    box-shadow: 0 14px 34px rgba(12, 39, 72, .22), 0 2px 7px rgba(12, 39, 72, .1);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

body.admin-tech-shell.layout-top .admin-side .layui-nav-child a {
    height: 36px;
    line-height: 36px;
    margin: 1px 7px !important;
    width: calc(100% - 14px) !important;
    border-radius: 6px;
    color: #29415d;
}

body.admin-tech-shell.layout-top .admin-side .layui-nav-child a:hover,
body.admin-tech-shell.layout-top .admin-side .layui-nav-child dd.layui-this a {
    color: #096bd8 !important;
    background: linear-gradient(90deg, #eaf3ff, #edfaff) !important;
    box-shadow: inset 3px 0 0 #1677ff;
}

body.admin-tech-shell.layout-top .admin-side .layui-nav-child dd[data-menu-name="常用工具"] a {
    height: 30px;
    line-height: 30px;
    color: #7d8da1 !important;
    background: #f5f8fc !important;
    box-shadow: none;
}

body.admin-tech-shell .header-menu-btn,
body.admin-tech-shell .header-tool {
    transition: color .18s ease, background .18s ease;
}

body.admin-tech-shell .header-menu-btn:hover,
body.admin-tech-shell .header-tool:hover {
    color: var(--theme-active-bg);
    background: rgba(22, 119, 255, .06);
}

body.admin-tech-shell .header-title {
    color: #65758b;
    font-weight: 600;
    letter-spacing: .2px;
}

body.admin-tech-shell .header-title .layui-icon {
    color: var(--theme-active-bg);
}

body.admin-tech-shell .header-avatar {
    border: 2px solid rgba(50, 214, 255, .68);
    box-shadow: 0 0 0 3px rgba(22, 119, 255, .08), 0 4px 12px rgba(18, 81, 137, .18);
}

body.admin-tech-shell .user-dropdown,
body.admin-tech-shell .header-message-pop {
    border: 1px solid rgba(138, 169, 204, .32);
    border-radius: 8px;
    box-shadow: 0 16px 38px rgba(14, 43, 78, .17);
}

body.admin-tech-shell .user-dropdown {
    overflow: hidden;
}

body.admin-tech-shell .user-dropdown a:hover {
    color: var(--theme-active-bg);
    background: linear-gradient(90deg, rgba(22, 119, 255, .08), rgba(0, 184, 217, .04));
}

body.admin-tech-shell .admin-main {
    background-color: var(--theme-main-bg);
    background-image:
        radial-gradient(circle at 10% 8%, rgba(22, 119, 255, .055), transparent 28%),
        radial-gradient(circle at 88% 82%, rgba(0, 184, 217, .04), transparent 30%);
}

body.admin-tech-shell .floating-assist-btn {
    background: linear-gradient(145deg, #1888ff 0%, #0456c8 58%, #00a8d4 100%);
    border: 1px solid rgba(138, 231, 255, .5);
    box-shadow: 0 10px 26px rgba(0, 94, 211, .3), inset 0 1px 0 rgba(255, 255, 255, .26);
}

body.admin-tech-shell .floating-assist-btn:hover {
    box-shadow: 0 14px 32px rgba(0, 94, 211, .38), 0 0 18px rgba(50, 214, 255, .2);
}

body.admin-tech-shell .layui-layer,
body.admin-tech-frame .layui-layer {
    overflow: hidden;
    border: 1px solid rgba(128, 162, 202, .3);
    border-radius: 9px !important;
    box-shadow: 0 22px 58px rgba(15, 44, 80, .22) !important;
}

body.admin-tech-shell .layui-layer-title,
body.admin-tech-frame .layui-layer-title {
    border-bottom: 1px solid #e2ebf5;
    background: linear-gradient(90deg, #f7fbff 0%, #eef7ff 100%);
    color: #18324f;
    font-weight: 700;
}

body.admin-tech-shell .layui-layer-btn .layui-layer-btn0,
body.admin-tech-frame .layui-layer-btn .layui-layer-btn0 {
    border-color: transparent;
    background: linear-gradient(135deg, var(--theme-active-bg, #1677ff), #00a6d7);
}

/* Login is a standalone page, so it opts into the same visual language. */
body.admin-tech-login {
    color: #eaf6ff;
    background-color: #061426 !important;
    background-image:
        linear-gradient(105deg, rgba(4, 18, 35, .9) 0%, rgba(8, 35, 61, .7) 48%, rgba(7, 43, 66, .35) 100%),
        url("/static/image/login_bg.61ccd7ae.jpg") !important;
    background-position: center center !important;
    background-size: cover !important;
    font-family: "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
}

body.admin-tech-login .login-page:before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(79, 201, 255, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(79, 201, 255, .045) 1px, transparent 1px),
        radial-gradient(circle at 16% 22%, rgba(21, 151, 255, .2), transparent 28%);
    background-size: 34px 34px, 34px 34px, auto;
    pointer-events: none;
}

body.admin-tech-login .brand-logo,
body.admin-tech-login .login-copy,
body.admin-tech-login .login-card,
body.admin-tech-login .browser-tip,
body.admin-tech-login .copyright {
    z-index: 1;
}

body.admin-tech-login .brand-logo {
    filter: drop-shadow(0 6px 16px rgba(0, 0, 0, .28));
}

body.admin-tech-login .login-copy {
    color: #e7f8ff;
    text-shadow: 0 3px 18px rgba(0, 0, 0, .28);
}

body.admin-tech-login .login-copy h1 {
    background: linear-gradient(90deg, #fff, #7ee8ff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

body.admin-tech-login .login-copy p {
    color: rgba(171, 230, 255, .82);
}

body.admin-tech-login .login-card {
    border: 1px solid rgba(125, 208, 255, .34);
    border-radius: 14px;
    background: rgba(249, 253, 255, .93);
    box-shadow: 0 28px 74px rgba(0, 12, 30, .38), inset 0 1px 0 rgba(255, 255, 255, .76);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

body.admin-tech-login .login-card:before {
    content: "";
    position: absolute;
    top: -1px;
    right: 42px;
    left: 42px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, transparent, #43d9ff, transparent);
    box-shadow: 0 0 18px rgba(67, 217, 255, .55);
}

body.admin-tech-login .login-title {
    color: #132d4d;
}

body.admin-tech-login .login-title:after {
    border-radius: 3px;
    background: linear-gradient(90deg, #1677ff, #20c8df);
    box-shadow: 0 0 12px rgba(32, 200, 223, .28);
}

body.admin-tech-login .login-card .layui-input {
    border-color: #cbdced;
    border-radius: 6px;
    background: rgba(247, 251, 255, .96);
    transition: border-color .18s ease, box-shadow .18s ease;
}

body.admin-tech-login .login-card .layui-input:focus {
    border-color: #1677ff !important;
    box-shadow: 0 0 0 3px rgba(22, 119, 255, .1);
}

body.admin-tech-login .login-submit {
    border-radius: 6px;
    background: linear-gradient(135deg, #1677ff, #00a6d7);
    box-shadow: 0 8px 18px rgba(22, 119, 255, .24);
    transition: transform .16s ease, box-shadow .16s ease;
}

body.admin-tech-login .login-submit:hover {
    background: linear-gradient(135deg, #2382ff, #09b1df);
    box-shadow: 0 11px 24px rgba(22, 119, 255, .32);
    transform: translateY(-1px);
}

body.admin-tech-login .login-options a,
body.admin-tech-login .login-more a {
    color: #087dad;
}

body.admin-tech-login .browser-tip {
    left: 11.25%;
    top: 44%;
    width: min(470px, 36vw);
    transform: none;
    border-color: rgba(91, 190, 248, .42);
    background: rgba(231, 247, 255, .91);
    box-shadow: 0 16px 38px rgba(0, 24, 50, .2);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

body.admin-tech-login .copyright {
    color: rgba(220, 243, 255, .82);
    text-shadow: 0 2px 10px rgba(0, 0, 0, .32);
}

@media (max-width: 1100px) {
    body.admin-tech-login .browser-tip {
        left: 8%;
        width: min(430px, 42vw);
        transform: none;
    }
}

@media (max-width: 820px) {
    body.admin-tech-login .browser-tip {
        position: relative;
        left: auto;
        top: 140px;
        width: min(500px, 100%);
        margin: 0 auto;
        transform: none;
    }
}

/* Same-origin admin page surfaces injected into the main iframe. */
body.admin-tech-frame {
    --tech-primary: var(--theme-active-bg, #1677ff);
    --tech-link: var(--theme-hover, #0b8fdc);
    min-height: 100vh;
    color: var(--tech-text);
    background-color: #eef4fa !important;
    background-image:
        linear-gradient(rgba(37, 100, 166, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 100, 166, .025) 1px, transparent 1px),
        radial-gradient(circle at 8% 10%, rgba(22, 119, 255, .06), transparent 26%),
        radial-gradient(circle at 92% 82%, rgba(0, 184, 217, .045), transparent 28%) !important;
    background-size: 28px 28px, 28px 28px, auto, auto !important;
    font-size: var(--ui-font-base, 14px) !important;
    font-family: "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
}

/*
 * Legacy admin pages contain many local px font declarations.  Keep icon glyphs and
 * chart surfaces untouched, but make all real text inherit the global font scale.
 */
body.admin-tech-frame :where(*:not(i):not(svg):not(path):not(canvas):not(.layui-icon):not([class^="fa-"]):not([class*=" fa-"])) {
    font-size: var(--ui-font-base, 14px) !important;
}

body.admin-tech-frame h1,
body.admin-tech-frame .page-title,
body.admin-tech-frame .detail-title,
body.admin-tech-frame .main-title,
body.admin-tech-frame .module-title {
    font-size: var(--ui-font-title, 18px) !important;
}

body.admin-tech-frame h2,
body.admin-tech-frame h3,
body.admin-tech-frame h4,
body.admin-tech-frame .section-title,
body.admin-tech-frame .panel-title,
body.admin-tech-frame .card-title,
body.admin-tech-frame .layui-card-header,
body.admin-tech-frame .layui-layer-title {
    font-size: var(--ui-font-large, 16px) !important;
}

body.admin-tech-frame small,
body.admin-tech-frame .layui-badge,
body.admin-tech-frame .layui-badge-rim,
body.admin-tech-frame .badge,
body.admin-tech-frame .status-tag,
body.admin-tech-frame .tag,
body.admin-tech-frame .hint,
body.admin-tech-frame .help-text,
body.admin-tech-frame .text-muted,
body.admin-tech-frame .sub-title,
body.admin-tech-frame .meta,
body.admin-tech-frame [class*="status-"] {
    font-size: var(--ui-font-small, 12px) !important;
}

body.admin-tech-frame::-webkit-scrollbar,
body.admin-tech-frame *::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

body.admin-tech-frame::-webkit-scrollbar-thumb,
body.admin-tech-frame *::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 8px;
    background: rgba(93, 124, 158, .42);
    background-clip: padding-box;
}

body.admin-tech-frame::-webkit-scrollbar-track,
body.admin-tech-frame *::-webkit-scrollbar-track {
    background: transparent;
}

body.admin-tech-frame .page-head,
body.admin-tech-frame .page-title,
body.admin-tech-frame .detail-title,
body.admin-tech-frame .section-title,
body.admin-tech-frame .panel-title {
    letter-spacing: .2px;
}

body.admin-tech-frame .page-head,
body.admin-tech-frame .page-title,
body.admin-tech-frame .detail-title {
    color: #132d4d;
}

body.admin-tech-frame .section-title,
body.admin-tech-frame .panel-title {
    color: #0b759f;
}

body.admin-tech-frame .layui-card,
body.admin-tech-frame .search-box,
body.admin-tech-frame .table-box,
body.admin-tech-frame .detail-card,
body.admin-tech-frame .content-card,
body.admin-tech-frame .panel-card,
body.admin-tech-frame .filter-card,
body.admin-tech-frame .result-box {
    border: 1px solid rgba(199, 216, 235, .78) !important;
    background: var(--tech-surface) !important;
    box-shadow: var(--tech-shadow);
}

body.admin-tech-frame .layui-card,
body.admin-tech-frame .search-box,
body.admin-tech-frame .table-box,
body.admin-tech-frame .detail-card,
body.admin-tech-frame .content-card,
body.admin-tech-frame .panel-card,
body.admin-tech-frame .filter-card {
    border-radius: 8px !important;
}

body.admin-tech-frame .layui-card:hover,
body.admin-tech-frame .content-card:hover,
body.admin-tech-frame .panel-card:hover {
    border-color: rgba(100, 177, 236, .55) !important;
    box-shadow: var(--tech-shadow-hover);
}

body.admin-tech-frame .layui-card-header {
    border-bottom: 1px solid #e5edf6;
    background: linear-gradient(90deg, rgba(243, 249, 255, .9), rgba(255, 255, 255, .9));
    color: #18324f;
    font-weight: 700;
}

body.admin-tech-frame .layui-table-view {
    overflow: hidden;
    border: 1px solid #dbe6f2;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(31, 67, 109, .06);
}

body.admin-tech-frame .layui-table,
body.admin-tech-frame .report-table,
body.admin-tech-frame .data-table {
    color: #26364d;
    background: #fff;
}

body.admin-tech-frame .layui-table-header,
body.admin-tech-frame .layui-table thead tr,
body.admin-tech-frame .report-table thead tr,
body.admin-tech-frame .data-table thead tr {
    background: linear-gradient(180deg, #f4f9ff 0%, #edf5fd 100%);
}

body.admin-tech-frame .layui-table th,
body.admin-tech-frame .report-table th,
body.admin-tech-frame .data-table th {
    color: #34506f;
    font-weight: 700;
}

body.admin-tech-frame .layui-table td,
body.admin-tech-frame .layui-table th,
body.admin-tech-frame .report-table td,
body.admin-tech-frame .report-table th,
body.admin-tech-frame .data-table td,
body.admin-tech-frame .data-table th {
    border-color: #e5edf6 !important;
}

body.admin-tech-frame .layui-table tbody tr,
body.admin-tech-frame .report-table tbody tr,
body.admin-tech-frame .data-table tbody tr {
    transition: background .16s ease, box-shadow .16s ease;
}

body.admin-tech-frame .layui-table tbody tr:hover,
body.admin-tech-frame .report-table tbody tr:hover,
body.admin-tech-frame .data-table tbody tr:hover,
body.admin-tech-frame .layui-table-hover {
    background: linear-gradient(90deg, rgba(22, 119, 255, .065), rgba(0, 184, 217, .035)) !important;
}

body.admin-tech-frame .layui-form-label {
    color: #3b4c63;
}

body.admin-tech-frame .layui-input,
body.admin-tech-frame .layui-textarea,
body.admin-tech-frame .layui-select,
body.admin-tech-frame select,
body.admin-tech-frame input[type="text"],
body.admin-tech-frame input[type="password"],
body.admin-tech-frame input[type="number"] {
    border-color: #cfdeed;
    border-radius: 5px;
    background-color: rgba(255, 255, 255, .96);
    color: #24364d;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

body.admin-tech-frame .layui-input:hover,
body.admin-tech-frame .layui-textarea:hover,
body.admin-tech-frame select:hover,
body.admin-tech-frame input:hover {
    border-color: #8bbce9;
}

body.admin-tech-frame .layui-input:focus,
body.admin-tech-frame .layui-textarea:focus,
body.admin-tech-frame select:focus,
body.admin-tech-frame input:focus {
    border-color: var(--tech-primary) !important;
    box-shadow: 0 0 0 3px rgba(22, 119, 255, .1);
    outline: 0;
}

body.admin-tech-frame .layui-form-select dl {
    border: 1px solid #d7e4f1;
    border-radius: 6px;
    box-shadow: 0 13px 30px rgba(23, 57, 96, .15);
}

body.admin-tech-frame .layui-form-select dl dd:hover,
body.admin-tech-frame .layui-form-select dl dd.layui-this {
    color: var(--tech-primary);
    background: #eef6ff;
}

body.admin-tech-frame .layui-btn:not(.layui-btn-primary):not(.layui-btn-disabled) {
    border-color: transparent;
    border-radius: 5px;
    background: linear-gradient(135deg, var(--tech-primary), #00a6d7);
    box-shadow: 0 5px 13px rgba(22, 119, 255, .18);
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

body.admin-tech-frame .layui-btn:not(.layui-btn-primary):not(.layui-btn-disabled):hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 17px rgba(22, 119, 255, .26);
    filter: brightness(1.03);
}

body.admin-tech-frame .layui-btn-primary {
    border-color: #c9d9e9;
    border-radius: 5px;
    background: #fff;
    color: #36516f;
}

body.admin-tech-frame .layui-btn-primary:hover {
    border-color: #73aee2;
    color: var(--tech-primary);
    background: #f5faff;
}

body.admin-tech-frame a,
body.admin-tech-frame .layui-table-link,
body.admin-tech-frame .link-btn,
body.admin-tech-frame .info-link {
    color: var(--tech-link);
}

body.admin-tech-frame .layui-tab-title {
    border-color: #dfe9f3;
}

body.admin-tech-frame .layui-tab-title li {
    color: #5b6d84;
}

body.admin-tech-frame .layui-tab-title .layui-this {
    color: var(--tech-primary);
    font-weight: 700;
}

body.admin-tech-frame .layui-tab-brief > .layui-tab-title .layui-this:after,
body.admin-tech-frame .layui-tab-title .layui-this:after {
    border-bottom-color: var(--tech-primary);
}

body.admin-tech-frame .layui-laypage a,
body.admin-tech-frame .layui-laypage span {
    border-color: #d9e5f1;
    border-radius: 4px;
    color: #52677f;
}

body.admin-tech-frame .layui-laypage .layui-laypage-curr .layui-laypage-em {
    border-radius: 4px;
    background: linear-gradient(135deg, var(--tech-primary), #00a6d7);
}

body.admin-tech-frame .layui-progress {
    border-radius: 6px;
    background: #e9f0f7;
}

body.admin-tech-frame .layui-progress-bar {
    border-radius: 6px;
    background: linear-gradient(90deg, var(--tech-primary), #25d0df);
    box-shadow: 0 0 10px rgba(37, 208, 223, .22);
}

body.admin-tech-frame .layui-form-checkbox[lay-skin="primary"] i {
    border-color: #c5d5e6;
    background-color: #fff;
    color: transparent;
}

body.admin-tech-frame .layui-form-checkbox[lay-skin="primary"]:hover i {
    border-color: var(--tech-primary);
    color: transparent;
}

body.admin-tech-frame .layui-form-checked[lay-skin="primary"] i {
    border-color: var(--tech-primary) !important;
    background-color: var(--tech-primary);
    color: #fff;
}

body.admin-tech-frame .layui-form-radio > i:hover,
body.admin-tech-frame .layui-form-radioed > i {
    border-color: var(--tech-primary);
    color: var(--tech-primary);
}

body.admin-tech-frame .layui-elem-quote {
    border-left-color: var(--tech-primary);
    border-radius: 0 5px 5px 0;
    background: linear-gradient(90deg, rgba(22, 119, 255, .08), rgba(255, 255, 255, .8));
}

body.admin-tech-frame .section-line {
    background: linear-gradient(90deg, rgba(22, 119, 255, .24), rgba(0, 184, 217, .08), transparent);
}

body.admin-tech-frame .status-tag,
body.admin-tech-frame .tag,
body.admin-tech-frame [class*="status-"] {
    border-radius: 10px;
}

@media (prefers-reduced-motion: reduce) {
    body.admin-tech-shell *,
    body.admin-tech-frame * {
        scroll-behavior: auto !important;
        transition-duration: 0s !important;
        animation-duration: 0s !important;
    }
}
