:root {
  --indigo: #4f46e5;
  --indigo-dark: #4338ca;
  --bg: #f1f3f9;
  --card-border: #e4e7f0;
}
body { background: var(--bg); font-family: 'Inter', system-ui, -apple-system, sans-serif; }
.navbar-brand { font-weight: 800; letter-spacing: .3px; }
.brand-badge { background: linear-gradient(135deg, #4f46e5, #7c3aed); }
.sidebar { min-height: calc(100vh - 56px); background: #171a26; }
.sidebar .nav-link { color: #aab0c5; border-radius: .5rem; margin: 2px 0; font-weight: 500; }
.sidebar .nav-link:hover { color: #fff; background: #232842; }
.sidebar .nav-link.active { color: #fff; background: linear-gradient(135deg, #4f46e5, #7c3aed); }
.sidebar .nav-link i { margin-right: .6rem; }
.card { border: 1px solid var(--card-border); border-radius: 1rem; box-shadow: 0 1px 3px rgba(16,24,40,.06); }
.card-header { background: #fff; border-bottom: 1px solid var(--card-border); font-weight: 700; border-radius: 1rem 1rem 0 0 !important; }
.stat-card { border-left: 4px solid var(--indigo); }
.stat-num { font-size: 2rem; font-weight: 800; }
.hero { background: linear-gradient(135deg, #1e1b4b, #4f46e5 60%, #7c3aed); border-radius: 1.25rem; }
.dropzone { border: 2px dashed #c7cbe0; border-radius: 1rem; background: #fff; transition: .2s; }
.dropzone:hover, .dropzone.dragover { border-color: var(--indigo); background: #eef0ff; }
.table { font-size: .92rem; }
.table thead th { text-transform: uppercase; font-size: .72rem; letter-spacing: .06em; color: #6b7280; }
pre.logbox { background: #0f1222; color: #c9f0d4; border-radius: .75rem; padding: 1rem; max-height: 380px; overflow: auto; font-size: .8rem; }
code.bundle { background: #eef0ff; color: #4338ca; padding: .1rem .45rem; border-radius: .4rem; font-weight: 700; }
footer { color: #8a90a8; font-size: .85rem; }
.btn-primary { background: var(--indigo); border-color: var(--indigo); }
.btn-primary:hover { background: var(--indigo-dark); border-color: var(--indigo-dark); }
