/* ==========================================================================
   CatDNS Soft UI Light - 替代 layui.css 的 Soft UI 浅色软 UI 样式框架
   覆盖所有 LayUI 类名，应用 Soft UI Light 设计语言
   ========================================================================== */

/* ========== CSS 变量 - Soft UI 色彩系统 ========== */
:root {
    --soft-bg: #e4e7eb;
    --soft-bg-alt: #eceff4;
    --soft-card: #e8eaed;
    --soft-inset: #d8dce3;
    --soft-text: #3c4043;
    --soft-text-secondary: #5f6368;
    --soft-text-disabled: #9aa0a6;
    --soft-primary: #4285f4;
    --soft-primary-light: #5a9bff;
    --soft-secondary: #a142f4;
    --soft-success: #34a853;
    --soft-warning: #fbbc04;
    --soft-danger: #ea4335;
    --soft-white: #ffffff;

    --soft-shadow-light: rgba(255, 255, 255, 0.8);
    --soft-shadow-dark: rgba(163, 177, 198, 0.3);
    --soft-shadow-light-strong: rgba(255, 255, 255, 0.9);
    --soft-shadow-dark-strong: rgba(163, 177, 198, 0.4);

    --soft-raised-sm: -4px -4px 8px var(--soft-shadow-light), 4px 4px 8px var(--soft-shadow-dark);
    --soft-raised-md: -8px -8px 16px var(--soft-shadow-light), 8px 8px 16px var(--soft-shadow-dark);
    --soft-raised-lg: -12px -12px 24px var(--soft-shadow-light), 12px 12px 24px var(--soft-shadow-dark);
    --soft-inset-sm: inset 2px 2px 4px var(--soft-shadow-dark), inset -2px -2px 4px var(--soft-shadow-light);
    --soft-inset-md: inset 3px 3px 6px var(--soft-shadow-dark), inset -3px -3px 6px var(--soft-shadow-light);
    --soft-inset-lg: inset 4px 4px 8px var(--soft-shadow-dark-strong), inset -4px -4px 8px var(--soft-shadow-light-strong);
    --soft-radius: 12px;
    --soft-radius-sm: 10px;
    --soft-radius-lg: 20px;
}

/* ========== 基础重置 ========== */
blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}
a:active,a:hover{outline:0}
img{display:inline-block;border:none;vertical-align:middle}
li{list-style:none}
table{border-collapse:collapse;border-spacing:0}
h1,h2,h3,h4{font-weight:700}
h5,h6{font-weight:500;font-size:100%}
button,input,select,textarea{font-size:100%}
button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}
pre{white-space:pre-wrap;word-wrap:break-word}
body{line-height:1.6;color:var(--soft-text);font:14px -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Roboto,Helvetica Neue,Helvetica,Arial,sans-serif;background:var(--soft-bg)}
hr{height:0;line-height:0;margin:10px 0;padding:0;border:none;border-bottom:1px solid rgba(163,177,198,.2);clear:both;overflow:hidden;background:0 0}
a{color:var(--soft-primary);text-decoration:none;transition:color .3s}
a:hover{color:var(--soft-primary-light)}
a cite{font-style:normal}

