:root {
    --platform-font: "Microsoft YaHei", "PingFang SC", sans-serif;
    --platform-radius-control: 6px;
    --platform-radius: 8px;
    --platform-radius-dialog: 10px;
    --platform-control-height: 36px;
    --platform-shadow: 0 8px 24px rgba(16, 52, 45, 0.06);
    --platform-shadow-raised: 0 18px 50px rgba(1, 22, 18, 0.14);
    --platform-motion-fast: 160ms;
}

body {
    margin: 0;
    background: var(--platform-workspace);
    color: var(--platform-text);
    font-family: var(--platform-font);
}

.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #0f766e 0%, #115e59 40%, #f2f3f5 40%);
}

.auth-card {
    width: 420px;
    padding: 32px 36px 28px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 12px 40px rgba(15, 118, 110, 0.18);
}

.auth-card h1 {
    margin: 0 0 6px;
    font-size: 22px;
    color: #0f766e;
}

.auth-card .subtitle {
    margin: 0 0 24px;
    color: #64748b;
    font-size: 13px;
}

.auth-card .layui-form-item {
    margin-bottom: 16px;
}

.auth-card .layui-btn {
    width: 100%;
    background: #0f766e;
}

.auth-error {
    min-height: 22px;
    margin: 0 0 12px;
    color: #dc2626;
    font-size: 13px;
}

.page-wrap {
    padding: 16px;
    box-sizing: border-box;
}

.welcome-box {
    margin: 48px auto;
    max-width: 640px;
    text-align: center;
    color: #334155;
}

.welcome-box h2 {
    margin: 0 0 12px;
    font-size: 28px;
}

.toolbar {
    margin-bottom: 12px;
}

.toolbar .layui-btn,
.page-wrap .layui-btn {
    height: 38px;
    line-height: 38px;
}

.layui-layout-admin .layuimini-logo a {
    display: inline-flex;
    align-items: center;
}

.layui-layout-admin .layuimini-logo img {
    position: absolute;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    opacity: 0;
    pointer-events: none;
}

/* Multi-color brand mark (keeps dark charge bars). Theme swaps SVG asset, not flat mask fill. */
.layui-layout-admin .layuimini-logo a::before {
    content: "";
    display: inline-block;
    width: 28px;
    height: 28px;
    margin-right: 8px;
    vertical-align: middle;
    background: url("/vendor/layuimini/images/logo.svg") center / contain no-repeat;
}

html[data-theme="blue"] .layui-layout-admin .layuimini-logo a::before {
    background-image: url("/vendor/layuimini/images/logo-blue.svg");
}

.layui-layout-admin .layuimini-logo h1 {
    font-size: 16px;
    letter-spacing: 0;
    color: var(--shell-text) !important;
}

.layui-header .layuimini-header-content .layui-layout-right > .layui-nav-item {
    height: 60px !important;
    line-height: 60px !important;
}

.layui-header .layuimini-header-content .layui-layout-right > .layui-nav-item > a {
    height: 60px;
    line-height: 60px;
    display: inline-block;
}

.layuimini-tab .layui-tab-content .layui-tab-item iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: var(--page-bg);
}

.layuimini-menu-left .layui-nav-more,
.layuimini-menu-left .layui-nav-itemed > a .layui-nav-more {
    font-family: layui-icon !important;
    border: none !important;
    width: auto;
    height: auto;
    margin-top: 0;
    overflow: hidden;
}

.layui-laypage a,
.layui-laypage span {
    font-family: "Microsoft YaHei", "PingFang SC", sans-serif, layui-icon;
}

/* Layuimini + Layui 2.13.9 Tab 工具菜单兼容修复
   官方 layuimini.css 选择器为 .layui-tab-tool，实际 DOM 为 .layuimini-tab-tool，
   透明叠加/定位规则未生效，Layui 2.13.9 的 .layui-nav 深色背景露出为黑块。 */
.layuimini-tab .layuimini-tab-tool {
    right: 0;
    border-left: 1px solid var(--shell-border);
}

.layuimini-tab .layuimini-tab-tool .layui-nav {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    background: transparent;
}

.layuimini-tab .layuimini-tab-tool .layui-nav-item {
    width: 35px;
    height: 35px;
}

.layuimini-tab .layuimini-tab-tool .layui-nav-item > a {
    width: 35px;
    height: 35px;
    line-height: 35px;
    padding: 0;
}

.layuimini-tab .layuimini-tab-tool .layui-nav-bar {
    display: none;
}

.layuimini-tab .layuimini-tab-tool .layui-nav-child {
    left: auto;
    top: 45px;
    right: 3px;
    width: 120px;
    border: 1px solid var(--shell-border);
    background: var(--shell-surface) !important;
}

