:root {
    --aside-width: 240px;
    --header-height: 56px;
    --primary-bg: #f5f7fa;
    --card-bg: #ffffff;
    --border-color: #e4e7ed;
    --text-primary: #303133;
    --text-secondary: #909399;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
    --radius: 8px;
}
#app { min-height: 100vh; display: flex; flex-direction: column; }
.app-header {
    height: var(--header-height); background: #fff;
    border-bottom: 1px solid var(--border-color);
    display: flex; align-items: center; padding: 0 24px;
    box-shadow: var(--shadow-sm); z-index: 100; gap: 12px; flex-shrink: 0;
}
.app-header .logo-icon {
    width: 36px; height: 36px; border-radius: 8px;
    background: linear-gradient(135deg, #409eff, #337ecc);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 20px; flex-shrink: 0;
}
.app-header .logo-text { font-size: 18px; font-weight: 700; }
.header-spacer { flex: 1; }
.header-badge {
    font-size: 13px; color: var(--text-secondary);
    background: var(--primary-bg); padding: 5px 14px; border-radius: 20px;
}
.n-main-container {
    display: flex; flex: 1; min-height: 0; padding: 20px 0px;
    gap: 16px; max-width: 1200px; width: 100%; margin: 0 auto;
}
/* 左侧菜单栏 */
.aside-panel {
    width: var(--aside-width); flex-shrink: 0;
    background: var(--card-bg); border-radius: var(--radius);
    box-shadow: var(--shadow-sm); border: 1px solid var(--border-color);
    display: flex; flex-direction: column; overflow: hidden;
}
.aside-header {
    padding: 16px 18px 12px; border-bottom: 1px solid var(--border-color);
    font-weight: 600; font-size: 15px; display: flex; align-items: center; gap: 8px;
    flex-shrink: 0;
}
.header-dot { width: 8px; height: 8px; border-radius: 50%; background: #409eff; }
.aside-body { flex: 1; overflow-y: auto; padding: 8px 0; }
.el-menu { border-right: none !important; }
.el-sub-menu .el-sub-menu__title { padding-left: 20px !important; }
.el-menu-item { padding-left: 40px !important; font-size: 13px; }
.el-menu-item.is-active { background-color: #ecf5ff; color: #409eff; font-weight: 600; }
/* 右侧内容 */
.content-panel {
    flex: 1; min-width: 0; background: var(--card-bg);
    border-radius: var(--radius); box-shadow: var(--shadow-sm);
    display: flex; flex-direction: column; overflow: hidden;
    border: 1px solid var(--border-color);
}
.content-header {
    padding: 16px 20px; border-bottom: 1px solid var(--border-color);
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap; flex-shrink: 0;
}
.content-header .section-title { font-size: 16px; font-weight: 600; }
.content-body { flex: 1; overflow-y: auto; padding: 12px 20px 20px; }
.announcement-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 8px; border-bottom: 1px solid #f0f2f5;
    cursor: pointer; transition: background 0.2s;
}
.announcement-item:hover { background: #f5f8ff; border-radius: 6px; padding-left: 14px; padding-right: 14px; }
.item-title { font-size: 14px; font-weight: 500; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-right: 16px; }
.announcement-item:hover .item-title { color: #409eff; }
.item-date { font-size: 13px; color: var(--text-secondary); white-space: nowrap; }
.detail-card {
    background: #fff; border-radius: var(--radius); padding: 28px 32px;
    border: 1px solid #eef0f4; box-shadow: var(--shadow-sm);
}
.detail-title { font-size: 22px; font-weight: 700; margin-bottom: 16px; }
.detail-meta {
    display: flex; gap: 20px; flex-wrap: wrap; padding-bottom: 18px;
    margin-bottom: 22px; border-bottom: 1px dashed #e8eaef;
    font-size: 13px; color: #909399;
}
.detail-content { font-size: 15px; line-height: 1.85; color: #444; }
.detail-content p { margin-bottom: 14px; text-indent: 2em; }
.empty-state { text-align: center; padding: 60px 20px; color: #c0c4cc; }
.pagination-wrapper { display: flex; justify-content: flex-end; padding: 16px 0 4px; margin-top: 8px; border-top: 1px solid #f0f2f5; }
@media (max-width: 900px) {
    .n-main-container { flex-direction: column; width:100%;}
    .aside-panel { width: 100%; max-height: 200px; }
}