/* ========== 工具类（功能） ========== */
.layui-border-box,.layui-border-box *{box-sizing:border-box}
.layui-box,.layui-box *{box-sizing:content-box}
.layui-clear{clear:both;*zoom:1}
.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}
.layui-clear-space{word-spacing:-5px}
.layui-inline{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle}
.layui-edge{position:relative;display:inline-block;vertical-align:middle;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent;overflow:hidden}
.layui-edge-top{top:-4px;border-bottom-color:#9aa0a6;border-bottom-style:solid}
.layui-edge-right{border-left-color:#9aa0a6;border-left-style:solid}
.layui-edge-bottom{top:2px;border-top-color:#9aa0a6;border-top-style:solid}
.layui-edge-left{border-right-color:#9aa0a6;border-right-style:solid}
.layui-elip{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}
.layui-disabled,.layui-disabled:hover{color:var(--soft-text-disabled)!important;cursor:not-allowed!important}
.layui-circle{border-radius:100%}
.layui-show{display:block!important}
.layui-hide{display:none!important}
.layui-show-v{visibility:visible!important}
.layui-hide-v{visibility:hidden!important}

/* ========== 图标字体 ========== */
@font-face{font-family:layui-icon;src:url(../layui/font/iconfont.eot?v=282);src:url(../layui/font/iconfont.eot?v=282#iefix) format('embedded-opentype'),url(../layui/font/iconfont.woff2?v=282) format('woff2'),url(../layui/font/iconfont.woff?v=282) format('woff'),url(../layui/font/iconfont.ttf?v=282) format('truetype'),url(../layui/font/iconfont.svg?v=282#layui-icon) format('svg')}
.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.layui-icon-leaf:before{content:"\e701"}.layui-icon-folder:before{content:"\eabe"}.layui-icon-folder-open:before{content:"\eac1"}.layui-icon-gitee:before{content:"\e69b"}.layui-icon-github:before{content:"\e6a7"}.layui-icon-disabled:before{content:"\e6cc"}.layui-icon-moon:before{content:"\e6c2"}.layui-icon-error:before{content:"\e693"}.layui-icon-success:before{content:"\e697"}.layui-icon-question:before{content:"\e699"}.layui-icon-lock:before{content:"\e69a"}.layui-icon-eye:before{content:"\e695"}.layui-icon-eye-invisible:before{content:"\e696"}.layui-icon-backspace:before{content:"\e694"}.layui-icon-tips-fill:before{content:"\eb2e"}.layui-icon-test:before{content:"\e692"}.layui-icon-clear:before{content:"\e788"}.layui-icon-heart-fill:before{content:"\e68f"}.layui-icon-light:before{content:"\e748"}.layui-icon-music:before{content:"\e690"}.layui-icon-time:before{content:"\e68d"}.layui-icon-ie:before{content:"\e7bb"}.layui-icon-firefox:before{content:"\e686"}.layui-icon-at:before{content:"\e687"}.layui-icon-bluetooth:before{content:"\e689"}.layui-icon-chrome:before{content:"\e68a"}.layui-icon-edge:before{content:"\e68b"}.layui-icon-heart:before{content:"\e68c"}.layui-icon-key:before{content:"\e683"}.layui-icon-android:before{content:"\e684"}.layui-icon-mike:before{content:"\e6dc"}.layui-icon-mute:before{content:"\e685"}.layui-icon-gift:before{content:"\e627"}.layui-icon-windows:before{content:"\e67f"}.layui-icon-ios:before{content:"\e680"}.layui-icon-logout:before{content:"\e682"}.layui-icon-wifi:before{content:"\e7e0"}.layui-icon-rss:before{content:"\e808"}.layui-icon-email:before{content:"\e618"}.layui-icon-reduce-circle:before{content:"\e616"}.layui-icon-transfer:before{content:"\e691"}.layui-icon-service:before{content:"\e626"}.layui-icon-addition:before{content:"\e624"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-slider:before{content:"\e714"}.layui-icon-print:before{content:"\e66d"}.layui-icon-export:before{content:"\e67d"}.layui-icon-cols:before{content:"\e610"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-username:before{content:"\e66f"}.layui-icon-password:before{content:"\e673"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-auz:before{content:"\e672"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-tips:before{content:"\e702"}.layui-icon-note:before{content:"\e66e"}.layui-icon-senior:before{content:"\e674"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-notice:before{content:"\e667"}.layui-icon-console:before{content:"\e665"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-set:before{content:"\e716"}.layui-icon-template:before{content:"\e663"}.layui-icon-app:before{content:"\e653"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-home:before{content:"\e68e"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-more:before{content:"\e65f"}.layui-icon-camera:before{content:"\e660"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-read:before{content:"\e705"}.layui-icon-location:before{content:"\e715"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-return:before{content:"\e65c"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-fire:before{content:"\e756"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-cart:before{content:"\e657"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-next:before{content:"\e65b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-user:before{content:"\e770"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-component:before{content:"\e857"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-pause:before{content:"\e651"}.layui-icon-play:before{content:"\e652"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-voice:before{content:"\e688"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-link:before{content:"\e64c"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-share:before{content:"\e641"}.layui-icon-edit:before{content:"\e642"}.layui-icon-delete:before{content:"\e640"}.layui-icon-engine:before{content:"\e628"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-table:before{content:"\e62d"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-water:before{content:"\e636"}.layui-icon-date:before{content:"\e637"}.layui-icon-layer:before{content:"\e638"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-form:before{content:"\e63c"}.layui-icon-file:before{content:"\e621"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-404:before{content:"\e61c"}.layui-icon-about:before{content:"\e60b"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-down:before{content:"\e61a"}.layui-icon-up:before{content:"\e619"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-search:before{content:"\e615"}.layui-icon-friends:before{content:"\e612"}.layui-icon-group:before{content:"\e613"}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-log:before{content:"\e60e"}.layui-icon-list:before{content:"\e60a"}.layui-icon-release:before{content:"\e609"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-ok:before{content:"\e605"}.layui-icon-help:before{content:"\e607"}.layui-icon-chat:before{content:"\e606"}.layui-icon-top:before{content:"\e604"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-star:before{content:"\e600"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-ok-circle:before{content:"\1005"}

/* ========== 布局基础（功能） ========== */
.layui-main{position:relative;width:1160px;margin:0 auto}
.layui-header{position:relative;z-index:1000;height:60px}
.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px;overflow-x:hidden}
.layui-side-scroll{position:relative;width:220px;height:100%;overflow-x:hidden}
.layui-body{position:relative;left:200px;right:0;top:0;bottom:0;z-index:900;width:auto;box-sizing:border-box}
.layui-layout-body{overflow-x:hidden}
.layui-layout-admin .layui-main{width:auto;margin:0 15px}
.layui-layout-left{position:absolute!important;left:200px;top:0}
.layui-layout-right{position:absolute!important;right:0;top:0}
.layui-container{position:relative;margin:0 auto;box-sizing:border-box}
.layui-fluid{position:relative;margin:0 auto;padding:0 15px}
.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:var(--soft-primary);font-size:16px}

/* ========== Soft UI 顶部栏 ========== */
.layui-layout-admin .layui-header{
    position:fixed;top:0;left:0;right:0;
    background:var(--soft-bg);
    box-shadow:var(--soft-raised-md);
    z-index:1000;
    border-bottom:1px solid rgba(163,177,198,.12);
}
.layui-layout-admin .layui-header a:hover{transition:all .3s}

/* ========== Soft UI 侧边栏 ========== */
.layui-layout-admin .layui-side{
    top:60px;width:220px;
    background:var(--soft-bg);
    overflow-x:hidden;
    box-shadow:4px 0 16px rgba(163,177,198,.15);
}
.layui-bg-black{background-color:var(--soft-bg)!important;color:var(--soft-text)!important}

/* ========== Soft UI 主体内容区 ========== */
.layui-layout-admin .layui-body{
    position:absolute;top:60px;padding-bottom:44px;
    left:220px;right:0;
}
.layui-layout-admin .layui-footer{
    position:fixed;left:220px;right:0;bottom:0;z-index:990;
    height:44px;line-height:44px;padding:0 15px;
    background:var(--soft-bg);
    box-shadow:0 -4px 12px rgba(163,177,198,.15);
    color:var(--soft-text-secondary);
    text-align:center;
}

/* ========== 栅格系统（功能） ========== */
.layui-row:after,.layui-row:before{content:"";display:block;clear:both}
.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xl1,.layui-col-xl10,.layui-col-xl11,.layui-col-xl12,.layui-col-xl2,.layui-col-xl3,.layui-col-xl4,.layui-col-xl5,.layui-col-xl6,.layui-col-xl7,.layui-col-xl8,.layui-col-xl9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}
.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}
.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}
@media screen and (min-width:768px){.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}}
@media screen and (min-width:992px){.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}}
@media screen and (min-width:1200px){.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}}
@media screen and (min-width:1400px){.layui-col-xl1,.layui-col-xl10,.layui-col-xl11,.layui-col-xl12,.layui-col-xl2,.layui-col-xl3,.layui-col-xl4,.layui-col-xl5,.layui-col-xl6,.layui-col-xl7,.layui-col-xl8,.layui-col-xl9{float:left}.layui-col-xl1{width:8.33333333%}.layui-col-xl2{width:16.66666667%}.layui-col-xl3{width:25%}.layui-col-xl4{width:33.33333333%}.layui-col-xl5{width:41.66666667%}.layui-col-xl6{width:50%}.layui-col-xl7{width:58.33333333%}.layui-col-xl8{width:66.66666667%}.layui-col-xl9{width:75%}.layui-col-xl10{width:83.33333333%}.layui-col-xl11{width:91.66666667%}.layui-col-xl12{width:100%}}
@media screen and (max-width:767.98px){.layui-hide-xs{display:none!important}}
@media screen and (min-width:768px){.layui-hide-sm{display:none!important}}
@media screen and (min-width:992px){.layui-hide-md{display:none!important}}
@media screen and (min-width:1200px){.layui-hide-lg{display:none!important}}
@media screen and (min-width:1400px){.layui-hide-xl{display:none!important}}

/* 栅格间距（功能） */
.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}
.layui-col-space2{margin:-1px}.layui-col-space2>*{padding:1px}
.layui-col-space4{margin:-2px}.layui-col-space4>*{padding:2px}
.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}
.layui-col-space6{margin:-3px}.layui-col-space6>*{padding:3px}
.layui-col-space8{margin:-4px}.layui-col-space8>*{padding:4px}
.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}
.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}
.layui-col-space14{margin:-7px}.layui-col-space14>*{padding:7px}
.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}
.layui-col-space16{margin:-8px}.layui-col-space16>*{padding:8px}
.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}
.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}
.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}
.layui-col-space24{margin:-12px}.layui-col-space24>*{padding:12px}
.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}
.layui-col-space26{margin:-13px}.layui-col-space26>*{padding:13px}
.layui-col-space28{margin:-14px}.layui-col-space28>*{padding:14px}
.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}
.layui-col-space32{margin:-16px}.layui-col-space32>*{padding:16px}

/* ========== Soft UI 卡片 ========== */
.layui-card{
    margin-bottom:15px;
    border-radius:var(--soft-radius-lg);
    background:var(--soft-bg);
    box-shadow:var(--soft-raised-md);
    border:none;
    transition:all .3s ease;
}
.layui-card:last-child{margin-bottom:0}
.layui-card-header{
    position:relative;height:48px;line-height:48px;padding:0 20px;
    border-bottom:1px solid rgba(163,177,198,.1);
    color:var(--soft-text);font-size:15px;font-weight:600;
    border-radius:var(--soft-radius-lg) var(--soft-radius-lg) 0 0;
}
.layui-card-body{
    position:relative;padding:16px 20px;line-height:24px;
}
.layui-card-body[pad15]{padding:15px}
.layui-card-body[pad20]{padding:20px}
.layui-card-body .layui-table{margin:5px 0}

/* ========== Soft UI 按钮 ========== */
.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}
.layui-btn{
    display:inline-block;vertical-align:middle;
    height:40px;line-height:40px;border:none;
    padding:0 22px;
    background:var(--soft-bg);
    color:var(--soft-text);
    white-space:nowrap;text-align:center;font-size:14px;font-weight:600;
    border-radius:var(--soft-radius);
    cursor:pointer;
    -moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;
    box-shadow:var(--soft-raised-sm);
}
.layui-btn:hover{opacity:1;color:var(--soft-text);box-shadow:var(--soft-raised-md)}
.layui-btn:active{box-shadow:var(--soft-inset-sm)}
.layui-btn+.layui-btn{margin-left:10px}
.layui-btn-container{word-spacing:-5px}
.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px;word-spacing:normal}
.layui-btn-container .layui-btn+.layui-btn{margin-left:0}
.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}
.layui-btn-radius{border-radius:100px}
.layui-btn .layui-icon{padding:0 2px;vertical-align:middle}

