/**
 * 移动应用云服务平台 - 自定义主题样式
 * 方案B：品牌配色 + 大圆角 + 优化间距 + 字体 + 现代风格
 * 覆盖若依原始样式，不修改原文件
 */

/* ===== 品牌色系 ===== */
:root {
    --brand-primary: #1A73E8;
    --brand-primary-light: #E8F0FE;
    --brand-primary-dark: #0D47A1;
    --brand-success: #34A853;
    --brand-warning: #FBBC04;
    --brand-danger: #EA4335;
    --brand-info: #4285F4;
    --sidebar-bg: #FFFBFA;
    --topbar-bg: #ffffff;
    --topbar-shadow: 0 1px 4px rgba(0,0,0,0.08);
    --body-bg: #F9F6F2;
    --card-bg: #ffffff;
    --text-primary: #1F2937;
    --text-secondary: #6B7280;
    --border-color: #E5E7EB;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
}

/* ===== 全局基础 ===== */
body {
    font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    color: var(--text-primary);
    background-color: var(--body-bg);
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 600;
    color: var(--text-primary);
}

a {
    color: var(--brand-primary);
}
a:hover {
    color: var(--brand-primary-dark);
}

/* ===== 侧边栏 ===== */
.navbar-static-side,
.skin-blue .wrapper,
.skin-blue .main-sidebar,
.skin-blue .left-side {
    background-color: #FFFBFA !important;
    border-right: 1px solid #EBE5DF;
}

/* 侧边栏宽度 — 200px 太窄，中文菜单文字折行；折叠时(~70px)不干预 */
body:not(.mini-navbar) .navbar-static-side {
    width: 230px !important;
}

.skin-blue .logo,
nav .logo {
    background-color: transparent !important;
    color: #3D3228 !important;
    border-bottom: none;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    padding: 20px 20px 10px;
    height: auto;
    line-height: 1.4;
    width: 230px;
}
.skin-blue .logo:hover {
    background-color: transparent;
}
.skin-blue .logo-lg {
    color: #3D3228;
    font-weight: 600;
}

.skin-blue .user-panel {
    background-color: transparent;
    border-bottom: 1px solid #F0EBE5;
    padding: 16px 20px 12px;
    margin-bottom: 4px;
}
.skin-blue .user-panel>.info,
.skin-blue .user-panel>.info>a {
    color: #5C4F44;
    font-size: 13px;
}
.skin-blue .user-panel .image {
    padding-left: 0;
}
.skin-blue .user-panel img {
    width: 36px;
    height: 36px;
}

/* 侧边栏菜单项 — 简约温馨风格 */
#side-menu>li>a,
.skin-blue .sidebar .nav>li>a {
    color: #7D6F63;
    font-weight: 400;
    padding: 10px 20px 10px 20px;
    border-radius: 8px;
    margin: 1px 12px;
    transition: all 0.25s ease;
    background: transparent;
    font-size: 14px;
}

/* hover — 温暖微底色 */
#side-menu>li>a:hover,
#side-menu>li>a:focus,
.skin-blue .sidebar .nav>li>a:hover {
    background-color: #FFF5EF !important;
    color: #3D3228 !important;
}

/* 选中/展开态 — 温暖强调（margin 只放在 <a> 上，避免双层叠加导致文字换行） */
.skin-blue .nav:not(.navbar-toolbar)>li.active {
    background: transparent !important;
    border-left: none !important;
    border-radius: 0;
    margin: 0;
}
.skin-blue .nav:not(.navbar-toolbar)>li.active>a {
    color: #D4623C !important;
    font-weight: 600 !important;
    background-color: #FFF0E8 !important;
    border-radius: 8px;
    margin: 1px 12px;
}

.skin-blue .navbar-default .nav>li.selected>a,
.skin-blue .navbar-default .nav>li.selected>a:focus {
    background-color: #FFF0E8 !important;
    color: #D4623C !important;
    border-radius: 8px;
    font-weight: 600 !important;
}

.skin-blue .nav>li.header {
    color: #B8A99A;
    background: transparent;
    font-size: 11px;
    letter-spacing: 1.5px;
    padding: 16px 20px 6px;
    border-bottom: none;
    text-transform: uppercase;
    font-weight: 600;
}

.skin-blue .sidebar a {
    color: #7D6F63;
}

.skin-blue .sidebar a:hover {
    color: #3D3228;
}