.layuimini-tab .layuimini-tab-tool .layui-this a {
    background-color: var(--brand-primary);
}

/* Layui 默认给 footer 预留 44px；本系统无固定底栏，收紧底部空白 */
.layui-layout-admin .layui-body {
    padding-bottom: 4px;
}

/* 平台外壳固定为深色品牌界面，避免切换业务页时整套导航闪回浅色。 */
.layui-layout-admin .layui-header,
.layui-layout-admin .layuimini-logo {
    background: var(--shell-bg-secondary) !important;
    border-bottom: 1px solid var(--shell-border-strong);
    box-shadow: none;
}

.layui-layout-admin .layuimini-logo {
    border-right: 1px solid var(--shell-border);
}

.layui-layout-admin .layuimini-logo h1,
.layui-header .layuimini-header-content .layui-nav .layui-nav-item > a,
.layui-header .layuimini-tool i {
    color: var(--shell-text) !important;
}

.layui-header .layuimini-tool i:hover,
.layui-header .layui-nav .layui-nav-item > a:hover {
    color: var(--shell-active-text) !important;
    background: var(--shell-hover) !important;
}

.layui-side.layui-bg-black,
.layui-side.layui-bg-black > .layuimini-menu-left > ul,
.layuimini-menu-left {
    background: var(--shell-bg) !important;
}

.layui-side {
    border-right: 1px solid var(--shell-border);
    box-shadow: var(--shell-shadow);
}

.layuimini-menu-left .layui-nav-item > a,
.layuimini-menu-left .layui-nav-child a {
    color: var(--shell-text-soft) !important;
}

.layuimini-menu-left .layui-nav-item > a:hover,
.layuimini-menu-left .layui-nav-child a:hover {
    color: var(--shell-text) !important;
    background: var(--shell-hover-strong) !important;
}

.layuimini-menu-left .layui-this > a,
.layuimini-menu-left .layui-nav-itemed > a {
    color: var(--shell-active-text) !important;
    background: var(--shell-active-bg) !important;
}

/* 覆盖 Layuimini 默认主题中的蓝色激活态，并覆盖折叠菜单悬浮层。 */
.layuimini-menu-left-zoom,
.layuimini-menu-left-zoom > ul {
    background: var(--shell-bg) !important;
}

.layuimini-menu-left .layui-nav-itemed > .layui-nav-child,
.layuimini-menu-left-zoom .layui-nav-child {
    background: var(--shell-child-bg) !important;
}

.layuimini-menu-left .layui-nav-tree .layui-this,
.layuimini-menu-left .layui-nav-tree .layui-this > a,
.layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this,
.layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this a,
.layuimini-menu-left-zoom.layui-nav-tree .layui-this,
.layuimini-menu-left-zoom.layui-nav-tree .layui-this > a,
.layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this,
.layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this a {
    color: var(--shell-active-text) !important;
    background: var(--shell-active-bg) !important;
}

.layuimini-menu-left-zoom .layui-nav-item a,
.layuimini-menu-left-zoom .layui-nav-child a {
    color: var(--shell-text-soft) !important;
}

.layuimini-menu-left .layui-nav-more,
.layuimini-menu-left .layui-nav-itemed > a .layui-nav-more {
    color: var(--shell-arrow) !important;
}

.layui-header .layui-nav .layui-nav-more {
    border-top-color: var(--shell-arrow) !important;
}

.layui-header .layui-nav .layui-nav-mored,
.layui-header .layui-nav-itemed > a .layui-nav-more {
    border-color: transparent transparent var(--shell-arrow) !important;
}