/* 主按钮（凸起彩色） */
.layui-btn-normal{
    background:linear-gradient(135deg,var(--soft-primary-light) 0%,var(--soft-primary) 100%);
    color:#fff;
    box-shadow:-4px -4px 8px rgba(90,155,255,.2),4px 4px 8px rgba(66,133,244,.4);
}
.layui-btn-normal:hover{color:#fff;box-shadow:-6px -6px 12px rgba(90,155,255,.3),6px 6px 12px rgba(66,133,244,.5);transform:translateY(-1px)}
.layui-btn-normal:active{box-shadow:var(--soft-inset-sm);transform:none}

.layui-btn-warm{
    background:linear-gradient(135deg,#ffd54f 0%,var(--soft-warning) 100%);
    color:#fff;
    box-shadow:-4px -4px 8px rgba(255,213,79,.2),4px 4px 8px rgba(251,188,4,.4);
}
.layui-btn-warm:hover{color:#fff;box-shadow:-6px -6px 12px rgba(255,213,79,.3),6px 6px 12px rgba(251,188,4,.5);transform:translateY(-1px)}
.layui-btn-warm:active{box-shadow:var(--soft-inset-sm);transform:none}

.layui-btn-danger{
    background:linear-gradient(135deg,#f0674f 0%,var(--soft-danger) 100%);
    color:#fff;
    box-shadow:-4px -4px 8px rgba(240,103,79,.2),4px 4px 8px rgba(234,67,53,.4);
}
.layui-btn-danger:hover{color:#fff;box-shadow:-6px -6px 12px rgba(240,103,79,.3),6px 6px 12px rgba(234,67,53,.5);transform:translateY(-1px)}
.layui-btn-danger:active{box-shadow:var(--soft-inset-sm);transform:none}

.layui-btn-checked{
    background:linear-gradient(135deg,#5bc97a 0%,var(--soft-success) 100%);
    color:#fff;
    box-shadow:-4px -4px 8px rgba(91,201,122,.2),4px 4px 8px rgba(52,168,83,.4);
}
.layui-btn-checked:hover{color:#fff;transform:translateY(-1px)}

/* 次要按钮（凸起浅色） */
.layui-btn-primary{
    border:none;background:var(--soft-bg);
    color:var(--soft-text-secondary);
    box-shadow:var(--soft-raised-sm);
}
.layui-btn-primary:hover{color:var(--soft-primary);box-shadow:var(--soft-raised-md)}
.layui-btn-primary:active{box-shadow:var(--soft-inset-sm)}

.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{
    background:var(--soft-inset)!important;color:var(--soft-text-disabled)!important;
    cursor:not-allowed!important;opacity:1;box-shadow:none!important;transform:none!important;
}
.layui-btn-lg{height:46px;line-height:46px;padding:0 28px;font-size:16px}
.layui-btn-sm{height:32px;line-height:32px;padding:0 14px;font-size:12px;border-radius:10px}
.layui-btn-xs{height:24px;line-height:24px;padding:0 8px;font-size:12px;border-radius:8px}
.layui-btn-xs i{font-size:12px!important}
.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}
.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-radius:0}
.layui-btn-group .layui-btn:first-child{border-radius:var(--soft-radius) 0 0 var(--soft-radius)}
.layui-btn-group .layui-btn:last-child{border-radius:0 var(--soft-radius) var(--soft-radius) 0}
.layui-btn-group+.layui-btn-group{margin-left:10px}
.layui-btn-fluid{width:100%}

/* ========== Soft UI 输入框（凹陷） ========== */
.layui-input,.layui-select,.layui-textarea{
    height:40px;line-height:1.5;
    border:1px solid transparent;
    background:var(--soft-inset);
    color:var(--soft-text);
    border-radius:var(--soft-radius-sm);
    box-shadow:var(--soft-inset-md);
}
.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{color:var(--soft-text-disabled)}
.layui-input,.layui-textarea{display:block;width:100%;padding-left:14px}
.layui-input:hover,.layui-textarea:hover{box-shadow:var(--soft-inset-md)}
.layui-input:focus,.layui-textarea:focus{
    border-color:rgba(66,133,244,.3);
    box-shadow:var(--soft-inset-md),0 0 0 3px rgba(66,133,244,.15);
}
.layui-textarea{position:relative;min-height:100px;height:auto;line-height:20px;padding:10px 14px;resize:vertical}
.layui-input[disabled],.layui-textarea[disabled]{background:var(--soft-bg);color:var(--soft-text-disabled);cursor:not-allowed}
.layui-select{padding:0 14px}

/* ========== Soft UI 表单 ========== */
.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}
.layui-form [lay-ignore]{display:initial}
.layui-form-item{position:relative;margin-bottom:15px;clear:both;*zoom:1}
.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}
.layui-form-label{position:relative;float:left;display:block;padding:11px 15px;width:90px;font-weight:500;line-height:20px;text-align:right;color:var(--soft-text-secondary)}
.layui-form-label-col{display:block;float:none;padding:11px 0;line-height:20px;text-align:left}
.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}
.layui-input-block,.layui-input-inline{position:relative}
.layui-input-block{margin-left:120px;min-height:40px}
.layui-input-inline{display:inline-block;vertical-align:middle}
.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}
.layui-form-text .layui-input-inline{width:auto}
.layui-form-mid{position:relative;float:left;display:block;padding:11px 0!important;line-height:20px;margin-right:10px}
.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:var(--soft-danger)!important;box-shadow:var(--soft-inset-md),0 0 0 3px rgba(234,67,53,.15)}

/* 输入框前后缀（功能定位） */
.layui-input-prefix,.layui-input-split,.layui-input-suffix,.layui-input-suffix .layui-input-affix{position:absolute;right:0;top:0;padding:0 10px;width:35px;height:100%;text-align:center;transition:all .3s;box-sizing:border-box}
.layui-input-prefix{left:0;border-radius:var(--soft-radius-sm) 0 0 var(--soft-radius-sm)}
.layui-input-suffix{right:0;border-radius:0 var(--soft-radius-sm) var(--soft-radius-sm) 0}
.layui-input-split{border-width:1px;border-style:solid}
.layui-input-prefix .layui-icon,.layui-input-split .layui-icon,.layui-input-suffix .layui-icon{position:relative;font-size:16px;color:var(--soft-text-secondary);transition:all .3s}
.layui-input-group{position:relative;display:table;box-sizing:border-box}
.layui-input-group>*{display:table-cell;vertical-align:middle;position:relative}
.layui-input-wrap{position:relative;line-height:40px}
.layui-input-wrap .layui-input{padding-right:35px}

