/* 省享家后台视觉层。仅呈现，不覆盖 Bootstrap/Layer 的显示、权限或交互状态。 */
:root {
 --ztx-canvas:#f7fbfa; --ztx-surface:#fff; --ztx-ink:#151723; --ztx-muted:#61716f;
 --ztx-line:#eaf5f3; --ztx-blue:#087c7d; --ztx-blue-soft:#f7fbfa;
 --ztx-brand:#32b8b9; --ztx-nav:#151723; --ztx-shadow:0 6px 24px rgba(21,23,35,.045);
}
body { font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif; color:var(--ztx-ink); font-size:14px; -webkit-font-smoothing:antialiased; }
body.gray-bg,body.white-bg { background:var(--ztx-canvas); }
body.gray-bg .wrapper-content { padding:28px 28px 24px; }
h1,h2,h3,h4 { color:var(--ztx-ink); letter-spacing:-.025em; }
h2 { font-weight:650; } h3,h4 { font-weight:600; }
a { color:var(--ztx-blue); }
a:hover { color:#3c3d3f; }
.text-muted,.help-block,small.text-muted { color:var(--ztx-muted); }
.help-block { line-height:1.65; margin-top:9px; }
:where(a,button,input,select,textarea):focus-visible { outline:3px solid #087c7d; outline-offset:3px; }
body .btn { border-radius:8px; font-weight:500; line-height:1.5; transition:background-color .15s,border-color .15s,box-shadow .15s; }
body .btn:not(.btn-xs):not(.btn-sm) { padding:10px 18px; }
body .btn-sm { padding:7px 12px; } body .btn-xs { padding:4px 8px; }
body .btn-primary { background:#32b8b9; border-color:#32b8b9; color:#151723; box-shadow:0 3px 8px rgba(50,184,185,.12); }
body .btn-primary:hover,body .btn-primary:focus { background:#239fa2; border-color:#239fa2; color:#151723; }
body .btn-success { background:#16836c; border-color:#16836c; }
body .btn-success:hover,body .btn-success:focus { background:#116c59; border-color:#116c59; }
body .btn-danger { background:#bd3545; border-color:#bd3545; color:#fff; }
body .btn-danger:hover,body .btn-danger:focus { background:#a72837; border-color:#a72837; }
body .btn-warning { background:#a8660a; border-color:#a8660a; color:#fff; }
body .btn-white,body .btn-default { background:#fff; border-color:#eaf5f3; color:#3c3d3f; box-shadow:0 1px 2px rgba(21,23,35,.025); }
body .btn-white:hover,body .btn-default:hover { background:#f7fbfa; border-color:#c8e5e1; color:#087c7d; }
body .btn-link { color:#087c7d; box-shadow:none; }
body .btn-link.text-danger { color:#b73042; }
body .btn.disabled,body .btn[disabled],fieldset[disabled] .btn { opacity:.5; box-shadow:none; }
body .form-control { border:1px solid #eaf5f3; border-radius:8px; color:var(--ztx-ink); background:#fff; box-shadow:none; min-height:40px; padding:9px 12px; }
body textarea.form-control { min-height:96px; line-height:1.7; }
body .form-control:focus { border-color:#087c7d; box-shadow:0 0 0 3px rgba(50,184,185,.1); }
body .form-control[disabled],body .form-control[readonly],fieldset[disabled] .form-control { background:#eaf5f3; color:#087c7d; border-color:#eaf5f3; }
body .form-control::placeholder { color:#8895a7; }
body .form-group { margin-bottom:20px; }
body label { font-weight:500; color:#3c3d3f; }
body label.error,body .text-danger { color:#b72e42; }
body .has-error .form-control { border-color:#ca4b5a; }
body input[type=checkbox],body input[type=radio] { accent-color:#32b8b9; }
body input[type=file] { max-width:100%; color:#087c7d; }
body input[type=file]::file-selector-button { border:1px solid #eaf5f3; border-radius:7px; padding:8px 12px; color:#3c3d3f; background:#f7fbfa; margin-right:10px; cursor:pointer; }
body .ibox { border:1px solid var(--ztx-line); border-radius:14px; box-shadow:var(--ztx-shadow); background:#fff; margin-bottom:24px; }
body .ibox-title { background:#fff; border:0; border-bottom:1px solid var(--ztx-line); border-radius:14px 14px 0 0; padding:20px 22px; min-height:62px; }
body .ibox-title h3,body .ibox-title h4,body .ibox-title h5 { font-size:17px; font-weight:650; color:var(--ztx-ink); }
body .ibox-content { border:0; border-radius:0 0 14px 14px; padding:24px; }
body .panel-card,body .metric-card { border:1px solid var(--ztx-line); border-radius:14px; box-shadow:var(--ztx-shadow); }
body .panel { border-color:var(--ztx-line); border-radius:12px; box-shadow:var(--ztx-shadow); }
body .panel-heading { border-color:var(--ztx-line); padding:15px 20px; font-weight:600; }
body .search-collapse,body .select-table { border:1px solid var(--ztx-line); border-radius:13px; background:#fff; box-shadow:var(--ztx-shadow); }
body .search-collapse { padding:16px 20px; margin-bottom:16px; }
body .select-list ul li { margin-bottom:10px; color:#087c7d; }
body .select-list input,body .select-list select { border-color:#eaf5f3; border-radius:7px; min-height:36px; max-width:100%; }
body .select-table { padding:18px; }
body .table { color:#3c3d3f; font-size:13px; }
body .table>thead>tr>th { border-bottom:1px solid #eaf5f3; background:#f7fbfa; color:#087c7d; font-weight:600; padding:14px 12px; vertical-align:middle; }
body .table>tbody>tr>td { border-color:#eaf5f3; padding:14px 12px; line-height:1.65; vertical-align:middle; }
body .table-hover>tbody>tr:hover { background:#f7fbfa; }
body .table-responsive { border-color:var(--ztx-line); border-radius:9px; }
body .fixed-table-container { border-color:var(--ztx-line); border-radius:9px; }
body .fixed-table-pagination { padding-top:10px; color:#087c7d; }
body .pagination>li>a,body .pagination>li>span { border-color:#eaf5f3; color:#3c3d3f; padding:7px 12px; }
body .pagination>.active>a,body .pagination>.active>span { background:#32b8b9; border-color:#32b8b9; color:#151723; }
body .label,body .badge,body .status-pill { border-radius:5px; padding:5px 8px; font-weight:500; }
body .label-success,body .badge-success { background:#e4f4ee; color:#14654e; }
body .label-warning,body .badge-warning { background:#fff1d9; color:#80500b; }
body .label-danger,body .badge-danger { background:#fbe8eb; color:#a52b3e; }
body .label-primary,body .badge-primary,body .label-info { background:#eaf5f3; color:#087c7d; }
body .alert { border-radius:10px; border-width:1px; padding:15px 18px; line-height:1.75; }
body .alert-info { color:#3c3d3f; background:#f7fbfa; border-color:#eaf5f3; }
body .alert-warning { color:#805710; background:#fff8e9; border-color:#f1e1b8; }
body .alert-success { color:#246a55; background:#edf8f3; border-color:#d7ebdf; }
body .alert-danger { color:#9b3043; background:#fdf0f2; border-color:#f0d7de; }
/* Merchant workspaces stay separate. Existing amounts and financial writers are untouched. */
body .finance-page .finance-heading { padding-bottom:18px; border-bottom:1px solid #eaf5f3; margin:2px 0 22px; }
body .finance-page .finance-heading h2 { font-size:30px; font-weight:650; margin-bottom:10px; }
body .finance-page .finance-muted { color:#087c7d; line-height:1.7; }
body .finance-page .finance-nav { gap:7px; margin-bottom:24px; }
body .finance-page .finance-nav .btn { border-radius:8px; padding:10px 18px; }
body .finance-page .finance-nav .btn-white { border-color:transparent; background:transparent; }
body .finance-page .finance-nav .btn-primary { background:#eaf5f3; border-color:#eaf5f3; color:#087c7d; box-shadow:none; font-weight:600; }
body .finance-page .finance-card { border:1px solid var(--ztx-line); border-radius:14px; box-shadow:var(--ztx-shadow); padding:24px; }
body .finance-page .finance-primary { border-top:3px solid var(--ztx-brand); background:linear-gradient(120deg,#f7fbfa,#fff 70%); }
body .finance-page .finance-money { color:#3c3d3f; font-size:32px; letter-spacing:-.045em; font-weight:650; font-variant-numeric:tabular-nums; line-height:1.25; margin:16px 0; }
body .finance-page .finance-primary .finance-money { color:#087c7d; }
body .finance-page .finance-toolbar { gap:12px; margin-bottom:18px; }
body .finance-page .finance-card h3 { font-size:18px; font-weight:650; }
body .finance-page .finance-empty { padding:56px 20px!important; color:#087c7d; }
body .finance-page .btn { border-radius:8px; }
body .finance-page .form-control { height:44px; }
body .finance-page .finance-file { padding:14px 0; border-color:#eaf5f3; }
body .finance-page .review-reason { margin-top:6px; padding-left:9px; border-left:2px solid #dfb1bb; }
/* Bootstrap modal and Layer retain their own show/hide, scroll and focus mechanics. */
body .modal-content { border:1px solid #eaf5f3; border-radius:16px; box-shadow:0 24px 80px rgba(21,23,35,.2); }
body .modal-header { border-color:#eaf5f3; padding:22px 24px; background:#f7fbfa; border-radius:16px 16px 0 0; }
body .modal-title { font-size:19px; font-weight:650; }
body .modal-body { padding:24px; }
body .modal-footer { border-color:#eaf5f3; background:#f7fbfa; padding:16px 24px; border-radius:0 0 16px 16px; }
body .close { color:#087c7d; opacity:.75; text-shadow:none; font-size:25px; }
body .modal-backdrop.in { opacity:.45; }
body .layui-layer { border-radius:13px; box-shadow:0 20px 70px rgba(21,23,35,.22); }
body .layui-layer-title { background:#f7fbfa; color:#3c3d3f; border-color:#eaf5f3; border-radius:13px 13px 0 0; font-weight:600; }
body .layui-layer-btn a { border-radius:7px; border-color:#eaf5f3; }
body .layui-layer-btn .layui-layer-btn0 { background:#087c7d; border-color:#087c7d; }
body .layui-layer-iframe .layui-layer-content { border-radius:0 0 13px 13px; }
/* Existing shell geometry/minified navigation behaviour remains owned by RuoYi. */
body .navbar-static-side,body.theme-dark .navbar-static-side { background:#151723; }
body #side-menu { background:#151723; }
body #side-menu>li>a { color:#c8e5e1; font-weight:500; border-radius:8px; margin:4px 10px; padding:13px 14px; }
body #side-menu>li.active { background:transparent; border-left-color:#32b8b9; }
body #side-menu>li>a:hover,body #side-menu>li.active>a { background:#3c3d3f; color:#fff; }
body #side-menu .nav-second-level li a { color:#c8e5e1; padding-top:11px; padding-bottom:11px; }
body #side-menu .nav-second-level li a:hover { color:#fff; background:#151723; }
body .nav-header { background:#151723; border-bottom:1px solid #3c3d3f; }
body .nav-header a,body .nav-header .text-muted,body .nav-header span { color:#c8e5e1; }
body .nav-header .img-circle { border:3px solid #3c3d3f; }
body .logo,body.theme-dark .logo { background:#151723!important; border-bottom:1px solid #3c3d3f; }
body .logo .logo-lg.ztx-brand { color:#fff!important; letter-spacing:.03em; }
body .navbar-static-top { background:#fff; border-bottom:1px solid var(--ztx-line); box-shadow:0 2px 10px rgba(21,23,35,.025); }
body .navbar-top-links>li>a { color:#087c7d; font-weight:500; }
body .content-tabs { background:#f7fbfa; border-color:#eaf5f3; }
body .page-tabs a { border-radius:6px; margin:6px 3px; line-height:28px; }
body .page-tabs a.active,body .page-tabs a.menuTab.active { background:#eaf5f3; color:#087c7d; }
body .footer { color:#087c7d; border-color:#eaf5f3; background:#fff; }
/* Login is a quiet brand-led portal, not a decorative animated landing page. */
body.signin { background:#151723; color:#eaf5f3; min-height:100vh; }
body.signin .signinpanel { width:960px; max-width:calc(100% - 48px); margin:16vh auto 0; }
body.signin .signinpanel>.row { display:flex; align-items:stretch; background:#fff; border:1px solid #3c3d3f; border-radius:22px; box-shadow:0 28px 70px rgba(0,0,0,.18); overflow:hidden; }
body.signin .signinpanel>.row>.col-sm-6 { padding:0; }
body.signin .signin-info { background:#151723; height:100%; padding:54px 42px; margin:0; }
body.signin .signin-info .ztx-login-brand { margin-bottom:38px; }
body.signin .signin-info h4 { color:#c8e5e1; font-size:15px; font-weight:400; line-height:1.8; border:0; padding:0; }
body.signin .signin-info h4 strong { display:block; color:#f7fbfa; font-size:28px; font-weight:600; line-height:1.45; margin-top:14px; max-width:12em; }
body.signin #signupForm { padding:48px 42px; margin:0; border:0; border-radius:0; background:#fff; box-shadow:none; }
body.signin .login-form-header { border:0; padding:0; margin-bottom:28px; }
body.signin .login-form-header h4 { font-size:25px; color:#151723; font-weight:650; }
body.signin .login-form-header p { color:#087c7d; margin-top:10px; }
body.signin #signupForm .form-control { height:46px; background-color:#f7fbfa; border-radius:8px; margin-bottom:14px; }
body.signin #signupForm .btn { padding:12px; border-radius:8px; background:#32b8b9; border-color:#32b8b9; margin-top:22px; box-shadow:0 4px 12px rgba(50,184,185,.16); }
body.signin #signupForm .imgcode { max-height:46px; border-radius:8px; object-fit:contain; }
body.signin .checkbox-custom,body.signin .checkbox-custom label { color:#087c7d; }
body.signin .signup-footer { color:#526d6b; margin-top:20px; line-height:1.8; }
@media(max-width:767px) {
 body.gray-bg .wrapper-content { padding:20px 14px; }
 body .finance-page .finance-heading h2 { font-size:25px; }
 body .finance-page .finance-card { padding:20px 16px; }
 body .finance-page .finance-money { font-size:29px; }
 body .finance-page .finance-nav .btn { padding:9px 12px; }
 body .ibox-title,body .ibox-content { padding:18px 16px; }
 body .modal-header,body .modal-body,body .modal-footer { padding:18px; }
 body .select-list ul li { max-width:100%; }
 body .select-table { padding:10px; overflow-x:auto; }
 body .modal-title { font-size:18px; }
 body.signin .signinpanel { width:auto; max-width:calc(100% - 32px); margin:32px auto; }
 body.signin .signinpanel>.row { display:block; }
 body.signin .signin-info { padding:28px; }
 body.signin .signin-info .ztx-login-brand { margin-bottom:12px; }
 body.signin .signin-info h4 { margin:0; }
 body.signin .signin-info h4 strong { font-size:20px; margin-top:6px; }
 body.signin #signupForm { padding:28px; }
 body.signin .signup-footer { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { body .btn { transition:none; } }
/* Local legacy themes use !important; override only their presentation, not state/display. */
body #side-menu .user-panel { background:#151723!important; border-bottom-color:#3c3d3f!important; }
body #side-menu .user-panel .info p,body #side-menu .user-panel .info a { color:#c8e5e1!important; }
body #side-menu>li>a,body #side-menu .nav-second-level>li>a,body #side-menu .nav-third-level>li>a { color:#c8e5e1!important; background:transparent!important; }
body #side-menu>li>a:hover,body #side-menu>li.active>a,body #side-menu>li.selected>a,body #side-menu .nav-second-level>li>a:hover,body #side-menu .nav-second-level>li.active>a { color:#fff!important; background:#3c3d3f!important; }
body #side-menu .nav-label { color:inherit; }
body .navbar-static-side .sidebar-collapse,body .navbar-static-side .slimScrollDiv { background:#151723; }
body .navbar-static-side .nav-second-level,body.mini-navbar #side-menu .nav-label { background:#151723!important; }
body .navbar-minimalize { color:#3c3d3f!important; background:#eaf5f3; border-radius:7px; }
body .page-tabs a.active,body .page-tabs a.active:hover { color:#087c7d!important; background:#eaf5f3!important; border-color:#eaf5f3; }
body.signin .signinpanel>.row { backdrop-filter:none; -webkit-backdrop-filter:none; }
body.signin #signupForm .form-control { height:46px!important; border-radius:8px!important; padding:10px 12px!important; }
body.signin #signupForm .form-control:focus { border-color:#9cd8d4!important; box-shadow:0 0 0 3px rgba(50,184,185,.1)!important; }
body.signin .login-form-header h4.no-margins { font-size:25px!important; color:#151723!important; letter-spacing:0; }
body.signin .login-form-header p { color:#087c7d!important; letter-spacing:0; font-size:13px!important; }
body.signin #signupForm .btn-success { background:#087c7d!important; height:46px!important; border-radius:8px!important; box-shadow:0 4px 12px rgba(50,184,185,.14)!important; letter-spacing:1px; }
body.signin .signup-footer { color:#526d6b!important; opacity:1; }
body .navbar-static-side .sidebar-collapse,body .navbar-static-side .slimScrollDiv { background:#151723!important; }
/* Visible keyboard focus also beats the legacy a:focus reset; hidden checkbox keeps its label ring. */
body :is(a,button,input,select,textarea):focus-visible { outline:3px solid #087c7d; outline-offset:3px; }
body .checkbox-custom input:focus-visible+label::before { outline:3px solid #087c7d; outline-offset:3px; }
body .btn-info { background:#157b91; border-color:#157b91; color:#fff; }
body .text-warning { color:#8b600e; }
/* Native controls in the existing merchant parameter toolbar need the same form rhythm. */
body .merchant-policy-toolbar>span { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0 14px; }
body .merchant-policy-toolbar input,body .merchant-policy-toolbar select { min-height:40px; padding:8px 10px; border:1px solid #eaf5f3; border-radius:8px; background:#fff; max-width:100%; color:#3c3d3f; }
body .merchant-policy-toolbar input { width:220px; }
body .merchant-policy-toolbar p { line-height:1.8; margin-bottom:12px; }
body .merchant-policy-toolbar .btn { white-space:normal; }
body .merchant-policy-toolbar~.select-table #bootstrap-table { min-width:1500px; }
body .form-control:focus-visible,body .btn:focus-visible,body #side-menu a:focus-visible { outline:3px solid #087c7d; outline-offset:3px; }
body.signin .signinpanel>.row>:is(.col-sm-6,.col-sm-7,.col-sm-5) { padding:0; }
body.lockscreen { background:#151723; color:#eaf5f3; min-height:100vh; }
body.lockscreen .lockscreen-name { color:#eaf5f3; font-size:16px; }
body.lockscreen .lockscreen-item { border-radius:12px; border:1px solid #eaf5f3; box-shadow:0 12px 36px rgba(0,0,0,.12); }
body.lockscreen .lockscreen-credentials .form-control { height:44px; }
body.lockscreen .lockscreen-credentials .btn { border-radius:0 12px 12px 0; padding:10px 12px; }
body.lockscreen .lockscreen-footer { color:#526d6b; line-height:1.8; }
/* Top-navigation mode nests its side links in tab panes instead of a root UL. */
body #side-menu .tab-pane>.nav>li>a { color:#c8e5e1!important; background:transparent!important; font-weight:500; }
body #side-menu .tab-pane>.nav>li>a:hover,body #side-menu .tab-pane>.nav>li.active>a { color:#fff!important; background:#3c3d3f!important; }
body .logo:hover,body.theme-dark .logo:hover { background:#151723!important; }
body.lockscreen .help-block { color:#c8e5e1; }
body.lockscreen a,body.signin .signin-info a { color:#c8e5e1!important; }
body.lockscreen a:hover,body.signin .signin-info a:hover { color:#fff!important; }
