:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:18px;--text-2xl:28px;--text-primary:#2c2a26;--text-secondary:#5c5850;--text-tertiary:#94918a;--text-inverse:#fafaf8;--font-sans:"DM Sans",-apple-system,BlinkMacSystemFont,sans-serif;--font-display:"DM Sans",-apple-system,BlinkMacSystemFont,sans-serif;--bg-card:#fff;--bg-secondary:#f5f3ef;--border-subtle:#e8e4dc;--border-default:#d6d1c7;--border-strong:#b8b3a8;--accent-warm:#c9a227;--accent-warm-light:#f5f0e8;--status-positive:#2d8a4e;--status-positive-bg:#d4edda;--status-negative:#c0392b;--status-negative-bg:#f8d7da;--status-warning:#b8860b;--status-warning-bg:#fff3cd;--status-info:#2b6cb0;--status-info-bg:#e0ecf9;--sidebar-width:240px;--radius-sm:6px;--radius-md:8px;--duration-fast:0.15s;--ease-out:cubic-bezier(0.16,1,0.3,1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:#fafaf8;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes spin{to{transform:rotate(1turn)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.page-enter{animation:fadeIn var(--duration-fast) var(--ease-out)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.card-interactive{transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);cursor:pointer}.card-interactive:hover{border-color:var(--border-default);box-shadow:0 2px 8px rgba(0,0,0,.04)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;line-height:1.6;white-space:nowrap;background:var(--bg-secondary);color:var(--text-secondary)}.badge-positive{background:var(--status-positive-bg);color:var(--status-positive)}.badge-negative{background:var(--status-negative-bg);color:var(--status-negative)}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning)}.badge-neutral{background:var(--bg-secondary);color:var(--text-tertiary)}.badge-accent{background:var(--accent-warm-light);color:var(--accent-warm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;border:1px solid var(--border-default);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);line-height:1.4}.btn:hover{opacity:.88;border-color:var(--border-strong)}.btn:active{transform:scale(.98)}.btn-secondary{background:var(--bg-secondary);border-color:var(--border-subtle);color:var(--text-secondary)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-tertiary)}.btn-ghost:hover{background:var(--bg-secondary);color:var(--text-secondary)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.score-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--text-tertiary)}.score-high{background:var(--status-positive)}.score-medium{background:var(--status-warning)}.score-low{background:var(--status-negative)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th{text-align:left;font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);border-bottom:1px solid var(--border-default)}.data-table td,.data-table th{padding:var(--space-3) var(--space-4)}.data-table td{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);vertical-align:top}.data-table tbody tr:hover{background:var(--bg-secondary)}.data-table tbody tr:last-child td{border-bottom:none}button:hover{opacity:.88}button:active{transform:scale(.98)}::selection{background:#e8e4dc;color:#2c2a26}a{color:inherit;text-decoration:none}a:hover{opacity:.8}