/* ========== Soft UI 下拉选择框 ========== */
.layui-form-select{position:relative;color:var(--soft-text-secondary)}
.layui-form-select .layui-input{padding-right:30px;cursor:pointer}
.layui-form-select .layui-edge{position:absolute;right:14px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:var(--soft-text-secondary);border-top-style:solid;transition:all .3s}
.layui-form-select dl{
    display:none;position:absolute;left:0;top:46px;padding:5px 0;z-index:899;
    min-width:100%;max-height:300px;overflow-y:auto;
    background:var(--soft-bg);
    border-radius:var(--soft-radius-sm);
    box-shadow:var(--soft-raised-lg);
    box-sizing:border-box;
}
.layui-form-select dl dd,.layui-form-select dl dt{padding:0 15px;line-height:38px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.layui-form-select dl dt{font-size:12px;color:var(--soft-text-disabled)}
.layui-form-select dl dd{cursor:pointer;color:var(--soft-text)}
.layui-form-select dl dd:hover{background:rgba(66,133,244,.08);color:var(--soft-primary)}
.layui-form-select .layui-select-group dd{padding-left:25px}
.layui-form-select dl dd.layui-select-tips{padding-left:15px!important;color:var(--soft-text-disabled)}
.layui-form-select dl dd.layui-this{background:rgba(66,133,244,.12);color:var(--soft-primary);font-weight:600}
.layui-form-selected dl{display:block}
.layui-form-selected .layui-edge{margin-top:-9px;transform:rotate(180deg)}
.layui-form-selectup dl{top:auto;bottom:46px}
.layui-select-none{margin:5px 0;text-align:center;color:var(--soft-text-disabled)}
.layui-select-disabled .layui-disabled{cursor:not-allowed}

/* ========== Soft UI 开关切换器 ========== */
.layui-form-switch{
    position:relative;display:inline-block;vertical-align:middle;
    height:32px;line-height:30px;min-width:64px;padding:0 8px;
    margin-top:8px;border:none;border-radius:18px;cursor:pointer;
    box-sizing:border-box;background:var(--soft-inset);
    box-shadow:var(--soft-inset-md);
    -webkit-transition:.2s linear;transition:.2s linear;
}
.layui-form-switch>i{
    position:absolute;left:4px;top:4px;width:24px;height:24px;
    border-radius:50%;background:var(--soft-bg);
    box-shadow:-2px -2px 4px var(--soft-shadow-light),2px 2px 4px var(--soft-shadow-dark);
    -webkit-transition:.25s cubic-bezier(.4,0,.2,1);transition:.25s cubic-bezier(.4,0,.2,1);
}
.layui-form-switch>div{
    position:relative;top:0;height:100%;padding:0 4px!important;
    text-align:right;color:var(--soft-text-secondary)!important;
    font-style:normal!important;font-size:12px;
    box-sizing:border-box;
}
.layui-form-switch>div em{padding:0 4px;font-size:12px;font-style:normal;line-height:30px;display:inline-block;vertical-align:middle}
.layui-form-switch>div em:first-child{color:#fff;display:none}
.layui-form-switch>div em:last-child{color:var(--soft-text-secondary);display:inline-block}
.layui-form-onswitch{
    background:linear-gradient(135deg,var(--soft-primary-light),var(--soft-primary));
    box-shadow:-2px -2px 4px rgba(90,155,255,.3),2px 2px 4px rgba(66,133,244,.4);
}
.layui-form-onswitch>i{left:100%;margin-left:-28px;background:#fff}
.layui-form-onswitch>div{text-align:left;color:#fff!important}
.layui-form-onswitch>div em:first-child{color:#fff;display:inline-block}
.layui-form-onswitch>div em:last-child{display:none}
.layui-checkbox-disabled{opacity:.5;cursor:not-allowed!important}
.layui-checkbox-disabled>div{color:var(--soft-text-disabled)!important}

/* ========== Soft UI 复选框（primary 风格） ========== */
.layui-form-checkbox{
    position:relative;display:inline-block;vertical-align:middle;
    height:32px;line-height:32px;margin-right:10px;padding-right:30px;
    background:var(--soft-bg);cursor:pointer;font-size:0;
    box-sizing:border-box;border-radius:var(--soft-radius-sm);
    box-shadow:var(--soft-raised-sm);
    -webkit-transition:.15s linear;transition:.15s linear;
}
.layui-form-checkbox>*{display:inline-block;vertical-align:middle}
.layui-form-checkbox>div{padding:0 12px;font-size:14px;color:var(--soft-text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.layui-form-checkbox:hover{box-shadow:var(--soft-raised-md)}
.layui-form-checkbox>i{
    position:absolute;right:0;top:0;width:30px;height:100%;
    border-left:none;border-radius:0 var(--soft-radius-sm) var(--soft-radius-sm) 0;
    color:#fff;color:rgba(255,255,255,0);font-size:20px;text-align:center;box-sizing:border-box;
}
.layui-form-checked,.layui-form-checked:hover{box-shadow:var(--soft-inset-sm)}
.layui-form-checked:hover>div,.layui-form-checked>div{color:var(--soft-primary)}
.layui-form-checked:hover>i,.layui-form-checked>i{color:var(--soft-primary)}

/* primary 风格复选框（用于表格内） */
.layui-form-checkbox[lay-skin=primary]{
    height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;
    border:none!important;margin-right:0;padding-left:26px;padding-right:0;
    background:0 0;box-shadow:none;
}
.layui-form-checkbox[lay-skin=primary]>div{margin-top:-1px;padding-left:0;padding-right:12px;line-height:20px;background:0 0;color:var(--soft-text)}
.layui-form-checkbox[lay-skin=primary]>i{
    right:auto;left:0;width:20px;height:20px;line-height:18px;
    border:2px solid var(--soft-shadow-dark);font-size:12px;border-radius:6px;
    background:var(--soft-bg);box-shadow:var(--soft-inset-sm);
    -webkit-transition:.15s linear;transition:.15s linear;
}
.layui-form-checkbox[lay-skin=primary]:hover>i{border-color:var(--soft-primary)}
.layui-form-checked[lay-skin=primary]>i{
    border-color:var(--soft-primary)!important;
    background:linear-gradient(135deg,var(--soft-primary-light),var(--soft-primary));
    color:#fff!important;box-shadow:0 2px 6px rgba(66,133,244,.4);
}
.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}
.layui-form-checkbox[lay-skin=none],.layui-form-radio[lay-skin=none]{position:relative;min-height:20px;margin:0;padding:0;height:auto;line-height:normal}
.layui-form-checkbox[lay-skin=none]>div,.layui-form-radio[lay-skin=none]>div{position:relative;top:0;left:0;cursor:pointer;z-index:10;color:inherit;background-color:inherit}
.layui-form-checkbox[lay-skin=none]>i,.layui-form-radio[lay-skin=none]>i{display:none}

/* ========== Soft UI 单选框 ========== */
.layui-form-radio{display:inline-block;vertical-align:middle;line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}
.layui-form-radio>*{display:inline-block;vertical-align:middle;font-size:14px}
.layui-form-radio>i{margin-right:8px;font-size:22px;color:var(--soft-shadow-dark)}
.layui-form-radio:hover>*,.layui-form-radioed,.layui-form-radioed>i{color:var(--soft-primary)}
.layui-radio-disabled>i{color:var(--soft-text-disabled)!important}
.layui-radio-disabled>*{color:var(--soft-text-disabled)!important}
.layui-form [lay-radio]{display:none}

/* ========== Soft UI 表格 ========== */
.layui-table{
    width:100%;margin:10px 0;
    background:transparent;color:var(--soft-text);
    border-radius:var(--soft-radius);
}
.layui-table tr{transition:all .3s}
.layui-table th{text-align:left;font-weight:600;color:var(--soft-text-secondary)}
.layui-table-click,.layui-table-hover,.layui-table[lay-even] tbody tr:nth-child(even){background:rgba(163,177,198,.06)}
.layui-table-checked{background:rgba(66,133,244,.08)}
.layui-table-checked.layui-table-click,.layui-table-checked.layui-table-hover{background:rgba(66,133,244,.12)}
.layui-table td,.layui-table th{position:relative;padding:12px 15px;min-height:20px;line-height:20px;font-size:14px;border-bottom:1px solid rgba(163,177,198,.1)}
.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0;border-bottom-width:1px}
.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0;border-right-width:1px}
.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}
.layui-table img{max-width:100px}
.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding:15px 30px}
.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{padding:6px 12px;font-size:12px}
.layui-table[lay-data],.layui-table[lay-options]{display:none}

/* 表格视图容器（JS 生成） */
.layui-table-box{position:relative;overflow:hidden;border-radius:var(--soft-radius)}
.layui-table-view{clear:both;background:var(--soft-bg);border-radius:var(--soft-radius);overflow:hidden;box-shadow:var(--soft-inset-md)}
.layui-table-view .layui-table{position:relative;width:auto;margin:0;border:0;border-collapse:separate}
.layui-table-view .layui-table[lay-skin=line]{border-width:0;border-right-width:1px}
.layui-table-view .layui-table[lay-skin=row]{border-width:0;border-bottom-width:1px}
.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:0;border-top:none;border-left:none}
.layui-table-view .layui-table th [lay-event],.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}
.layui-table-view .layui-table td,.layui-table-view .layui-table th span{cursor:default}
.layui-table-view .layui-table td[data-edit]{cursor:text}
.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:20px;height:20px;line-height:16px}
.layui-table-view .layui-form-radio{line-height:0;padding:0}
.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}
.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:199}
.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:var(--soft-text-disabled)}
.layui-table-header{border-width:0;border-bottom-width:1px;border-bottom:1px solid rgba(163,177,198,.1);overflow:hidden;background:rgba(163,177,198,.04)}
.layui-table-header .layui-table{margin-bottom:-1px}
.layui-table-column{position:relative;width:100%;min-height:50px;padding:10px 16px;border-width:0;border-bottom-width:1px;border-bottom:1px solid rgba(163,177,198,.1)}
.layui-table-column .layui-btn-container{margin-bottom:-8px}
.layui-table-column .layui-btn-container .layui-btn{margin-right:8px;margin-bottom:8px}
.layui-table-tool{position:relative;width:100%;min-height:54px;line-height:34px;padding:10px 15px;border-width:0;border-bottom-width:1px;border-bottom:1px solid rgba(163,177,198,.1)}
.layui-table-tool .layui-btn-container{margin-bottom:-10px}
.layui-table-tool .layui-inline[lay-event]{position:relative;width:30px;height:30px;padding:5px;line-height:20px;margin-right:10px;text-align:center;color:var(--soft-text-secondary);border:1px solid rgba(163,177,198,.2);border-radius:8px;cursor:pointer;transition:all .3s}
.layui-table-tool .layui-inline[lay-event]:hover{border-color:var(--soft-primary);color:var(--soft-primary)}
.layui-table-tool-temp{padding-right:120px}
.layui-table-tool-self{position:absolute;right:17px;top:10px}
.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}
.layui-table-tool-panel{position:absolute;top:32px;left:-1px;z-index:399;padding:5px 0!important;min-width:150px;min-height:40px;background:var(--soft-bg);border-radius:var(--soft-radius-sm);box-shadow:var(--soft-raised-lg);text-align:left;overflow-y:auto}
.layui-table-tool-panel li{padding:0 12px;margin:0!important;line-height:34px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.layui-table-tool-panel li:hover{background:rgba(66,133,244,.08);color:var(--soft-primary)}
.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%}
.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{padding-left:28px}
.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}
.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}
.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}
.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;background:var(--soft-bg)}
.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}
.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}
.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}
.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:var(--soft-text-secondary)}
.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}
.layui-table-sort .layui-table-sort-desc:hover{border-top-color:var(--soft-text-secondary)}
.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:var(--soft-primary)}
.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:var(--soft-primary)}
.layui-table-cell{height:40px;line-height:30px;padding:6px 15px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}
.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}
.layui-table-cell .layui-form-checkbox[lay-skin=primary]>div{padding-left:26px}
.layui-table-cell .layui-table-link{color:var(--soft-primary)}
.layui-table-cell .layui-btn{vertical-align:inherit}
.layui-table-cell[align=center]{-webkit-box-pack:center}
.layui-table-cell[align=right]{-webkit-box-pack:end}
.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{text-align:center;-webkit-box-pack:center}
.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}
.layui-table-body .layui-none{line-height:26px;padding:30px 15px;text-align:center;color:var(--soft-text-disabled)}
.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}
.layui-table-fixed .layui-table-body{overflow:hidden}
.layui-table-fixed-l{box-shadow:4px 0 12px rgba(163,177,198,.12)}
.layui-table-fixed-r{left:auto;right:-1px;box-shadow:-4px 0 12px rgba(163,177,198,.12)}
.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}
.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px;background:var(--soft-bg)}
.layui-table-total{margin-bottom:-1px;border-top:1px solid rgba(163,177,198,.1);overflow:hidden}
.layui-table-page{border-width:0;border-top-width:1px;border-top:1px solid rgba(163,177,198,.1);margin-bottom:-1px;white-space:nowrap;overflow:hidden}
.layui-table-page>div{height:30px}
.layui-table-page .layui-laypage{margin:0}
.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:30px;line-height:30px;margin-bottom:10px;border:none;background:0 0}
.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}
.layui-table-page .layui-laypage span{margin-left:0;padding:0}
.layui-table-pagebar{float:right;line-height:23px}
.layui-table-view select[lay-ignore]{display:inline-block}
.layui-table-patch .layui-table-cell{padding:0;width:30px}
.layui-table-edit{position:absolute;left:0;top:0;z-index:189;min-width:100%;min-height:100%;padding:6px 14px;background:var(--soft-bg);box-shadow:var(--soft-raised-lg);border-radius:0}
.layui-table-edit:focus{border-color:var(--soft-primary)!important}
input.layui-input.layui-table-edit{height:100%}
select.layui-table-edit{padding:0 0 0 14px}
.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0}
.layui-table-view .layui-form-checkbox{top:-1px;height:30px;line-height:30px}
.layui-table-view .layui-form-checkbox i{height:30px}
.layui-table-grid .layui-table-cell{overflow:visible}
.layui-table-grid-down{position:absolute;top:0;right:0;width:24px;height:100%;padding:5px 0;text-align:center;background:var(--soft-bg);color:var(--soft-text-disabled);cursor:pointer}
.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px;font-size:14px}
.layui-table-grid-down:hover{background:rgba(163,177,198,.1)}
body .layui-table-tips .layui-layer-content{background:0 0;padding:0}
.layui-table-tips-main{margin:-49px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background:var(--soft-bg);color:var(--soft-text)}
.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background:var(--soft-text-secondary);border-radius:50%;color:#fff}
.layui-table-tips-c:hover{background:var(--soft-text)}
.layui-table-tips-c:before{position:relative;right:-2px}