/* 二级/三级子菜单 — 覆盖若依默认白字 hover */
.navbar-static-side .nav-second-level>li>a,
.navbar-static-side .nav-third-level>li>a {
    color: #7D6F63;
    background: transparent;
    font-size: 13px;
    padding: 8px 20px 8px 52px;
    border-radius: 6px;
    margin: 1px 12px;
    transition: all 0.2s ease;
}

.navbar-static-side .nav-second-level>li>a:hover,
.navbar-static-side .nav-second-level>li>a:focus,
.navbar-static-side .nav-third-level>li>a:hover,
.navbar-static-side .nav-third-level>li>a:focus {
    background-color: #FFF5EF !important;
    color: #3D3228 !important;
}

.navbar-static-side .nav-second-level>li.active>a,
.navbar-static-side .nav-third-level>li.active>a {
    color: #D4623C !important;
    font-weight: 600 !important;
    background-color: #FFF0E8 !important;
}

/* 内容区左边距跟随侧边栏宽度 */
#page-wrapper {
    margin-left: 230px !important;
}

/* 侧边栏图标 */
#side-menu>li>a i,
.skin-blue .sidebar .nav>li>a i {
    font-size: 16px;
    margin-right: 10px;
    opacity: 0.7;
    width: 20px;
    text-align: center;
}
#side-menu>li.active>a i,
#side-menu>li>a:hover i {
    opacity: 1;
}

/* ===== 顶栏 ===== */
.skin-blue .navbar {
    background-color: var(--topbar-bg);
    box-shadow: var(--topbar-shadow);
    border-bottom: 1px solid var(--border-color);
}

.skin-blue .navbar .nav>li>a {
    color: var(--text-secondary);
}
.skin-blue .navbar .nav>li>a:hover,
.skin-blue .navbar .nav>li>a:active,
.skin-blue .navbar .nav>li>a:focus {
    background: var(--brand-primary-light);
    color: var(--brand-primary);
}

.nav.navbar-right>li>a,
.nav.navbar-left>li>a {
    color: var(--text-secondary) !important;
    font-size: 14px;
    height: 50px;
    padding: 15px 15px;
    transition: color 0.2s;
}

.nav.navbar-right>li>a:hover,
.nav.navbar-left>li>a:hover {
    background-color: var(--brand-primary-light) !important;
    color: var(--brand-primary) !important;
}

.skin-blue .navbar .sidebar-toggle {
    color: var(--text-secondary);
}
.skin-blue .navbar .sidebar-toggle:hover {
    background-color: var(--brand-primary-light);
    color: var(--brand-primary);
}

.skin-blue .content-tabs {
    border-bottom: 1px solid var(--border-color);
    background: var(--topbar-bg);
}

/* ===== Tab页签 ===== */
.page-tabs a {
    color: var(--text-secondary) !important;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    margin: 5px 0 0 4px;
    transition: all 0.2s;
}
.skin-blue .page-tabs a.active {
    background: var(--brand-primary) !important;
    border: 1px solid var(--brand-primary);
    color: #ffffff !important;
    border-radius: var(--radius-sm);
}
.skin-blue .page-tabs a i {
    color: var(--text-secondary);
}
.skin-blue .page-tabs a.active i {
    color: #ffffff;
}

/* ===== 内容区 ===== */
.gray-bg {
    background-color: var(--body-bg);
}

.wrapper-content {
    padding: 16px;
}

.ibox {
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--card-bg);
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    margin-bottom: 20px;
}

.ibox-title {
    border-bottom: 1px solid var(--border-color);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    padding: 12px 20px;
    background: var(--card-bg);
    font-weight: 600;
    color: var(--text-primary);
}

.ibox-content {
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    padding: 16px 20px;
}

/* ===== 搜索区 ===== */
.search-collapse {
    background: var(--card-bg);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    margin-bottom: 12px;
    padding: 12px 0;
}

.select-list {
    padding: 8px 12px;
}

.select-list li {
    margin-bottom: 4px;
}

/* ===== 工具栏 ===== */
.btn-group-sm#toolbar {
    margin-bottom: 12px;
}

/* ===== 按钮 ===== */
.btn {
    border-radius: var(--radius-sm);
    font-weight: 500;
    transition: all 0.2s ease;
    padding: 6px 16px;
}

.btn-primary {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #ffffff;
}
.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--brand-primary-dark);
    border-color: var(--brand-primary-dark);
    color: #ffffff;
}