/* Header / Tab tool dropdowns — follow Shell tokens (no emerald leak under blue). */
.layui-header .layui-nav .layui-nav-child,
.layuimini-tab .layuimini-tab-tool .layui-nav-child {
    background: var(--shell-surface) !important;
    border-color: var(--shell-border) !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

.layui-header .layui-nav .layui-nav-child dd > a,
.layuimini-tab .layuimini-tab-tool .layui-nav-child dd > a {
    color: var(--shell-text-soft) !important;
}

.layui-header .layui-nav .layui-nav-child dd > a:hover,
.layuimini-tab .layuimini-tab-tool .layui-nav-child dd > a:hover {
    color: var(--shell-active-text) !important;
    background: var(--shell-hover) !important;
}

.layui-header .layui-nav .layui-nav-child dd.layui-this,
.layui-header .layui-nav .layui-nav-child dd.layui-this a {
    color: var(--brand-on-primary) !important;
    background: var(--brand-primary) !important;
}

.layui-header .layui-nav .layui-nav-child hr {
    border-color: var(--shell-border) !important;
    background-color: var(--shell-border) !important;
}

.layui-body,
.layuimini-tab,
.layuimini-tab .layui-tab-content,
.layuimini-tab .layui-tab-item {
    background: var(--page-bg) !important;
}

.layuimini-tab .layui-tab-title,
.layuimini-tab .layui-tab-control > li,
.layuimini-tab .layuimini-tab-tool {
    color: var(--shell-text-muted) !important;
    background: var(--shell-surface) !important;
    border-color: var(--shell-border) !important;
}

.layuimini-tab .layui-tab-title li {
    color: var(--shell-text-dim);
    border-right-color: var(--shell-border);
}

.layuimini-tab .layui-tab-title .layui-this {
    color: var(--shell-active-text-soft);
    background: var(--shell-tab-active-bg);
}

.layuimini-tab .layui-tab-title .layui-this::after {
    border-bottom-color: var(--brand-accent);
}

.layuimini-tab .layui-tab-title .layuimini-tab-active,
.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active {
    background: var(--brand-accent) !important;
    box-shadow: 0 0 8px var(--shell-active-glow);
}

.layuimini-tab .layui-tab-title span,
.layuimini-tab .layui-tab-title .layui-this span,
.layuimini-tab .layui-tab-title .layui-tab-close {
    color: var(--shell-text-muted) !important;
}

.layuimini-tab .layui-tab-title .layui-tab-close:hover {
    color: #fff !important;
    background: rgba(239, 68, 68, 0.72) !important;
}

.layuimini-menu-left::-webkit-scrollbar {
    width: 6px;
}

.layuimini-menu-left::-webkit-scrollbar-thumb {
    background: var(--brand-accent-soft);
    border-radius: 999px;
}

.layuimini-menu-left::-webkit-scrollbar-track {
    background: transparent;
}

.layuimini-loader {
    background: var(--page-bg);
}

/* 二级页面共享同一套克制的交互节奏，避免从驾驶舱切入工作台时显得生硬。 */
.layuimini-tab .layui-tab-content .layui-tab-item.layui-show iframe {
    animation: platform-page-enter var(--platform-motion-fast) ease-out;
}

@keyframes platform-page-enter {
    from {
        opacity: 0;
        transform: translateY(2px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 首页内容仍保留沉浸式驾驶舱，业务页则使用高可读性的浅色工作台。 */
body.is-home-cockpit,
body.is-home-cockpit .layui-body,
body.is-home-cockpit .layuimini-tab,
body.is-home-cockpit .layuimini-tab .layui-tab-content,
body.is-home-cockpit .layuimini-tab .layui-tab-item,
body.is-home-cockpit .layuimini-loader {
    background: var(--shell-bg-secondary, #020b0c) !important;
}

/* Layui 浮层跟随平台组件语言，但保持浅色内容以确保表单可读。 */
.layui-layer {
    border-radius: var(--platform-radius-dialog) !important;
    box-shadow: var(--platform-shadow-raised) !important;
}

.layui-layer .layui-layer-title {
    height: 46px;
    line-height: 46px;
    color: var(--platform-text);
    background: var(--platform-surface-muted);
    border-bottom-color: var(--platform-border);
    font-weight: 600;
}

.layui-layer .layui-layer-setwin {
    top: 17px;
}

.layui-layer .layui-layer-btn .layui-layer-btn0 {
    border-color: var(--platform-brand);
    background: var(--platform-brand);
}

.layui-layer-page .btn-theme {
    color: #fff;
    background: var(--platform-brand) !important;
}

.layui-layer-page .btn-theme:hover {
    background: var(--platform-brand-hover) !important;
}

.layui-layer-page .layui-btn {
    border-radius: var(--platform-radius-control);
    font-family: var(--platform-font);
    font-weight: 500;
}

.layui-layer-page .layui-btn-primary {
    color: #52645f;
    background: #fff;
    border-color: var(--platform-border-strong);
}

.layui-layer-page .layui-input,
.layui-layer-page .layui-textarea {
    border-color: var(--platform-border-strong);
    border-radius: var(--platform-radius-control);
}

.layui-layer-page .layui-input:focus,
.layui-layer-page .layui-textarea:focus {
    border-color: var(--platform-brand) !important;
    box-shadow: 0 0 0 3px var(--platform-focus-ring);
}

@media (prefers-reduced-motion: reduce) {
    .layuimini-tab .layui-tab-content .layui-tab-item.layui-show iframe {
        animation: none;
    }
}

@media (max-width: 800px) {
    .layui-layer-page {
        left: 12px !important;
        width: calc(100vw - 24px) !important;
        max-height: calc(100vh - 24px);
    }

    .layui-layer-page .layui-layer-content {
        max-height: calc(100vh - 70px);
        overflow: auto !important;
    }
}
