.app { display: flex; height: 100vh; position: relative; overflow: hidden; }
#particles { position: fixed; inset: 0; pointer-events: none; z-index: 0; }

.main { flex: 1; overflow-y: auto; background: var(--bg); position: relative; z-index: 1; }
.page { padding: 28px 30px; min-height: 100%; }
.page-enter { animation: fadeSlideIn 0.26s ease; }
@keyframes fadeSlideIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.page-header { margin-bottom: 24px; }
.page-title  { font-size: 22px; font-weight: 700; }
.page-sub    { font-size: 13px; color: var(--muted); margin-top: 4px; }

.bg-glow-1 { position:fixed; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle, rgba(37,99,200,0.06) 0%, transparent 70%); top:-100px; right:-80px; pointer-events:none; z-index:0; }
.bg-glow-2 { position:fixed; width:400px; height:400px; border-radius:50%; background:radial-gradient(circle, rgba(75,142,240,0.05) 0%, transparent 70%); bottom:-60px; left:120px; pointer-events:none; z-index:0; }