.btn-success {
    background-color: var(--brand-success);
    border-color: var(--brand-success);
    color: #ffffff;
}
.btn-success:hover,
.btn-success:focus {
    background-color: #2D9249;
    border-color: #2D9249;
    color: #ffffff;
}

.btn-warning {
    background-color: var(--brand-warning);
    border-color: var(--brand-warning);
    color: #333333;
}
.btn-warning:hover,
.btn-warning:focus {
    background-color: #E5A900;
    border-color: #E5A900;
}

.btn-danger {
    background-color: var(--brand-danger);
    border-color: var(--brand-danger);
    color: #ffffff;
}
.btn-danger:hover,
.btn-danger:focus {
    background-color: #D33426;
    border-color: #D33426;
    color: #ffffff;
}

.btn-info {
    background-color: var(--brand-info);
    border-color: var(--brand-info);
    color: #ffffff;
}
.btn-info:hover,
.btn-info:focus {
    background-color: #3275E5;
    border-color: #3275E5;
    color: #ffffff;
}

.btn-xs {
    border-radius: 4px;
    padding: 3px 10px;
    font-size: 12px;
}

.btn-sm {
    border-radius: var(--radius-sm);
    padding: 5px 12px;
}

.btn-rounded {
    border-radius: var(--radius-lg);
}

/* ===== 表格 ===== */
.bootstrap-table .table {
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
}

.bootstrap-table .table thead th {
    background-color: #F0F4F8;
    color: var(--text-primary);
    font-weight: 600;
    font-size: 13px;
    border-bottom: 2px solid var(--border-color);
    padding: 10px 12px;
}

.bootstrap-table .table tbody td {
    padding: 10px 12px;
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-color);
    font-size: 13px;
}

.bootstrap-table .table tbody tr:hover td {
    background-color: var(--brand-primary-light);
}

.bootstrap-table .table tbody tr.selected td {
    background-color: var(--brand-primary-light);
}

.fixed-table-toolbar .bs-bars {
    margin-right: 8px;
}

.fixed-table-pagination {
    padding: 10px 16px;
}

.pagination > .active > a,
.pagination > .active > a:hover {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #ffffff;
}

.pagination > li > a {
    color: var(--text-secondary);
    border-radius: 4px;
    margin: 0 2px;
    border: 1px solid var(--border-color);
}

.dropdown-menu {
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    padding: 6px 0;
}

/* ===== 表单 ===== */
.form-control {
    border-radius: var(--radius-sm) !important;
    border-color: var(--border-color) !important;
    padding: 8px 12px !important;
    height: 38px !important;
    font-size: 14px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-control:focus {
    border-color: var(--brand-primary) !important;
    box-shadow: 0 0 0 3px rgba(26,115,232,0.15) !important;
    outline: none;
}

select.form-control {
    border-radius: var(--radius-sm) !important;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}

.form-group {
    margin-bottom: 16px;
}

.control-label {
    font-weight: 500;
    color: var(--text-primary);
    font-size: 14px;
}

/* ===== 弹窗(layer) ===== */
.layui-layer {
    border-radius: var(--radius-md) !important;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12) !important;
}

.layui-layer-title {
    background-color: var(--card-bg) !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    border-radius: var(--radius-md) var(--radius-md) 0 0 !important;
    padding: 12px 20px !important;
}

.layui-layer-btn a {
    border-radius: var(--radius-sm) !important;
}

.layui-layer-btn .layui-layer-btn0 {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: #ffffff !important;
}

.layui-layer-content {
    padding: 16px;
}

