/* 基础层：设计变量 / reset / 通用组件 / 动效（全站引用） */
:root {
    --nav-bg: #1a365d;
    --nav-text: #e2e8f0;
    --primary: #2b4c7e;
    --primary-light: #3b6ba5;
    --sidebar-bg: #f7f8fa;
    --sidebar-active: #e8eef6;
    --text: #1e293b;
    --text-secondary: #64748b;
    --border: #e2e8f0;
    --hover-bg: #f1f5f9;
    --row-hover: #f8fafc;
    --tag-bg: #eef2f7;
    --success: #16a34a;
    --footer-bg: #1e293b;
    --footer-text: #94a3b8;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: -apple-system, 'PingFang SC', 'Microsoft YaHei', 'Segoe UI', sans-serif;
    line-height: 1.6;
    color: var(--text);
    background: #f0f2f5;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.icon { width: 1em; height: 1em; vertical-align: -0.125em; fill: currentColor; display: inline-block; flex-shrink: 0; }
.icon-folder { color: #e8a838; }
.icon-file { color: var(--text-secondary); }
.icon-download { color: #fff; }

.empty-message { text-align: center; padding: 48px 16px; color: var(--text-secondary); }

/* 键盘可达性焦点样式 */
a:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 2px; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes spin { to { transform: rotate(360deg); } }