/* ========== Soft UI 分页 ========== */
.layui-laypage{display:inline-block;vertical-align:middle;margin:10px 0;font-size:0}
.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:var(--soft-radius-sm) 0 0 var(--soft-radius-sm)}
.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 var(--soft-radius-sm) var(--soft-radius-sm) 0}
.layui-laypage>:first-child{margin-left:0!important}
.layui-laypage>:last-child{margin-right:0!important}
.layui-laypage a,.layui-laypage span{display:inline-block;vertical-align:middle;padding:0 14px;height:32px;line-height:32px;margin:0 3px 5px 0;background:var(--soft-bg);color:var(--soft-text);font-size:13px;border-radius:var(--soft-radius-sm);box-shadow:var(--soft-raised-sm)}
.layui-laypage a[data-page]{color:var(--soft-text)}
.layui-laypage a{text-decoration:none!important;cursor:pointer}
.layui-laypage a:hover{color:var(--soft-primary);box-shadow:var(--soft-raised-md)}
.layui-laypage em{font-style:normal}
.layui-laypage .layui-laypage-spr{color:var(--soft-text-disabled)}
.layui-laypage .layui-laypage-curr{position:relative}
.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}
.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:0;top:0;padding:0;width:100%;height:100%;background:linear-gradient(135deg,var(--soft-primary-light),var(--soft-primary));border-radius:var(--soft-radius-sm);box-shadow:0 2px 6px rgba(66,133,244,.4)}
.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}
.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none;box-shadow:none;background:0 0}
.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}
.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}
.layui-laypage select{height:28px;padding:3px;border-radius:var(--soft-radius-sm);cursor:pointer;background:var(--soft-bg);box-shadow:var(--soft-inset-sm);border:none}
.layui-laypage .layui-laypage-skip{height:32px;line-height:32px;color:var(--soft-text-secondary)}
.layui-laypage button,.layui-laypage input{height:32px;line-height:32px;border-radius:var(--soft-radius-sm);vertical-align:top;background:var(--soft-bg);box-sizing:border-box;box-shadow:var(--soft-raised-sm);border:none}
.layui-laypage input{display:inline-block;width:45px;margin:0 10px;padding:0 3px;text-align:center}
.layui-laypage input:focus,.layui-laypage select:focus{border-color:var(--soft-primary)!important}
.layui-laypage button{margin-left:10px;padding:0 12px;cursor:pointer}

/* ========== Soft UI 徽章 ========== */
.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:2px 8px;font-size:12px;text-align:center;border-radius:8px;font-weight:500}
.layui-badge{height:20px;line-height:16px;background:var(--soft-danger);color:#fff;box-shadow:0 2px 4px rgba(234,67,53,.3)}
.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%;background:var(--soft-danger)}
.layui-badge-rim{height:20px;line-height:16px;border:1px solid rgba(163,177,198,.3);background:var(--soft-bg);color:var(--soft-text-secondary)}
.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}
.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-5px 6px 0}
.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}

