/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
/* Base */
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
line-height: 1.5;
color: var(--text);
min-width: 100vw;
}
#app {
background: var(--bg-app);
padding: 16px;
border-radius: 12px;
}
/* Color tokens */
:root {
--bg-app: #f8f9fa;
--bg-card: #fff;
--bg-inset: #f5f5f5;
--bg-track: #e0e0e0;
--bg-tint-blue: #e3f2fd;
--bg-tint-green: #e8f5e9;
--bg-tint-purple: #f3e5f5;
--bg-tint-warm: #fbe9e7;
--bg-tint-yellow: #fffde7;
--border: #e0e0e0;
--text: #1a1a2e;
--text-muted: #666;
--text-indigo: #3949ab;
--text-success: #2e7d32;
--accent-blue: #1565c0;
--accent-blue-light: #42a5f5;
--accent-green: #4caf50;
--accent-green-light: #66bb6a;
--accent-red: #ef5350;
--accent-orange: #ff9800;
--accent-purple: #6a1b9a;
--accent-yellow: #ffd54f;
--text-on-accent: #fff;
--error-bg: #ffebee;
--error-text: #c62828;
}
@media (prefers-color-scheme: dark) {
:root {
--bg-app: #1a1a2e;
--bg-card: #16213e;
--bg-inset: #0d1b2a;
--bg-track: #0d1b2a;
--bg-tint-blue: #0f3460;
--bg-tint-green: #1b3a4b;
--bg-tint-purple: #4a148c;
--bg-tint-warm: #4e1a00;
--bg-tint-yellow: #1b3a4b;
--border: #0f3460;
--text: #e0e0e0;
--text-muted: #a0a0a0;
--text-indigo: #a0c4ff;
--text-success: #81c784;
--accent-blue: #64b5f6;
--accent-blue-light: #42a5f5;
--accent-green: #81c784;
--accent-green-light: #66bb6a;
--accent-orange: #ffb74d;
--accent-purple: #ce93d8;
--error-bg: #5c1a1a;
--error-text: #ff8a80;
}
}
/* Shared components */
.error-banner {
background: var(--error-bg);
color: var(--error-text);
padding: 12px;
border-radius: 8px;
text-align: center;
font-weight: 600;
}