/* 若依式后台布局：深色侧栏、顶部导航、页面标签与独立内容区。 */
:root{--bg:#f0f2f5;--line:#ebeef5;--text:#303133;--muted:#909399;--brand:#409eff;--brand-soft:#ecf5ff;--radius:4px;--sidebar-width:220px}
#main{max-width:none;min-height:100vh;margin:0;padding:0}body{font-size:14px}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:#304156;color:#bfcbd9;z-index:30;display:flex;flex-direction:column;transition:width .2s}.sidebar-brand{display:flex;align-items:center;gap:12px;height:56px;padding:0 20px;flex:none;background:#2b2f3a;color:#fff;text-decoration:none;font-weight:650;white-space:nowrap;overflow:hidden;letter-spacing:.5px}.admin-mark{width:30px;height:30px;display:grid;place-items:center;background:#409eff;border-radius:5px;font-size:17px;flex:none}.sidebar .navtabs{display:block;overflow-y:auto;overflow-x:hidden;flex:1;margin:0;padding:12px 0;background:none;border-radius:0;scrollbar-width:thin;scrollbar-color:#596b80 transparent}.menu-group{height:35px;line-height:35px;padding:0 23px;color:#899caf;font-size:11px;letter-spacing:1px;white-space:nowrap}.sidebar .navtabs button{display:flex;align-items:center;gap:14px;width:100%;height:50px;border-radius:0;padding:0 23px;font-size:14px;color:#bfcbd9;text-align:left;font-weight:400;border:0;min-width:0;box-shadow:none}.sidebar .navtabs button:hover{background:#263445;color:#fff}.sidebar .navtabs button.on{background:#263445;color:#409eff;box-shadow:none;border-right:3px solid #409eff}.menu-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.menu-label,.brand-label{white-space:nowrap;overflow:hidden}.sidebar-foot{height:48px;display:flex;align-items:center;gap:10px;padding:0 24px;border-top:1px solid #405065;font-size:12px;flex:none;color:#9aaec2}.online-dot{width:7px;height:7px;background:#67c23a;border-radius:50%;flex:none}.admin-frame{margin-left:var(--sidebar-width);min-width:0;transition:margin-left .2s}.admin-header{height:56px;display:flex;align-items:center;gap:16px;padding:0 20px 0 12px;background:white;border-bottom:1px solid #f0f0f0}.shell-icon{width:38px;height:38px;border:0;border-radius:4px;background:none;color:#606266;display:grid;place-items:center;cursor:pointer;flex:none}.shell-icon:hover{background:#f5f7fa}.shell-icon svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round}.breadcrumb{display:flex;align-items:center;gap:12px;font-size:13px;min-width:0;color:#303133}.breadcrumb button{background:none;border:0;padding:0;color:#909399;font-size:13px;cursor:pointer}.breadcrumb span:last-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.breadcrumb>span:first-of-type{color:#c0c4cc}.header-actions{margin-left:auto;display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:13px;min-width:0}.employee-link{font-size:12px;color:#606266;text-decoration:none;margin-right:8px}.employee-link:hover{color:#409eff}.admin-avatar{width:29px;height:29px;background:#ecf5ff;color:#409eff;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;flex:none}#whoami{max-width:110px;overflow:hidden;text-overflow:ellipsis;font-weight:500}.header-logout{padding:6px 0 6px 12px;border:0;border-left:1px solid #ebeef5;color:#606266;background:white;font-size:12px;cursor:pointer}.header-logout:hover{color:#f56c6c}.visited-tabs{height:37px;display:flex;gap:6px;align-items:center;padding:0 16px;background:white;box-shadow:0 2px 3px #0000000b;overflow-x:auto;scrollbar-width:thin}.visited-tabs button{flex:none;min-height:25px;border:1px solid #d8dce5;padding:2px 10px;background:white;font-size:12px;color:#606266;cursor:pointer}.visited-tabs button[aria-current]{background:#42b983;color:white;border-color:#42b983}.visited-tabs button[aria-current]:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:white;margin-right:7px}.admin-content{padding:24px;min-width:0;outline:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.page-heading h1{font-size:21px;margin:0 0 5px;font-weight:600}.page-heading p{margin:0;color:#909399;font-size:12px}.page-caption{font-size:12px;color:#a8abb2;white-space:nowrap}.card{border-radius:4px;box-shadow:none;padding:20px;border-color:#e6ebf5}.card h3{font-weight:600}.toolbar{padding:18px 20px;background:#fff;border:1px solid #e6ebf5;border-radius:4px;gap:14px;margin-bottom:18px}.toolbar .f{min-width:0}.toolbar label{font-size:12px;color:#606266}.btn{border-radius:4px;background:#409eff;font-weight:400;padding:8px 15px}.btn.ghost{border-color:#dcdfe6;color:#606266}.btn.ghost:hover{background:#ecf5ff;border-color:#c6e2ff;color:#409eff}.btn.ok{background:#67c23a}.btn.danger{background:#f56c6c}input[type=text],input[type=date],input[type=password],input[type=number],select,textarea{border-radius:4px;border-color:#dcdfe6}.stats{gap:18px;margin-bottom:18px}.stat{border:0;border-radius:4px;padding:22px 24px;box-shadow:0 2px 12px #00000006}.stat .n{font-size:29px;font-weight:600;color:#36a3f7}.stat .l{font-size:13px;color:#909399;margin-top:7px}.stat.good .n{color:#34bfa3}.stat.warn .n{color:#e6a23c}.stat.bad .n{color:#f56c6c}.tablewrap{border-radius:3px;border-color:#ebeef5}th{background:#f8f8f9;font-size:12px;color:#515a6e}th,td{padding:12px 14px;border-color:#ebeef5}tbody tr:hover{background:#f5f7fa}.tag{border-radius:3px;font-weight:400}.list .item,.callout,.msg{border-radius:4px}.sidebar-mask{position:fixed;inset:0;border:0;background:#0007;z-index:29;cursor:pointer}.sidebar-mask[hidden]{display:none}button:focus-visible,a:focus-visible{outline:2px solid #409eff;outline-offset:3px}.sidebar-collapsed{--sidebar-width:64px}.sidebar-collapsed .brand-label,.sidebar-collapsed .menu-label{display:none}.sidebar-collapsed .sidebar-brand{padding:0 17px}.sidebar-collapsed .menu-group{font-size:0;height:15px;line-height:15px;padding:0}.sidebar-collapsed .sidebar .navtabs button{padding:0 23px;gap:0}.sidebar-collapsed .sidebar-foot{justify-content:center;padding:0}.drawer{z-index:41}.mask{z-index:40}
@media(max-width:1000px){.employee-link{display:none}.admin-content{padding:18px}.header-actions{gap:8px}.admin-header{gap:10px}}
@media(max-width:768px){#main{--sidebar-width:220px}.sidebar{transform:translateX(-100%);transition:transform .2s;width:220px}.admin-frame{margin-left:0}.mobile-menu-open .sidebar{transform:translateX(0)}.sidebar-collapsed .brand-label,.sidebar-collapsed .menu-label{display:inline}.sidebar-collapsed .sidebar-brand{padding:0 20px}.sidebar-collapsed .menu-group{font-size:11px;height:35px;line-height:35px;padding:0 23px}.sidebar-collapsed .sidebar .navtabs button{padding:0 23px;gap:14px}.sidebar-collapsed .sidebar-foot{justify-content:flex-start;padding:0 24px}.admin-content{padding:16px 12px}.admin-header{padding:0 12px 0 6px;gap:6px}.breadcrumb{gap:8px;font-size:12px}.breadcrumb button{font-size:12px}.header-actions{gap:7px}.admin-avatar{display:none}#whoami{max-width:60px}.header-logout{padding-left:8px}.visited-tabs{padding:0 12px}.page-heading{margin-bottom:16px}.page-heading h1{font-size:19px}.page-caption{display:none}.toolbar{padding:14px;gap:10px}.toolbar .f{flex:1;min-width:115px}.toolbar input,.toolbar select{width:100%;min-width:0;max-width:100%}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:18px}.stat .n{font-size:26px}.card{padding:14px}.header-actions .header-logout{font-size:11px}.list .item{flex-wrap:wrap}.list .acts{flex-wrap:wrap}.grow{min-width:0}}
@media(prefers-reduced-motion:reduce){.sidebar,.admin-frame{transition:none}}
/* 公告管理和联系资料编辑使用独立弹窗，不影响原有详情抽屉。 */
#adminContactDialog,#adminNoticeDialog{border:1px solid #ebeef5;border-radius:5px;padding:24px;width:min(650px,calc(100vw - 32px));max-height:85vh;color:#303133}#adminContactDialog::backdrop,#adminNoticeDialog::backdrop{background:#0007}#adminContactForm{display:flex;flex-direction:column;gap:7px;margin-top:20px}#adminContactForm input{width:100%;padding:10px;border:1px solid #dcdfe6;border-radius:4px;font:inherit}#adminContactForm label{font-size:12px;color:#606266;margin-top:8px}#adminNoticeDetail{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;margin-top:20px}.admin-notice-item{padding:20px 0;border-bottom:1px solid #ebeef5}.admin-notice-item:last-child{border:0}.admin-notice-item>p{font-size:13px;color:#606266;white-space:pre-wrap;overflow-wrap:anywhere}.admin-notice-item .hint{margin:0}.admin-notice-item .acts{flex-wrap:wrap}