/* 背景色 */
.layui-bg-red{background:linear-gradient(135deg,#f0674f,var(--soft-danger))!important;color:#fff!important;box-shadow:0 2px 6px rgba(234,67,53,.3)}
.layui-bg-orange{background:linear-gradient(135deg,#ffd54f,var(--soft-warning))!important;color:#fff!important;box-shadow:0 2px 6px rgba(251,188,4,.3)}
.layui-bg-green{background:linear-gradient(135deg,#5bc97a,var(--soft-success))!important;color:#fff!important;box-shadow:0 2px 6px rgba(52,168,83,.3)}
.layui-bg-cyan{background:linear-gradient(135deg,#5a7a9a,#2f4056)!important;color:#fff!important}
.layui-bg-blue{background:linear-gradient(135deg,var(--soft-primary-light),var(--soft-primary))!important;color:#fff!important;box-shadow:0 2px 6px rgba(66,133,244,.3)}
.layui-bg-purple{background:linear-gradient(135deg,#c065f5,var(--soft-secondary))!important;color:#fff!important;box-shadow:0 2px 6px rgba(161,66,244,.3)}
.layui-bg-gray{background:var(--soft-inset)!important;color:var(--soft-text-secondary)!important;box-shadow:var(--soft-inset-sm)}

/* 字体颜色 */
.layui-font-red{color:var(--soft-danger)!important}
.layui-font-orange{color:var(--soft-warning)!important}
.layui-font-green{color:var(--soft-success)!important}
.layui-font-cyan{color:#2f4056!important}
.layui-font-blue{color:var(--soft-primary)!important}
.layui-font-purple{color:var(--soft-secondary)!important}
.layui-font-black{color:#000!important}
.layui-font-gray{color:var(--soft-text-disabled)!important}
.layui-font-12{font-size:12px!important}.layui-font-13{font-size:13px!important}.layui-font-14{font-size:14px!important}.layui-font-16{font-size:16px!important}.layui-font-18{font-size:18px!important}.layui-font-20{font-size:20px!important}.layui-font-22{font-size:22px!important}.layui-font-24{font-size:24px!important}.layui-font-26{font-size:26px!important}.layui-font-28{font-size:28px!important}.layui-font-30{font-size:30px!important}.layui-font-32{font-size:32px!important}

/* ========== Soft UI 导航 ========== */
.layui-nav{position:relative;padding:0 15px;background:var(--soft-bg);color:var(--soft-text);border-radius:var(--soft-radius);font-size:0;box-sizing:border-box}
.layui-nav *{font-size:14px}
.layui-nav .layui-nav-item{position:relative;display:inline-block;margin-top:0;list-style:none;vertical-align:middle;line-height:60px}
.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:var(--soft-text);color:rgba(60,64,67,.8);transition:all .3s}
.layui-nav .layui-this:after,.layui-nav-bar{content:"";position:absolute;left:0;top:0;width:0;height:3px;background:var(--soft-primary);transition:all .2s;pointer-events:none}
.layui-nav-bar{z-index:1000}
.layui-nav[lay-bar=disabled] .layui-nav-bar{display:none}
.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:var(--soft-primary);text-decoration:none}
.layui-nav .layui-this:after{top:auto;bottom:0;width:100%}
.layui-nav-img{width:32px;height:32px;margin-right:10px;border-radius:50%;box-shadow:var(--soft-raised-sm)}
.layui-nav .layui-nav-more{position:absolute;top:0;right:3px;margin-top:0;font-size:12px;cursor:pointer;transition:all .2s}
.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{transform:rotate(180deg)}
.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:40px;padding:5px 0;background:var(--soft-bg);z-index:100;border-radius:var(--soft-radius);box-shadow:var(--soft-raised-lg);white-space:nowrap;box-sizing:border-box}
.layui-nav .layui-nav-child a{color:var(--soft-text);color:rgba(60,64,67,.8)}
.layui-nav .layui-nav-child a:hover{background:rgba(66,133,244,.08);color:var(--soft-primary)}
.layui-nav-child dd{margin:1px 0;position:relative}
.layui-nav-child dd.layui-this{background:rgba(66,133,244,.08);color:var(--soft-primary)}
.layui-nav-child dd.layui-this:after{display:none}
.layui-nav-child-r{left:auto;right:0}
.layui-nav-child-c{text-align:center}

/* 树形导航（侧边栏） */
.layui-nav.layui-nav-tree{width:100%;padding:0}
.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:46px}
.layui-nav-tree .layui-nav-item a{position:relative;height:46px;line-height:46px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding:0 22px;color:var(--soft-text-secondary);border-radius:var(--soft-radius);margin:4px 12px;transition:all .3s}
.layui-nav-tree .layui-nav-item>a{padding:0 22px}
.layui-nav-tree .layui-nav-more{right:18px}
.layui-nav-tree .layui-nav-item>a .layui-nav-more{padding:5px 0}
.layui-nav-tree .layui-nav-bar{width:5px;height:0}
.layui-side .layui-nav-tree .layui-nav-bar{width:3px}
.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a{background:rgba(66,133,244,.1);color:var(--soft-primary)}
.layui-nav-tree .layui-this{background:transparent!important;box-shadow:none!important}
.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{
    background:linear-gradient(135deg,rgba(90,155,255,.15),rgba(66,133,244,.1))!important;
    color:var(--soft-primary)!important;
    box-shadow:var(--soft-inset-sm);
}
.layui-nav-tree .layui-this:after{display:none}
.layui-nav-tree .layui-nav-item a:hover{background:rgba(163,177,198,.1);color:var(--soft-text)}
.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:var(--soft-text)!important}
.layui-nav-tree .layui-nav-bar{background:var(--soft-primary)}
.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;background:0 0;box-shadow:none;padding-left:8px}
.layui-nav-tree .layui-nav-child dd{margin:0}
.layui-nav-tree .layui-nav-child a{color:var(--soft-text-secondary)}
.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:var(--soft-primary)}
.layui-nav-itemed>.layui-nav-child,.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}
.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}

/* 导航图标 */
.layui-nav-tree .layui-icon{margin-right:10px;font-size:16px;vertical-align:middle}
.layui-nav-item a{font-size:14px}

/* ========== Soft UI 进度条 ========== */
.layui-progress{position:relative;height:10px;border-radius:20px;background:var(--soft-inset);box-shadow:var(--soft-inset-sm)}
.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:10px;border-radius:20px;text-align:right;background:linear-gradient(90deg,var(--soft-primary-light),var(--soft-primary));transition:all .3s;box-shadow:0 2px 6px rgba(66,133,244,.3)}
.layui-progress-big,.layui-progress-big .layui-progress-bar{height:22px;line-height:22px}
.layui-progress-text{position:relative;top:-24px;line-height:22px;font-size:12px;color:var(--soft-text-secondary)}
.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}

/* ========== Soft UI 字段集 ========== */
.layui-elem-field{margin-bottom:15px;padding:0;border:1px solid rgba(163,177,198,.15);border-radius:var(--soft-radius)}
.layui-elem-field legend{margin-left:20px;padding:0 12px;font-size:18px;font-weight:600;color:var(--soft-text)}
.layui-field-title{margin:20px 0;border-width:0;border-top-width:2px;border-top:2px solid rgba(163,177,198,.15)}
.layui-field-box{padding:15px}
.layui-field-title .layui-field-box{padding:10px 0}
.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:1.8;border-left:5px solid var(--soft-primary);border-radius:0 var(--soft-radius-sm) var(--soft-radius-sm) 0;background:var(--soft-inset);color:var(--soft-text)}
.layui-quote-nm{border-style:solid;border-width:1px;border-left-width:5px;background:0 0}

/* ========== Soft UI 提示横幅（alert） ========== */
.layui-alert{position:relative;margin-bottom:15px;padding:14px 20px 14px 50px;border-radius:var(--soft-radius);box-shadow:var(--soft-inset-sm);line-height:1.7;color:var(--soft-text);font-size:14px;min-height:24px}
.layui-alert .layui-icon{font-size:18px;position:absolute;left:18px;top:14px}
.layui-alert a{color:inherit;text-decoration:underline}
.layui-alert-title{font-weight:600;margin-bottom:4px}
.layui-alert p{margin:4px 0 0}
.layui-alert ul{margin:6px 0 0;padding-left:20px}
.layui-alert li{margin:2px 0;list-style:disc}
.layui-alert i.layui-icon{background:none}
.layui-alert.layui-bg-red,.layui-alert.layui-bg-orange,.layui-alert.layui-bg-green,.layui-alert.layui-bg-cyan,.layui-alert.layui-bg-blue{box-shadow:var(--soft-inset-sm)}
.layui-alert.layui-bg-orange{color:#8a5b00}
.layui-bg-dark{background:#2c3033!important;color:#fff!important}

/* ========== Soft UI 面板 ========== */
.layui-panel{position:relative;border-radius:var(--soft-radius);background:var(--soft-bg);box-shadow:var(--soft-raised-md);color:var(--soft-text-secondary)}
.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid var(--soft-primary);background:var(--soft-bg)}

/* ========== Soft UI 弹层（layer） ========== */
.layui-layer,.layui-layer-shade{position:fixed;pointer-events:auto}
.layui-layer-shade{opacity:0;transition:opacity .35s cubic-bezier(.34,.69,.1,1);top:0;left:0;width:100%;height:100%;background:rgba(60,64,67,.3);backdrop-filter:blur(4px)}
.layui-layer{-webkit-overflow-scrolling:touch;top:120px;left:0;margin:0;padding:0;background:var(--soft-bg);border-radius:var(--soft-radius-lg);box-shadow:var(--soft-raised-lg),0 20px 60px rgba(60,64,67,.15)}
.layui-layer-close{position:absolute}
.layui-layer-content{position:relative}
.layui-layer-border{border:1px solid rgba(163,177,198,.15)}
.layui-layer-btn a,.layui-layer-setwin span{display:inline-block;vertical-align:middle}
.layui-layer-move{display:none;position:fixed;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;background:var(--soft-bg);z-index:2147483647}
.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}
.layui-layer-title{padding:0 81px 0 24px;height:56px;line-height:56px;border-bottom:1px solid rgba(163,177,198,.1);font-size:15px;font-weight:600;color:var(--soft-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--soft-radius-lg) var(--soft-radius-lg) 0 0}
.layui-layer-setwin{position:absolute;right:20px;top:20px;font-size:0;line-height:initial}
.layui-layer-setwin span{position:relative;width:28px;height:28px;line-height:28px;margin-left:8px;text-align:center;font-size:16px;cursor:pointer;color:var(--soft-text-secondary);border-radius:8px;box-sizing:border-box;transition:all .3s}
.layui-layer-setwin span:hover{background:rgba(163,177,198,.15);color:var(--soft-text)}
.layui-layer-setwin .layui-layer-min:before{content:'';position:absolute;width:14px;border-bottom:2px solid var(--soft-text-secondary);left:50%;top:50%;margin:-1px 0 0 -7px}
.layui-layer-setwin .layui-layer-min:hover:before{background:var(--soft-primary)}
.layui-layer-setwin .layui-layer-max:after,.layui-layer-setwin .layui-layer-max:before{content:'';position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border:2px solid var(--soft-text-secondary)}
.layui-layer-setwin .layui-layer-max:hover:after,.layui-layer-setwin .layui-layer-max:hover:before{border-color:var(--soft-primary)}
.layui-layer-setwin .layui-layer-close{cursor:pointer}
.layui-layer-setwin .layui-layer-close:hover{opacity:.7;color:var(--soft-danger)}
.layui-layer-btn{text-align:right;padding:0 24px 16px;pointer-events:auto;user-select:none}
.layui-layer-btn a{height:36px;line-height:36px;margin:5px 5px 0;padding:0 20px;background:var(--soft-bg);color:var(--soft-text-secondary);border-radius:var(--soft-radius);font-weight:500;cursor:pointer;text-decoration:none;box-shadow:var(--soft-raised-sm);box-sizing:border-box;transition:all .3s}
.layui-layer-btn a:hover{box-shadow:var(--soft-raised-md);color:var(--soft-text)}
.layui-layer-btn a:active{box-shadow:var(--soft-inset-sm)}
.layui-layer-btn .layui-layer-btn0{background:linear-gradient(135deg,var(--soft-primary-light),var(--soft-primary));color:#fff;box-shadow:-4px -4px 8px rgba(90,155,255,.2),4px 4px 8px rgba(66,133,244,.4)}
.layui-layer-btn-l{text-align:left}
.layui-layer-btn-c{text-align:center}
.layui-layer-dialog{min-width:260px}
.layui-layer-dialog .layui-layer-content{position:relative;padding:24px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}
.layui-layer-dialog .layui-layer-content .layui-layer-face{position:absolute;top:24px;left:24px;color:var(--soft-text-disabled);font-size:32px}
.layui-layer-dialog .layui-layer-content .layui-icon-tips{color:var(--soft-warning)}
.layui-layer-dialog .layui-layer-content .layui-icon-success{color:var(--soft-success)}
.layui-layer-dialog .layui-layer-content .layui-icon-error{color:var(--soft-danger)}
.layui-layer-dialog .layui-layer-content .layui-icon-question{color:var(--soft-warning)}
.layui-layer-rim{border:6px solid rgba(60,64,67,.2);box-shadow:none}
.layui-layer-msg{min-width:200px;border:none;box-shadow:var(--soft-raised-lg)}
.layui-layer-hui{min-width:120px;background:rgba(60,64,67,.9);color:#fff;border:none}
.layui-layer-hui .layui-layer-close{color:#fff}
.layui-layer-hui .layui-layer-content{padding:12px 28px;text-align:center}
.layui-layer-dialog .layui-layer-padding{padding:24px 24px 24px 68px;text-align:left}
.layui-layer-page .layui-layer-content{position:relative;overflow:auto}
.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}
.layui-layer-nobg{background:0 0}
.layui-layer-iframe iframe{display:block;width:100%}
.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}
.layui-layer-loading .layui-layer-content{width:76px;height:38px;line-height:38px;text-align:center}
.layui-layer-loading-icon{font-size:38px;color:var(--soft-primary)}
.layui-layer-loading2{text-align:center}
.layui-layer-loading-2{position:relative;height:38px}
.layui-layer-loading-2:after,.layui-layer-loading-2:before{content:'';position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:3px solid var(--soft-inset);box-sizing:border-box}
.layui-layer-loading-2:after{border-color:transparent;border-left-color:var(--soft-primary)}
.layui-layer-tips{background:0 0;box-shadow:none;border:none}
.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;border-radius:var(--soft-radius-sm);box-shadow:var(--soft-raised-md);background:rgba(60,64,67,.9);color:#fff}
.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}
.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;overflow:hidden}
.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:rgba(60,64,67,.9)}
.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}
.layui-layer-tips i.layui-layer-TipsB{top:-8px}
.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:rgba(60,64,67,.9)}
.layui-layer-tips i.layui-layer-TipsR{left:-8px}
.layui-layer-tips i.layui-layer-TipsL{right:-8px}
.layui-layer-lan .layui-layer-title{background:var(--soft-primary);color:#fff;border:none}
.layui-layer-molv .layui-layer-title{background:var(--soft-primary);color:#fff;border:none}

/* ========== Soft UI 日期选择器（laydate） ========== */
.layui-laydate *{margin:0;padding:0}
.layui-laydate,.layui-laydate *{box-sizing:border-box}
.layui-laydate{position:absolute;z-index:99999999;margin:5px 0;border-radius:var(--soft-radius);font-size:14px;background:var(--soft-bg);box-shadow:var(--soft-raised-lg);color:var(--soft-text);border:none}
.layui-laydate-main{width:272px}
.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s}
.layui-laydate-shade{top:0;left:0;width:100%;height:100%;position:fixed;pointer-events:auto}
.layui-laydate-header{position:relative;line-height:30px;padding:12px 70px 6px;border-bottom:1px solid rgba(163,177,198,.1)}
.layui-laydate-header *{display:inline-block;vertical-align:bottom}
.layui-laydate-header i{position:absolute;top:12px;padding:0 5px;color:var(--soft-text-secondary);font-size:18px;cursor:pointer}
.layui-laydate-header i:hover{color:var(--soft-primary)}
.layui-laydate-header i.laydate-prev-y{left:15px}
.layui-laydate-header i.laydate-prev-m{left:45px}
.layui-laydate-header i.laydate-next-y{right:15px}
.layui-laydate-header i.laydate-next-m{right:45px}
.laydate-set-ym{width:100%;text-align:center;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.laydate-set-ym span{padding:0 10px;cursor:pointer}
.laydate-set-ym span:hover{color:var(--soft-primary)}
.layui-laydate-content{position:relative;padding:10px}
.layui-laydate-content table{border-collapse:collapse;border-spacing:0}
.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:0;text-align:center}
.layui-laydate-content th{font-weight:400;color:var(--soft-text-secondary)}
.layui-laydate-content td{position:relative;cursor:pointer;color:var(--soft-text);border-radius:8px}
.layui-laydate-content td:hover{background:rgba(66,133,244,.1);color:var(--soft-primary)}
.layui-laydate-content td.laydate-day-now{color:var(--soft-primary)}
.layui-laydate-content td.laydate-day-now:after{content:'';position:absolute;width:100%;height:30px;left:0;top:0;border:2px solid var(--soft-primary);box-sizing:border-box;border-radius:8px}
.layui-laydate .layui-this,.layui-laydate .layui-this>div{background:linear-gradient(135deg,var(--soft-primary-light),var(--soft-primary))!important;color:#fff!important;border-radius:8px}
.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:var(--soft-text-disabled)!important;cursor:not-allowed!important}
.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px;border-top:1px solid rgba(163,177,198,.1)}
.layui-laydate-footer span{display:inline-block;vertical-align:top;height:28px;line-height:26px;padding:0 12px;background:var(--soft-bg);border-radius:var(--soft-radius-sm);font-size:12px;cursor:pointer;white-space:nowrap;box-shadow:var(--soft-raised-sm);transition:all .3s}
.layui-laydate-footer span:hover{color:var(--soft-primary);box-shadow:var(--soft-raised-md)}
.layui-laydate-footer span.layui-laydate-preview{cursor:default;border:none!important;box-shadow:none;background:0 0}
.layui-laydate .layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;box-sizing:border-box;background:var(--soft-bg)}
.layui-laydate .layui-laydate-list>li{position:relative;display:inline-block;width:33.3%;height:40px;line-height:40px;margin:3px 0;text-align:center;cursor:pointer;list-style:none;border-radius:var(--soft-radius-sm)}
.layui-laydate .layui-laydate-list>li:hover{background:rgba(66,133,244,.1);color:var(--soft-primary)}
.layui-laydate .laydate-month-list>li{width:25%;margin:17px 0}
.layui-laydate-content td>div{padding:7px 0;height:100%}
.laydate-day-mark::after{background-color:var(--soft-primary)}
.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}

