* { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary: #4f46e5; --primary-hover: #4338ca; --primary-light: #eef2ff; --bg: #f8fafc; --surface: #ffffff; --border: #e2e8f0; --text: #1e293b; --text-secondary: #64748b; --text-muted: #94a3b8; --danger: #ef4444; --success: #22c55e; --warning: #f59e0b; --radius: 8px; --shadow: 0 1px 3px rgba(0,0,0,0.1); --shadow-md: 0 4px 6px rgba(0,0,0,0.1); } html, body { height: 100%; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: var(--bg); color: var(--text); font-size: 14px; line-height: 1.5; -webkit-font-smoothing: antialiased; } #app { height: 100%; } #app-container { height: 100%; display: flex; flex-direction: column; } button { cursor: pointer; border: none; font-size: 14px; font-family: inherit; border-radius: var(--radius); transition: all 0.15s ease; } button:disabled { opacity: 0.5; cursor: not-allowed; } input, select, textarea { font-family: inherit; font-size: 14px; border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 12px; outline: none; transition: border-color 0.15s ease; background: var(--surface); color: var(--text); } input:focus, select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); } .btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; font-weight: 500; } .btn-primary { background: var(--primary); color: white; } .btn-primary:hover:not(:disabled) { background: var(--primary-hover); } .btn-secondary { background: var(--surface); color: var(--text); border: 1px solid var(--border); } .btn-secondary:hover:not(:disabled) { background: var(--bg); } .btn-danger { background: var(--danger); color: white; } .btn-danger:hover:not(:disabled) { background: #dc2626; } .btn-sm { padding: 4px 10px; font-size: 12px; } .card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); } .label { display: block; font-size: 12px; font-weight: 600; color: var(--text-secondary); margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.5px; } .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px; color: var(--text-muted); text-align: center; gap: 12px; } .empty-state .icon { font-size: 48px; opacity: 0.5; }