/* ===== 模态框 ===== */
.modal-content {
    border-radius: var(--radius-md);
    border: none;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.modal-header {
    border-bottom: 1px solid var(--border-color);
    padding: 16px 20px;
    background-color: var(--card-bg);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.modal-title {
    font-weight: 600;
    color: var(--text-primary);
    font-size: 16px;
}

.modal-body {
    padding: 20px;
}

.modal-footer {
    border-top: 1px solid var(--border-color);
    padding: 12px 20px;
    background-color: #FAFBFC;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
}

/* ===== 标签 ===== */
.label {
    border-radius: 4px;
    font-weight: 500;
    padding: 4px 10px;
    font-size: 12px;
}

.label-primary {
    background-color: var(--brand-primary);
}

.label-success {
    background-color: var(--brand-success);
}

.label-danger {
    background-color: var(--brand-danger);
}

.label-warning {
    background-color: var(--brand-warning);
}

.label-info {
    background-color: var(--brand-info);
}

.label-default {
    background-color: #E5E7EB;
    color: var(--text-secondary);
}

/* ===== 面板/卡片 ===== */
.panel {
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.panel-heading {
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    font-weight: 600;
}

/* ===== 面包屑 ===== */
.content-header .breadcrumb {
    padding: 8px 0;
    font-size: 14px;
}

.breadcrumb > li + li:before {
    color: var(--text-secondary);
}

/* ===== 下拉菜单 ===== */
.skin-blue .dropdown-menu > .active > a,
.skin-blue .dropdown-menu > .active > a:hover,
.skin-blue .dropdown-menu > .active > a:focus {
    background-color: var(--brand-primary);
    color: #ffffff !important;
}

/* ===== checkbox & radio ===== */
.icheck {
    margin: 2px 0;
}

/* ===== 表格按钮组(行内操作) ===== */
.bootstrap-table .table td .btn-xs {
    margin: 1px 2px;
}

/* ===== 分页 ===== */
.fixed-table-pagination .pagination-detail {
    font-size: 13px;
    color: var(--text-secondary);
}

/* ===== 排序图标 ===== */
.bootstrap-table .table thead th .sortable {
    cursor: pointer;
}

/* ===== 滚动到顶部 ===== */
#scroll-up {
    border-radius: var(--radius-sm);
    background-color: var(--brand-primary);
    color: #ffffff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

/* ===== Toast提示 ===== */
/* msg提示框统一深色背景+白色文字，解决文字与背景色接近看不清的问题 */
/* 注意：moon/style.css中也有同名样式修复，两者配合确保生效 */
body .layer-ext-moon-msg {
    border-radius: var(--radius-sm) !important;
    background-color: rgba(0,0,0,0.75) !important;
    border: none !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.25) !important;
    color: #ffffff !important;
}
body .layer-ext-moon-msg .layui-layer-content,
body .layer-ext-moon-msg .layui-layer-content .layui-layer-padding {
    color: #ffffff !important;
}
/* 无图标msg（layui-layer-hui模式）也确保白字 */
.layui-layer-hui,
.layui-layer-hui .layui-layer-content {
    color: #ffffff !important;
}
/* moon皮肤图标：清除背景图+设置亮色，在深色背景上更清晰 */
body .layer-ext-moon-msg .layui-layer-face { color: #FFB74D !important; }
body .layer-ext-moon-msg .layui-icon-tips { color: #FFB74D !important; background: none !important; }
body .layer-ext-moon-msg .layui-icon-success { color: #81C784 !important; background: none !important; }
body .layer-ext-moon-msg .layui-icon-error { color: #E57373 !important; background: none !important; }
body .layer-ext-moon-msg .layui-icon-question { color: #FFD54F !important; background: none !important; }

/* ===== RuoYi UI覆盖 ===== */
.select-list li label {
    font-weight: 500;
    color: var(--text-primary);
}

.select-list li input[type="text"],
.select-list li select {
    border-radius: var(--radius-sm);
    border-color: var(--border-color);
}

.btn-default {
    border-radius: var(--radius-sm);
    border-color: var(--border-color);
    color: var(--text-secondary);
}
.btn-default:hover {
    background-color: #F5F7FA;
    color: var(--text-primary);
}

/* 表格工具栏搜索按钮 */
.btn-primary.btn-rounded.btn-sm {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.btn-warning.btn-rounded.btn-sm {
    background-color: var(--brand-warning);
    border-color: var(--brand-warning);
}

/* ===== 自定义checkbox样式 ===== */
.checkbox-custom label:before {
    border-radius: 4px;
    border: 2px solid var(--border-color);
}

.checkbox-custom input[type="checkbox"]:checked + label:after {
    color: var(--brand-primary);
}

/* ===== 登录页 ===== */
html {
    height: 100%;
}
body.signin {
    min-height: 100% !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    background: linear-gradient(135deg, #0D47A1 0%, #1B3A5C 40%, #2A5298 100%) !important;
    background-attachment: fixed;
}

.signinpanel {
    width: 100% !important;
    max-width: 420px;
    margin: 0 auto !important;
    padding: 0 20px !important;
    color: var(--text-primary) !important;
    box-sizing: border-box;
}

.signinpanel .signin-info {
    display: none !important;
}

.signinpanel .col-sm-7,
.signinpanel .col-sm-5 {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
}

.signinpanel .row {
    margin: 0 !important;
}

.signinpanel form {
    background: rgba(255,255,255,0.95) !important;
    border: none !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 40px rgba(0,0,0,0.2) !important;
    padding: 40px 36px !important;
    color: #1F2937;
}

.signinpanel .form-control {
    background: #ffffff !important;
    border: 2px solid #E5E7EB !important;
    border-radius: 6px !important;
    color: #1F2937 !important;
    height: 44px !important;
    padding: 10px 16px !important;
    font-size: 14px;
}

.signinpanel .form-control:focus {
    border-color: #1A73E8 !important;
    box-shadow: 0 0 0 3px rgba(26,115,232,0.15) !important;
}

.signinpanel .btn.btn-success {
    background-color: #1A73E8 !important;
    border-color: #1A73E8 !important;
    color: #ffffff !important;
    border-radius: 6px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 10px 20px !important;
    margin-top: 20px !important;
    transition: all 0.2s;
}

.signinpanel .btn.btn-success:hover {
    background-color: #0D47A1 !important;
    border-color: #0D47A1 !important;
}

.signinpanel .no-margins {
    color: #1F2937 !important;
    font-weight: 600;
    font-size: 18px;
    margin-bottom: 8px;
}

.signinpanel .m-t-md {
    color: #6B7280 !important;
    font-size: 14px;
    margin-top: 4px;
}

.signup-footer {
    border-top: 1px solid #E5E7EB !important;
    color: #6B7280 !important;
    margin: 20px 0 0 !important;
    padding-top: 16px !important;
}

.signinpanel .checkbox-custom {
    color: #6B7280 !important;
}

/* 验证码输入 */
.signinpanel .code {
    background: #ffffff !important;
    border: 2px solid #E5E7EB !important;
    border-radius: 6px !important;
    color: #1F2937 !important;
}

/* ===== 用户面板头像 ===== */
.img-circle {
    border-radius: 50%;
    border: 2px solid #EBE5DF;
}

.user-panel .pull-left.info p {
    font-weight: 500;
    color: #5C4F44;
}

/* ===== 侧边栏折叠 ===== */
.nav-close {
    color: #B8A99A;
}

.sidebar-collapse {
    border-bottom: none;
}

/* ===== 菜单二级三级 ===== */
.nav-second-level,
.nav-third-level,
.nav-four-level {
    background: transparent;
    border-radius: 8px;
    margin: 0 12px 0 20px;
}

.nav-second-level li a,
.nav-third-level li a,
.nav-four-level li a {
    padding: 8px 20px 8px 40px;
    font-size: 13px;
    color: #8B7D70;
    background: transparent;
    border-radius: 6px;
    margin: 1px 0;
}

.nav-second-level li a:hover,
.nav-third-level li a:hover,
.nav-four-level li a:hover {
    color: #3D3228;
    background: #FFF5EF !important;
}

.nav-second-level li.active a,
.nav-third-level li.active a,
.nav-four-level li.active a {
    color: #D4623C;
    background: #FFF0E8 !important;
    font-weight: 500;
}

/* ===== 空白页面微调 ===== */
.white-bg {
    background-color: var(--card-bg);
}

/* ===== Detail页面 ===== */
.detail-box {
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    background: var(--card-bg);
    padding: 20px;
}

/* ===== 优化一些若依默认的视觉问题 ===== */
.btn.btn-sm.dropdown-toggle {
    border-radius: var(--radius-sm);
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: #FAFBFC;
}

.table-bordered {
    border: 1px solid var(--border-color);
}

.table-bordered > thead > th,
.table-bordered > tbody > td {
    border: 1px solid var(--border-color);
}

/* ===== 页面标题样式 ===== */
.content-header h1 {
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
}

/* ===== 统计数字 ===== */
.statistic-value {
    font-size: 28px;
    font-weight: 700;
    color: var(--brand-primary);
}

/* ===== 设计管理专属样式兼容 ===== */
.generating-bar {
    border-radius: var(--radius-sm);
}

.btn-gen-design {
    border-radius: var(--radius-sm);
}

/* ===== 导出按钮兼容 ===== */
.dropdown-menu .btn-export {
    border-radius: var(--radius-sm);
}