/* ========== Soft UI 折叠面板 ========== */
.layui-collapse{border:1px solid rgba(163,177,198,.15);border-radius:var(--soft-radius);overflow:hidden}
.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid;border-top-color:rgba(163,177,198,.1)}
.layui-colla-item:first-child{border-top:none}
.layui-colla-title{position:relative;height:46px;line-height:46px;padding:0 15px 0 40px;color:var(--soft-text);background:var(--soft-inset);cursor:pointer;font-size:14px;overflow:hidden}
.layui-colla-content{display:none;padding:12px 15px;line-height:1.6;color:var(--soft-text-secondary)}
.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}

/* ========== Soft UI Tab 选项卡 ========== */
.layui-tab{margin:10px 0}
.layui-tab .layui-tab-title{position:relative;left:0;height:44px;white-space:nowrap;font-size:0;border-bottom:2px solid rgba(163,177,198,.15)}
.layui-tab .layui-tab-title li{display:inline-block;position:relative;line-height:44px;min-width:65px;margin:0;padding:0 18px;text-align:center;cursor:pointer;font-size:14px;color:var(--soft-text-secondary);transition:all .2s}
.layui-tab .layui-tab-title li:hover{color:var(--soft-text)}
.layui-tab-title .layui-this{color:var(--soft-primary);font-weight:600}
.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:"";width:100%;height:44px;border-bottom:3px solid var(--soft-primary);box-sizing:border-box;pointer-events:none}
.layui-tab-item{display:none}
.layui-tab-content{padding:15px 0}
.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;text-align:center;font-size:14px;color:var(--soft-text-disabled)}
.layui-tab-title li .layui-tab-close:hover{border-radius:50%;background:var(--soft-danger);color:#fff}
.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-bottom:3px solid var(--soft-primary)}

