* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: system-ui, sans-serif; background: #111; color: #eee; min-height: 100vh; }
.container { max-width: 800px; margin: 0 auto; padding: 1rem; }
header { background: #1a1a2e; padding: 1rem; display: flex; justify-content: space-between; align-items: center; }
header a { color: #7eb8f7; text-decoration: none; font-weight: bold; font-size: 1.2rem; }
nav a { color: #aaa; text-decoration: none; margin-left: 1rem; }
nav a:hover { color: #eee; }
.card { background: #1e1e2e; border-radius: 8px; padding: 1.5rem; margin: 1rem 0; }
.btn { display: inline-block; padding: .6rem 1.2rem; border-radius: 6px; border: none; cursor: pointer; font-size: 1rem; }
.btn-primary { background: #4a90e2; color: #fff; }
.btn-secondary { background: #333; color: #eee; }
.btn-success { background: #27ae60; color: #fff; }
.btn-danger { background: #c0392b; color: #fff; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
input, select { width: 100%; padding: .6rem; border-radius: 6px; border: 1px solid #444; background: #2a2a3e; color: #eee; margin: .4rem 0; font-size: 1rem; }
label { display: block; margin-top: .8rem; color: #aaa; font-size: .9rem; }
.status-badge { display: inline-block; padding: .2rem .6rem; border-radius: 4px; font-size: .8rem; }
.status-done { background: #27ae60; }
.status-failed { background: #c0392b; }
.status-rendering { background: #e67e22; }
.status-ready { background: #2980b9; }
.status-default { background: #555; }
.progress-track { background: #333; border-radius: 4px; height: 12px; overflow: hidden; margin: .4rem 0; }
.progress-fill { background: #4a90e2; height: 100%; border-radius: 4px; transition: width .3s ease; }
.error { color: #e74c3c; margin: .5rem 0; font-size: .9rem; }
.success { color: #27ae60; margin: .5rem 0; font-size: .9rem; }
.confidence-good { color: #27ae60; }
.confidence-ok { color: #e67e22; }
.confidence-low { color: #e74c3c; }
