/* 布局公共样式 */
*{margin:0;padding:0;box-sizing:border-box}
.page-container{background:var(--theme-gradient);padding:10px;padding-left:280px;padding-top:76px;min-height:100vh;transition:padding-left .25s ease}
.header-bar{position:fixed;top:10px;left:280px;right:10px;height:56px;background:rgba(255,255,255,.95);border-radius:12px;padding:0 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 20px rgba(0,0,0,.1);z-index:100;transition:left .25s ease}
.header-bar .back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--theme-gradient);color:#fff;text-decoration:none;transition:all .3s}
.header-bar .back-btn:hover{transform:translateX(-3px);box-shadow:0 4px 12px rgba(var(--theme-primary-rgb),.4)}
.header-bar .back-btn i{font-size:18px}
.header-bar .nav-actions{display:flex;gap:12px;align-items:center}
.header-bar .nav-actions a{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:14px;color:#666;transition:all .2s;text-decoration:none}
.header-bar .nav-actions a:hover{background:#f5f5f5;color:#333}
.header-bar .nav-actions a.logout{color:#e53935}
.header-bar .nav-actions a.logout:hover{background:#ffebee}
.header-bar .user-dropdown{position:relative}
.header-bar .user-dropdown .dropdown-menu{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.15);min-width:180px;display:none;z-index:101}
.header-bar .user-dropdown .dropdown-menu.show{display:block}
.header-bar .user-dropdown .dropdown-menu a{display:flex;align-items:center;gap:10px;padding:10px 16px;color:#4b5563;text-decoration:none;transition:all .2s}
.header-bar .user-dropdown .dropdown-menu a:hover{background:#f9fafb;color:var(--theme-primary)}
.header-bar .user-dropdown .dropdown-menu a:first-child{border-radius:10px 10px 0 0}
.header-bar .user-dropdown .dropdown-menu a:last-child{border-radius:0 0 10px 10px}
.menu-area{position:fixed;top:10px;left:10px;bottom:10px;width:260px;background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.1);overflow:hidden;display:flex;flex-direction:column;z-index:99;transition:width .25s ease}
/* 简洁模式下的布局联动 */
body.menu-compact .page-container{padding-left:240px;transition:padding-left .25s ease}
body.menu-compact .header-bar{left:240px;transition:left .25s ease}
.menu-area .menu-header{background:var(--theme-gradient);padding:20px;text-align:center;color:#fff;flex-shrink:0}
.menu-area .menu-header .app-icon{width:56px;height:56px;border-radius:14px;background:rgba(255,255,255,.25);display:inline-flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:10px;box-shadow:0 4px 16px rgba(0,0,0,.1)}
.menu-area .menu-header .app-icon img{width:100%;height:100%;border-radius:14px;object-fit:cover}
.menu-area .menu-header .app-name{font-size:16px;font-weight:700;margin-bottom:4px}
.menu-area .menu-header .app-desc{font-size:12px;opacity:.9}
.menu-area .menu-header .app-badge{display:inline-block;padding:2px 10px;border-radius:10px;background:rgba(255,255,255,.25);font-size:11px;margin-top:6px}
.menu-area .menu-nav{flex:1;overflow-y:auto;padding:8px 0}
.menu-area .menu-nav .menu-group{margin-bottom:2px}
.menu-area .menu-nav .menu-item{display:flex;align-items:center;gap:10px;padding:11px 16px;margin:2px 10px;border-radius:8px;color:#4b5563;font-size:14px;cursor:pointer;transition:all .2s;text-decoration:none}
.menu-area .menu-nav .menu-item:hover{background:#f3f4f6;color:var(--theme-primary)}
.menu-area .menu-nav .menu-item.active{background:var(--theme-gradient);color:#fff}
.menu-area .menu-nav .menu-item i{font-size:16px;width:20px;text-align:center}
.menu-area .menu-nav .menu-item .arrow{margin-left:auto;font-size:12px;opacity:.6;transition:transform .2s}
.menu-area .menu-nav .menu-group.open .menu-item .arrow{transform:rotate(90deg)}
.menu-area .menu-nav .sub-menu{padding-left:0;display:none}
.menu-area .menu-nav .menu-group.open>.sub-menu{display:block}
.menu-area .menu-nav .sub-menu .menu-item{padding-left:46px;margin:2px 10px}
.menu-area .menu-nav .sub-menu .sub-menu .menu-item{padding-left:72px}
.main-area{position:relative;background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.1);overflow-y:auto;overflow-x:hidden;height:calc(100vh - 86px)}
.main-area .think-page-body{padding:24px}
.main-area .think-page-loader{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;z-index:100}
.main-area .think-page-loader .loader{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:var(--theme-primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.layui-btn-primary:hover{background:var(--theme-primary)!important;border-color:var(--theme-primary)!important;color:#fff!important}
.layui-btn-normal{background:var(--theme-gradient)!important;border-color:var(--theme-primary)!important}
.layui-btn-normal:hover{opacity:.9!important}
.layui-btn:not(.layui-btn-primary):not(.layui-btn-danger):not(.layui-btn-warm):not(.layui-btn-disabled){background:var(--theme-gradient)!important;border-color:var(--theme-primary)!important;color:#fff!important}
.layui-btn:not(.layui-btn-primary):not(.layui-btn-danger):not(.layui-btn-warm):not(.layui-btn-disabled):hover{opacity:.9!important}
.layui-tab-brief>.layui-tab-title .layui-this,.layui-tab-title .layui-this{color:var(--theme-primary)!important}
.layui-tab-brief>.layui-tab-title .layui-this:after,.layui-tab-title .layui-this:after{border-bottom-color:var(--theme-primary)!important}
.layui-form-onswitch{border-color:var(--theme-primary)!important;background-color:var(--theme-primary)!important}
.main-area .think-box-notify a{color:var(--theme-primary)}
.main-area .think-box-notify a:hover{color:var(--theme-primary-dark)}

/* ===== 全局弹窗滚动修复 ===== */
/* 弹窗内容区超出视口时自动滚动 */
.layui-layer-page .layui-layer-content{max-height:calc(100vh - 110px);overflow-y:auto;overflow-x:hidden}
/* 弹窗内表单底部留白，避免保存按钮被遮挡 */
.layui-layer-page .layui-layer-content>form,.layui-layer-page .layui-layer-content>.layui-card,.layui-layer-page .layui-layer-content>.think-box-shadow{padding-bottom:20px}