/* ========================================================= 
   UI Baseline · Sprint 2 
   风格目标：工程白皮书 / 理性 / 克制 
   ========================================================= */ 

/* ---------- 全局重置与基础字体 ---------- */ 
* { 
    box-sizing: border-box; 
    margin: 0; 
    padding: 0; 
} 

body { 
    font-family: -apple-system, BlinkMacSystemFont, 
                 "Segoe UI", "PingFang SC", "Microsoft YaHei", 
                 Arial, sans-serif; 
    font-size: 14px; 
    color: #1f2933; 
    background-color: #f4f6f8; 
} 

/* ---------- 顶部栏 ---------- */ 
.app-header { 
    height: 56px; 
    background-color: #0f172a; /* 深蓝偏黑，工程感 */ 
    color: #ffffff; 
    display: flex; 
    align-items: center; 
    padding: 0 20px; 
} 

.app-title { 
    font-weight: 600; 
    font-size: 16px; 
} 

.project-selector { 
    margin-left: 24px; 
    font-size: 13px; 
    opacity: 0.85; 
} 

.user-info { 
    margin-left: auto; 
    font-size: 13px; 
    opacity: 0.85; 
} 

/* ---------- 主体布局 ---------- */ 
.app-container { 
    display: flex; 
    min-height: calc(100vh - 56px); 
} 

/* ---------- 左侧导航 ---------- */ 
.app-sidebar { 
    width: 220px; 
    background-color: #111827; /* 深色侧边栏 */ 
    color: #cbd5e1; 
    padding: 16px 0; 
} 

.nav-section { 
    margin-bottom: 20px; 
} 

.nav-section-title { 
    padding: 0 16px; 
    font-size: 12px; 
    color: #94a3b8; 
    margin-bottom: 6px; 
} 

.nav-list { 
    list-style: none; 
} 

.nav-item a, 
.nav-item span { 
    display: block; 
    padding: 8px 16px; 
    font-size: 13px; 
    color: inherit; 
    text-decoration: none; 
} 

.nav-item a:hover { 
    background-color: #1f2937; 
    color: #ffffff; 
} 

.nav-item.active a { 
    background-color: #1e293b; 
    color: #ffffff; 
    font-weight: 500; 
} 

.nav-item.disabled span { 
    opacity: 0.4; 
    cursor: not-allowed; 
} 

/* ---------- 主内容区 ---------- */ 
.app-content { 
    flex: 1; 
    padding: 24px; 
    background-color: #f4f6f8; 
} 

/* ---------- Flash 消息 ---------- */ 
.flash-messages { 
    margin-bottom: 16px; 
} 

.flash { 
    padding: 10px 14px; 
    border-radius: 4px; 
    font-size: 13px; 
    margin-bottom: 8px; 
} 

.flash-success { 
    background-color: #e6f4ea; 
    color: #166534; 
} 

.flash-error { 
    background-color: #fdecea; 
    color: #991b1b; 
} 

.flash-warning { 
    background-color: #fff7ed; 
    color: #9a3412; 
} 

/* ---------- 表格基础样式（为 Sprint 3/4 提前准备） ---------- */ 
table { 
    width: 100%; 
    border-collapse: collapse; 
    background-color: #ffffff; 
} 

th, td { 
    padding: 10px 12px; 
    border-bottom: 1px solid #e5e7eb; 
    text-align: left; 
    font-size: 13px; 
} 

th { 
    background-color: #f8fafc; 
    font-weight: 500; 
} 

/* ---------- 按钮基线 ---------- */ 
button { 
    padding: 6px 12px; 
    font-size: 13px; 
    border-radius: 4px; 
    border: 1px solid #d1d5db; 
    background-color: #ffffff; 
    cursor: pointer; 
} 

button:hover { 
    background-color: #f3f4f6; 
}