/**
 * 文件共享平台 - 双主题样式表 v3
 */

/* ==================== 深色主题（默认） ==================== */
:root {
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-tertiary: #334155;
    --border-primary: #334155;
    --border-secondary: #1e293b;
    --text-primary: #f8fafc;
    --text-secondary: #cbd5e1;
    --text-tertiary: #94a3b8;
    --accent-primary: #3b82f6;
    --accent-success: #22c55e;
    --accent-warning: #f59e0b;
    --accent-danger: #ef4444;
    --accent-info: #06b6d4;
    --shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* ==================== 浅色主题 ==================== */
body[data-theme="light"] {
    --bg-primary: #f1f5f9;
    --bg-secondary: #ffffff;
    --bg-tertiary: #f8fafc;
    --border-primary: #e2e8f0;
    --border-secondary: #cbd5e1;
    --text-primary: #0f172a;
    --text-secondary: #334155;
    --text-tertiary: #64748b;
    --accent-primary: #2563eb;
    --accent-success: #16a34a;
    --accent-warning: #d97706;
    --accent-danger: #dc2626;
    --accent-info: #0891b2;
    --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* ==================== 基础样式 ==================== */
* { box-sizing: border-box; }

body {
    background-color: var(--bg-primary) !important;
    color: var(--text-secondary) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* 导航栏 */
.navbar {
    background-color: var(--bg-secondary) !important;
    border-bottom: 1px solid var(--border-primary) !important;
}
.navbar.navbar-dark {
    background-color: var(--bg-secondary) !important;
    border-bottom: 1px solid var(--border-primary) !important;
}
.navbar-brand {
    color: var(--text-primary) !important;
    font-weight: 600;
}
.nav-link {
    color: var(--text-secondary) !important;
}
.nav-link:hover, .nav-link.active {
    color: var(--text-primary) !important;
}
.user-info { color: var(--text-tertiary); }

/* 主题按钮 */
.theme-btn {
    border: 1px solid var(--border-primary);
    color: var(--text-secondary);
    background: var(--bg-tertiary);
}
.theme-btn:hover {
    color: var(--text-primary);
    background: var(--bg-primary);
}

/* 卡片 */
.card {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-primary) !important;
    border-radius: 8px;
}
.card-header {
    background-color: var(--bg-tertiary) !important;
    border-bottom: 1px solid var(--border-primary) !important;
    padding: 14px 20px;
}
.card-header h5, .card-header h6 {
    color: var(--text-primary) !important;
    margin: 0;
}
.card-body {
    color: var(--text-secondary);
    padding: 20px;
}

/* 统计 */
.stat-card { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.stat-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.stat-card .card-body { color: var(--text-secondary); }
.stat-card h3 { color: var(--text-primary) !important; }
.stat-card .text-muted { color: var(--text-tertiary) !important; }
.stat-icon {
    width: 50px; height: 50px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; color: white;
}
.stat-icon.bg-primary { background: linear-gradient(135deg, #3b82f6, #2563eb); }
.stat-icon.bg-success { background: linear-gradient(135deg, #22c55e, #16a34a); }
.stat-icon.bg-info { background: linear-gradient(135deg, #06b6d4, #0891b2); }
.stat-icon.bg-warning { background: linear-gradient(135deg, #f59e0b, #d97706); }

/* 表格 (兼容旧页面) */
.table {
    color: var(--text-secondary) !important;
    margin-bottom: 0;
}
.table thead th {
    background-color: var(--bg-tertiary) !important;
    border-bottom: 1px solid var(--border-primary) !important;
    color: var(--text-primary) !important;
    font-weight: 600; padding: 12px 16px;
}
.table tbody td {
    border-bottom: 1px solid var(--border-secondary);
    padding: 12px 16px; vertical-align: middle;
}
.table-hover tbody tr:hover { background-color: var(--bg-tertiary) !important; }

/* 表单 */
.form-control, .form-select {
    background-color: var(--bg-tertiary) !important;
    border: 1px solid var(--border-primary) !important;
    color: var(--text-primary) !important;
    border-radius: 6px;
}
.form-control:focus, .form-select:focus {
    border-color: var(--accent-primary) !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2) !important;
}
.form-control::placeholder { color: var(--text-tertiary); }
.input-group-text {
    background-color: var(--bg-tertiary) !important;
    border: 1px solid var(--border-primary) !important;
    color: var(--text-tertiary) !important;
}

/* 徽章 */
.badge { font-weight: 500; padding: 4px 8px; border-radius: 4px; }

/* 模态框 */
.modal-content {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-primary) !important;
    border-radius: 12px;
    color: var(--text-secondary);
}
.modal-header { border-bottom: 1px solid var(--border-primary); color: var(--text-primary); }
.modal-footer { border-top: 1px solid var(--border-primary); }
.modal-body { color: var(--text-secondary); }

/* 进度条 */
.progress { background-color: var(--bg-tertiary) !important; border-radius: 4px; }
.progress-bar { border-radius: 4px; }

/* 按钮 */
.btn { border-radius: 6px; font-weight: 500; transition: all 0.2s ease; }
.btn-primary { background-color: #2563eb; border-color: #2563eb; }
.btn-primary:hover { background-color: #1d4ed8; border-color: #1d4ed8; }
.btn-success { background-color: #16a34a; border-color: #16a34a; }
.btn-success:hover { background-color: #15803d; border-color: #15803d; }

.btn-outline-primary { color: var(--accent-primary); border-color: var(--accent-primary); }
.btn-outline-primary:hover, .btn-outline-primary.active {
    background-color: var(--accent-primary); color: white;
}
.btn-outline-secondary { color: var(--text-tertiary); border-color: var(--border-primary); }
.btn-outline-secondary:hover, .btn-outline-secondary.active {
    background-color: var(--bg-tertiary); color: var(--text-primary);
}
.btn-outline-success { color: var(--accent-success); border-color: var(--accent-success); }
.btn-outline-success:hover { background-color: var(--accent-success); color: white; }
.btn-outline-danger { color: var(--accent-danger); border-color: var(--accent-danger); }
.btn-outline-danger:hover { background-color: var(--accent-danger); color: white; }
.btn-outline-light { color: var(--text-secondary); border-color: var(--border-primary); }
.btn-outline-light:hover { background-color: var(--bg-tertiary); color: var(--text-primary); }

/* ==================== 文件树 ==================== */
.tree-item { user-select: none; }
.tree-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border-secondary);
    transition: background-color 0.15s ease;
    cursor: default; min-height: 44px;
}
.tree-row:hover { background-color: var(--bg-tertiary); }
.tree-toggle {
    width: 20px; text-align: center; flex-shrink: 0;
    color: var(--text-tertiary); font-size: 12px;
}
.tree-toggle:hover { color: var(--accent-primary); }
.tree-icon {
    width: 24px; text-align: center; flex-shrink: 0;
    font-size: 16px; color: var(--text-tertiary);
}
.tree-name {
    flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap; color: var(--text-primary); font-weight: 500;
}
.tree-owner { flex-shrink: 0; }
.tree-owner { flex-shrink: 0; }
.tree-time {
    flex-shrink: 0; width: 150px;
    color: var(--text-tertiary); font-size: 13px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tree-size {
    flex-shrink: 0; width: 100px; text-align: right;
    color: var(--text-tertiary); font-size: 13px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tree-actions { flex-shrink: 0; display: flex; gap: 4px; }
.tree-children.collapsed { display: none; }

/* ==================== 滚动条 ==================== */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg-primary); }
::-webkit-scrollbar-thumb { background: var(--border-primary); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-tertiary); }

/* ==================== 文件图标 ==================== */
.fa-file-alt { color: #64748b; }
.fa-file-code { color: #3b82f6; }
.fa-file-image { color: #06b6d4; }
.fa-file-pdf { color: #ef4444; }
.fa-file-word { color: #3b82f6; }
.fa-file-excel { color: #22c55e; }
.fa-file-powerpoint { color: #f59e0b; }
.fa-file-archive { color: #d97706; }
.fa-php { color: #4f5b93; }
.fa-js-square { color: #f7df1e; }
.fa-html5 { color: #e34f26; }
.fa-css3-alt { color: #1572b6; }
.fa-python { color: #3776ab; }
.fa-markdown { color: #083fa1; }
.fa-folder, .fa-folder-open { color: #f59e0b; }

/* ==================== 通用覆盖 ==================== */
.text-muted { color: var(--text-tertiary) !important; }
.text-decoration-none { color: var(--accent-primary); }
a.text-decoration-none:hover { color: var(--accent-primary); }
.bg-dark { background-color: var(--bg-secondary) !important; }
.border-secondary { border-color: var(--border-primary) !important; }

/* ==================== 动画 ==================== */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes spin { to { transform: rotate(360deg); } }

/* ==================== 响应式 ==================== */
@media (max-width: 768px) {
    .tree-time, .tree-size { display: none; }
    .tree-row { padding: 10px 8px; gap: 6px; }
}