/* ========== Soft UI 面包屑 ========== */
.layui-breadcrumb{visibility:hidden;font-size:0}
.layui-breadcrumb>*{font-size:14px}
.layui-breadcrumb a{color:var(--soft-text-disabled)!important}
.layui-breadcrumb a:hover{color:var(--soft-primary)!important}
.layui-breadcrumb a cite{color:var(--soft-text-secondary);font-style:normal}
.layui-breadcrumb span[lay-separator]{margin:0 10px;color:var(--soft-text-disabled)}

/* ========== Soft UI 上传 ========== */
.layui-upload-file{display:none!important;opacity:.01}
.layui-upload-list{margin:11px 0}
.layui-upload-drag{position:relative;display:inline-block;padding:30px;border:2px dashed rgba(163,177,198,.3);background:var(--soft-bg);text-align:center;cursor:pointer;color:var(--soft-text-secondary);border-radius:var(--soft-radius)}
.layui-upload-drag .layui-icon{font-size:50px;color:var(--soft-primary)}
.layui-upload-drag[lay-over]{border-color:var(--soft-primary)}

/* ========== Soft UI 滑块 ========== */
.layui-slider{height:6px;background:var(--soft-inset);border-radius:6px;position:relative;cursor:pointer;box-shadow:var(--soft-inset-sm)}
.layui-slider-bar{border-radius:6px;position:absolute;height:100%;background:linear-gradient(90deg,var(--soft-primary-light),var(--soft-primary))}
.layui-slider-wrap-btn{width:18px;height:18px;border-radius:50%;background:var(--soft-bg);display:inline-block;cursor:pointer;box-shadow:var(--soft-raised-sm)}

/* ========== Soft UI 颜色选择器 ========== */
.layui-colorpicker{width:40px;height:40px;border:1px solid rgba(163,177,198,.2);padding:5px;border-radius:var(--soft-radius-sm);display:inline-block;cursor:pointer;box-sizing:border-box}
.layui-colorpicker:hover{border-color:var(--soft-primary)}

/* ========== 动画（功能） ========== */
.layui-anim{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:both;animation-duration:.3s;animation-fill-mode:both}
.layui-anim.layui-icon{display:inline-block}
.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}
.layui-trans,.layui-trans a{transition:all .2s;-webkit-transition:all .2s}
@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}
@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{animation-name:layui-up}
@keyframes layui-upbit{from{transform:translate3d(0,15px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{animation-name:layui-upbit}
@keyframes layui-down{0%{opacity:.3;transform:translate3d(0,-100%,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-down{animation-name:layui-down}
@keyframes layui-scale{0%{opacity:.3;transform:scale(.5)}100%{opacity:1;transform:scale(1)}}.layui-anim-scale{animation-name:layui-scale}
@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{animation-name:layui-scale-spring}
@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{animation-name:layui-fadein}
/* layer 动画 */
.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}
@keyframes layer-bounceIn{0%{opacity:0;transform:scale(.5)}100%{opacity:1;transform:scale(1)}}.layer-anim-00{animation-name:layer-bounceIn}
@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{animation-name:layer-fadeIn}
@keyframes layer-slide-down{from{transform:translate3d(0,-100%,0)}to{transform:translate3d(0,0,0)}}.layer-anim-slide-down{animation-name:layer-slide-down}
@keyframes layer-bounceOut{100%{opacity:0;transform:scale(.7)}30%{transform:scale(1.05)}0%{transform:scale(1)}}.layer-anim-close{animation-name:layer-bounceOut;animation-duration:.2s}

/* ========== 边框工具 ========== */
.layui-border{border:1px solid rgba(163,177,198,.2);color:var(--soft-text-secondary)!important}
.layui-border-red{border:1px solid var(--soft-danger)!important;color:var(--soft-danger)!important}
.layui-border-orange{border:1px solid var(--soft-warning)!important;color:var(--soft-warning)!important}
.layui-border-green{border:1px solid var(--soft-success)!important;color:var(--soft-success)!important}
.layui-border-blue{border:1px solid var(--soft-primary)!important;color:var(--soft-primary)!important}
.layui-border-purple{border:1px solid var(--soft-secondary)!important;color:var(--soft-secondary)!important}
.layui-border-black{border:1px solid var(--soft-text)!important}

/* ========== 文本 ========== */
.layui-text{line-height:1.8;font-size:14px}
.layui-text h1,.layui-text h2,.layui-text h3,.layui-text h4,.layui-text h5,.layui-text h6{color:var(--soft-text)}
.layui-text h1{font-size:32px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}
.layui-text a:not(.layui-btn){color:var(--soft-primary)}
.layui-word-aux{color:var(--soft-text-disabled)!important;padding-left:5px!important;padding-right:5px!important}

/* ========== 内边距/外边距 ========== */
.layui-padding-1{padding:4px!important}.layui-padding-2{padding:8px!important}.layui-padding-3{padding:16px!important}.layui-padding-4{padding:32px!important}.layui-padding-5{padding:48px!important}
.layui-margin-1{margin:4px!important}.layui-margin-2{margin:8px!important}.layui-margin-3{margin:16px!important}.layui-margin-4{margin:32px!important}.layui-margin-5{margin:48px!important}

/* ========== 上传/文件 ========== */
.layui-upload-choose{max-width:200px;padding:0 10px;color:var(--soft-text-disabled);font-size:14px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.layui-upload-form{display:inline-block}
.layui-upload-wrap{position:relative;display:inline-block;vertical-align:middle}

/* ========== 穿梭框 ========== */
.layui-transfer-box{position:relative;display:inline-block;vertical-align:middle;border:1px solid rgba(163,177,198,.15);width:200px;height:360px;border-radius:var(--soft-radius);background:var(--soft-bg);box-shadow:var(--soft-inset-md)}
.layui-transfer-header{height:40px;line-height:40px;padding:0 12px;border-bottom:1px solid rgba(163,177,198,.1)}
.layui-transfer-search{position:relative;padding:12px;border-bottom:1px solid rgba(163,177,198,.1)}
.layui-transfer-active{margin:0 15px;display:inline-block;vertical-align:middle}
.layui-transfer-active .layui-btn{display:block;margin:0 0 15px;padding:0 15px;background:var(--soft-primary);color:#fff}
.layui-transfer-data{padding:5px 0;overflow:auto}
.layui-transfer-data li{height:34px;line-height:34px;padding:0 12px}
.layui-transfer-data li:hover{background:rgba(66,133,244,.06)}

/* ========== 代码 ========== */
.layui-code{display:block;padding:15px;line-height:20px;border:1px solid rgba(163,177,198,.15);border-left-width:6px;border-left-color:var(--soft-primary);border-radius:var(--soft-radius-sm);background:var(--soft-inset);color:var(--soft-text);font-family:"Courier New",Consolas;font-size:13px}

/* ========== 修复表格内嵌入按钮间距 ========== */
.layui-table .layui-btn+.layui-btn{margin-left:5px}

/* ========== Soft UI 提示框样式增强 ========== */
.layui-layer-dialog .layui-layer-content .layui-icon-face-smile{color:var(--soft-success)}
.layui-layer-dialog .layui-layer-content .layui-icon-face-cry{color:var(--soft-danger)}
.layui-layer-dialog .layui-layer-content .layui-icon-lock{color:var(--soft-text-secondary)}
